Skip to content

Internal Development Philosophy

Brandon Smith edited this page Apr 30, 2022 · 6 revisions

When developing with modding at mind, it will be important to re-think about how we approach normal problems.

Typically the notion would be creating monobehaviours at the game level and hoping that the modders can access it... well, we can.. but we shouldn't do that. Instead we can put "placeholder" or "data components" onto the game object. This allows us to share accurate monobehaviours, without giving our source code to the modder and additionally giving them the full capabilities of the game.

The layout looks like this: The Mod SDK will be referenced in both projects, the modder's project and the game that you are making.

image

InternalMonoBehaviour

If we want to interact with our "data components" we have to create an InternalMonoBehaviour. This will automatically generate the reflection code to link up with another component, this happens on scene load from the ModManager component that gets added into a global scene when the game launches.

If you want to access the the "data component" the public variable m_exposed will suffice.

Note: All data must be serializable, if you want it to be transferred between the mod to the game.

Syncing Editor Data

Asset Labels

You will have to edit the SDK and go to the ModTool.cs and find the field global_asset_labels and add the strings of labels you want.

Note: This may change later in the future, just need to find the best way to embed this into the dll.

Physics Layers

Not implemented at the moment.

Tags

Not implemented at the moment.

Clone this wiki locally