RollerCoaster Tycoon World runs on Unity version 5.4.3p1. This makes it very easy to mod any part of the game. There are many tools available to extract and repack the file types used in Unity games.
- AssetStudio by RaduMC can be found on github and will help with quickly finding the files you want to edit.
- Unity Asset Bundle Extractor by DerPopo (also on github) is for extracting and repacking files after editing.
Important: Both Asset Studio AND Unity Asset Bundle Extractor require information from the Managed Folder to extract/read Monobehaviour file data correctly. The files will appear useless if you skip the next few steps.
-For Asset Studio: the first time you select a Monobehaviour file it will ask you to select a folder, choose "Managed" inside "RollerCoaster Tycoon World_Data".
-For Unity Asset Bundle Extractor: Every single time you open an asset bundle, start by clicking "Tools" on the menu bar. Select "Get Script Information". Navigate to the Managed folder, open it and then close the window two or three times. A console window will pop up for a few seconds. Once it closes you can begin "Export Dump" on whichever files you intend to edit.
When you have made your edits, be sure that you have the same pathID in the same asset bundle SELECTED before using "Import Dump". You can click "View", "go to asset", select the file id you were working on, and enter the pathID to get back to the same file you were working on previously if you close the program between edits and need to go back quickly.
Asset Bundles should always be edited in the game folder, as they are often linked to each other and require the connected data to view/edit them properly. This means you should back up your game folder or make notes on what you changed in case you break something and want to roll back the edits fast.
- dnSpy will help you make tweaks to the code. Use the edit field or method options to edit small bits at a time.
- Notepad++ is great for quickly editing Monobehaviour files.
- Various tools are available to completely unpack the game if your mod should require that.
- BepInEx x64 is available on Github. Using the UnityExplorer, UnityInectorLoader, and BepInEx OptimizeIMGUI plugins should allow you to view and test edits to the game in real time while playing. This version of Unity requires some changes to the config file to use BepInEx. Change the BepInEx.cfg lines accordingly to allow the injector to load without crashing: "Assembly = UnityEngine.dll", "Type = MonoBehaviour".
Notable values to edit are found in the following places in the asset bundle files:
In the file: resources.assets -
Monobehaviour file type-
- graphicsConstants pathID 676141 - LOD and shadow distances are here
- gamedata pathID 676139 - all stat values for rides, shops, scenery, and many values involving peep/staff function are included in this large file. Check this first when you want to make a balance patch to see if your value is included here.
- PostFxProfile pathID 676187 - post processing effects values. reduce sample count for ambient occlusion here, turn off backface reflection
- FameEvents pathID 675678 - length between Fame events
- FameLevels pathID 675679 - trigger peep numbers to spawn fame events and penalties for failure.
In the file: level0 -
- pathID 16 - unlock Mission progress here to allow playing parks in any order.
Notable values to edit in the DLL code files:
In Assembly-CSharp.dll -
- Assets.Scripts.Backend.AI.Logic.Stats > StatUtilities - Checks/calls for walkspeed and style are here. All stat modifiers get called from this section.
- Assets.Scripts.Backend.AI.Logic.Actors.Nodes.Park.NodeParkSpawn - "if (context.Actors.Peeps.Count >= 5000)" This is the value that controls maximum number of Peeps who will spawn and enter a Park. Lower it to increase framerates and reduce crashing.
- Assets.Scripts.Backend.Ai.Logic.Gamesystems - This section contains the logic Peeps use to decide which action to take next, such as riding a low intensity ride to rest if they have low energy, or buying a souvenir.
There are many other spots in the files to change to your tastes but this covers most of what went into this mod.