Skip to content

Dimensions

Caltinor edited this page May 11, 2022 · 1 revision

This page details the data format for json files in the data/namespace/pmmo/dimensions/ data folder.

Example File

{
    "isTagFor":[ //use to have settings copied to all below members. the filename is ignored and is not automatically added.
        "minecraft:overworld",
        "minecraft:nether"
    ],
    //When in the dimension, what bonuses does the player get
    "bonus":{ //if not adding bonuses, you can remove the entire section
        "DIMENSION":{
            "mining": 1.1, //this is a 10% increase in xp gain
            "flying": 0.75 //this is a 25% reduction in xp gain
        }
    },
    //this governs what skill is required to teleport to the dimension
    "travel_req":{ //if not adding travel requirements, you can remove the entire section
        "agility": 5
    },
    //What blocks should not be permitted to be vein-mined
    "vein_blacklist":[ //if not adding, you can leave it, but it's cleaner to remove it
        "minecraft:bedrock",
        "mincraft:ancient_debris"
    ],
    //Which mobs, and by how much, should be modified in this dimension. 
    "mob_multiplier":{
        "minecraft:zombie": {
            "health": 0.5,  //half health
            "speed": 2.0, //double speed
            "damage": 1.1 // 10% increase in damage
        ,
        "minecraft:skeleton": {
            "damage": 1.15  //not all attributes need to have values, only what you want to modify.
        }
    }
}

Tags and File names

When naming and adding a file you should name the file according to the data value of the dimension. for example overworld.json for the vanilla overworld. or undergarden.json for the undergarden dimension. From there you need to place it under the correct namespace folder. eg data/minecraft/pmmo/dimensions/overworld.json or data/undergarden/pmmo/dimensions/undergarden.json respectively.

If you put values under the "isTagFor" key in your file though, then the name and namespace no longer matter. PMMO is going to use the values in this tag instead of the filename. You can then name your file whatever you like and put it under any namespace. eg data/mytagfolder/pmmo/dimensions/myspecialdimensions.json. Any dimensions in this tag will then have the values of this file merged into their settings. You can use this to give general settings to a group of dimensions and specific settings within that dimension's specific file.