Welcome to the Access Denied Wiki

Learn how to gate dimensions, customize entry criteria, and control dimension access with this powerful Minecraft mod!

Get Started

Introduction

This mod allows you to gate dimensions (including modded dimensions) based on a certain criterion or disable access to them outright! It's important to note that this mod is completely driven by Data Packs and this Wiki is only relevant to versions 5.0.0 or higher. If you do not know what a Data Pack is, please refer to the official Minecraft Wiki here. Otherwise, this Wiki assumes you know how to create Data Packs. Keep in mind, that Data Packs have to be added per world unless you use another mod to add them globally like KubeJS, Open Loader, or Global Packs. Similarly, to using Data Packs to customize the criteria needed to enter a dimension, you can also change the text that displays by changing the lang file in a Resource Pack!

You MUST create a Data Pack or this mod will not work!

Creating the Resource Pack

This mod requires a Data Pack to work! To add custom messages, you’ll also need a Resource Pack.

root
  ﹂pack.mcmeta
  ﹂assets
      ﹂accessdenied
          ﹂lang
              ﹂en_us.json
        
{ "accessdenied.message.version.text": "%s | %s", "accessdenied.warning.text" : "§c§oYou are forbidden from entering this realm...", "accessdenied.message.divider.text" : "-----------------------------------------------------", "accessdenied.requirements.text" : "§6Requirements", "accessdenied.requirement.levels.text" : "Levels", "accessdenied.requirement.bounty.text" : "Killed", "accessdenied.requirement.placed.text" : "Blocks Placed", "accessdenied.requirement.mined.text" : "Blocks Mined", "accessdenied.requirement.kills.text" : "Mobs Killed", "accessdenied.requirement.advancement.text" : "Advancement" }

Creating the Data Pack

Follow the structure below to create a Data Pack for restricting dimension access:

root
  ﹂pack.mcmeta
  ﹂data
      ﹂accessdenied
          ﹂dimensions
              ﹂name.json
        

The name.json file can be named anything you want, though, it's highly recommended to name it after the dimension you're changing access to.

In name.json you must include the following mandatory field:


"dimension": "namespace:path"

For example, the Nether would be:

"dimension": "minecraft:the_nether"

The following fields are optional:


"disabled": false

Set this to true if you want to disable access to the dimension.


"messages": {}

This is a list of messages the game will pick from randomly for each dimension you try to access. This can be as many messages as you like, or you can make the message list a single empty string to completely disable the messages. Otherwise, the default message will be used "You are forbidden from entering this realm...". Below is an example where The Nether is disabled, and the game will pick a random message from the messages list.

{ "dimension": "minecraft:the_nether", "disabled": true, "messages": [ "You shall not pass!", "This is a restricted area!", "Access to this dimension is forbidden!" ] }
"requirements": {}

If you use this, you must specify at least one requirement.

Criteria

"mobs_killed": 0

Use this to set a certain number of mobs that the player has to kill in order to unlock the dimension. Below is an example where you have to kill 100 mobs to unlock The End.

{ "dimension": "minecraft:the_end", "requirements" : { "mobs_killed": 100 } }
"blocks_mined": 0

Use this to set a certain number of blocks that the player has to mine in order to unlock the dimension. Below is an example where the player has to mine 1000 blocks to enter The Mining Dimension from Allthemodium:

{ "dimension":"allthemodium:mining", "requirements" : { "blocks_mined": 1000 } }
"blocks_placed": 0

Use this to set a certain number of blocks that the player has to place in order to unlock the dimension. Below is an example where the player has to place 1000 blocks to enter The Mining Dimension from Allthemodium:

{ "dimension":"allthemodium:mining", "requirements" : { "blocks_placed": 1000 } }
"items": [{}]

This is a list of specific items the player must have in their inventory in order to gain access to the dimension. You can add as many items to this list as you like. The list takes three parameters. Either a "tag": "namespace:path" or "item" : "namespace:path", "count": integer, and "consume" : integer. The following example is for restricting The Nether based on whether the Trial Key item is in their inventory or not and then consumes it:

{ "dimension": "minecraft:the_nether", "requirements": { "items": [ { "item": "minecraft:trial_key", "count": 1, "consume" : 1 } ] } }

Below is an example if you want to disable access to The End based on whether a player has 64 Glowstone Dust or an equivalent to it using a tag:

{ "dimension": "minecraft:the_end", "requirements": { "items": [ { "tag": "c:dusts/glowstone", "count": 64 } ] } }
"bounties": [{}]

This is a list of specific mobs you want the player to kill in order to gain access to the dimension. You can add as many mobs to this list as you like. The list takes two parameters "mob" : "namespace:path" and "count" : integer. The following example is for restricting entrance to The End based on needing to kill The Warden and The Wither:

{ "dimension": "minecraft:the_end", "requirements": { "bounties": [ { "mob": "minecraft:warden", "count": 1 }, { "mob": "minecraft:wither", "count": 1 } ] } }

You should be greeted with a message like this in chat if you try to enter the restricted dimension:

You are forbidden from entering this realm... ------------------------------------------------------------------------------------------- Requirements: ✘ Warden Killed: 0/1 ✘ Wither Killed: 0/1

This is the default message that'll be sent.