Modding Tutorials/Testing mods
In this tutorial we will look into testing our mods.
What you'll learn
You'll learn several methods to test your mods.
While testing your mods you might want to spawn in weapons, activate events or damage colonists, etcetera. This can be achieved using the game's Development mode.
To use this mode, you need to activate it:
- Run RimWorld;
- Press the "Options" button in the main menu;
- Under Gameplay, the middle column, tick "Development mode".
Now that Development mode is activated, create a new world and colony and test your mod:
- Create world;
- Create a colony;
- The following icons: .. can now be found in the top-right;
- Open the debug log = Clicking this opens the debug log;
- Open the package editor = Opens the package editor, which allows you to preview and modify Sounds and Hair (Is not available for mod use as of 1.0);
- Open the view settings = Allows you to activate graphic overlays and cheats like Fast Research;
- Open debug actions menu = This menu allows you to do all sorts of things;
- Incidents allows you to spawn in raids or execute incidents;
- Actions - Misc contains a few buttons that complete research, continue the in-game tutorial, etcetera;
- Tools - General contains explosions and damaging things, snow actions, plant growth and some more advanced AI visualizations;
- Tools - Pawns holds tools which alter Pawn appearance, levels, health and jobs;
- Tools - Spawning allows you to spawn Pawns, Items in different stack sizes, Terrain and Filth;
- Autotests contains some stress tests like spawning in an entire colony in different stages, burning everything and killing lots of pawns at once.
- Open debug logging menu = Contains buttons which log parts of the game in the Debug Log;
- Open the inspector = Gives a lot more information when hovering over things;
- Toggle god mode = Toggles God mode, which allows you to build things without cost;
- Pause the game when an error is logged = Toggles exactly what it says.
Code of RimWorld is run and supported by a Mono runtime. A modified version of Mono is used by Unity that RimWorld builds on. Its repository can be found here: https://github.com/thardie/mono.
A step by step tutorial is available at https://github.com/Mhburg/AwsomeInventory/wiki/How-to-debug-RimWorld-from-Visual-Studio
Testing specific content
To test guns you'll want to enable Development mode and spawn in the guns you want to test using Debug Actions Menu -> Tools - Spawning -> Spawn weapons.
Apparel works in the same way, but you don't spawn it in via Spawn weapons.
Once again, using Development mode spawn in pawns using Tools - Spawning -> Spawn pawns.
If your mod adds new weapons, you'll want to see how often raiders spawn with them. Start a raid using the Debug Actions Menu -> Incidents.
Incident mods can be tested using Debug Actions Menu -> Incidents. To get a sense for the regular threat scale and other data like the population intent: View settings -> Write storyteller. You'll find the data output in the Debug inspector (magnifying glass).
You can toggle job logging by using Actions Menu -> Tools - Pawns -> Toggle job logging. Note that this doesn't log all JobGivers, only if they return a job. Some Jobgivers may still do something without returning a job. Looking at you, JobGiver_DropUnusedInventory, Ruiner of Sleep and Waster of Hours. Also useful: View settings -> Draw Pawn Debug (for seeing destinations/reservations).
- View settings -> Draw Duties (for seeing what each pawn does)
- View settings -> Draw Lords (for seeing what the Lord does)
- View settings -> Log Lord Toil Transitions (for reading what transitions happen)
Tips for testing
Read the README.txt.
For testing, you can start the game into a tiny (fast-loading) map with one click by running the game with the -quicktest command line parameter. For example:
or on Mac
/Users/Username/Library/Application\ Support/Steam/SteamApps/common/RimWorld/RimWorldMac.app/Contents/MacOS/RimWorldMac -quicktest
You can make a shortcut to the game which does this.
If a savefile called autostart.rws is present, the game will load that.
You can override the save data folder. This is useful, for example, if you want to install the game on a USB stick so you can plug and play it from anywhere. To do this, add this to the end of the command line used to launch the game:
So it'll look something like this:
If you don't start the path with anything, it'll be relative to the game's root folder. So you could do this, to have the game save data in a folder called SaveData in its own root folder:
Be sure the game is running with permission to modify the folder. It may not work properly if, for example, you run the game under default permissions on its own install folder.
You can combine the -savedatafolder with the -quicktest argument for a clean modding environment.
There are mods which can make testing and modding in general easier. As of 1.0, the most well-known is probably HugsLib. It offers a more elaborate quick-start function, and a configurable hotkey to restart the game. Other mods are Publisher Plus by Jaxe, TDBug by AlexTD/Uuugggg and 4M Mehni's Misc Modifications by Mehni. If that isn't enough, write your own tool! The most useful tools are those that give you info about how the game works.