···11-infinity_version: 2004001
11+infinity_version: 2004002
22+amendment_version: &0
23Delete this file to regenerate modular configs automatically
34(e.g. you may want to do this when adding new mods to the instance)
···2121* status effects,
2222* block tags,
2323* structures plus some of their additional data,
2424-* biomes and surface rules for them.
2424+* biomes,
2525+* (in limited capacity) surface rules for biomes.
25262627Blocks are auto-assigned tags needed for the generator to know which parts of worldgen are they usable for ("full", "laggy" etc.,
2728see the page on [configuring the mod](Configuring-the-mod)), plus checked for different traits (being a flower, rotatable, dyeable etc.).
···3839## Known issues with invocation
3940* Invocation only happens once per game folder. As such, if you add new mods to the instance after you already loaded worlds on it once,
4041invocation will not happen again. This especially stands for the default Minecraft launcher by Mojang, which by design only uses one.
4141-To force the invocation to happen again, you can either construct and activate the Transfinite Altar, or delete the file
4242-`config/infinity/modular/invocation.lock` and relaunch the game.
4343- * Note that such reinvocation will not touch any of the existing files, only add new ones. As such, it is useful by itself only when
4444- adding new mods to the instance. If you update one of the mods (including Infinite Dimensions!) to a newer version that brings
4545- more content, or *especially* if you remove mods, you have to purge the `/config/modular` folder entirely to do a successful reinvocation.
4242+To force the invocation to happen again, you need to delete the file `config/infinity/modular/invocation.lock` and relaunch the game.
4343+* Repeated invocation will not touch any of the existing files, only add new ones. As such, it is useful by itself only when
4444+adding new mods to the instance. If you update one of the mods to a newer version that brings more content, or *especially* if you remove mods,
4545+you have to purge the `/config/modular` folder entirely to do a successful reinvocation.
4646* Starting at version 2.1.0 of the mod, Infinite Dimensions will automatically delete all modular configs and issue reinvocation
4747if it detects that the version of those configs (set in the invocation lock) is outdated. If you make changes to your modular configs,
4848-do a backup of them before updating the mod!4848+do a backup of them before updating the mod!
4949+5050+## Amendments
5151+Amendments are a system of automatically changing values in config files without changing them one-by-one. A more proper integration (for editing them
5252+in GUI) will be explored later, but so far it is possible to do them by editing files.
5353+5454+Amendments are stored in `config/infinity/amendments.json` and only can affect modular configs. To change the list of active amendments,
5555+one must edit the amendments.json file _making sure to increase up the amendment_version statistic at the top_, then fully close and restart the game.
5656+5757+Amendments consist of four distinct parts governing when and how the amendment will be passed:
5858+* Area. This is the scope of the amendment in terms of type of game content it affects: `"blocks"`, `"fluids"`, `"items"`, `"structures"` and `"mobs"`
5959+are the ones that would probably be most useful to a user, but there are other options too.
6060+* Mod. This cam be set to a mod ID (including `"minecraft"`) to only select content from this mod, or to `"all"` to skip the mod check.
6161+* Selector. This governs what content within the selected mod and area is affected by the amendment, and there are several types available:
6262+ * `"all"` - amend everything (useful if you want to skip some mod entirely);
6363+ * `"matching"` - amend a single entry, with it's key set as a value under a key `matching` (i.e., `"selector": "matching", "matching": "minecraft:lava"`);
6464+ * `"matching_any"` - amend every entry in a list, provided under a key `matching`;
6565+ * `"matching_block_tag"` - only works when `area` is set to `"blocks"` and amends all blocks under a tag. The tag ID is provided under `matching` without
6666+ the leading `#` symbol.
6767+ * `"containing"` - amends all entries the names of which contain a certain string of characters set under the `containing` field.
6868+* Results - what will the amendment do, the following options are available:
6969+ * `"set_value"` - sets the weight of an element to a number provided under `value` (the default weight is 1);
7070+ * `"set_field"` - useful e.g. for blocks if you want to mark them as laggy overriding the default algorithm that checks it;
7171+ additional fields are `field_name` and `field` allowing you to add any field to the data amended content has;
7272+ * `"erase"` - skip the entry entirely, effectively the same as setting its weight to 0.
7373+7474+Let's break down the default list of ten amendments the mod comes with. Most of them are fixes for various mod compatibility issues:
7575+```
7676+ {
7777+ "area": "fluids",
7878+ "mod": "minecraft",
7979+ "selector": "matching",
8080+ "matching": "minecraft:lava",
8181+ "results": "set_value",
8282+ "value": 2.0
8383+ },
8484+ {
8585+ "area": "fluids",
8686+ "mod": "minecraft",
8787+ "selector": "matching",
8888+ "matching": "minecraft:water",
8989+ "results": "set_value",
9090+ "value": 5.0
9191+ }
9292+```
9393+The first and second amendments modify the weights the two vanilla fluids have in the distribution of all fluids, making them
9494+a bit more common in modded scenarios.
9595+9696+```
9797+ {
9898+ "area": "blocks",
9999+ "mod": "minecraft",
100100+ "selector": "matching_any",
101101+ "matching": [
102102+ "minecraft:slime_block",
103103+ "minecraft:honey_block",
104104+ "minecraft:mangrove_roots"
105105+ ],
106106+ "results": "set_field",
107107+ "field_name": "laggy",
108108+ "field": true
109109+ }
110110+```
111111+The third amendment marks some vanilla blocks as laggy. These are the blocks which can overwhelm the rendering algorithm when present in large blobs
112112+due to having unculled inner faces on their model.
113113+114114+```
115115+ {
116116+ "area": "trees",
117117+ "mod": "all",
118118+ "selector": "containing",
119119+ "containing": "bees",
120120+ "results": "erase"
121121+ }
122122+```
123123+The fourth amendment forbids generation of any trees that have beehives on them (conveniently, their IDs all have the word bees in them),
124124+as large amounts of those leads to large amounts of bees present which can lag the game.
125125+126126+```
127127+ {
128128+ "area": "fluids",
129129+ "mod": "modern_industrialization",
130130+ "selector": "all",
131131+ "results": "erase"
132132+ }
133133+```
134134+The fifth amendment forbids all fluids from the Modern Industrialization mod from appearing, as they lack fluid physics and rendering due to not having
135135+been supposed to ever be placed in-world.
136136+137137+```
138138+ {
139139+ "area": "mobs",
140140+ "mod": "minecolonies",
141141+ "selector": "all",
142142+ "results": "erase"
143143+ }
144144+```
145145+The sixth amendment prevents all mobs from Minecolonies from spawning in this mod's biomes as part of the natural spawning algorithm,
146146+as these error out the game if they do due to incomplete entity data.
147147+148148+```
149149+ {
150150+ "area": "structures",
151151+ "mod": "alexscaves",
152152+ "selector": "all",
153153+ "results": "erase"
154154+ },
155155+ {
156156+ "area": "structures",
157157+ "mod": "aether",
158158+ "selector": "containing",
159159+ "containing": "dungeon",
160160+ "results": "erase"
161161+ }
162162+```
163163+The seventh and eighth amendments bans all structures from Alex's Caves (aka, the caves themselves) and Aether dungeons from generating in this mod's
164164+custom dimensions, as they sometimes throw errors when they do due to failing their inner checks when called to generate outside of their natural
165165+environment.
166166+167167+```
168168+ {
169169+ "area": "structures",
170170+ "mod": "oritech",
171171+ "selector": "containing",
172172+ "containing": "pipe",
173173+ "results": "erase"
174174+ }
175175+```
176176+The ninth amendment bans all pipe blocks from Oritech, because when these are placed during world generation, they try to update their shape
177177+and in the process poll the world for metrics which on this stage aren't yet present, resulting in a crash.
178178+179179+```
180180+ {
181181+ "area": "blocks",
182182+ "mod": "chipped",
183183+ "selector": "all",
184184+ "results": "set_value",
185185+ "value": 0.1
186186+ }
187187+```
188188+The tenth amendment reduces weights of all blocks from the Chipped mod down to 0.1, as there are thousands of them :D