Installation¶
Dyno is made to work with crosswalk: all you need to do is place the three differents parts of Dyno inside your game. It comes in three assets: Dyno (a crosswalk server module), DynoClient (a crosswalk client module) and DynoCommon (an ordinary module). Use the following table to know where to put each asset into your game.
asset name | where it should be |
---|---|
Dyno | in crosswalk server modules |
DynoClient | in crosswalk client modules |
DynoCommon | child of ReplicatedStorage |
Roblox Models¶
You can download these models files and insert them directly into your game.
asset | v0.1.0 | latest |
---|---|---|
Dyno | dyno.rbxm | dyno.rbxm |
DynoClient | dyno-client.rbxm | dyno-client.rbxm |
DynoCommon | dyno-common.rbxm | dyno-common.rbxm |
DynoCommon (dependencies excluded) | dyno-common.rbxm | dyno-common.rbxm |
Important
For DynoCommon
, if you are already using t and Roact in your game, you can opt for the file with the dependencies excluded. Dyno is able to pick up its dependencies in those places:
dependency | where it needs to be parented |
---|---|
t | ReplicatedStorage |
Roact | ReplicatedStorage or ReplicatedFirst |
As a Git Submodule¶
If you are using git to version your game, you may want to add the project as a git submodule into your existing git repository. To achieve that, run the following command in your git repository:
git submodule add https://gitlab.com/seaofvoices/dyno.git modules/dyno
cd modules/dyno
git submodule update --init
cd ../..
This will insert it in a folder named modules
under the root of the repository (you can put it anywhere you want in another folder if you prefer). The last three lines will initialize Dyno's submodule dependencies.
Syncing with Rojo¶
If you are using Rojo to either build your place or sync content from your file system, you'll have to update your Rojo project file.
Rojo 6¶
you can use the different Rojo files to sync each asset into the right place. For example, with a crosswalk project, you rojo project file should be similar to the following:
{
"tree": {
"$className": "DataModel",
"ReplicatedFirst": {
"$className": "ReplicatedFirst",
"ClientLoader": {
"$path": "path/to/crosswalk/src/ClientLoader"
},
"ClientMain": {
"$path": "path/to/crosswalk/src/ClientMain.client.lua"
}
},
"ReplicatedStorage": {
"$className": "ReplicatedStorage",
"ClientModules": {
"$path": "src/ClientModules",
"DynoClient": {
"$path": "path/to/dyno/rojo/dyno-client.project.json"
}
},
"SharedModules": {
"$path": "src/SharedModules"
},
"DynoCommon": {
"$path": "path/to/dyno/rojo/dyno-common-with-dependencies.project.json"
},
},
"ServerScriptService": {
"$className": "ServerScriptService",
"Main": {
"$path": "path/to/crosswalk/src/Main.server.lua"
}
},
"ServerStorage": {
"$className": "ServerStorage",
"ServerLoader": {
"$path": "path/to/crosswalk/src/ServerLoader"
},
"ServerModules": {
"$path": "src/ServerModules",
"Dyno": {
"$path": "path/to/dyno/rojo/dyno.project.json"
}
},
"ServerLoader": {
"$path": "../modules/crosswalk/src/ServerLoader"
}
}
}
}
Important
If you are already using t and Roact in your game, you can opt for the DynoCommon rojo file with the dependencies excluded. Instead of syncing the file dyno-common-with-dependencies.project.json
, use dyno-common.project.json
dependency | where Dyno can find it |
---|---|
t | ReplicatedStorage |
Roact | ReplicatedStorage or ReplicatedFirst |
Rojo 5¶
With this version of Rojo, you'll need to point to each folder under src
in the repository.
{
"tree": {
"$className": "DataModel",
"ReplicatedFirst": {
"$className": "ReplicatedFirst",
"ClientLoader": {
"$path": "path/to/crosswalk/src/ClientLoader"
},
"ClientMain": {
"$path": "path/to/crosswalk/src/ClientMain.client.lua"
}
},
"ReplicatedStorage": {
"$className": "ReplicatedStorage",
"ClientModules": {
"$path": "src/ClientModules",
"DynoClient": {
"$path": "path/to/dyno/src/DynoClient"
}
},
"SharedModules": {
"$path": "src/SharedModules"
},
"DynoCommon": {
"$path": "path/to/dyno/src/DynoCommon"
},
},
"ServerScriptService": {
"$className": "ServerScriptService",
"Main": {
"$path": "path/to/crosswalk/src/Main.server.lua"
}
},
"ServerStorage": {
"$className": "ServerStorage",
"ServerLoader": {
"$path": "path/to/crosswalk/src/ServerLoader"
},
"ServerModules": {
"$path": "src/ServerModules",
"Dyno": {
"$path": "path/to/dyno/src/Dyno"
}
},
"ServerLoader": {
"$path": "../modules/crosswalk/src/ServerLoader"
}
}
}
}
Additionally, you'll have to sync t and Roact into the game.
dependency | where it needs to be |
---|---|
t | DynoCommon, ReplicatedStorage |
Roact | DynoCommon, ReplicatedStorage or ReplicatedFirst |