


Playroom Projects' - DimLock

Overview
DimLock is a lightweight utility mod that restricts access to dimension portals by introducing a lock state. When a portal is locked, players are prevented from entering it until the required condition is met. The mod is designed for controlled gameplay scenarios, especially within structured modpacks and multiplayer environments.
DimLock is part of a collection of mods developed for the Playroom Project modpack and is built to integrate with its progression systems.
Core Functionality
DimLock operates by intercepting portal usage and validating access before teleportation occurs. It does not modify how portals are built or activated, only whether a player is allowed to travel through them.
Portals can be toggled between locked and unlocked states. When locked, any attempt to use the portal is denied unless the defined requirement is satisfied.
Key Features
Portal Usage RestrictionBlocks player teleportation through portals when locked, and leaves portal creation and structure mechanics unchanged.
Supported & Tested Portals- Designed primarily around vanilla portal behavior
- Tested and confirmed working with:
- Compatibility depends on how mods implement portal teleportation logic
- Binary state system:
- Locked (blocked access)
- Unlocked (normal behavior)
- State is checked at the moment of portal interaction
- Access is granted based on simple predefined conditions
- Intended for deterministic progression control
- Avoids complex or dynamic permission systems
- All validation occurs server-side
- Prevents client-side bypass
- Ensures consistent multiplayer behavior
- Provides a clear indication when a portal is locked
- Designed to remain visually consistent with the game
Environment & Compatibility
- Server-side only
- Works in singleplayer too
Use Cases
- Gatekeeping dimension access in progression-based modpacks
- Controlling when players can enter modded dimensions
- Preventing early or unintended exploration on servers
Design Scope
DimLock focuses on a narrow, predictable feature set:
- No custom portal systems
- No advanced permission frameworks
- Minimal configuration complexity
Configurations
Config file# This file is designed to be copy/paste friendly. Use the examples and replace ids.
# "COMMAND": Permanent access is granted by running /access <dimension> (requires permission level 2).
# "XP": Access requires at least X experience points. consume=true removes points each entry. consume=false only checks.
# "LVL": Access requires at least X experience levels. consume=true removes levels each entry. consume=false only checks.
# "KEY_HAVE": Access requires having the key item in inventory each entry. consume=true removes 1 key each entry. consume=false only checks inventory.
# "KEY_USE": Permanent access is granted by right-clicking a configured block with the key item. Key is always consumed once.
# "ADVANCEMENT": Permanent access is granted when the specified advancement is completed.
# "denyMessage": Optional. If omitted a generic message is used.
# "useTargetTag": Optional. Block tag used for KEY USE. Default is playroom-projects-dimlock:key_use_targets.
# "useTargetBlocks": Optional. Explicit block list for KEY USE when multiple dimensions share the same key item. No default.
# Examples
# COMMAND example:
"minecraft:the_end": {
"type": "COMMAND",
"denyMessage": "End is locked. Ask an admin to unlock it."
}
# XP example:
"minecraft:the_nether": {
"type": "XP",
"xp": {
"points": 500,
"consume": true
},
"denyMessage": "Nether requires 500 XP points each entry."
}
# LVL example:
"minecraft:the_nether": {
"type": "LVL",
"lvl": {
"levels": 30,
"consume": false
},
"denyMessage": "Nether requires level 30 to enter."
}
# KEY HAVE example:
"twilightforest:twilight_forest": {
"type": "KEY",
"key": {
"mode": "HAVE",
"item": "minecraft:diamond",
"consume": false
},
"denyMessage": "You must carry a diamond to enter."
}
# KEY USE example:
"minecraft:the_end": {
"type": "KEY",
"key": {
"mode": "USE",
"item": "minecraft:echo_shard",
"consume": true,
"useTargetTag": "playroom-projects-dimlock:key_use_targets",
"useSuccessMessage": "Access unlocked."
},
"denyMessage": "Use the key on the portal to unlock access."
}
# KEY USE example with same key:
"deeperdarker:otherside": {
"type": "KEY",
"key": {
"mode": "USE",
"item": "minecraft:echo_shard",
"consume": true,
"useTargetBlocks": ["deeperdarker:otherside_portal"],
"useSuccessMessage": "Access unlocked."
},
"denyMessage": "Use the key on the portal to unlock access."
}
# ADVANCEMENT example:
"minecraft:the_nether": {
"type": "ADVANCEMENT",
"advancement": {
"id": "minecraft:story/mine_diamond",
"unlockMessage": "Nether unlocked."
},
"denyMessage": "Complete the advancement to enter."
}
# From here you can fill out your restrictions for dimensions
# Config
"dimensions": {
"minecraft:the_nether": {
"type": "KEY",
"key": {
"mode": "USE",
"item": "additionaladditions:depth_meter",
"consume": true,
"useTargetTag": "playroom-projects-dimlock:key_use_targets",
"useSuccessMessage": "You now have access to Nether"
},
"denyMessage": "Use the Depth Meter on the portal to unlock the Nether."
}
}
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.20.1, 1.20.2, 1.20.3
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
- Ships as playroom-projects-dimlock-1.0.0.jar — drop this file into the mods folder
- Download size: 44 KB
- Download link checked 2 Oct 2026 — working
These come from our own check of the pack file, not from the source page.
