Hostile Worlds - Invasions - Customizing
This page is for customizing the existing invasion wave profiles or creating your own.
Contents
Getting setup
You'll need a good text editor, for windows, notepad++ should do, but something that can do syntax checking would help make sure things are formatted correctly, and editor like IntelliJ IDEA can do this. If you just use notepad++ you can find out if anything went wrong reading your json file later.
The first thing you'll need to do is run the game with coroutil and hw-invasions installed, this will generate the needed files in your minecraft config folder, you can leave the game open or close it at this point, doesn't matter. If you leave it open you can live edit and reload json files, to save from having to reload large modpacks.
The main file you will be working in is mob_spawns.json, once you have run the game, you can find it in config/CoroUtil/data/templates/actions/
Resetting files or updating CoroUtil
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:
- The folder is empty, or
- It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)
If you make changes to the json files, you should be safe from having files overwritten.
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.
For updating the mods when you have custom files I would recommend backing up your json files, deleting the data folder, then let the mod generate the new files, you could then paste your files back in and see if things work out ok ingame, if not, decide on how to merge in your changes.
JSON Structure
The default invasion setup is making use of 3 files: templates/action/mob_spawns.json, templates/cmods/invasions_cmods.json, and templates/conditions/invasions_stages.json.
Only mob_spawns.json is truely required, you can get away with using only it if you don't use templates at all, the default setup uses templates though, the other 2 files contain pre-made templates referenced in mob_spawns.json to keep down on the copying and pasting.
mob_spawns.json
- Contains a list of potential spawn templates, defined in the "templates" list object
- Each spawn template can have a list of conditions required to use the spawn profile, defined in the "conditions" list object, this list is optional
- Each spawn template has a list of spawn profiles, defined in the "spawns" list object
- the spawn profile defines a lot of things
- What to spawn
- How it spawns
- How many spawn
- What cmods to give them
Have a look at mob_spawns_example_commented.json to see every piece explained.
Cmods
A Cmod is just short for the more corny term: Coro Modifier. They modify an entity in various ways, from things as simple as health to more complex things like preset AI routines.
To see an up to date list on every cmod possible, the file all_cmods.json will always be where to look for every single thing the cmod system supports, there is also lots of comments in the file to explain them as much as possible.
Conditions
A Condition is used to decide if a mob spawns profile can be used at the moment an invasion starts. You can define things like what wave number it should be used, what what difficulty, or for randomizing between various mob spawn profiles like the default spawn templates do.
To see an up to date list on every condition possible, look at all_conditions.json