-
Notifications
You must be signed in to change notification settings - Fork 68
Getting Started
The OpenRA SDK includes an example
mod that demonstrates the environment, but it is missing most of the core definitions that are required for a basic game. For this reason, we recommend that you start your project by copying and adapting one of our official OpenRA mods using the following procedure:
- Run
make
ormake.cmd
from the SDK directory to download the engine and dependencies, and make sure that you can successfully launch the example mod. It should show you a black screen with a "Quit" button. - Delete the
mods/example
directory. - Choose one of the default OpenRA mods to use as a base for your mod. In this example we will assume you are copying
cnc
. - Choose a new internal name / id for you mod. In this example we will assume you are using
mynewmod
. - Copy
engine/mods/cnc
tomods/mynewmod
. - Open
mods/mynewmod/mod.yaml
and make the following changes:- In the
Metadata
section set your mod title and version. - In the
Packaging
section replace$cnc: cnc
with$mynewmod: mynewmod
. This tells OpenRA that the explicit mountmymod
should refer to the root of your mod package (see Mod manifest). - Change all lines that start with
cnc|
tomynewmod|
. This updates the explicit mount references to account for the change that you have just made above.
- In the
- Open
mod.config
and replaceMOD_ID="example"
near the top of the file withMOD_ID="mynewmod"
.
You should now have a functioning stand-alone clone of the cnc
mod that you can adapt / replace piece by piece with your own project.
If you don't plan on including any custom C# logic in your mod then you should delete ExampleMod.sln
and the OpenRA.Mods.Example
directory. If you do plan on including custom logic, then you will need to make some futher changes:
- TODO: Explain updating the GUIDs, project name, and changing the build output to
mods/mynewmod/
- TODO: Explain how to customize a new C# library to reference the engine and output files to the correct location.
If you would like to adapt an existing mod to the SDK, then the steps are largely the same as above. Copy your mod files to the SDK mod directory, and if you have custom code copy these files to the root of the repository. The main difference is that you may need to update your mod to be compatible with the latest engine release. If your mod already targets bleed
then you probably already know how to do this; just update ENGINE_VERSION
in mod.config to reference the upstream commit that you are targeting and you should be set. Otherwise, see Updating to a new SDK or Engine version for instructions on how to update your mod to to the latest engine.