LobbyHarness - Interactive Flyable Ghast Mount for Lobbies
LobbyHarness is a highly polished, interactive lobby utility plugin for Minecraft 1.21.11. It introduces a customizable "harness" toggle item (defaulting to YELLOW_HARNESS / Yellow Horse Armor) that allows players to instantly launch into the air and summon a real, flyable Happy Ghast mount controlled directly with standard movement keys.Technical Specifications
- Platform Compatibility: Spigot, Bukkit, Purpur, and Leaf.
- Java Requirement: Java 21+
- API Framework: Compiled against the paper-api but utilizes strictly native org.bukkit.* endpoints, ensuring seamless cross-platform execution on all four major server implementations.
- Performance Optimization: Features an event-driven, zero-tick-scanning architecture. Exactly one entity is registered per active player and exists only while mounted. The mount has no persistent AI, is never saved to world files, and is instantly garbage-collected upon dismount, disconnection, or player death.
How It Works and Player Interactions
- Automatic Join Delivery: Players receive the harness item in their configured hotbar slot upon logging into the server.
- Double-Click Toggle (Summon & Dismiss):
- Summoning: Right-clicking the harness triggers a launch phase. The player is thrown upward (resembling a wind charge) with custom sound and particle effects. After a brief delay (default: 1 second / 20 ticks), the Happy Ghast spawns directly beneath the player, instantly mounting them.
- Dismissal: Right-clicking the harness again despawns the mount, triggering custom despawn particles (such as black dust) and a death sound.
- Ceiling Clearance Check: If a solid block is detected directly above the player's head (within the configured launch.clearance-range distance), the launch sequence is canceled. A disappointed villager sound plays, and a 3-second anti-spam cooldown is enforced.
- Anti-Glitch Item Safety: Swapping hotbar slots away from the harness instantly despawns the active Ghast. Similarly, if you move the item within your inventory (when locked: false) or drop it on the ground (when allow-drop: true), the mount is safely dismissed.
- Dismount Rules: Pressing the sneak key (Shift) as the owner of the mount automatically despawns the Ghast. If non-owner passengers shift off, they simply dismount while the Ghast remains active.
- Passenger Seats: Up to 4 players can sit on a single Ghast (respecting vanilla passenger limits). When a passenger boards, existing riders receive a customizable chat notification and a clean "pling" audio cue. This behavior can be disabled globally via passengers.allow-others.
- Global Server Limits: The active count of summoned mounts is capped (default: 25). Attempting to spawn past this limit triggers an error message and sound with an integrated anti-spam cooldown.
- Speed Booster Toggles: Left-clicking while holding the saddle cycles the Ghast's flight speed through configured levels (e.g., 2 → 4 → 6 → Disabled). This action is governed by a 1-second cooldown, playing a generic click sound during shifts and a distinct reset sound when turning the booster off. Speed increments apply a clean Speed potion effect without particles and scale the entity's flying speed attributes by +20% per level.
Configuration (config.yml)
The configuration file allows you to customize item layouts, movement capabilities, and particle feedback:| Configuration Key | Description |
| item.material | The base material used for the harness toggle (default: YELLOW_HARNESS). |
| item.slot | The fixed hotbar slot assigned to the item (range 0-8). |
| item.name / item.lore | Item display configurations (supports MiniMessage, legacy &, and HEX color codes). |
| item.glow | Toggles whether the harness has an active enchantment glow effect. |
| give-on-join | When true, automatically drops the harness into the player's inventory on join. |
| behavior.locked | Prevents players from moving the harness item around inside their inventories. |
| behavior.allow-drop | Prevents players from dropping the harness on the ground. |
| behavior.keep-on-death | Ensures the item is retained in the inventory rather than lost upon player death. |
| ghast.scale | Visual scale size of the summoned Happy Ghast (default: 0.3). |
| speed.levels | Defines the step values for the speed boost cycler (4th click disables). |
| speed.cooldown-ms | Anti-spam cooldown timing between speed changes (default: 1000). |
| speed.click-sound / reset-sound | Sound effects triggered during speed changes and deactivations. |
| ghast.invulnerable / silent | Configures the mount to ignore damage sources and silence natural Ghast sounds. |
| cooldown-ms | Central invocation cooldown to prevent summon-spamming (default: 3000). |
| effects.spawn.* | Particle styles and audio profiles used when the Ghast is summoned. |
| effects.despawn.* | Particle styles (default: black DUST) and sound profiles used during despawn. |
| launch.enabled | Enables the wind-charge jump prior to mounting (false maps to instant summons). |
| launch.power | Custom vector power modifying how high the player is launched. |
| launch.delay-ticks | Tick delay between launching and placing the player on the Ghast (20 ticks = 1s). |
| launch.clearance-range | Safe block clearance height required directly above the player's head. |
| launch.particle / sound | Environmental wind-charge effects utilized during launch. |
| launch.blocked-sound | Blocked sound file, volume, pitch, and associated cooldown settings. |
| passengers.allow-others | Toggles passenger capability for other players. |
| passengers.notify | Enables chat alerts and boarding sounds for current riders when a passenger joins. |
| limits.max-ghasts | Maximum global active mounts allowed on the server simultaneously (0 = uncapped). |
| limits.full-message / full-sound | Error messages and audio profiles dispatched when the server-wide limit is reached. |
Commands & Permissions
| Command | Description | Permission |
| /harness give [player] | Dispatches the custom harness item to a target player. | harness.admin (Default: OP) |
| /harness reload | Reloads the config and dynamically refreshes the item slots for all online players. | harness.admin (Default: OP) |
Usage Permission: harness.use (Granted to all players by default. Allows receiving, holding, and summoning the harness mount).
