To install a mod on a Colony Survival server, download it from the Steam Workshop, locate the complete folder that contains modInfo.json, upload that folder under gamedata/mods/, enable the mod in the target world’s worldconfig.json, and restart the server. The mod must be compatible with the server’s game build, and some mods also require every player to install the same version. A backup and a stopped server are essential: an incompatible mod or malformed JSON can prevent a world from loading. The exact file locations are the same on most dedicated and managed installations, even when a host adds a path prefix such as /home/container/.
What do you need before installing a Colony Survival mod?
Prepare the server, the mod files, and the world configuration before changing anything. This prevents the most common failures: an incomplete upload, a mismatched internal name, or a broken world configuration.
- A compatible mod: Read the Steam Workshop page for the mod’s supported Colony Survival version and its client-side requirements.
- File access: You need SFTP access or a host file panel that can reach the server’s
gamedatadirectory. - A world backup: Make a backup before changing the mod list. EmeraldHost’s current guidance warns that a game update can make an incompatible mod stop a world from loading.
- A maintenance window: Stop the server before uploading, replacing, enabling, or removing files.
- The correct world: Mod activation is stored per world, so identify the exact folder in
gamedata/savegames/that your players use.
Keep a copy of the original files until the server has started successfully and you have tested a join. If a change fails, you can restore the backup rather than trying to repair a damaged save under pressure.
How are Colony Survival mods packaged?
A usable Colony Survival mod is a folder whose root contains a file named modInfo.json. The loader expects the file at that level; uploading only the files inside the folder, or leaving an extra wrapper folder in the path, makes the mod invisible.
On a Windows Steam installation, Workshop downloads normally appear in:
SteamLibrarysteamappsworkshopcontent366090<Workshop ID>
366090 is Colony Survival’s Steam Workshop content directory. Inside a Workshop item, inspect the folder hierarchy and use the deepest folder that directly contains modInfo.json as the mod root. The Workshop ID is not necessarily the name that belongs in the world’s configuration; the internal name value in modInfo.json is what matters when enabling it.
How do I install a mod on a Colony Survival server?
Follow this sequence for a dedicated server, a server process running on your own PC, or a managed host. The interface may differ, but the game-relative paths and JSON fields remain the same.
1. Choose a compatible Workshop mod
Open the Colony Survival section of the Steam Workshop and read the individual mod page. The official catalog includes texture packs, new items, and gameplay modifications, but each author can support different game builds and client arrangements.
Record three details before downloading:
- The game version or range listed under the mod’s compatibility information.
- Whether the mod is server-only, transferred to clients automatically, or requires a manual client installation.
- Any load-order, dependency, or configuration notes supplied by the author.
Do not assume that a recently updated Workshop item is compatible with an older server build. Compatibility is declared by the mod and should be checked against the version actually running on the server.
2. Download the files through Steam
Subscribe to the Workshop item in Steam, then launch Colony Survival once so Steam completes the download. Close the game after the files have arrived and browse to the Workshop content directory:
SteamLibrarysteamappsworkshopcontent366090<Workshop ID>
Open the downloaded item until you find modInfo.json. That containing folder is the complete mod folder you will upload. If modInfo.json is nested, do not upload the outer Workshop wrapper; use the nested folder as the mod root so the final server path places the file at the expected depth.
3. Back up the world and stop the server
Use the host’s backup control or copy the relevant savegame directory while the server is stopped. Then stop the server completely and wait for its console or panel to confirm that the process has exited.
Uploading while the process is writing a save can leave a partial file or cause the server to overwrite your change on shutdown. Stopping first also gives you a clean point from which to roll back if the mod is incompatible.
4. Upload the complete mod folder
Connect with SFTP or open the host’s file manager. Navigate to gamedata/mods/ and upload one subfolder per mod. The required result looks like this:
gamedata/mods/<ModName>/modInfo.json
Do not place modInfo.json directly in gamedata/mods/, and do not merge the contents of several mods into one directory. Preserve all subfolders and files supplied with the Workshop item. A managed host may display an absolute path such as /home/container/gamedata/mods/; that prefix is host-specific, while gamedata/mods/ is the game-relative location.
5. Enable the mod for the intended world
Open the configuration for the world you want to change:
gamedata/savegames/<worldname>/worldconfig.json
Find the ModConfigEntries array. Add an object for the mod, retaining any fields the server already wrote. A minimal entry has this form:
{"ModName":"<name from modInfo.json>","ModVersionLastKnown":"---","Enabled":true}
Use the exact value of the name field in modInfo.json, including capitalization and punctuation. If the existing entry includes a WorkshopID field, preserve it. When several entries are present, separate them with commas; do not add a trailing comma before the closing bracket or brace.
Before saving, run the file through a JSON formatter or validator. A missing comma, quote, or closing brace can prevent the entire world from loading, even when the mod files themselves are correct.
6. Start the server and verify the load
Save the file, start the server, and watch the console from the first lines of startup. A successful load should not report the mod as skipped or invalid. After startup completes, join with an administrator account and check the mod’s actual content, such as a new item, block, texture, or gameplay rule.
If the server starts but the feature is absent, stop again before changing files. Recheck the folder depth, the internal name, the compatibility declaration, and the world you edited. Testing in the console and in-game catches a configuration mistake that a simple file upload cannot reveal.
7. Tell players what they must install
Some content can be transferred to joining clients automatically. Larger or code-heavy mods may require every player to install the same mod and version locally. The mod page’s instructions take precedence; a server upload alone does not guarantee that a client has the assets or code needed to join.
Where exactly should modInfo.json go?
The file must be directly inside each mod’s own directory. For example, a correct installation has:
gamedata/mods/ExampleMod/modInfo.json
These layouts are incorrect:
gamedata/mods/modInfo.json— the file is loose in the mods directory.gamedata/mods/ExampleMod/ExampleMod/modInfo.json— an unnecessary extra folder was uploaded.gamedata/mods/ExampleMod.zip— the archive was not extracted.
When a Workshop download contains a wrapper folder, open it and move only the folder that directly contains modInfo.json. Keep the mod’s remaining directories alongside that file; deleting them can remove assets or scripts the mod needs at runtime.
How do I edit worldconfig.json safely?
Edit the configuration only after making a backup and stopping the server. Use a plain-text or JSON-aware editor rather than a word processor, and preserve the existing structure outside the ModConfigEntries array.
Adding the first entry
If the array is empty, insert the object between its brackets. The property names are case-sensitive: ModName, ModVersionLastKnown, and Enabled. The internal mod name comes from modInfo.json, not necessarily from the uploaded folder name.
Adding another entry
If an entry already exists, place a comma after the previous object before adding the next one. Keep any WorkshopID property generated by the server or included in an existing entry. Removing unfamiliar fields can make later updates or administration harder.
Validating the result
Use a JSON formatter to check matching braces, brackets, quotes, and commas. Do not use comments inside the file. If validation fails, restore the backup or compare the edited section with the original before starting the server.
What server setup can run Colony Survival mods?
The same mod-directory and world-configuration method applies to several hosting arrangements. The practical differences are who maintains uptime, where you upload files, and how much control you have over the operating system.
| Setup | How it runs | Mod installation considerations |
|---|---|---|
| Client co-op | A player hosts from the game client. | Use the host player’s local Workshop files and follow the mod’s client requirements. Persistent availability depends on that player being online. |
| Server process on a PC | A separate server process stays running on a computer. | Upload or copy the mod folder into the server’s gamedata/mods/, edit the active world’s worldconfig.json, and restart the process. |
| Headless VPS, NAS, or Docker deployment | A dedicated process runs without the graphical game client. | Mount the persistent server directory, place the mod under its game-relative gamedata/mods/, and edit the savegame configuration in the mounted volume. |
| Managed game host | The provider supplies a panel, backups, and start/stop controls. | Use SFTP or the file panel. Absolute paths may begin with /home/container/, but the required relative directories are unchanged. |
The official Pipliz hosting notes identify SteamCMD app ID 748090 for the dedicated server and describe a Docker Compose deployment using the published dedicated-server image. These installation choices affect how the server is installed and kept online, not the location of a mod once the server files are available.
How can I confirm that a mod loaded?
Check the startup console first, then test the feature in the world. A reliable verification pass has three parts:
- Look for a successful mod-load message and make sure the console does not say the mod was skipped, incompatible, or missing.
- Confirm that the server started the exact world whose
worldconfig.jsonyou edited. - Join and exercise the feature the mod adds. For a content mod, inspect the new item or block; for a gameplay mod, test the documented behavior.
If the log is quiet, inspect the path rather than assuming silence means success. A folder at the wrong depth will not be discovered, while an incorrect internal name can leave a correctly uploaded mod disabled.
Why is my uploaded mod not loading?
Most failures fall into a small number of checks. Stop the server before correcting files, and make a fresh backup if the world has changed since the last known-good state.
| Symptom | Likely cause | What to check or fix |
|---|---|---|
| The mod never appears in startup output. | modInfo.json is missing or too deeply nested. |
Open the uploaded directory and confirm the file is directly inside the mod folder under gamedata/mods/. |
| The mod is present but skipped. | The configured name or compatibility range is wrong. | Compare ModName character for character with the name field in modInfo.json, then compare compatibleversions with the running game build. |
| The world fails to load after the edit. | worldconfig.json contains invalid JSON. |
Restore the backup, validate commas, braces, brackets, and quotes, then reapply the entry carefully. |
| A new world does not have the mod. | The entry was added to a different savegame. | Edit that world’s own gamedata/savegames/<worldname>/worldconfig.json; activation is not a global server switch. |
| Players cannot join or cannot see the content. | The mod has client-side requirements or the versions differ. | Read the mod page, install the required client files, and make server and client versions match when the author requires it. |
An old tutorial mentions modstate.json. |
The instructions are obsolete. | Use worldconfig.json and its ModConfigEntries array instead, as specified in current EmeraldHost guidance. |
How should I update or remove a mod?
Treat an update like a new installation. Back up the world, stop the server, replace the complete mod folder, and verify that the new files support the server’s game build. If the mod’s internal name or configuration requirements changed, update the corresponding entry in worldconfig.json rather than assuming the old entry will still work.
To remove a mod safely, stop the server first and retain a backup of both the savegame and the mod folder. Disable or remove its entry from the relevant world’s ModConfigEntries, then remove the mod directory only after confirming that the world does not depend on its content. Removing a mod that added blocks, items, or entities can leave a save in a state the author does not support, so read the mod’s removal instructions before proceeding.
Can different worlds use different mod lists?
Yes. Colony Survival stores activation in each world’s worldconfig.json, so one save can have an entry enabled while another does not. When switching worlds, verify that the required mod folders remain on the server and that the selected world’s configuration contains the intended entries.
What should I do when the game updates?
Pause automatic mod changes until you have checked each mod’s supported version. Keep a restorable backup, start with a copy or less important world when possible, and read the startup log for compatibility errors before allowing players back in. A game update can make a previously working mod prevent the world from loading.
Does the uploaded folder name have to match the mod name?
The loader’s important identity is the name value in modInfo.json, which must match ModName in the world configuration. A clear folder name helps administration, but changing the folder label alone does not correct an internal-name mismatch.
Is a managed Colony Survival server easier for mod installation?
A managed host can simplify backups, persistent uptime, SFTP access, and start/stop controls, but it does not remove the game’s file and configuration requirements. You still need to upload the complete folder, edit the correct world’s JSON, check compatibility, and communicate client-side requirements. The main convenience is operational: the panel reduces the work around the installation rather than changing how Colony Survival discovers mods.
Frequently Asked Questions
Can I enable a mod for only one of several worlds?
Yes. Add the entry only to the save’s own worldconfig.json; another world on the same server can have a different set of enabled entries.
What does the compatibleversions field in modInfo.json do?
It declares which Colony Survival builds the mod author supports. Comparing it with the server’s running build helps explain why a correctly placed mod is skipped.
Do I need to leave Steam running on the server?
No Steam client session is required for the file layout itself. The server needs the complete mod directory, while Steam is used on a local machine to obtain Workshop files; dedicated installations commonly use SteamCMD with app ID 748090.
Why does a mod work for the host but not for another player?
The mod may require client-side files or an identical version on every client. Check the mod author’s joining instructions instead of assuming that server-side files will cover every player.
Can I keep the old mod folder after installing an update?
Keep it outside the active gamedata/mods/ directory as a rollback copy, not as a second active version. Two copies can create ambiguity and make it harder to identify which files the server is loading.