# Configuration file

Client {
    # Enables the Grass/Foliage/Water color customizations. This controls whether or not the event handlers get registered.
    B:enableColorOverrides=true
}


ConfigHandling {
    # If enabled, then the dimension config ('dimensions.json')
    # will be copied to each save and used from there, to avoid changes in the
    # global/pack config from breaking the saves due to possibly differing settings between worlds.
    # NOTE: This option ONLY affects whether or not the config is automatically _copied to_ each world.
    B:copyDimensionConfigToWorld=true

    # If enabled, then the "main config" ('justenoughdimensions.cfg')
    # will be copied to each save and used from there, to avoid changes in the
    # global/pack config from breaking the saves due to possibly differing settings between worlds.
    # NOTE: This option ONLY affects whether or not the config is automatically _copied to_ each world.
    B:copyMainConfigToWorld=true

    # If enabled, then the dimension config ('dimensions.json')
    # will read from within each world/save, if it exists there.
    # Also see the option 'copyDimensionConfigToWorld' to enable automatically copying it there.
    B:usePerWorldDimensionConfig=false

    # If enabled, then the "main config" ('justenoughdimensions.cfg')
    # will read from within each world/save, if it exists there.
    # Also see the option 'copyMainConfigToWorld' to enable automatically copying it there.
    B:usePerWorldMainConfig=false
}


Generic {
    # Enables redirecting the vanilla /time, /weather etc. commands to the JED variants in WorldInfo-overridden dimensions
    B:enableCommandRedirecting=true

    # Enables switching players' gamemode when they enter a dimension which has the ForceGameMode option set to true
    B:enableForcedGameModes=false

    # Enables overriding the initial spawning dimension to something other than dim 0 (overworld).
    B:enableInitialSpawnDimensionOverride=false

    # Enables a bunch of extra logging on the INFO level for registrations etc.
    B:enableLoggingInfo=false

    # If enabled, then a '"biome": "registrynameofbiome"' value in the dimensions.json config will override the
    # BiomeProvider of that dimension with BiomeProviderSingle, using the biome given as the value.
    # This means that the entire dimension will use only that one biome set in the config.
    # To get the registry names of biomes, you can use the TellMe mod (the command '/tellme dump biomes').
    B:enableOverrideBiomeProvider=true

    # If enabled, then a '"WorldProviderOverride": "class name"' value in JED options in the dimensions.json config
    # will override the WorldProvider of that dimension with one created by the provided class name.
    # NOTE: This is normally not recommended!!!
    # This is provided for certain mod compatibility cases,
    # where the other mod is checking the DimensionType against one of the vanilla values, and thus
    # you have to use an "existing_dimensiontype" key in the "dimensiontype" object, instead of
    # registering/defining a new custom entry as you would do normally.
    B:enableOverrideWorldProvider=false

    # Enables "player inventory groups".
    # These groups can be used to separate the player inventories in some dimensions
    # or groups of dimensions. Whenever a player switches dimensions, if the groups
    # in the from and to dimensions are different, then the player inventories will be
    # stored and swapped. The groups can be set in "jed": { "PlayerInventoryGroup": "FooBar" }.
    # You can use an empty string value to automatically set it to "dim_<id>".
    # The default group name for dimensions that don't define anything for it is "__default".
    B:enablePlayerInventoryGroups=false

    # If enabled, then an 'override: true' boolean value for the dimension in
    # the dimensions.json config can be used to override an existing dimension.
    B:enableReplacingRegisteredDimensions=true

    # If enabled, adds custom WorldBorder syncing and removes default linking from other dimensions to the overworld border.
    B:enableSeparateWorldBorders=false

    # If enabled, all dimensions that exist in dimensions.json and have either a"worldinfo" or a "worldinfo_onetime" value present (an empty object is enough),
    # will use separate WorldInfo instances (separate time, weather, world border, gamerules etc.).
    # This works even if the dimension in question isn't registered by this mod
    # (so vanilla, or other mod dimensions can have it too).
    B:enableSeparateWorldInfo=true

    # If enabled, then an 'unregister: true' boolean value for the dimension in
    # the dimensions.json config can be used to unregister existing dimension.
    B:enableUnregisteringDimensions=false

    # If enabled with the enableInitialSpawnDimensionOverride option, this will be used as the initial spawn dimension ID
    I:initialSpawnDimensionId=0

    # If the players first join into a ForceGameMode dimension, then this option sets the "normal"
    # game mode they should get when they leave that dimension for a non-ForceGameMode dimension.
    # Valid values are: adventure, creative, spectator and survival
    S:normalGameMode=survival
}


Version {
    # For the config file copying/replacement to happen, this id
    # in the old per-world config must match the id in the current global/common config,
    # for the automatic config upgrade/override from the global config to the per-world config to happen.
    S:configId=__default

    # Config version tracking.
    # If you are a mod pack developer and need to force a config change
    # for users (when using the per-world configs option), increase the version number here
    # to tell the mod to copy this config version over an existing, older, per-world config.
    # Also note that the 'configId' value should be set to something mod pack specific,
    # basically to tie the per-world configs to the pack in question,
    # and not overwrite the per-world config with one from a different pack.
    # (Although it probably would be extremely rare for anyone to try to load the same world in a different pack...)
    I:version=0
}


