Skip to main content
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.

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.

Configuration

The configuration is managed via ghost_player/config.yml.
SettingDefaultDescription
update-rate5Ticks between position broadcasts. Lower values = smoother movement but more network traffic.
server-namerandomUnique identifier for the current server instance. Must be unique across the network.
allowed-worlds[]List of worlds where ghosts should be visible. Empty = all worlds.

Commands

CommandDescriptionPermission
/ghost toggleToggle the visibility of ghost players on your screen.typewriter.ghost.use

Permissions

PermissionDescriptionDefault
typewriter.ghost.useAllows the player to see and interact with ghosts.true
typewriter.ghost.adminAllows configuration of ghost settings.op

Dependencies

ExtensionRequiredUsage
BTC CoreMandatoryCore engine dependency.
MySQL/RedisMandatoryRequired for cross-server data synchronization.