Mod Kit
Make mods for Seeds & Circuits in Unity: write code, build prefabs, models and items in the editor, press Build.
Make mods for Seeds & Circuits in Unity: write code, build prefabs, models and items in the editor, press Build.
Install
- Install Unity 6000.6 (the version the game uses) and make a new project (Universal 3D template, or any 3D one).
- Download the Mod Kit from the website and unzip it somewhere it can stay. Then Window ▸ Package Manager ▸ + ▸
Install package from disk... ▸ pick the kit folder's
package.json. (Or add"com.seedsandcircuits.modkit": "file:<path to the kit folder>"toPackages/manifest.json.) The game's packages (Netcode, URP, Input System...) come along at the game's versions. - The kit sets the project up once (linear colour, URP, .NET Standard 2.1); Seeds and Circuits ▸ Set Up Project runs it again.
Make a mod
- Seeds and Circuits ▸ New Mod...: name it. You get
Assets/<Name>/with:<Name>.asset: the mod (id, name, side, items, recipes). Select it to build.Code/: an assembly definition already pointing at the game's API, and a starterModclass.Content/: prefabs, models, textures, materials, sounds. Everything here goes into the mod.
- Write code in
Code/(seeDocumentation~/MAKING_MODS.mdandMODS.md). - Items and recipes: Create ▸ Seeds and Circuits ▸ Mod Item / Mod Recipe, then add them to the mod's lists. Tick
only the fields you change;
copystarts from a game item. Game ids:Documentation~/GameReference.md. - Select the mod asset ▸ Build (or Build and Start Game). It goes straight into the game's Mods folder.
What's in the kit
Plugins/ | The game's API (the game's assemblies with the code taken out: names and types only). Mod code compiles against it; the game supplies the real code |
Shaders/ | Stand-ins for the game's shaders. Give your materials these (e.g. SeedsAndCircuits/StylizedLit) to look like the game; the game puts its real shader on them when the mod loads. URP shaders work too |
Editor/ | Build, New Mod, Mod Item / Recipe assets, Set Up Project |
Documentation~/ | The modding guide, the API reference and the game's item ids, stations and shaders |
Networked objects
Because Unity compiles your code, prefabs can carry your own NetworkBehaviours with RPCs and NetworkVariables.
Register a prefab in OnLoad with RegisterNetworkPrefab("name", LoadContent<GameObject>("Assets/.../X.prefab"))
(on every machine, so the mod's side must be both) and spawn it on the host with SpawnNetworkPrefab.
Rules
- Same Unity version as the game, or bundles won't load.
- Don't use
UnityEditorin mod code (it isn't in the game). - Don't put
Plugins/DLLs in your mod: the game has the real ones.