A comprehensive Minecraft plugin that adds functional elevators and paired teleporter blocks with a full in-game GUI, ID linking system, per-block access control, and holographic previews.
- Jump to go up, sneak to go down
- Configurable block types (carpets by default)
- Adjustable vertical search distance
- Per-world blacklist
- Bind any allowed block using an Ender Pearl (Shift + Right-Click)
- Set a numeric ID to link two blocks into a pair
- Full GUI menu on Shift + Right-Click
- Per-block settings:
- Click type (LEFT / RIGHT)
- Require sneak (yes / no)
- Require item (custom display name)
- Teleport location (TOP / CURRENT position)
- Access levels: Teleport / Manage / Break
- Local and global member/owner lists
- Holographic label above the block (name + ID)
- Distance check between paired blocks
- Cross-world teleport toggle
/teleporter view all— highlight every block on the server/teleporter view owner— highlight only your blocks/teleporter view member— highlight blocks where you are a member or owner- Particle outline rendered client-side only (no server lag)
- Full HEX color support (
&#RRGGBB) - Configurable particles, sounds, titles, messages
- Cooldown system with bypass permission
- Granular permission control per feature
- Separate
blocks.ymldata file (production-safe keys) - Debug mode for troubleshooting
- Java 8 or higher
- Maven 3.6+
git clone https://github.com/MootComb/Teleporter.git
cd Teleporter
mvn clean packageThe compiled JAR will be located in the target/ directory as Teleporter-<version>.jar.
- Copy the JAR file to your server's
plugins/folder - Restart your server or use a plugin manager
- Configure the
config.ymlfile to your liking - Reload with
/teleporter reload
| Permission | Description | Default |
|---|---|---|
teleporter.use |
Allows using elevators (jump/sneak) | true |
teleporter.teleport |
Allows binding and using teleporter blocks | true |
teleporter.manage |
Allows opening the GUI and editing block settings | true |
teleporter.break |
Allows breaking teleporter blocks | true |
teleporter.break.bypass |
Bypasses break access checks | op |
teleporter.bypass |
Bypasses cooldown system | op |
teleporter.bypass.access |
Bypasses teleport access checks | op |
teleporter.bypass.distance |
Bypasses distance check | op |
teleporter.bypass.item |
Bypasses required item check | op |
teleporter.bypass.sneak |
Bypasses sneak requirement | op |
teleporter.reload |
Allows reloading config | op |
teleporter.view.all |
Allows /teleporter view all |
op |
teleporter.view.owner |
Allows /teleporter view owner |
true |
teleporter.view.member |
Allows /teleporter view member |
true |
| Command | Description | Permission |
|---|---|---|
/teleporter reload |
Reloads the configuration | teleporter.reload |
/teleporter info |
Shows info about the block you're looking at | teleporter.use |
/teleporter list |
Lists your teleporter blocks | teleporter.use |
/teleporter remove <id> |
Removes your blocks with the given ID | teleporter.use |
/teleporter view <all|owner|member> |
Highlights teleporter blocks | teleporter.view.* |
- Hold an Ender Pearl in your main hand
- Shift + Right-Click an allowed block
- The pearl is consumed and the block becomes a teleporter
- The GUI opens automatically — set an ID
- Bind a second block
- Set the same ID on both blocks (max 2 blocks per ID)
- Right-click either block to teleport to the other one
- Shift + Right-Click a bound block
- Requires
teleporter.manage(or you must be owner/member/global owner)
- Depends on the block settings:
- Click type: LEFT or RIGHT
- Sneak: required or not
- Item: custom-named item required or not
- Access is controlled by
TeleportAccess(OWNER / MEMBERS / OWNERS / ALL)
Elevator:
BlockTypes:
- CARPET
- BLACK_CARPET
# ... etc
BlockDistance: 50
EnableParticle: true
ParticleType: SPELL_WITCH
ParticleCount: 20
UsageSound: entity.enderman.teleport
ActivateSound: entity.player.levelup
AllowUnsafe: trueTeleporter:
EnableParticle: true
UsageSound: entity.enderman.teleport
AllowUnsafe: true
AllowCrossWorlds: true
AllowAllBlocks: false
BlockTypesPermission: ""
BlockTypes:
- SEA_LANTERN
- CRYING_OBSIDIAN
- LIGHT_BLUE_GLAZED_TERRACOTTA
DistanceCheck:
Enabled: true
MaxDistance: 10000.0
Bind:
ConsumePearl: trueTeleporterBlock:
Teleport:
Enabled: true
CheckPermission: false
Permission: "teleporter.teleport"
DefaultAccess: "ALL"
Manage:
Enabled: true
CheckPermission: false
Permission: "teleporter.manage"
DefaultAccess: "OWNER"
Break:
Enabled: true
CheckPermission: false
Permission: "teleporter.break"
DefaultAccess: "ALL"View:
DurationTicks: 200
UpdateEveryTicks: 5
MaxDistance: 64
ParticleCount: 3
ParticleType: END_RODHolograms:
DefaultEnabled: false
DefaultColor: "&#FF5300"
ViewDistance: 16
UpdateIntervalTicks: 20
ShowId: true
ShowName: true
Format: "%name% &7| &fID: %id%"
FormatNoName: "&7ID: %id%"
LineHeight: 0.3BlockNaming:
Enabled: true
MaxLength: 32
DefaultName: ""config.yml— plugin configurationblocks.yml— block data (auto-generated)Blocks.<world>_<x>_<y>_<z>— block entriesPlayers.<uuid>— global member/owner lists
For issues or suggestions, please open an issue on the GitHub repository.
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
Planned and proposed features, roughly ordered by priority.
- View mode —
/teleporter view <all|owner|member>with particle highlights - Holographic labels above blocks (name + ID, configurable color & view distance)
- Custom block names — assign a display name to each teleporter block
- Per-block sound & particle override — choose sound/particle per block from a list in the GUI
- Custom GUI sounds — click/pickup/open sounds configurable in
config.yml - GUI animations — blinking buttons, progress bars during long operations
- Dark theme GUI — black glass background, colored borders for active/inactive buttons
- CustomModelData support — texture packs for GUI items
- Bypass permissions —
teleporter.bypass.access,teleporter.bypass.distance,teleporter.bypass.item,teleporter.bypass.sneak - Password/key system — require a chat-entered password to teleport
- Region protection integration — WorldGuard, GriefPrevention, Towny
- Auto-cleanup of dead blocks — periodic scan of
blocks.ymlfor missing blocks - Per-player block limit —
teleporter.limit.10,teleporter.limit.50, etc.
- Per-block cooldown — configurable per block
- Warmup timer before teleport — cancel on move/damage
- Group teleport —
/teleporter tp <id>,/teleporter tp <id> <player>,/teleporter tphere <player> - Block categories — tags like
public,private,shop,pvpfor filtering - ID browser —
/teleporter idsto list all IDs and their owners
- Teleport cost — charge per use
- Bind cost — charge per block binding
- Pair cost — charge for linking two blocks
- Vault integration — soft-depend
- Debug mode — detailed console logging
- Action logs —
logs.yml/logs.txtwith timestamp, player, action, ID, location - Discord webhook — log block creation, deletion, teleports, errors
- Admin commands —
/teleporter admin list,remove <id>,transfer <id> <player>,reload - Statistics —
/teleporter stats, top-10 players by teleports
- PlaceholderAPI —
%teleporter_blocks%,%teleporter_teleports%,%teleporter_id% - WorldGuard — region-based restrictions
- Vault — economy
- Citizens — NPC teleporters
- Dynmap / BlueMap — display blocks on web map
- Import/export —
/teleporter export <file>,/teleporter import <file> - Auto-backup of
blocks.yml— periodic backups tobackups/ - GUI pagination for block lists — sorting by ID / name / date
- Multi-language support —
lang/en.yml,lang/ru.yml, etc. - Per-player language selection —
/teleporter lang <code>