0.3.0latestBetterElevator 0.3.0May 18, 2026 BetterElevator
Real-block elevators with smooth motion, solid walls, and per-elevator speed control. Folia and Paper safe. ---Features
- Build your own cabin — select any shape with a blaze rod, run/bet create <name>, done. No restrictive templates. - Smooth, real-block motion — the cabin moves as actual FallingBlocks with vanilla physics carrying you up/down. No teleport jank, no "fall through floor" bugs. - Solid walls (via ProtocolLib) — passengers can't walk through cabin walls horizontally. Implemented with client-only block packets — server world untouched, non-passengers see nothing. Predictive packet scheduling compensates for network latency. - Per-elevator speed levels —/bet speed <elevator> <level>switches between configurable speeds (default 2.5 / 5 / 10 / 20 blocks/sec). Persisted per elevator. - Sign and button triggers — write[BET] / <elevator> / <floor>on a sign and right-click rides. Or/bet bind <elevator>to turn any block into a call button (opens a floor-picker chest GUI). - Auto floor registration — writing[BET] / <elevator> / 5F:+6on a sign auto-registers a new floor 6 blocks above the highest existing one. - Per-player permission groups — limit max cabin size, max elevators owned, max speed per group viapermissions/groups.yml. - World filtering — whitelist/blacklist worlds where elevators work. - Multi-backend storage — YAML (default), SQLite, or MySQL. SQL backends auto-migrate schema. - i18n — bundledzh_twanden_us; each player sees their client locale automatically. Drop in your ownlang/<locale>.yml. - Mixed colour syntax — every message accepts MiniMessage tags, legacy&6codes, and hex&#FFAA00/#FFAA00freely mixed. - Auto config migration — new config keys from updates are merged into your existing config on reload, with comments. Existing values are never overwritten. ---Requirements
- Paper 1.21+ (or any Folia build) - ProtocolLib (soft dependency — only needed for solid walls; without it the plugin runs fine and walls fall back to walk-through) - Java 21+ ---Quick start
1. Drop the jar inplugins/. 2. Restart. 3. Get a blaze rod. Left-click one corner of your cabin, right-click the opposite corner. 4. Stand inside the cabin. Run/bet create lobby. 5. Place a sign somewhere with: [BET] lobby 2F:+5 Right-click it. Cabin moves 5 blocks up. ---Commands
| Command | Description | |---|---| |/bet create <name>| Create elevator from current selection + standing position | |/bet floor add <elevator> <floor>| Register your current position as a floor | |/bet floor remove <elevator> <floor>| Remove a floor | |/bet bind <elevator>| Bind the block you're looking at as a call button | |/bet unbind| Remove the call-button binding from the targeted block | |/bet goto <elevator> <floor>| Force-call elevator to a floor | |/bet speed <elevator> <level>| Switch speed level | |/bet list| List all elevators | |/bet info <elevator>| Inspect an elevator | |/bet delete <elevator>| Delete an elevator | |/bet reset <elevator\|all>| Clear stuck ride state / orphan blocks | |/bet reload| Reload config, lang, permissions | ---Permissions
-betterelevator.admin— full management (default: op) -betterelevator.use— ride elevators via signs/buttons (default: true) -betterelevator.speed— change elevator speed level (default: op) -betterelevator.group.<name>— per-group limits inpermissions/groups.yml---Configuration highlights
```yaml motion: default-blocks-per-second: 2.5 speed-levels: [2.5, 5.0, 10.0, 20.0] passengers: fake-wall-blocks: true # solid walls via ProtocolLib fake-wall-lookahead-ticks: 2 # latency compensation inride-friction: 0.6 # X/Z friction while riding worlds: mode: all # all / whitelist / blacklist list: [] storage: type: yaml # yaml / sqlite / mysql Notes Folia: the plugin uses per-region scheduling for block writes and entity work. Cross-region rides work. Passenger limits: by default the cabin carries the player plus any mobs and dropped items inside it. Toggle via passengers.carry-mobs / passengers.carry-items. Storage migrates from older versions automatically. Don't lose any existing data. Bug reports and PRs welcome.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta