As of yet, starforge hasn't released a modding api. I believe the game would benefit greatly if one was add, so I've decided to creating my own. To use it, all you have to do is add the modified version of Assembly-CSharp.dll and modCore.dll to the "StarForge\StarForge_Data\Managed" folder, and then to add mods simply take the .dll for that particular mod and drop it in the same folder. ModCore then scans the managed folder for any compatible assembly, adds the assembly, and runs functions within it.
If you want to install mods:
- download modCore.dll and the modified version of Assembly-CShar.dll from here.
- Place the two dlls into the "StarForge\StarForge_Data\Managed".
- Start the game. while on the main menu, press the backquote key (located right under escape), and varify a console pops up and shows no errors. If your game looks like the picture, than the isntallation was a success and plugins can now be added!
- To add a plugin, simply drag and drop the .dll file into the "StarForge\StarForge_Data\Managed" folder, and start the game!
- [optional] I recommended to install the PluginUtils mod. It comes with many usefull functions. It can be downloaded here
If you want to create mods:
- Download and exctract the example project.
- Examine the notes and code.
- Edit it however you like.
- Copy the plugin dll (not the Assembly-CSharp, modCore, and UnityEngine dlls) in the bin/Debug folder to the "StarForge\StarForge_Data\Managed" folder.
- Test your mod.
- That's it!
List of commandsEdit
Here is a list of all the commands that come with the core plugin and PluginUtils (<> = required,  = optional, | = or):
- /exit - Exits the game.
- /help [-p]|[command] [pluginName] - Displays the help prompt. Use the name of a plugin as the third argument if '-p' was used as the second to get a list of every command for that plugin or enter in a command name for the second argument to get a detailed description of the command. notice: you do not need to place a '/' in front of the command name for the second argument.
- /plugins - Lists installed plugins.
- /addtestcube [amount] - A test command for the mesh importer.
- /loadedlevel - Prints the current loaded level.
- /printparent <object> - Prints parent of object.
- /listchildren <object> - Lists children of object.
- /listcomponents <object> - list all components of object.
- /listgameobjects [-c] - Lists all game objects. If optional argument -c is give, the components of the object will be listed along with it and the text will be printed to the game log instead of the console.
- /listusingobjects <component> - Lists every object useing the specified component.
- /location <object> - Prints object location.
- /selector - When enabled, the item selector will print to the console any object you click on, including the objects behind it. List format: <object name>; Fatal error: Not a distance