---
title: Custom dimension options
hide_meta: true
---

Minecraft allows a lot of customizability for how a dimension looks and behaves even in vanilla with the datapack system,
which is what powers the Infinite Dimensions mod in the first place. However, the amount of possible things to customize
just wasn't enough for me, and that's how the Infinity Options were born - expanding in a way on vanilla's
[dimension types](https://minecraft.wiki/w/Custom_dimension#Dimension_type).

The infinity options for every dimension generated by the mod - including the easter egg ones - are located within the
dimension's datapack under `/data/infinity/options.json` and are not *technically* part of the datapack in the current
implementation, in that the mechanism of loading their into the game is entirely separate. Nevertheless by editing them
a player can obtain control over many new features the mod adds to its dimensions. Here's a list of possible options!

- `shader`: this field sets the postprocessing shader for the dimension, and while the mod's dimensions only generate with a
specific type of shader (a color-convolving one), you can paste *any* postprocessing shader here and it will just work,
as long as it's written correctly (functional if placed in a standalone file)! [Here's some data](https://minecraft.wiki/w/Shader#Post-processing_effects)
on postprocessing shaders :D
- `mavity`: this is a multiplier to the dimension's gravity! Zero and negative values, although not utilised by the mod naturally,
can be technically used, but there's no actual support to upside-down gravity at the moment (falling blocks
 won't land in it, mobs won't stand upside-down, etc.).
- `portal_color`: used in easter egg dimensions, this option overrides the color all portals to this dimension have.
Note that it will not recolor existing portals if you change it, but new ones will respect it! the format is the 12-byte color integer.
- `pitch_shift`: a compound that, if present and correctly formatted, allows the dimensions to shift the pitch of any sound
played on the client when the player is in them. Has the following subfields:
    - `type`: can be either `"constant"` or `"add"`.
    - `value`: the actual value to set the pitch to (under the constant type) or add to the pitch (under the add type).
    Negative values work in addition, but keep in mind that Minecraft clamps sound pitch to between 0.5 and 2.0
    (1.0 being the default for most sounds).

And now to the biggest chunk of the options: the ones related to the sky!
- `sky_type`: i wanted to do more with this, but for now the only value that works in here is `"rainbow"` - it makes the sky
in the dimension rotate slowly through hues of the color wheel (and completely discards biome-dependent sky and fog colors
in the process).
- `horizon_shading_ratio`: a value between 0 and 1 that dictates how high do you need to go (above the world's minimum height)
for the sky to stop being darkened by void fog. With 0 it's always darkened, and with 1 - never (which is the case for all
of the mod's dimensions). The overworld uses 0.03125.
- `end_sky_like`: setting this to true disables the rendering of stellar bodies completely even in a world with overworld dimension effects.
- `dawn`: a boolean dictating if skies get shading on sunrise and sunset. They do by default except when they're rainbow.
- `time_scale`: how fast does the Sun move across the sky! affects most things the day length in minecraft should logically affect,
including undead mobs burning. 0.0 is fixed time, 1.0 is normal time, negatives make the sun rise in the west.
- `solar_size`: the size of the Sun :D the Overworld uses 30.0
- `solar_tint`: the tint applied to its texture, a 12-byte color integer as well
- `solar_tilt`: rotates the points of sunrise and sunset around the sky. -90.0 is the default (sunrise in the east),
0.0 - sunrise in the south like the good old days of beta :D
- `solar_texture`: not used by the mod currently, but setting it to a valid texture identifier can override the texture the Sun has.
- `moons`: Infinite Dimensions allows to render multiple moons in the sky, so all options related to those are moved in a sublist of
compounds, each compound representing a single moon. The moon-specific options are:
    - `lunar_size`, `lunar_tint`, `lunar_texture` mirror the options the Sun has. Vanilla lunar size is 20.0.
    - `lunar_tilt_y` mirrors `solar_tilt` in rotating the moon's rising and setting point on the sky, while `lunar_tilt_z`
    rotates the orbit in a perpendicular direction, lowering its highest point from the zenith.
    - `lunar_velocity`, multiplicative with `time_scale`, defines how fast each moon moves.
    - `lunar_offset` defines the starting position the moon has on its orbit (observed when you execute `/time set 0`).
- `num_stars`: the amount of stars in the night sky. 1500 is the vanilla value. Needs to be above 0 (to disable the stars, set their
brightness to 0 instead).
- `star_size_base` and `star_size_modifier` are the minimum and width of the star size distribution. Actual star sizes are distributed
uniformly between base and base+modifier. 0.15 and 0.1 are corresponding vanilla options.
- `stellar_color`: the tint for stars.
- `stellar_tilt_y`, `stellar_tilt_z`, `stellar_velocity` mirror the lunar options for the movement of the entire star-filled sphere.
- `star_brightness_day`, `star_brightness_night`: self-explanatory. Need to be between 0 and 1. Vanilla uses 0.0 and 0.5 respectfully,
and that's a pity, cause stars are very beautiful when `star_brightness_night` is raised to 1.0 :D

Here's an example of an options file from the wild, edited a bit for your readability:

```java
{
	"mavity": 1.0,
	"time_scale": 15.83437,
	"solar_size": 25.333763,
	"solar_tilt": -167.561,
	"moons": [
		{
			"lunar_size": 16.186508,
			"lunar_tilt_y": 12.12323,
			"lunar_tilt_z": 86.85659,
			"lunar_velocity": 1.3169498,
			"lunar_offset": 0.6354257,
			"lunar_tint": 1570424
		},
		{
			"lunar_size": 19.354776,
			"lunar_tilt_y": -44.114567,
			"lunar_tilt_z": 62.194595,
			"lunar_velocity": -1.0008916,
			"lunar_offset": 0.7587377,
			"lunar_tint": 12379133
		},
		{
			"lunar_size": 26.861193,
			"lunar_tilt_y": -49.608643,
			"lunar_tilt_z": -17.065638,
			"lunar_velocity": 1.1835625,
			"lunar_offset": 0.3711853,
			"lunar_tint": 9905751
		}
	],
	"star_size_base": 0.115367465,
	"star_size_modifier": 0.01508815,
	"num_stars": 3362,
	"pitch_shift": {
		"type": "constant",
		"value": 1.9038134
	},
	"shader": {
		"passes": [
			{
				"intarget": "minecraft:main",
				"name": "color_convolve",
				"outtarget": "swap",
				"uniforms": [
					{
						"values": [
							0.595786,
							0.219675,
							0.073982
						],
						"name": "RedMatrix"
					},
					{
						"values": [
							0.700408,
							0.579702,
							0.013294
						],
						"name": "GreenMatrix"
					},
					{
						"values": [
							0.068008,
							0.297012,
							0.264795
						],
						"name": "BlueMatrix"
					}
				]
			},
			{
				"intarget": "swap",
				"name": "blit",
				"outtarget": "minecraft:main"
			}
		],
		"targets": [
			"swap"
		]
	}
}
```