<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://coros.us/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Corosus</id>
		<title>Coros.us Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://coros.us/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Corosus"/>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Special:Contributions/Corosus"/>
		<updated>2026-08-05T05:01:58Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=70</id>
		<title>Zombie Players</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=70"/>
				<updated>2019-02-25T03:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Make Zombie Players spawn naturally ==&lt;br /&gt;
&lt;br /&gt;
Open config/Zombie_Players.cfg and edit Spawning_spawnZombiePlayersNaturally to true.&lt;br /&gt;
* You can also add more players names to spawn as zombie players by adding to the list for Spawning_playerNamesToUse&lt;br /&gt;
&lt;br /&gt;
== Calming your Zombie Player ==&lt;br /&gt;
&lt;br /&gt;
Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.&lt;br /&gt;
&lt;br /&gt;
With some '''raw meat''', right click them or toss it on the ground for them to pickup, this will satisfy their hunger. You'll find they no longer try to bite you, for now... Some have observed they will remain calm for a '''few days'''. Perhaps they will stay calm longer if you feed them some more.&lt;br /&gt;
&lt;br /&gt;
If your zombie starts getting hungry and cranky, he'll start growling more and giving off anger particles, better '''feed him before he turns on you'''.&lt;br /&gt;
&lt;br /&gt;
You'll find they can be useful, and will '''attack other monsters''' to help protect you.&lt;br /&gt;
&lt;br /&gt;
Toss them some '''items and armor''' to help them survive better, this will also '''prevent them from despawning'''.&lt;br /&gt;
&lt;br /&gt;
They will regain some health on hit of a monster, and more on kill of a monster. They also heal very very slowly over time.&lt;br /&gt;
&lt;br /&gt;
They will avoid picking fights with mobs if their health is low. You'll know if their health is low by the '''redstone particles''' above their head constantly. '''Tossing them more meat will heal them'''.&lt;br /&gt;
&lt;br /&gt;
If the Zombie Player spawned from your death, they will hang around your spawn, but other naturally spawned ones will just wander.&lt;br /&gt;
&lt;br /&gt;
If you want to keep them in a general area, try '''right clicking them with a bed''', you'll see hearts appear, that means they will remain in that area as their home within '''16ish blocks'''. Another right click will extend it to '''32 blocks''', again for '''64 blocks''', then another click will '''remove their home area''' which shows as colored smoke, from there the cycle repeats with hearts again.&lt;br /&gt;
&lt;br /&gt;
Zombie too noisy? Right click them with an '''apple''' (because reasons), that should keep them quiet, do it again to make them noisy again.&lt;br /&gt;
&lt;br /&gt;
If they picked up an item you want back, '''right click them with rotten flesh''' and they will drop everything for you, be quick to grab it.&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
* Calm and heal with raw meat&lt;br /&gt;
* Calm zombies will attack other monsters if healthy&lt;br /&gt;
* Toss weapon and armor to equip them&lt;br /&gt;
* Right click with bed to set home, cycle is: home 16 range, home 32 range, home 64 range, remove home&lt;br /&gt;
* Right click with apple to silence growls.&lt;br /&gt;
* Right click with rotten flesh to force them to drop all items.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=69</id>
		<title>Zombie Players</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=69"/>
				<updated>2019-02-25T02:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calming your Zombie Player ==&lt;br /&gt;
&lt;br /&gt;
Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.&lt;br /&gt;
&lt;br /&gt;
With some '''raw meat''', right click them or toss it on the ground for them to pickup, this will satisfy their hunger. You'll find they no longer try to bite you, for now... Some have observed they will remain calm for a '''few days'''. Perhaps they will stay calm longer if you feed them some more.&lt;br /&gt;
&lt;br /&gt;
If your zombie starts getting hungry and cranky, he'll start growling more and giving off anger particles, better '''feed him before he turns on you'''.&lt;br /&gt;
&lt;br /&gt;
You'll find they can be useful, and will '''attack other monsters''' to help protect you.&lt;br /&gt;
&lt;br /&gt;
Toss them some '''items and armor''' to help them survive better, this will also '''prevent them from despawning'''.&lt;br /&gt;
&lt;br /&gt;
They will regain some health on hit of a monster, and more on kill of a monster. They also heal very very slowly over time.&lt;br /&gt;
&lt;br /&gt;
They will avoid picking fights with mobs if their health is low. You'll know if their health is low by the '''redstone particles''' above their head constantly. '''Tossing them more meat will heal them'''.&lt;br /&gt;
&lt;br /&gt;
If the Zombie Player spawned from your death, they will hang around your spawn, but other naturally spawned ones will just wander.&lt;br /&gt;
&lt;br /&gt;
If you want to keep them in a general area, try '''right clicking them with a bed''', you'll see hearts appear, that means they will remain in that area as their home within '''16ish blocks'''. Another right click will extend it to '''32 blocks''', again for '''64 blocks''', then another click will '''remove their home area''' which shows as colored smoke, from there the cycle repeats with hearts again.&lt;br /&gt;
&lt;br /&gt;
Zombie too noisy? Right click them with an '''apple''' (because reasons), that should keep them quiet, do it again to make them noisy again.&lt;br /&gt;
&lt;br /&gt;
If they picked up an item you want back, '''right click them with rotten flesh''' and they will drop everything for you, be quick to grab it.&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
* Calm and heal with raw meat&lt;br /&gt;
* Calm zombies will attack other monsters if healthy&lt;br /&gt;
* Toss weapon and armor to equip them&lt;br /&gt;
* Right click with bed to set home, cycle is: home 16 range, home 32 range, home 64 range, remove home&lt;br /&gt;
* Right click with apple to silence growls.&lt;br /&gt;
* Right click with rotten flesh to force them to drop all items.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=68</id>
		<title>Zombie Players</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=68"/>
				<updated>2019-02-25T02:21:00Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calming your Zombie Player ==&lt;br /&gt;
&lt;br /&gt;
Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.&lt;br /&gt;
&lt;br /&gt;
With some '''raw meat''', right click them or toss it on the ground for them to pickup, this will satisfy their hunger. You'll find they no longer try to bite you, for now... Some have observed they will remain calm for a '''few days'''. Perhaps they will stay calm longer if you feed them some more.&lt;br /&gt;
&lt;br /&gt;
If your zombie starts getting hungry and cranky, he'll start growling more and giving off anger particles, better '''feed him before he turns on you'''.&lt;br /&gt;
&lt;br /&gt;
You'll find they can be useful, and will '''attack other monsters''' to help protect you.&lt;br /&gt;
&lt;br /&gt;
Toss them some '''items and armor''' to help them survive better, this will also '''prevent them from despawning'''.&lt;br /&gt;
&lt;br /&gt;
They will regain some health on hit of a monster, and more on kill of a monster. They also heal very very slowly over time.&lt;br /&gt;
&lt;br /&gt;
They will avoid picking fights with mobs if their health is low. You'll know if their health is low by the '''redstone particles''' above their head constantly. '''Tossing them more meat will heal them'''.&lt;br /&gt;
&lt;br /&gt;
If the Zombie Player spawned from your death, they will hang around your spawn, but other naturally spawned ones will just wander.&lt;br /&gt;
&lt;br /&gt;
If you want to keep them in a general area, try '''right clicking them with a bed''', you'll see hearts appear, that means they will remain in that area as their home within '''16ish blocks'''. Another right click will extend it to '''32 blocks''', again for '''64 blocks''', then another click will '''remove their home area''' which shows as colored smoke, from there the cycle repeats with hearts again.&lt;br /&gt;
&lt;br /&gt;
Zombie too noisy? Right click them with some '''rotten flesh''' (because reasons), that should keep them quiet, do it again to make them noisy again.&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
* Calm and heal with raw meat&lt;br /&gt;
* Calm zombies will attack other monsters if healthy&lt;br /&gt;
* Toss weapon and armor to equip them&lt;br /&gt;
* Right click with bed to set home, cycle is: home 16 range, home 32 range, home 64 range, remove home&lt;br /&gt;
* Right click with rotten flesh to silence growls.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=67</id>
		<title>Zombie Players</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=67"/>
				<updated>2019-02-25T02:19:33Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calming your Zombie Player ==&lt;br /&gt;
&lt;br /&gt;
Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.&lt;br /&gt;
&lt;br /&gt;
With some '''raw meat''', right click them or toss it on the ground for them to pickup, this will satisfy their hunger. You'll find they no longer try to bite you, for now... Some have observed they will remain calm for a '''few days'''. Perhaps they will stay calm longer if you feed them some more.&lt;br /&gt;
&lt;br /&gt;
If your zombie starts getting hungry and cranky, he'll start growling more and giving off anger particles, better '''feed him before he turns on you'''.&lt;br /&gt;
&lt;br /&gt;
You'll find they can be useful, and will '''attack other monsters''' to help protect you.&lt;br /&gt;
&lt;br /&gt;
Toss them some '''items and armor''' to help them survive better.&lt;br /&gt;
&lt;br /&gt;
They will regain some health on hit of a monster, and more on kill of a monster. They also heal very very slowly over time.&lt;br /&gt;
&lt;br /&gt;
They will avoid picking fights with mobs if their health is low. You'll know if their health is low by the '''redstone particles''' above their head constantly. '''Tossing them more meat will heal them'''.&lt;br /&gt;
&lt;br /&gt;
If the Zombie Player spawned from your death, they will hang around your spawn, but other naturally spawned ones will just wander.&lt;br /&gt;
&lt;br /&gt;
If you want to keep them in a general area, try '''right clicking them with a bed''', you'll see hearts appear, that means they will remain in that area as their home within '''16ish blocks'''. Another right click will extend it to '''32 blocks''', again for '''64 blocks''', then another click will '''remove their home area''' which shows as colored smoke, from there the cycle repeats with hearts again.&lt;br /&gt;
&lt;br /&gt;
Zombie too noisy? Right click them with some '''rotten flesh''' (because reasons), that should keep them quiet, do it again to make them noisy again.&lt;br /&gt;
&lt;br /&gt;
=== Summary ===&lt;br /&gt;
&lt;br /&gt;
* Calm and heal with raw meat&lt;br /&gt;
* Toss weapon and armor to equip them&lt;br /&gt;
* Right click with bed to set home, cycle is: home 16 range, home 32 range, home 64 range, remove home&lt;br /&gt;
* Right click with rotten flesh to silence growls.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=66</id>
		<title>Zombie Players</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=66"/>
				<updated>2019-02-25T02:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calming your Zombie Player ==&lt;br /&gt;
&lt;br /&gt;
Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.&lt;br /&gt;
&lt;br /&gt;
With some '''raw meat''', right click them or toss it on the ground for them to pickup, this will satisfy their hunger. You'll find they no longer try to bite you, for now... Some have observed they will remain calm for a '''few days'''. Perhaps they will stay calm longer if you feed them some more.&lt;br /&gt;
&lt;br /&gt;
If your zombie starts getting hungry and cranky, he'll start growling more and giving off anger particles, better feed him before he turns on you.&lt;br /&gt;
&lt;br /&gt;
You'll find they can be useful, and will attack other monsters to help protect you.&lt;br /&gt;
&lt;br /&gt;
Toss them some items and armor to help them survive better.&lt;br /&gt;
&lt;br /&gt;
They will regain some health on hit of a monster, and more on kill of a monster. They also heal very very slowly over time.&lt;br /&gt;
&lt;br /&gt;
They will avoid picking fights with mobs if their health is low. You'll know if their health is low by the redstone particles above their head constantly. Tossing them more meat will heal them.&lt;br /&gt;
&lt;br /&gt;
If the Zombie Player spawned from your death, they will hang around your spawn, but other naturally spawned ones will just wander.&lt;br /&gt;
&lt;br /&gt;
If you want to keep them in a general area, try right clicking them with a bed, you'll see hearts appear, that means they will remain in that area as their home within 16ish blocks. Another right click will extend it to 32 blocks, again for 64 blocks, then another click will remove their home area which shows as colored smoke, from there the cycle repeats with hearts again.&lt;br /&gt;
&lt;br /&gt;
Zombie too noisy? Right click them with some rotten flesh (because reasons), that should keep them quiet, do it again to make them noisy again.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=65</id>
		<title>Zombie Players</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Zombie_Players&amp;diff=65"/>
				<updated>2019-02-25T02:08:35Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: Created page with &amp;quot;== Calming your Zombie Player ==  Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.  With some '''raw meat''', right click t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Calming your Zombie Player ==&lt;br /&gt;
&lt;br /&gt;
Zombie Players are just hungry, and you look delicious, but there are other things they can feed on.&lt;br /&gt;
&lt;br /&gt;
With some '''raw meat''', right click them or toss it on the ground for them to pickup, this will satisfy their hunger. You'll find they no longer try to bite you, for now... Some have observed they will remain calm for a '''few days'''. Perhaps they will stay calm longer if you feed them some more.&lt;br /&gt;
&lt;br /&gt;
You'll find they can be useful, and will attack other monsters to help protect you.&lt;br /&gt;
&lt;br /&gt;
If the Zombie Player spawned from your death, they will hang around your spawn, but other naturally spawned ones will just wander.&lt;br /&gt;
&lt;br /&gt;
If you want to keep them in a general area, try right clicking them with a bed,&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=64</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=64"/>
				<updated>2019-02-03T02:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave templates or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* TIP: use https://jsonlint.com/ to make sure your json syntax is correct.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
* TIP: open config/forge.cfg and set removeErroringEntities to true to save yourself from having to restart every entity crash while testing for ones that will work, be sure to read forges warning about using that setting in their config&lt;br /&gt;
* If you use this setting, the entity should just dissapear if it has an issue, which also means you can't use it in an invasion.&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Need to fake a players playtime so an invasion will actually trigger now&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Only need to run once per world&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;br /&gt;
&lt;br /&gt;
== Mob Grinders ==&lt;br /&gt;
&lt;br /&gt;
Mob grinder blocks or features from other mods have the potential to cause very high dps values which will throw the difficulty of an area off.&lt;br /&gt;
A way to blacklist specific damage sources is in the works, but for now, if you think you might have this issue, you can limit the dps rating to a reasonable max:&lt;br /&gt;
&lt;br /&gt;
* In config/CoroUtil/General.cfg, Set enableAdvancedDeveloperConfigFiles to true&lt;br /&gt;
* Restart game&lt;br /&gt;
* In config/CoroUtil/Advanced.cfg, set difficulty_MaxDPSRatingAllowed to something lower than its default of 5, 1 is the theoretical vanilla max, so something like 2 might do.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=63</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=63"/>
				<updated>2019-01-28T03:10:54Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave templates or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* TIP: use https://jsonlint.com/ to make sure your json syntax is correct.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
* TIP: open config/forge.cfg and set removeErroringEntities to true to save yourself from having to restart every entity crash while testing for ones that will work, be sure to read forges warning about using that setting in their config&lt;br /&gt;
* If you use this setting, the entity should just dissapear if it has an issue, which also means you can't use it in an invasion.&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Need to fake a players playtime so an invasion will actually trigger now&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Only need to run once per world&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=62</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=62"/>
				<updated>2019-01-27T04:49:13Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave templates or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
* TIP: open config/forge.cfg and set removeErroringEntities to true to save yourself from having to restart every entity crash while testing for ones that will work, be sure to read forges warning about using that setting in their config&lt;br /&gt;
* If you use this setting, the entity should just dissapear if it has an issue, which also means you can't use it in an invasion.&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Need to fake a players playtime so an invasion will actually trigger now&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Only need to run once per world&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Main_Page&amp;diff=61</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Main_Page&amp;diff=61"/>
				<updated>2019-01-27T04:33:56Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_Main_Page Weather2]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
[https://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page Zombie Awareness]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions Hostile Worlds Invasion Main Info]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing Customizing Hostile Worlds Invasions]&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=60</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=60"/>
				<updated>2019-01-27T04:33:27Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/zombieawareness Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=ZombieAwareness_FAQ Zombie Awareness FAQ]&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage (configurable)&lt;br /&gt;
** Shows blood splatter on the ground&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
* Buttons, Levers, Pressure plates being used&lt;br /&gt;
* Pistons activating (can be heard from far, configurable)&lt;br /&gt;
* Zombies growling (configurable)&lt;br /&gt;
* Being near light sources they can see (configurable)&lt;br /&gt;
&lt;br /&gt;
You can enable or disable sound based triggers as a whole in Features.cfg&lt;br /&gt;
&lt;br /&gt;
If you want to see what is making sound senses ingame, turn on client_debugSensesVisual in ClientConfig.cfg&lt;br /&gt;
&lt;br /&gt;
You can decide what mobs are enhanced with all this extra awareness by editing MobLlists.cfg&lt;br /&gt;
* As noted in the cfg file, won't work for all mobs if they arent using ground pathfinding or if a modded mob does its own special ways of ground pathfinding.&lt;br /&gt;
&lt;br /&gt;
=== Other small features ===&lt;br /&gt;
&lt;br /&gt;
* Mobs make investigation and agression noises when they are pathing to you or see you&lt;br /&gt;
* Random speed boost to mobs on spawn (configurable via General.cfg)&lt;br /&gt;
* Spawns extra clusters of mobs at night from an existing zombie if its far enough away from you, (configurable via maxZombiesNight in Spawning.cfg)&lt;br /&gt;
* Turns off baby zombies and random chance of re-enforcement feature (configurable via Features.cfg)&lt;br /&gt;
&lt;br /&gt;
== Extra features default off in config ==&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning on surface&lt;br /&gt;
** Turn on with extraSpawningSurface in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning in caves&lt;br /&gt;
** Turn on with extraSpawningCave in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Mob Omniscience&lt;br /&gt;
** Turn on in General.cfg&lt;br /&gt;
&lt;br /&gt;
* Mobs See through walls&lt;br /&gt;
** Turn on in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions&amp;diff=59</id>
		<title>Hostile Worlds - Invasions</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions&amp;diff=59"/>
				<updated>2019-01-27T04:30:34Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to customize the mod, go here: [http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing Customizing Hostile Worlds Invasions]&lt;br /&gt;
&lt;br /&gt;
Otherwise not much info here yet, go here for the mods showcase [https://coros.us/mods/hostileworldsinvasions https://coros.us/mods/hostileworldsinvasions]&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions&amp;diff=58</id>
		<title>Hostile Worlds - Invasions</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions&amp;diff=58"/>
				<updated>2019-01-27T04:30:15Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: Created page with &amp;quot;If you want to customize the mod, go here: [http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing Customizing Hostile Worlds Invasions]  Otherwise no m...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to customize the mod, go here: [http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing Customizing Hostile Worlds Invasions]&lt;br /&gt;
&lt;br /&gt;
Otherwise no much info here yet, go here for the mods showcase [https://coros.us/mods/hostileworldsinvasions https://coros.us/mods/hostileworldsinvasions]&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Main_Page&amp;diff=57</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Main_Page&amp;diff=57"/>
				<updated>2019-01-27T04:26:30Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_Main_Page Weather2]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions Hostile Worlds Invasion Main Info]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing Customizing Hostile Worlds Invasions]&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Main_Page&amp;diff=56</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Main_Page&amp;diff=56"/>
				<updated>2019-01-27T04:24:34Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:o&lt;br /&gt;
&lt;br /&gt;
== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_Main_Page]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing]&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=55</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=55"/>
				<updated>2019-01-27T01:49:25Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
* TIP: open config/forge.cfg and set removeErroringEntities to true to save yourself from having to restart every entity crash while testing for ones that will work, be sure to read forges warning about using that setting in their config&lt;br /&gt;
* If you use this setting, the entity should just dissapear if it has an issue, which also means you can't use it in an invasion.&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Need to fake a players playtime so an invasion will actually trigger now&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Only need to run once per world&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=54</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=54"/>
				<updated>2019-01-27T00:37:41Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
** TIP: open config/forge.cfg and set removeErroringEntities to true to save yourself from having to restart every entity crash while testing for ones that will work, be sure to read forges warning about using that setting in their config&lt;br /&gt;
** If you use this setting, the entity should just dissapear if it has an issue, which also means you can't use it in an invasion.&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Need to fake a players playtime so an invasion will actually trigger now&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Only need to run once per world&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=53</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=53"/>
				<updated>2019-01-25T18:46:11Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Need to fake a players playtime so an invasion will actually trigger now&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* /hw_invasions setPlayerTime 62000&lt;br /&gt;
** Only need to run once per world&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=52</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=52"/>
				<updated>2019-01-24T03:01:04Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
If everything went well and you are satisfied, you can stop the invasion with:&lt;br /&gt;
* /time set 0&lt;br /&gt;
&lt;br /&gt;
And kill off everything spawned with&lt;br /&gt;
* /kill @e[type=!Player]&lt;br /&gt;
&lt;br /&gt;
And you're set! Start playing around and copying and pasting bits around and changing them up and retesting.&lt;br /&gt;
&lt;br /&gt;
I tend to use this workflow for fastest testing:&lt;br /&gt;
* Edit json and save&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* /time set 0&lt;br /&gt;
* /time set 62000&lt;br /&gt;
* Find mobs, make sure setup how you want&lt;br /&gt;
* Repeat all steps&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=51</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=51"/>
				<updated>2019-01-24T02:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=50</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=50"/>
				<updated>2019-01-24T02:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printentities&lt;br /&gt;
&lt;br /&gt;
Lets use minecraft:husk for a simple example.&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon minecraft:husk&lt;br /&gt;
* OR /coroutil spawn minecraft:husk&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, its probably a modded mob and you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;minecraft:husk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
If you want, you can run:&lt;br /&gt;
* /coroutil testProfile invasion_stage_1&lt;br /&gt;
to see it print out the data for that template, you should see minecraft:husk used in there somewhere if it loaded in correctly.&lt;br /&gt;
&lt;br /&gt;
To see if your mob spawns with the setup ok, you can run: &lt;br /&gt;
* /coroutil testSpawn invasion_stage_1&lt;br /&gt;
you might have to run it a few times, as it will randomly choose a mob, so it will either spawn a zombie miner or a husk soldier.&lt;br /&gt;
&lt;br /&gt;
It should eventually spawn the husk soldier for you.&lt;br /&gt;
&lt;br /&gt;
Everything should work at this point for a real invasion if all the above worked correctly.&lt;br /&gt;
&lt;br /&gt;
To test an invasion, we can just set the time to when one should start.&lt;br /&gt;
* Make sure you are in the overworld, on the surface for best results (caves will work but will be harder to find them)&lt;br /&gt;
* /time set 62000&lt;br /&gt;
** default config has first invasion on the 3rd night, that time sets it to the 3rd night, adjust the time value as needed for your own config&lt;br /&gt;
** Since we modified the first invasion that is designed to be the only one run as the first invasion, your mob should be in this one.&lt;br /&gt;
** If you want to test a specific invasion mob spawn template see section &amp;quot;Force specific mob spawn template&amp;quot; in Testing Tips then do the time command above.&lt;br /&gt;
&lt;br /&gt;
You should get the invasion start message, look around for your husks, they should be there somewhere.&lt;br /&gt;
&lt;br /&gt;
Switch to survival mode to make sure they are targetting you and pathfinding to you, they wont in creative.&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn template for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn template&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=49</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=49"/>
				<updated>2019-01-24T02:39:48Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printentities&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon zombie_players:zombie_player&lt;br /&gt;
* OR /coroutil spawn zombie_players:zombie_player&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;zombie_players:zombie_player&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect.&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template and print out the results ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional, but if you want to specify &amp;lt;WAVE NUMBER&amp;gt; you must specify &amp;lt;DIFFICULTY&amp;gt; so it knows which is which&lt;br /&gt;
* eg: /hw_invasions testInvasion 0.5 11&lt;br /&gt;
** Choose an invasion for difficulty 0.5 and wave count of 11&lt;br /&gt;
&lt;br /&gt;
Will print out the invasion mob spawn profile it chose.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn profile for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn profile&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=48</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=48"/>
				<updated>2019-01-24T02:37:02Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
First, do the &amp;quot;Enable helpfull debug&amp;quot; step in Testing Tips section below&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printentities&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon zombie_players:zombie_player&lt;br /&gt;
* OR /coroutil spawn zombie_players:zombie_player&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
You can keep the game open and paused, we should never need to close it.&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;zombie_players:zombie_player&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save the file, then in minecraft, run:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
* Make sure everything went ok in the console, check for json parse errors and fix anything needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Test spawn a random mob from a specific mob spawn template ===&lt;br /&gt;
* /coroutil testSpawn &amp;lt;TEMPLATENAME&amp;gt;&lt;br /&gt;
* eg: /coroutil testSpawn invasion_stage_1&lt;br /&gt;
&lt;br /&gt;
=== Test how your mob spawn template looks parsed ingame ===&lt;br /&gt;
* /coroutil testProfile &amp;lt;TEMPLATENAME&amp;gt; &amp;lt;DIFFICULTY&amp;gt;&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1&lt;br /&gt;
** test with difficulty in current position for player&lt;br /&gt;
* eg: /coroutil testProfile invasion_stage_1 0.5&lt;br /&gt;
** test with specific difficulty&lt;br /&gt;
&lt;br /&gt;
=== Simulate the choosing of a mob spawn template ===&lt;br /&gt;
* /hw_invasions testInvasion &amp;lt;DIFFICULTY&amp;gt; &amp;lt;WAVE NUMBER&amp;gt;&lt;br /&gt;
* both &amp;lt;&amp;gt; are optional&lt;br /&gt;
&lt;br /&gt;
Will print out everything the game knows about your json setup, good for making sure everything loaded in as you expect&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn profile for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn profile&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=47</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=47"/>
				<updated>2019-01-24T02:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Workflow of making and testing invasions ==&lt;br /&gt;
&lt;br /&gt;
If you want to find a new mob to use from a mod:&lt;br /&gt;
* /coroutil printentities&lt;br /&gt;
&lt;br /&gt;
Test a mob you found from the entities list:&lt;br /&gt;
* /summon zombie_players:zombie_player&lt;br /&gt;
* OR /coroutil spawn zombie_players:zombie_player&lt;br /&gt;
&lt;br /&gt;
Didn't crash? great! If it did crash, you can't use that mob :(&lt;br /&gt;
&lt;br /&gt;
Open up mob_spawns.json in text editor. I will edit the first mob spawn template to use this mob&lt;br /&gt;
The first spawn profile is the zombie miner, I will leave that one alone and go down to the second mob spawn profile, that one is the zombie soldier.&lt;br /&gt;
In the &amp;quot;entities&amp;quot; list there should be 1 entry, &amp;quot;minecraft:zombie&amp;quot;, lets change that to &amp;quot;zombie_players:zombie_player&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Force specific mob spawn profile for invasion to be used ===&lt;br /&gt;
* in config/CoroUtil/General.cfg, set mobSpawnsWaveToForceUse to the name of your mob spawn profile&lt;br /&gt;
* eg: invasion_stage_1 or invasion_stage_3_opt_10_illagers&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=46</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=46"/>
				<updated>2019-01-24T02:05:17Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
If you want to tweak the default way the difficulty is setup, pop open config/CoroUtil/DynamicDifficulty.cfg&lt;br /&gt;
&lt;br /&gt;
Play with the configs prefixed with &amp;quot;difficulty_&amp;quot; or &amp;quot;weight&amp;quot; to change how much influence each type has on the average difficulty.&lt;br /&gt;
&lt;br /&gt;
To test this live in game, you can instead use the /config command to change the values, then run /coroutil difficulty to see the reflected result for your player.&lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Print out a list of usable entities for invasions ===&lt;br /&gt;
* /coroutil printEntities&lt;br /&gt;
&lt;br /&gt;
The printed entities SHOULD work, especially vanilla ones, but any modded entities you should always test, they could either not work, or worse, crash the game. A surprising amount of modded mobs like to crash the game if they aren't spawned in their own special way, that I cannot support without specifically accounting for them.&lt;br /&gt;
&lt;br /&gt;
Entities that work best are ones that walk on the ground, flying entities still need better support, and may never work because vanilla minecraft doesn't have a good standard for flying entities that modded entities could use, so every mod out there probably implemented their own way.&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;br /&gt;
&lt;br /&gt;
Probably not needed, but I've had issues with some situations causing super high DPS resulting in the difficulty being too high, mainly from mods. If you run into issues, use this, or disable DPS in the difficulty calculation, see Dynamic Local Difficulty wiki section for that.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=45</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=45"/>
				<updated>2019-01-24T01:40:37Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
== Dynamic Local Difficulty ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: &lt;br /&gt;
&lt;br /&gt;
== Testing Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Enable helpfull debug output to diagnose potential problems in json === &lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Live edit normal config options === &lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
=== Live reload data from the json files ingame === &lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
=== See difficulty of area === &lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
=== Reset dps calculations for 50 chunk area around you === &lt;br /&gt;
* /coroutil resetDPS&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=44</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=44"/>
				<updated>2019-01-24T01:35:51Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Local Difficulty ===&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: &lt;br /&gt;
&lt;br /&gt;
=== Testing Tips ===&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
Enable helpfull debug output to diagnose potential problems in json:&lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Live edit normal config options:&lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Live reload data from the json files ingame:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See difficulty of area:&lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reset dps calculations for 50 chunk area around you:&lt;br /&gt;
* /coroutil resetDPS&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=43</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=43"/>
				<updated>2019-01-24T01:35:18Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Local Difficulty ===&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: &lt;br /&gt;
&lt;br /&gt;
=== Testing Tips ===&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
Enable helpfull debug output to diagnose potential problems in json:&lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Live edit normal config options:&lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
Live reload data from the json files ingame:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
See difficulty of area:&lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
Reset dps calculations for 50 chunk area around you:&lt;br /&gt;
* /coroutil resetDPS&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=42</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=42"/>
				<updated>2019-01-24T01:34:46Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Local Difficulty ===&lt;br /&gt;
&lt;br /&gt;
CoroUtil has a local dynamic difficulty systems that tries its best to figure out what stage of the game the player is at, so it can ramp up difficulty along with them.&lt;br /&gt;
&lt;br /&gt;
Use of this system isn't actually required for invasions, but the default invasion setup uses it for scaling up inventory equipment, health, attack damage, speed, xp of mobs and also how many spawn in an invasion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: &lt;br /&gt;
&lt;br /&gt;
=== Testing Tips ===&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
Enable helpfull debug output to diagnose potential problems in json:&lt;br /&gt;
* in CoroUtil/General.cfg, set useLoggingDebug to true&lt;br /&gt;
&lt;br /&gt;
You will be able to see if there were any syntax errors with your json file, and where the error was, if everything went ok it should look like this:&lt;br /&gt;
&amp;lt;code&amp;gt;processing, detected as DifficultyData: ./config/CoroUtil/data/templates/actions/mob_spawns.json&lt;br /&gt;
[19:53:05] [main/INFO]: detected mob spawns to deserialize by detecting: mob_spawns&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Live edit normal config options:&lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
Live reload data from the json files ingame:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
See difficulty of area:&lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
Reset dps calculations for 50 chunk area around you:&lt;br /&gt;
* /coroutil resetDPS&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=41</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=41"/>
				<updated>2019-01-23T01:48:42Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
I would recommend copying bits from these files to create and customize your invasions.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* The spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Local Difficulty ===&lt;br /&gt;
&lt;br /&gt;
TODO: &lt;br /&gt;
&lt;br /&gt;
=== Testing Tips ===&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
&lt;br /&gt;
Live edit normal config options:&lt;br /&gt;
* /config&lt;br /&gt;
&lt;br /&gt;
Live reload data from the json files ingame:&lt;br /&gt;
* /coroutil reloadData&lt;br /&gt;
&lt;br /&gt;
See difficulty of area:&lt;br /&gt;
* /coroutil difficulty&lt;br /&gt;
&lt;br /&gt;
Reset dps calculations for 50 chunk area around you:&lt;br /&gt;
* /coroutil resetDPS&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=40</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=40"/>
				<updated>2019-01-23T01:26:50Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
* The folder is empty, or&lt;br /&gt;
* It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
* Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
* Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
* Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
* the spawn profile defines a lot of things&lt;br /&gt;
** What to spawn&lt;br /&gt;
** How it spawns&lt;br /&gt;
** How many spawn&lt;br /&gt;
** What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=39</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=39"/>
				<updated>2019-01-23T01:25:11Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
- The folder is empty, or&lt;br /&gt;
- It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
- Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
- Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
- Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
- the spawn profile defines a lot of things&lt;br /&gt;
-- What to spawn&lt;br /&gt;
-- How it spawns&lt;br /&gt;
-- How many spawn&lt;br /&gt;
-- What cmods to give them&lt;br /&gt;
&lt;br /&gt;
Have a look at mob_spawns_example_commented.json to see every piece explained. &lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
To see an up to date list on every condition possible, look at all_conditions.json&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=38</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=38"/>
				<updated>2019-01-23T01:12:15Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil will overwrite the contents of config/CoroUtil/data/ every game run if:&lt;br /&gt;
- The folder is empty, or&lt;br /&gt;
- It detects zero file changes by comparing file contents against the info in filehashes.txt (leave this file alone or you might lose data)&lt;br /&gt;
&lt;br /&gt;
If you make changes to the json files, you should be safe from having files overwritten.&lt;br /&gt;
&lt;br /&gt;
This is to make sure any new mod updates has the latest json on the filesystem unless files have been manually edited.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== JSON Structure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== mob_spawns.json ===&lt;br /&gt;
- Contains a list of potential spawn templates, defined in the &amp;quot;templates&amp;quot; list object&lt;br /&gt;
- Each spawn template can have a list of conditions required to use the spawn profile, defined in the &amp;quot;conditions&amp;quot; list object, this list is optional&lt;br /&gt;
- Each spawn template has a list of spawn profiles, defined in the &amp;quot;spawns&amp;quot; list object&lt;br /&gt;
- the spawn profile defines a lot of things&lt;br /&gt;
-- What to spawn&lt;br /&gt;
-- How it spawns&lt;br /&gt;
-- How many spawn&lt;br /&gt;
-- What cmods to give them&lt;br /&gt;
&lt;br /&gt;
=== Cmods ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
&lt;br /&gt;
asdasdasd&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=37</id>
		<title>Hostile Worlds - Invasions - Customizing</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Hostile_Worlds_-_Invasions_-_Customizing&amp;diff=37"/>
				<updated>2019-01-23T00:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: Created page with &amp;quot;This page is for customizing the existing invasion wave profiles or creating your own.  == Getting setup ==  You'll need a good text editor, for windows, notepad++ should do,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customizing the existing invasion wave profiles or creating your own.&lt;br /&gt;
&lt;br /&gt;
== Getting setup ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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/&lt;br /&gt;
&lt;br /&gt;
== Resetting files or updating CoroUtil ==&lt;br /&gt;
&lt;br /&gt;
CoroUtil scans for changes in any file in config/CoroUtil/data/. If the folder is empty, or if there have been no changes to any file, it will overwrite the contents of everything in there, this is so when there is a new update to the json files, it can make sure anyone who had CoroUtil and HW-Invasions installed before will get the most up to date json files.&lt;br /&gt;
&lt;br /&gt;
This also means that if you make any changes to the files, your files wont be overwritten on each run of the game, but also if there was any json changes for a newer version of the mod, you wont have those either.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=36</id>
		<title>Weather2 Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=36"/>
				<updated>2018-06-24T15:07:54Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/weather2 Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
Simulates a weather system around each player, spawning warm and cold cloud formations depending on the biome. As the cloud formations travel due to the wind added by the mod, when they collide they have a chance of developing into thunderstorms, which can progress into deadlier storms such as wall clouds, hailstorms, tornadoes, or hurricanes.&lt;br /&gt;
&lt;br /&gt;
The cloud formations also build up moisture as they travel over humid or wet biomes, and will rain locally in an area after it builds up enough moisture.&lt;br /&gt;
&lt;br /&gt;
Since the weather is localized, the mod does its best to be compatible with vanilla global weather features, but if you need better cross mod compatibility, you can make weather2 not override global rain by turning on global overcast in the ingame weather2 gui &amp;quot;storms when&amp;quot;, or set overcastMode to true in Misc.cfg. With this mode on, weather2 will do light rain everywhere when vanilla server rain is active, and rain more heavily as storms pass by above, otherwise weather2 forces server side weather off and performs its own logic on it.&lt;br /&gt;
&lt;br /&gt;
There are also other aesthetic features and wind systems in the mod, shown on the showcase page.&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
&lt;br /&gt;
=== Weather Item ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_item.png&lt;br /&gt;
&lt;br /&gt;
Used for crafting recipes only.&lt;br /&gt;
&lt;br /&gt;
=== Placeable Sand Layer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_placeable_sand_layer.png&lt;br /&gt;
&lt;br /&gt;
The item version of the Sand Layer block. Places down a single layer of sand, can stack up like snow layers&lt;br /&gt;
&lt;br /&gt;
=== Pocket Sand! ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_pocket_sand.png&lt;br /&gt;
&lt;br /&gt;
The power of a sandstorm in your hands. Fires off a blast of sand particles and places down sand layer blocks just like a sandstorm would. Aim it at other players to blind them.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Tornado Sensor ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_sensor.png&lt;br /&gt;
&lt;br /&gt;
Emits a redstone signal when deadly weather is near.&lt;br /&gt;
&lt;br /&gt;
=== Tornado Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_siren.png&lt;br /&gt;
&lt;br /&gt;
Emits a siren sound when deadly weather is near.&lt;br /&gt;
&lt;br /&gt;
=== Manual Redstone Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_manual_redstone_siren.png&lt;br /&gt;
&lt;br /&gt;
Use the tornado siren sound by activating with redstone.&lt;br /&gt;
&lt;br /&gt;
=== Wind Vane ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_wind_vane.png&lt;br /&gt;
&lt;br /&gt;
Points in the direction of the wind.&lt;br /&gt;
&lt;br /&gt;
=== Anemometer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_anemometer.png&lt;br /&gt;
&lt;br /&gt;
Spins based on speed of wind.&lt;br /&gt;
&lt;br /&gt;
=== Weather Radar ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_radar.png&lt;br /&gt;
&lt;br /&gt;
Shows active weather activity on the block&lt;br /&gt;
&lt;br /&gt;
=== Weather Machine ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_machine.png&lt;br /&gt;
&lt;br /&gt;
Creates and maintains various types of weather at the blocks location and keeps them there.&lt;br /&gt;
&lt;br /&gt;
Right click to cycle, shift right click to reverse cycle.&lt;br /&gt;
&lt;br /&gt;
=== Weather Deflector ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_deflector.png&lt;br /&gt;
&lt;br /&gt;
By default, kills off bad weather within an area around the block.&lt;br /&gt;
&lt;br /&gt;
Can right click cycle to just block protection mode, storms will still come but cannot grab blocks.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=35</id>
		<title>Weather2 Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=35"/>
				<updated>2018-06-24T00:58:03Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/weather2 Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
&lt;br /&gt;
=== Weather Item ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_item.png&lt;br /&gt;
&lt;br /&gt;
Used for crafting recipes only.&lt;br /&gt;
&lt;br /&gt;
=== Placeable Sand Layer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_placeable_sand_layer.png&lt;br /&gt;
&lt;br /&gt;
The item version of the Sand Layer block. Places down a single layer of sand, can stack up like snow layers&lt;br /&gt;
&lt;br /&gt;
=== Pocket Sand! ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_pocket_sand.png&lt;br /&gt;
&lt;br /&gt;
The power of a sandstorm in your hands. Fires off a blast of sand particles and places down sand layer blocks just like a sandstorm would. Aim it at other players to blind them.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Tornado Sensor ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_sensor.png&lt;br /&gt;
&lt;br /&gt;
Emits a redstone signal when deadly weather is near.&lt;br /&gt;
&lt;br /&gt;
=== Tornado Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_siren.png&lt;br /&gt;
&lt;br /&gt;
Emits a siren sound when deadly weather is near.&lt;br /&gt;
&lt;br /&gt;
=== Manual Redstone Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_manual_redstone_siren.png&lt;br /&gt;
&lt;br /&gt;
Use the tornado siren sound by activating with redstone.&lt;br /&gt;
&lt;br /&gt;
=== Wind Vane ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_wind_vane.png&lt;br /&gt;
&lt;br /&gt;
Points in the direction of the wind.&lt;br /&gt;
&lt;br /&gt;
=== Anemometer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_anemometer.png&lt;br /&gt;
&lt;br /&gt;
Spins based on speed of wind.&lt;br /&gt;
&lt;br /&gt;
=== Weather Radar ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_radar.png&lt;br /&gt;
&lt;br /&gt;
Shows active weather activity on the block&lt;br /&gt;
&lt;br /&gt;
=== Weather Machine ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_machine.png&lt;br /&gt;
&lt;br /&gt;
Creates and maintains various types of weather at the blocks location and keeps them there.&lt;br /&gt;
&lt;br /&gt;
Right click to cycle, shift right click to reverse cycle.&lt;br /&gt;
&lt;br /&gt;
=== Weather Deflector ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_deflector.png&lt;br /&gt;
&lt;br /&gt;
By default, kills off bad weather within an area around the block.&lt;br /&gt;
&lt;br /&gt;
Can right click cycle to just block protection mode, storms will still come but cannot grab blocks.&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_FAQ&amp;diff=34</id>
		<title>Weather2 FAQ</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_FAQ&amp;diff=34"/>
				<updated>2018-06-23T18:04:37Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Weather2 lags my game, how can I fix this? ==&lt;br /&gt;
&lt;br /&gt;
Assuming its a frame rate issue, here are some steps to minimize Weather2's impact on your fps.&lt;br /&gt;
&lt;br /&gt;
=== Improving it in-game ===&lt;br /&gt;
&lt;br /&gt;
Before touching any config files, open up the ingame weather2 config gui at the top of the escape menu.&lt;br /&gt;
&lt;br /&gt;
In the performance tab, lower everything to either low or none, save, then wait up to 30 seconds or so while any actively spawned particles despawn, then see if your fps improves.&lt;br /&gt;
&lt;br /&gt;
Another option that might help is setting &amp;quot;Particle precipitation&amp;quot; to Off in the Compatibility tab.&lt;br /&gt;
&lt;br /&gt;
=== Improving with config files ===&lt;br /&gt;
&lt;br /&gt;
If the in-game way wasn't enough, here are some config file options to take it even further.&lt;br /&gt;
&lt;br /&gt;
You can edit the config files live in-game by typing /config or edit the actual files in config/weather2/ with a text editor, either or works.&lt;br /&gt;
&lt;br /&gt;
As a test, in Misc.cfg or weather2Misc in-game, set Client_PotatoPC_Mode to true.&lt;br /&gt;
* this is the best performance you can get, if this is not enough, your computer probably isn't powerful enough for the mod.&lt;br /&gt;
* This flat out disables a lot of visuals of weather2 however, and is not recommended unless you are trying to connect to a server that has weather2.&lt;br /&gt;
&lt;br /&gt;
Turn the setting back off and try some other ones:&lt;br /&gt;
&lt;br /&gt;
In Storm.cfg or weather2Storm in-game:&lt;br /&gt;
* Increase value of Storm_ParticleSpawnDelay to reduce how often cloud particles spawn in the sky.&lt;br /&gt;
&lt;br /&gt;
In Misc.cfg or weather2Misc in-game:&lt;br /&gt;
* Increase value of Cloud_ParticleSpawnDelay to reduce how often cloud particles spawn in the sky.&lt;br /&gt;
&lt;br /&gt;
==== Reducing thread workload to maybe help fps ====&lt;br /&gt;
&lt;br /&gt;
In Misc.cfg or weather2Misc in-game:&lt;br /&gt;
* Increase value of Thread_Particle_Process_Delay to reduce how often weather2 scans the terrain for places to spawn particles.&lt;br /&gt;
&lt;br /&gt;
In Particle.cfg or weather2Particle in-game:&lt;br /&gt;
* Set Wind_Particle_leafs and Wind_Particle_waterfall both to false to stop terrain scanning for particle spawning entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How do I make it look better with optifine shaders? ==&lt;br /&gt;
&lt;br /&gt;
I need to investigate more still, but SEUS Renewed 1.0.0 might work better.&lt;br /&gt;
&lt;br /&gt;
You can also try setting useEntityRenderHookForShaders to false in CoroUtil/General.cfg to see if it plays nice, you can change this ingame to test via the /config command gui&lt;br /&gt;
&lt;br /&gt;
== I want less deadly storms ==&lt;br /&gt;
&lt;br /&gt;
Many ways to go about this:&lt;br /&gt;
&lt;br /&gt;
=== Less frequent ===&lt;br /&gt;
&lt;br /&gt;
You can change this in the ingame weather gui&lt;br /&gt;
&lt;br /&gt;
=== Change rate of each type ===&lt;br /&gt;
&lt;br /&gt;
See Storm.cfg, you can change the percent chance of any of the storm types, eg the Storm_PercentChanceOf_F5_Tornado setting, and other &amp;quot;Storm_PercentChanceOf&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
=== Deadly storms but they dont impact your base ===&lt;br /&gt;
&lt;br /&gt;
Chose any of these options depending on how you want it&lt;br /&gt;
&lt;br /&gt;
* Disable block destruction in the ingame weather2 config gui or...&lt;br /&gt;
* Storm_Tornado_grabBlocks to false in Storm.cfg&lt;br /&gt;
&lt;br /&gt;
* In Tornado.cfg, change these as you see fit, the config file has notes on them as well:&lt;br /&gt;
** Storm_Tornado_grabPlayersOnly&lt;br /&gt;
** Storm_Tornado_grabPlayer&lt;br /&gt;
** Storm_Tornado_grabVillagers&lt;br /&gt;
** Storm_Tornado_grabMobs&lt;br /&gt;
** Storm_Tornado_grabAnimals&lt;br /&gt;
** Storm_Tornado_grabItems (already false)&lt;br /&gt;
&lt;br /&gt;
=== Go full aesthetic only mode ===&lt;br /&gt;
** set Aesthetic_Only_Mode to true in Misc.cfg&lt;br /&gt;
*** This will disable clouds, storms, and leave just wind and pretty particle effects&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_FAQ&amp;diff=33</id>
		<title>Weather2 FAQ</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_FAQ&amp;diff=33"/>
				<updated>2018-06-23T18:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Weather2 lags my game, how can I fix this? ==&lt;br /&gt;
&lt;br /&gt;
Assuming its a frame rate issue, here are some steps to minimize Weather2's impact on your fps.&lt;br /&gt;
&lt;br /&gt;
=== Improving it in-game ===&lt;br /&gt;
&lt;br /&gt;
Before touching any config files, open up the ingame weather2 config gui at the top of the escape menu.&lt;br /&gt;
&lt;br /&gt;
In the performance tab, lower everything to either low or none, save, then wait up to 30 seconds or so while any actively spawned particles despawn, then see if your fps improves.&lt;br /&gt;
&lt;br /&gt;
Another option that might help is setting &amp;quot;Particle precipitation&amp;quot; to Off in the Compatibility tab.&lt;br /&gt;
&lt;br /&gt;
=== Improving with config files ===&lt;br /&gt;
&lt;br /&gt;
If the in-game way wasn't enough, here are some config file options to take it even further.&lt;br /&gt;
&lt;br /&gt;
You can edit the config files live in-game by typing /config or edit the actual files in config/weather2/ with a text editor, either or works.&lt;br /&gt;
&lt;br /&gt;
As a test, in Misc.cfg or weather2Misc in-game, set Client_PotatoPC_Mode to true.&lt;br /&gt;
* this is the best performance you can get, if this is not enough, your computer probably isn't powerful enough for the mod.&lt;br /&gt;
* This flat out disables a lot of visuals of weather2 however, and is not recommended unless you are trying to connect to a server that has weather2.&lt;br /&gt;
&lt;br /&gt;
Turn the setting back off and try some other ones:&lt;br /&gt;
&lt;br /&gt;
In Storm.cfg or weather2Storm in-game:&lt;br /&gt;
* Increase value of Storm_ParticleSpawnDelay to reduce how often cloud particles spawn in the sky.&lt;br /&gt;
&lt;br /&gt;
In Misc.cfg or weather2Misc in-game:&lt;br /&gt;
* Increase value of Cloud_ParticleSpawnDelay to reduce how often cloud particles spawn in the sky.&lt;br /&gt;
&lt;br /&gt;
==== Reducing thread workload to maybe help fps ====&lt;br /&gt;
&lt;br /&gt;
In Misc.cfg or weather2Misc in-game:&lt;br /&gt;
* Increase value of Thread_Particle_Process_Delay to reduce how often weather2 scans the terrain for places to spawn particles.&lt;br /&gt;
&lt;br /&gt;
In Particle.cfg or weather2Particle in-game:&lt;br /&gt;
* Set Wind_Particle_leafs and Wind_Particle_waterfall both to false to stop terrain scanning for particle spawning entirely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How do I make it look better with optifine shaders? ==&lt;br /&gt;
&lt;br /&gt;
I need to investigate more still, but SEUS Renewed 1.0.0 might work better.&lt;br /&gt;
&lt;br /&gt;
You can also try setting useEntityRenderHookForShaders to false in CoroUtil/General.cfg to see if it plays nice, you can change this ingame to test via the /config command gui&lt;br /&gt;
&lt;br /&gt;
== I want less deadly storms ==&lt;br /&gt;
&lt;br /&gt;
Many ways to go about this:&lt;br /&gt;
&lt;br /&gt;
=== Deadly storms but they dont impact your base ===&lt;br /&gt;
&lt;br /&gt;
Chose any of these options depending on how you want it&lt;br /&gt;
&lt;br /&gt;
* Disable block destruction in the ingame weather2 config gui or...&lt;br /&gt;
* Storm_Tornado_grabBlocks to false in Storm.cfg&lt;br /&gt;
&lt;br /&gt;
* In Tornado.cfg, change these as you see fit, the config file has notes on them as well:&lt;br /&gt;
** Storm_Tornado_grabPlayersOnly&lt;br /&gt;
** Storm_Tornado_grabPlayer&lt;br /&gt;
** Storm_Tornado_grabVillagers&lt;br /&gt;
** Storm_Tornado_grabMobs&lt;br /&gt;
** Storm_Tornado_grabAnimals&lt;br /&gt;
** Storm_Tornado_grabItems (already false)&lt;br /&gt;
&lt;br /&gt;
=== Go full aesthetic only mode ===&lt;br /&gt;
** set Aesthetic_Only_Mode to true in Misc.cfg&lt;br /&gt;
*** This will disable clouds, storms, and leave just wind and pretty particle effects&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_FAQ&amp;diff=32</id>
		<title>ZombieAwareness FAQ</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_FAQ&amp;diff=32"/>
				<updated>2018-06-23T17:45:49Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The mod lags my game, how can I fix this? ==&lt;br /&gt;
&lt;br /&gt;
The mod increases the amount of mob pathfinding being done, which might be a problem on lower end hardware or with modpacks that increase mob counts, here are some ways you can improve this:&lt;br /&gt;
&lt;br /&gt;
* Note: the following suggestions assume you have a default config setup, otherwise there might have been something else you changed that affects performance, delete the config files to restore deafult configs if required:&lt;br /&gt;
&lt;br /&gt;
=== Stop the extra spawning ===&lt;br /&gt;
&lt;br /&gt;
* Set maxZombiesNight to 0 in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
=== Slow down how hard the mod pathfinds ===&lt;br /&gt;
&lt;br /&gt;
* Increase tickRateAILoop in General.cfg, default is 5, 20 = 1 second&lt;br /&gt;
&lt;br /&gt;
* Reduce maxPFRangeSense in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_FAQ&amp;diff=31</id>
		<title>ZombieAwareness FAQ</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_FAQ&amp;diff=31"/>
				<updated>2018-06-23T17:43:42Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: Created page with &amp;quot;== The mod lags my game, how can I fix this? ==  The mod increases the amount of mob pathfinding being done, which might be a problem on lower end hardware or with modpacks th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The mod lags my game, how can I fix this? ==&lt;br /&gt;
&lt;br /&gt;
The mod increases the amount of mob pathfinding being done, which might be a problem on lower end hardware or with modpacks that increase mob counts, here are some ways you can improve this:&lt;br /&gt;
&lt;br /&gt;
=== Stop the extra spawning ===&lt;br /&gt;
&lt;br /&gt;
* Set maxZombiesNight to 0 in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
=== Slow down how hard the mod pathfinds ===&lt;br /&gt;
&lt;br /&gt;
* Increase tickRateAILoop in General.cfg, default is 5, 20 = 1 second&lt;br /&gt;
&lt;br /&gt;
* Reduce maxPFRangeSense in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=30</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=30"/>
				<updated>2018-06-23T17:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/zombieawareness Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=ZombieAwareness_FAQ Zombie Awareness FAQ]&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage (configurable)&lt;br /&gt;
** Shows blood splatter on the ground&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
* Pistons activating (can be heard from far, configurable)&lt;br /&gt;
* Zombies growling (configurable)&lt;br /&gt;
* Being near light sources they can see (configurable)&lt;br /&gt;
&lt;br /&gt;
You can enable or disable sound based triggers as a whole in Features.cfg&lt;br /&gt;
&lt;br /&gt;
If you want to see what is making sound senses ingame, turn on client_debugSensesVisual in ClientConfig.cfg&lt;br /&gt;
&lt;br /&gt;
You can decide what mobs are enhanced with all this extra awareness by editing MobLlists.cfg&lt;br /&gt;
* As noted in the cfg file, won't work for all mobs if they arent using ground pathfinding or if a modded mob does its own special ways of ground pathfinding.&lt;br /&gt;
&lt;br /&gt;
=== Other small features ===&lt;br /&gt;
&lt;br /&gt;
* Mobs make investigation and agression noises when they are pathing to you or see you&lt;br /&gt;
* Random speed boost to mobs on spawn (configurable via General.cfg)&lt;br /&gt;
* Spawns extra clusters of mobs at night from an existing zombie if its far enough away from you, (configurable via maxZombiesNight in Spawning.cfg)&lt;br /&gt;
* Turns off baby zombies and random chance of re-enforcement feature (configurable via Features.cfg)&lt;br /&gt;
&lt;br /&gt;
== Extra features default off in config ==&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning on surface&lt;br /&gt;
** Turn on with extraSpawningSurface in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning in caves&lt;br /&gt;
** Turn on with extraSpawningCave in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Mob Omniscience&lt;br /&gt;
** Turn on in General.cfg&lt;br /&gt;
&lt;br /&gt;
* Mobs See through walls&lt;br /&gt;
** Turn on in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=29</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=29"/>
				<updated>2018-06-23T17:36:28Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/zombieawareness Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=ZombieAwareness_FAQ Zombie Awareness FAQ]&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage (configurable)&lt;br /&gt;
** Shows blood splatter on the ground&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
* Pistons activating (can be heard from far, configurable)&lt;br /&gt;
* Zombies growling (configurable)&lt;br /&gt;
* Being near light sources they can see (configurable)&lt;br /&gt;
&lt;br /&gt;
You can enable or disable sound based triggers as a whole in Features.cfg&lt;br /&gt;
&lt;br /&gt;
If you want to see what is making sound senses ingame, turn on client_debugSensesVisual in ClientConfig.cfg&lt;br /&gt;
&lt;br /&gt;
=== Other small features ===&lt;br /&gt;
&lt;br /&gt;
* Mobs make investigation and agression noises when they are pathing to you or see you&lt;br /&gt;
* Random speed boost to mobs on spawn (configurable via General.cfg)&lt;br /&gt;
* Spawns extra clusters of mobs at night from an existing zombie if its far enough away from you, (configurable via maxZombiesNight in Spawning.cfg)&lt;br /&gt;
* Turns off baby zombies and random chance of re-enforcement feature (configurable via Features.cfg)&lt;br /&gt;
&lt;br /&gt;
== Extra features default off in config ==&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning on surface&lt;br /&gt;
** Turn on with extraSpawningSurface in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning in caves&lt;br /&gt;
** Turn on with extraSpawningCave in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Mob Omniscience&lt;br /&gt;
** Turn on in General.cfg&lt;br /&gt;
&lt;br /&gt;
* Mobs See through walls&lt;br /&gt;
** Turn on in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=28</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=28"/>
				<updated>2018-06-23T17:35:22Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/zombieawareness Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=ZombieAwareness_FAQ Zombie Awareness FAQ]&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage (configurable)&lt;br /&gt;
** Shows blood splatter on the ground&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
* Pistons activating (can be heard from far, configurable)&lt;br /&gt;
* Zombies growling (configurable)&lt;br /&gt;
* Being near light sources they can see (configurable)&lt;br /&gt;
&lt;br /&gt;
You can enable or disable sound based triggers as a whole in Features.cfg&lt;br /&gt;
&lt;br /&gt;
If you want to see what is making sound senses ingame, turn on client_debugSensesVisual in ClientConfig.cfg&lt;br /&gt;
&lt;br /&gt;
=== Other small features ===&lt;br /&gt;
&lt;br /&gt;
* Mobs make investigation and agression noises when they are pathing to you or see you&lt;br /&gt;
* Random speed boost to mobs on spawn (configurable via General.cfg)&lt;br /&gt;
* Spawns extra clusters of mobs at night from an existing zombie if its far enough away from you, (configurable via maxZombiesNight in Spawning.cfg)&lt;br /&gt;
* Turns off baby zombies and random chance of re-enforcement feature (configurable via Features.cfg)&lt;br /&gt;
&lt;br /&gt;
== Extra features default off in config ==&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning on surface&lt;br /&gt;
** Turn on with extraSpawningSurface in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning in caves&lt;br /&gt;
** Turn on with extraSpawningCave in Features.cfg, more detailed choices in Spawning.cfg&lt;br /&gt;
&lt;br /&gt;
* Mob Omniscience&lt;br /&gt;
** Turn on in General.cfg&lt;br /&gt;
&lt;br /&gt;
* Mobs See through walls&lt;br /&gt;
** Turn on in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=27</id>
		<title>Weather2 Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=27"/>
				<updated>2018-06-23T17:34:46Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/weather2 Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
&lt;br /&gt;
=== Weather Item ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_item.png&lt;br /&gt;
&lt;br /&gt;
Used for crafting recipes only.&lt;br /&gt;
&lt;br /&gt;
=== Placeable Sand Layer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_placeable_sand_layer.png&lt;br /&gt;
&lt;br /&gt;
The item version of the Sand Layer block. Places down a single layer of sand, can stack up like snow layers&lt;br /&gt;
&lt;br /&gt;
=== Pocket Sand! ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_pocket_sand.png&lt;br /&gt;
&lt;br /&gt;
The power of a sandstorm in your hands. Fires off a blast of sand particles and places down sand layer blocks just like a sandstorm would. Aim it at other players to blind them.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Tornado Sensor ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_sensor.png&lt;br /&gt;
&lt;br /&gt;
=== Tornado Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Manual Redstone Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_manual_redstone_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Wind Vane ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_wind_vane.png&lt;br /&gt;
&lt;br /&gt;
=== Anemometer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_anemometer.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Radar ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_radar.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Machine ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_machine.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Deflector ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_deflector.png&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=26</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=26"/>
				<updated>2018-06-23T17:31:55Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage (configurable)&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
* Pistons activating (can be heard from far, configurable)&lt;br /&gt;
* Zombies growling (configurable)&lt;br /&gt;
* Being near light sources they can see (configurable)&lt;br /&gt;
&lt;br /&gt;
You can enable or disable sound based triggers as a whole in Features.cfg&lt;br /&gt;
&lt;br /&gt;
=== Other small features ===&lt;br /&gt;
&lt;br /&gt;
* Mobs make investigation and agression noises when they are pathing to you or see you&lt;br /&gt;
* Random speed boost to mobs on spawn (configurable via General.cfg)&lt;br /&gt;
* Spawns extra clusters of mobs at night from an existing zombie if its far enough away from you, (configurable via maxZombiesNight in Spawning.cfg)&lt;br /&gt;
* Turns off baby zombies and random chance of re-enforcement feature (configurable via Features.cfg)&lt;br /&gt;
&lt;br /&gt;
== Extra features default off in config ==&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning on surface&lt;br /&gt;
** Turn on with extraSpawningSurface in Features.cfg&lt;br /&gt;
&lt;br /&gt;
* Extra mob spawning in caves&lt;br /&gt;
** Turn on with extraSpawningCave in Features.cfg&lt;br /&gt;
&lt;br /&gt;
* Mob Omniscience&lt;br /&gt;
** Turn on in General.cfg&lt;br /&gt;
&lt;br /&gt;
* Mobs See through walls&lt;br /&gt;
** Turn on in General.cfg&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=25</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=25"/>
				<updated>2018-06-23T14:49:03Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extra configurable options:&lt;br /&gt;
* Pistons extending&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=24</id>
		<title>ZombieAwareness Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=ZombieAwareness_Main_Page&amp;diff=24"/>
				<updated>2018-06-23T14:48:35Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: Created page with &amp;quot;== How it works ==  The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.  When you perform certain actions like mining blocks...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How it works ==&lt;br /&gt;
&lt;br /&gt;
The mod makes it seem like mobs are aware of you more from the sounds you make or the smells you emit.&lt;br /&gt;
&lt;br /&gt;
When you perform certain actions like mining blocks or taking damage, the mod will spawn or buff an invisible &amp;quot;sense&amp;quot; entity that other mobs use to pathfind to. These decay over time to simulate the mobs eventually &amp;quot;forgetting&amp;quot; about it and caring more about the most recent senses.&lt;br /&gt;
&lt;br /&gt;
The current actions that trigger senses are:&lt;br /&gt;
* Block breaking&lt;br /&gt;
* Taking damage&lt;br /&gt;
* Having low health (as if you are bleeding over time)&lt;br /&gt;
* Arrows hitting/shooting&lt;br /&gt;
* Explosions&lt;br /&gt;
* Chests and doors opening and closing&lt;br /&gt;
&lt;br /&gt;
Extra configurable options:&lt;br /&gt;
* Pistons extending&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=23</id>
		<title>Weather2 Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=23"/>
				<updated>2018-06-22T21:31:27Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/weather2 Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
&lt;br /&gt;
=== Weather Item ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_item.png&lt;br /&gt;
&lt;br /&gt;
Used for crafting recipes only.&lt;br /&gt;
&lt;br /&gt;
=== Placeable Sand Layer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_placeable_sand_layer.png&lt;br /&gt;
&lt;br /&gt;
The item version of the Sand Layer block. Places down a single layer of sand, can stack up like snow layers&lt;br /&gt;
&lt;br /&gt;
=== Pocket Sand! ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_pocket_sand.png&lt;br /&gt;
&lt;br /&gt;
The power of a sandstorm in your hands. Fires off a blast of sand particles and places down sand layer blocks just like a sandstorm would. Aim it at other players to blind them.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Tornado Sensor ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_sensor.png&lt;br /&gt;
&lt;br /&gt;
=== Tornado Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_tornado_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Manual Redstone Siren ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_manual_redstone_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Wind Vane ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_wind_vane.png&lt;br /&gt;
&lt;br /&gt;
=== Anemometer ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_anemometer.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Radar ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_radar.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Machine ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_machine.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Deflector ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_deflector.png&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=22</id>
		<title>Weather2 Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=22"/>
				<updated>2018-06-22T21:30:36Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/weather2 Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
&lt;br /&gt;
=== Weather Item ===&lt;br /&gt;
&lt;br /&gt;
https://coros.us/wiki/images/weather2/recipes/recipe_weather_item.png&lt;br /&gt;
&lt;br /&gt;
Used for crafting recipes only.&lt;br /&gt;
&lt;br /&gt;
=== Placeable Sand Layer ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_placeable_sand_layer.png&lt;br /&gt;
&lt;br /&gt;
The item version of the Sand Layer block. Places down a single layer of sand, can stack up like snow layers&lt;br /&gt;
&lt;br /&gt;
=== Pocket Sand! ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_pocket_sand.png&lt;br /&gt;
&lt;br /&gt;
The power of a sandstorm in your hands. Fires off a blast of sand particles and places down sand layer blocks just like a sandstorm would. Aim it at other players to blind them.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Tornado Sensor ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_tornado_sensor.png&lt;br /&gt;
&lt;br /&gt;
=== Tornado Siren ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_tornado_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Manual Redstone Siren ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_manual_redstone_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Wind Vane ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_wind_vane.png&lt;br /&gt;
&lt;br /&gt;
=== Anemometer ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_anemometer.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Radar ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_weather_radar.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Machine ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_weather_machine.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Deflector ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_weather_deflector.png&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	<entry>
		<id>http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=21</id>
		<title>Weather2 Main Page</title>
		<link rel="alternate" type="text/html" href="http://coros.us/wiki/index.php?title=Weather2_Main_Page&amp;diff=21"/>
				<updated>2018-06-22T21:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Corosus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Main Links ==&lt;br /&gt;
&lt;br /&gt;
[//coros.us/mods/weather2 Mod Showcase and Download]&lt;br /&gt;
&lt;br /&gt;
[//coros.us/wiki/index.php?title=Weather2_FAQ Weather2 FAQ]&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
&lt;br /&gt;
=== Weather Item ===&lt;br /&gt;
&lt;br /&gt;
//coros.us/wiki/images/weather2/recipes/recipe_weather_item.png&lt;br /&gt;
&lt;br /&gt;
Used for crafting recipes only.&lt;br /&gt;
&lt;br /&gt;
=== Placeable Sand Layer ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_placeable_sand_layer.png&lt;br /&gt;
&lt;br /&gt;
The item version of the Sand Layer block. Places down a single layer of sand, can stack up like snow layers&lt;br /&gt;
&lt;br /&gt;
=== Pocket Sand! ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_pocket_sand.png&lt;br /&gt;
&lt;br /&gt;
The power of a sandstorm in your hands. Fires off a blast of sand particles and places down sand layer blocks just like a sandstorm would. Aim it at other players to blind them.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
&lt;br /&gt;
=== Tornado Sensor ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_tornado_sensor.png&lt;br /&gt;
&lt;br /&gt;
=== Tornado Siren ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_tornado_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Manual Redstone Siren ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_manual_redstone_siren.png&lt;br /&gt;
&lt;br /&gt;
=== Wind Vane ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_wind_vane.png&lt;br /&gt;
&lt;br /&gt;
=== Anemometer ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_anemometer.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Radar ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_weather_radar.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Machine ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_weather_machine.png&lt;br /&gt;
&lt;br /&gt;
=== Weather Deflector ===&lt;br /&gt;
&lt;br /&gt;
http://coros.us/wiki/images/weather2/recipes/recipe_weather_deflector.png&lt;/div&gt;</summary>
		<author><name>Corosus</name></author>	</entry>

	</feed>