Skip to main content

Ghost Extension

Real-time cross-server player visualization using Redis technology.

The Ghost Extension brings a sense of liveliness to your network by rendering “ghost” versions of players who are currently connected to other servers. Inspired by systems found in large networks like Wynncraft, it allows players to see each other’s avatars and movements across your entire ecosystem.
[!IMPORTANT] Redis and BTC Core are mandatory for this extension to function.

Cross-Server Visibility

Synchronize player positions, skins, and animations across different server instances.

High Performance

Powered by Redis pub/sub and PacketEvents for minimal latency and server tick impact.

Key Features

  • Real-Time Synchronization: High-frequency position updates handled outside the main server tick.
  • Toggleable Visibility: Players can choose to hide ghosts using simple commands to reduce visual clutter.
  • Smart Filtering: Configurable world-based broadcasting and hiding of close-proximity ghosts.
  • Client-Side Rendering: Ghosts are rendered as purely virtual entities (Packets), ensuring they don’t interfere with physics or server performance.
  • Skin Support: Automatically fetches and maintains player skins for full visual immersion.

Commands & Permissions

Player Commands

CommandDescription
/ghost toggleToggle the visibility of ghost players on your screen.

Permissions

PermissionDescription
typewriter.ghost.useAllows the player to see and interact with ghosts.

Configuration

The configuration is managed via ghost_player/config.yml.
SettingDefaultDescription
update-rate5Ticks between position broadcasts.
server-namerandomUnique identifier for the current server instance.
allowed-worlds[]List of worlds where ghosts should be visible.

Dependencies

ExtensionUsage
BTC CoreMandatory. Core engine dependency.
MySQL/RedisMandatory. Required for cross-server data synchronization.