Want to support my work? You can do so by buying the plugin from BuiltByBit https://builtbybit.com/resources/limbomanager.105562/
LimboManager
LimboManager is a versatile, fully-featured management plugin for Velocity that leverages LimboManager to intuitively weave proxy-side virtual dimensions into your network.
🌟 Key Features
* Fully customizable: You can create virtual limbo servers, great for auth plugins, like LibreLogin * Fully customizable: Prevent players from getting kicked from your server when it restarts. * Fully customizable: Automatically detects inactive players and sends them to a dedicated AFK limbo * Fully customizable: Limbo API provided schema loading, supports schematics, worldedit schematics and structs. * Fully customizable: You can edit nearly all strings that the plugin uses, except for console messages, for better support quality, it's left as English.
📦 Dependencies
To use LimboManager, you must install the following Velocity plugins alongside it: * must * %%MD1%%
⌨️ Commands & Permissions
The core command root is `/limbomanager`.
| Command | Permission | Description | |---|---|---| | `/limbomanager help` | None | Lists available commands. | | `/limbomanager reload` | `limbomanager.command.reload` | Hot-reloads all config spaces and language files. | | `/limbomanager diagnostics` | `limbomanager.command.diagnostics` | Dumps precise runtime diagnostics (active spaces, AFK module health, aliases) into chat. | | `/limbomanager send [player] [limbo]` | `limbomanager.command.send` | Forcibly pull a specific player out of their active server and plunge them into an enabled Limbo space. |
*(Alias mappings defined in your configurations automatically assign proxy-level command intercepts for your users)*
Configuration
`config.yml`
```yml
LimboManager global configuration.
Increment this value when schema changes require user action after updates.
config-version: 1
Active language file name from LimboManager/language/<lang>.yml
lang: "en" ```
`afk.yml` ```yml
Enables AFK detection and AFK limbo routing.
enabled: true
settings:
Idle time in seconds before a player is moved to AFK.
idle-time: 300
Sweep interval in seconds used to check idle players.
check-interval: 30
Players with this permission bypass AFK handling.
exempt-permission: "limbomanager.exempt.afk"
Message shown when player is moved to AFK.
message: "&7You have been moved to AFK due to inactivity."
If false, AFK players are not sent to AFK limbo.
use-limbo: true
Enables verbose AFK debug logs.
debug: false
world:
Client view distance while in AFK limbo.
view-distance: 2
Server simulation distance while in AFK limbo.
simulation-distance: 2
Prevents players from falling immediately after joining AFK limbo.
disable-falling: true
Delay (ms) before disabling falling.
disable-falling-delay-ms: 800
Limbo world dimension (NETHER, OVERWORLD, THE_END).
dimension: "THE_END"
Game mode used inside AFK limbo.
gamemode: "SPECTATOR"
Fixed world time shown to AFK players.
world-time: 0
Whether AFK players see each other.
others-visible: true
Global light level for generated chunks.
light-level: 15 spawn:
Spawn X coordinate.
x: 0.0
Spawn Y coordinate.
y: 100.0
Spawn Z coordinate.
z: 0.0
Spawn yaw rotation.
yaw: 0.0
Spawn pitch rotation.
pitch: 0.0 schematic:
Enables schematic paste into AFK limbo world.
enabled: false
Built-in format type (SCHEMATIC, STRUCTURE, WORLDEDIT_SCHEM).
type: "SCHEMATIC"
Relative path inside /schematics.
path: "" offset:
Paste offset X.
x: 0
Paste offset Y.
y: 64
Paste offset Z.
z: 0
display: on-join:
One-time chat message sent when player enters AFK limbo.
chat: "&7You are now AFK." bossbar:
Enables rotating/static AFK bossbar.
enabled: true
Bossbar title text (or list for animation).
title: "&6AFK"
Bossbar color.
color: "YELLOW"
Bossbar style.
style: "SOLID"
Progress from 0.0 to 1.0 (or list for animation).
progress: 1.0
Animation step interval; -1 keeps first value static.
animation: -1 actionbar:
Enables repeating AFK actionbar.
enabled: true
Repeating actionbar text.
message: "&7Move to return to your server..."
Animation step interval; -1 keeps first value static.
animation: -1 title:
Enables repeating AFK title.
enabled: true
Title text (or list for animation).
title: "&6AFK"
Subtitle text (or list for animation).
subtitle: ""
Fade-in ticks for repeating title.
fade-in: 10
Fade-out ticks for repeating title.
fade-out: 20
Animation step interval; -1 keeps first value static.
animation: -1
sounds: away:
Sound played when a player is moved to AFK.
name: "entity.experience_orb.pickup"
Sound volume.
volume: 1.0
Sound pitch.
pitch: 1.0 back:
Sound played when a player returns from AFK.
name: "entity.player.levelup"
Sound volume.
volume: 1.0
Sound pitch.
pitch: 1.0 ```
`reconnect.yml` ```
Enables reconnect handling for kicked/disconnected players.
enabled: true
settings:
Regex matched against disconnect reason to trigger reconnect flow.
trigger-message: '((?i)^(server closed|server is restarting|multiplayer\.disconnect\.server_shutdown))+$'
Delay (ms) between ping checks while waiting for target server.
check-interval: 1000
Ping timeout (ms) for availability checks.
ping-timeout: 500
Delay (ms) before reconnecting after server is available.
join-delay: 2000
If false, reconnect runs without sending player to limbo.
use-limbo: true
Enables verbose reconnect debug logs.
debug: false
world:
Client view distance while in reconnect limbo.
view-distance: 2
Server simulation distance while in reconnect limbo.
simulation-distance: 2
Prevents players from falling immediately after joining reconnect limbo.
disable-falling: true
Delay (ms) before disabling falling.
disable-falling-delay-ms: 800
Limbo world dimension (NETHER, OVERWORLD, THE_END).
dimension: "THE_END"
Game mode used inside reconnect limbo.
gamemode: "SPECTATOR"
Fixed world time shown to players.
world-time: 0
Whether reconnect-limbo players are visible to each other.
others-visible: true
Global light level for generated chunks.
light-level: 15 spawn:
Spawn X coordinate.
x: 0.0
Spawn Y coordinate.
y: 100.0
Spawn Z coordinate.
z: 0.0
Spawn yaw rotation.
yaw: 0.0
Spawn pitch rotation.
pitch: 0.0 schematic:
Enables schematic paste into reconnect limbo world.
enabled: false
Built-in format type (SCHEMATIC, STRUCTURE, WORLDEDIT_SCHEM).
type: "SCHEMATIC"
Relative path inside /schematics.
path: "" offset:
Paste offset X.
x: 0
Paste offset Y.
y: 64
Paste offset Z.
z: 0
commands:
Allow-list of commands executable while reconnecting.
- "newgen" - "oldgen"
display: on-join:
One-time chat message sent when player enters reconnect limbo.
chat: "&cAll servers are offline." bossbar:
Enables rotating/static reconnect bossbar.
enabled: true
Bossbar title text (or list for animation).
title: "&cFallback Limbo"
Bossbar color.
color: "RED"
Bossbar style.
style: "SOLID"
Progress from 0.0 to 1.0 (or list for animation).
progress: 1.0
Animation step interval; -1 keeps first value static.
animation: -1 actionbar:
Enables repeating reconnect actionbar.
enabled: true
Repeating actionbar text
message: "&7Reconnecting..."
Animation step interval; -1 keeps first value static.
animation: -1 title:
Enables repeating reconnect title.
enabled: true
Title text (or list for animation).
title: "&cServer Offline"
Subtitle text (or list for animation).
subtitle: "&7Attempting reconnect..."
Fade-in ticks for repeating title.
fade-in: 0
Fade-out ticks for repeating title.
fade-out: 0
Animation step interval; -1 keeps first value static.
animation: -1
sounds: waiting:
Sound played while waiting for target server to come online.
name: "entity.experience_orb.pickup"
Sound volume.
volume: 1.0
Sound pitch.
pitch: 1.0 connecting:
Sound played when reconnect handoff begins.
name: "entity.player.levelup"
Sound volume.
volume: 1.0
Sound pitch.
pitch: 1.0 ```
`lang.yml` ```yml common: no-permission: "&cYou do not have permission."
command: reload: success: "&aLimboManager reloaded." failed: "&cFailed to reload LimboManager. Check console." diagnostics: collecting: "&eCollecting diagnostics..." line: "&7{line}" help: |- &eLimboManager commands: &7/limbomanager reload &8- &fReload all config files &7/limbomanager diagnostics &8- &fShow runtime diagnostics &7/limbomanager send <player> <limbo> &8- &fSend a player to an enabled virtual limbo send: usage: "&cUsage: /limbomanager send <player> <limbo>" player-offline: "&cPlayer '&f{player}&c' is not online." unknown-limbo: "&cUnknown or disabled limbo '&f{limbo}&c'. Only enabled virtual limbos are allowed." success: "&aSent &f{player} &ato limbo &f{limbo}&a." target-notice: "&eYou were sent to limbo &f{limbo}&e by an administrator." no-enabled-limbos: "&7No enabled virtual limbo configs are loaded." enabled-limbos: "&7Enabled limbos: &f{limbos}"
player: command-blocked: "&cThis command is blocked while you are in limbo."
diagnostics: service-not-initialized: "LimboManager service is not initialized yet." info: |- LimboManager diagnostics: - virtual limbos: {virtual_count} - alias routes: {alias_count} - reconnect module: {reconnect_enabled} - afk module: {afk_enabled} - active limbo sessions: {active_count} - pending initial aliases: {pending_count} - ViaVersion: {via_status} ({via_details}) - LibreLogin: {libre_status} ({libre_details}) - LibreLogin: {libre_status} ({libre_details}) ```
`server.yml` ```
Enables or disables this virtual limbo profile.
enabled: false
settings:
Optional alias matched against target server names to override routing.
alias: ""
Enables extra debug logging for this profile.
debug: false
world:
Client view distance while in limbo.
view-distance: 2
Server simulation distance while in limbo.
simulation-distance: 2
Prevents players from falling immediately after joining limbo.
disable-falling: true
Delay (ms) before disabling falling.
disable-falling-delay-ms: 800
Limbo world dimension (NETHER, OVERWORLD, THE_END).
dimension: "THE_END"
Game mode used inside limbo.
gamemode: "SPECTATOR"
Fixed world time shown to players.
world-time: 0
Whether other limbo players are visible.
others-visible: true
Global light level for generated chunks.
light-level: 15 spawn:
Spawn X coordinate.
x: 0.0
Spawn Y coordinate.
y: 100.0
Spawn Z coordinate.
z: 0.0
Spawn yaw rotation.
yaw: 0.0
Spawn pitch rotation.
pitch: 0.0 schematic:
Enables schematic paste into limbo world.
enabled: false
Built-in format type (SCHEMATIC, STRUCTURE, WORLDEDIT_SCHEM).
type: "SCHEMATIC"
Relative path inside /schematics.
path: "" offset:
Paste offset X.
x: 0
Paste offset Y.
y: 64
Paste offset Z.
z: 0
Optional allow-list of commands that remain executable in this limbo.
commands: - "hub" - "lobby" - "queue"
Optional display configuration for join/bossbar/actionbar/title.
display: on-join:
One-time chat message sent when player enters limbo.
chat: "&cAll servers are offline." title:
Enables one-time join title.
enabled: true
Main join title text.
title: "&cHey there!"
Join subtitle text.
subtitle: "&7Why are you here?"
Title fade-in ticks.
fade-in: 10
Title stay ticks.
stay: 80
Title fade-out ticks.
fade-out: 20 actionbar:
Enables one-time join actionbar.
enabled: false
Join actionbar text.
message: "Something cool" bossbar:
Enables rotating/static bossbar while in limbo.
enabled: true
Bossbar title text (or list for animation).
title: "&cFallback Limbo"
Bossbar color (PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE).
color: "RED"
Bossbar style (SOLID, SEGMENTED_*).
style: "SOLID"
Progress from 0.0 to 1.0 (or list for animation).
progress: 1.0
Animation step interval; -1 keeps first value static.
animation: -1 actionbar:
Enables repeating actionbar while in limbo.
enabled: false
Repeating actionbar text
message: "&7Reconnecting..."
Animation step interval; -1 keeps first value static.
animation: -1 title:
Enables repeating title while in limbo.
enabled: false
Title text (or list for animation).
title: "&cServer Offline"
Subtitle text (or list for animation).
subtitle: "&7Attempting reconnect..."
Fade-in ticks for repeating title.
fade-in: 0
Fade-out ticks for repeating title.
fade-out: 0
Animation step interval; -1 keeps first value static.
animation: -1 ```