Infinite Dimensions supports infinite configuration possibilities.
The randomizer used for generating dimensions calls for configs almost constantly, whenever it needs to select a random block, mob, fluid, feature, biome, etc. By changing the configs, you can fine-tune the probability of selecting each block (mob, fluid etc.), as well as add your own options to the mix, including ones from other mods.
Core config options
The file /config/infinity/infinity.json is the master file for configuring gamerules and root chances of generation.
These settings can also be configured via Mod Menu on Fabric and the Mods menu on NeoForge. This page will walk you through them.
Gamerules
safeMode- setting this to true will disable all block entities from being used in generation of future dimensions. Useful for heavily modded instances.longArithmeticEnabled- setting this to true will expand the range in which dimension, biome and feature IDs generate from the integer limit (~2 billion) to the long limit (~9 quintillion). You know, if for some reason 2 billion dimensions is not enough for you :DforceSolidSurface- setting this to true will disallow non-full blocks from being used as material for the surface of random biomes.chaosMobsEnabled- a toggle to enable/disable custom mobs, added in the mod, from naturally spawning.consumePortalKey- by default, if you introduce an item requirement to unlock new portals (see below), the item will be consumed on use. Setting this as false prevents this behaviour if you want to make a special portal-creating wand, for example.disabledUntilReview- some easter egg dimensions are disabled until a later version to properly integrate them into the mod first (they aren't listed on the wiki yet). You can reenable them with this toggle, if you don't mind deleting their files in a later version to allow them to generate anew in a better state.maxBiomeCount- the largest amount of biomes that can be assigned to generate in any random dimension. 6 by default.
Portal key
The item required to unlock an Infinity Portal for a brand new dimension. Right-click with the item on the portal; it will emit a beacon sound indicating you can now go through. (If there's no sound, you just encountered a bug you can report!)
You can change the item to whatever you want or leave it as the default blank string, which means you don't need a key - the portal will open with a beacon sound on its own without right-clicking.
Altar key
The same for the Transfinite Altar - a legacy block that was used in old versions of the mod to initiate generation of config files. Now they are generated automatically, but the block is still functional for debugging purposes or if you just want to watch a cool animation (cause it has a cool animation :3)
Salt
This string, blank by default, will be added to the book text in the process of its conversion to the dimension ID, thus typing anything here will result in your dimensions differing from dimensions with the same book text that other users generate (by default they're the same for all users, no matter the world seed, and only dependent on the world seed). You can do this if you don't want to go into the mod already knowing "oh, the dimension 90 has diamonds" etc. Does not affect "easter egg"-type dimensions.
Root chances
The root chances control how likely it is for the dimension to possess a certain property or generate a certain type of feature.
dimension_typechances control properties that are applied across the whole dimension, i.e. "ultrawarm" means water evaporates like in the Nether, "fixed_time" means if the Sun/Moon exist they won't move, etc."fixed_time": 0.25means 25% of dimensions will have fixed time. You can learn more on most listed properties here, but the mod adds more:use_shaders:some dimensions have custom shaders which recolor your entire vision for as long as you're in the dimension :D this is the chance they will have itpitch_shifter:the chance to get a dimension that will subtly mess with Minecraft's sound system, changing the pitch of all sounds played
noise_settingschances control properties of the world shape and how the blocks are assigned to it.randomise_blocks: the chance to have a random block instead of stone.randomise_biome_blocks: the chance to have random blocks instead of dirt and grass.solid_oceans,solid_lakes: the chance for oceans/lakes to be filled with a random solid block instead of a random fluid. (Currently disabled)rift_world_chance: the chance to generate a rift world. Rift worlds have 4 block gaps to the void on every chunk border.
biomechances control properties that are applied inside a particular biome in a dimension.use_random_biome: the chance to make a new random biome instead of choosing one from /modular/.../misc/biomes.json.use_sparse_vegetation: the chance for a random biome to have individually standing sparse trees instead of being densely forested.has_precipitation: the chance a biome will have rain/snow (otherwise, when it rains, it will just darken the sky like in deserts)use_particles: for particles flying in the air, like in warped forests!ambient_sound,mood_sound,additions_sound,music: these are various sounds that can play in a biome. ambient_sound plays on constant loop, mood_sound behaves like cave noises, additions_sound has a chance to randomly play every tick - these three are sort of annoying (especially when it's a horse dying). And music is music! No dying horses there, it's picked from a separate list in which there really is only music.use_random_cave,use_random_canyon: a chance the mod will try to generate a random cave/canyon carver utility. These behave like legacy noodle caves and ravines from before 1.18, however the mod can throw in such wild values that the world becomes shredded.
features_chanceschances control likelihood of generating a specific feature type. They are independent from one another, i.e. if "shape" and "lake" are both set to 0.5, it means half of all dimensions will have shapes; also half of all dimensions will have lakes; and since these halves are independent, a quarter of all dimensions will have both.features_ruleschances control properties applied to a specific feature:generate_vanilla_features: a master toggle to try generating vanilla stuff - regular ice icebergs, etc. - alongside the "any block the mod wants" icebergs, chances for which are defined in a previous category.rotate_blocks: if a block is rotatable like a log (or deepslate, etc.) and is set to generate within a feature, this is a chance it will get random rotation applied to it.flood_geodes: a chance for a geode to be filled with a random fluid instead of air.use_vanilla_trees: when the mod needs a tree, this is a chance to pull from existing trees instead of generating a random tree type.huge_trees: like, really huge. they like to spit warnings all over the logs so i soft-disabled them, but if you dare to try them out...ores_spawn_everywhere: normally, an ore checks if it's generating inside solid blocks. with this chance, it won't and you'll get them flying in the air.scatter_ores: toggle between "ore" and "scattered_ore" types of ore deposit generation.scatter_end_spikes: when you have end spikes in a random dimension, this is a chance they will be all over the place like in pre-1.9 and not in a perfect circle.cage_crystals: % of spikes that have their end crystal in a cage.exact_gateways: when you have an end gateway, this is a chance it will teleport you to exact coordinates without regards to if you'll get stuck in a wall there. otherwise it will at least try to find a safe spot nearby.colourful_shapes: you know these huge spheres and cubes and such in the sky? this is a toggle between them being of one random block or of a bunch of colored blocks.banded_shapes: ...and if they choose colored blocks, this is a toggle between them being in a perlin noise map or in diagonal bands.
structureschances control how structures of a certain type in random biomes behave:spawn_override: with this chance, you can have a Nether Fortress spawn whatever the Nether it wants instead of Blazes and Wither Skeletons (which might turn out to be nothing).full_box: if the spawn override applies to the entire bounding box of the structure or only to parts of it (you know how wither skeleton farms are always built on crossroads?)triangular_spread: usually structure positions have uniformly distributed offsets from the points on a large grid; this toggle makes these offsets more likely to be smaller.
Weighed lists
Most config files you can edit come in the form of weighed lists. A weighed list is a pool of options for the generator to choose between, where each option is assigned a number called weight. The larger the weight is, the more likely it is for the generator to pick this option. The weight of 0.0 causes the option to be skipped entirely.
Most types of weighed lists (the ones in the /config/infinity/modular subfolder) are generated by the game automatically during the process of
Cosmic Invocation.
Editing them directly is not recommended: instead, any desired changes to these configs can be achieved by means of passing
amendments.
Still, the information on their formatting will be provided below for advanced users:
Blocks
There is only one weighed list for all blocks in the game, but you may notice that some blocks have additional data assigned to them. This data is used to transform this master list into five - all of which have different purposes and exclude some blocks not fit for these purposes based on these additional properties.
The properties are:
full- blocks that are, or at least appear to be, full cubes: stone, dirt, and sand are full, while slabs and doors aren't. If not present, set to false.float- blocks that can exist suspended in the air. Stone, dirt and slabs are float, while sand and doors aren't. If not present, set to true for full blocks and false for others.top- blocks that can exist atop of a full block. Sand and doors are top, while saplings aren't (they need specifically dirt). If not present, set to true for full and/or float blocks and false for others.laggyis assigned to all blocks that have a block entity - since these frequently cause FPS and/or TPS lag, or stop rendering past a certain point, when present in really large amounts (say, ten thousand in render distance). Chests and hoppers are laggy - chests use block entity models, hoppers require processing on each tick. You can assign the laggy property manually if you find any other cases where the default values create lag which i haven't accounted for. If not present, set to false.
The values of these properties can be overwritten with set_field-result-type amendments.
Here's how the properties are used on compilation:
- Two lists are created - from all float blocks and all full blocks - that are used for creating most features (rocks, ores, floating islands, floors of dungeons etc).
- Blocks that are top and not laggy are used for covering the top layer of the world.
- Blocks that are full, float and not laggy are used for the bulk of world generation, for everything that can appear in tens of thousands and more: the "stone" of the dimension, tree caps, icebergs and other large features.
Of course, some of these lists intersect or even fully include others.
Fluids
The list of fluids can also be found under the Blocks category.
Though adding a fluid with a single line like "key: "minecraft:water" is supported,
some mods actually add fluids that use different names for the block (that's the name you can autocomplete from /setblock)
and the fluid (that's the one you can see on the F3 screen under "Targeted fluid"). For this reason the entries are formatted like this:
"key": {"Name": "milk:milk_fluid_block","fluidName": "milk:still_milk"}
where Name is the block name.
Hardcoded
The weighed lists located in config/infinity/hardcoded. These lists you can change weights in, but you cannot add new entries to,
either because processing all possible results of them is hardcoded within Infinite Dimensions (i.e. with shape types)
or within Minecraft itself (i.e. with trunk placers).