
A server-side plugin for Minecraft that adds visual selection rendering for WorldEdit.
WorldEditDisplay is a server-side plugin for Minecraft that adds visual selection rendering for WorldEdit. It intercepts WorldEdit's CUI (Client User Interface) protocol packets and renders selections using Display Entities on the server side. This means players can see their WorldEdit selections without installing any client-side mods.
Selection Types
Visual Rendering
Multi-language Support
The interface is available in multiple languages with automatic client language detection:
Player Settings
Players can customize their own rendering preferences:
Selection Sharing
/wedisplay shareView All Mode (op-only by default)
/wedisplay viewConfiguration System
config.ymlplayer_config/*.ymlWorldEditDisplay.jarplugins folderplugins/WorldEditDisplay/config.yml if needed/wedisplayreload to reload the configurationAdmin Commands
/wedisplayreload - Reload plugin configuration
worldeditdisplay.reload (default: op)Player Commands
/wedisplay set <renderer> <setting> <value> - Configure personal rendering settings
/wedisplay set cuboid edge_color #FFD700FFworldeditdisplay.use.settings/wedisplay reset <renderer> [setting] - Reset to server defaults
/wedisplay reset cuboid (reset all settings)/wedisplay reset cuboid edge_color (reset specific setting)/wedisplay show [renderer] - Show current settings
/wedisplay show (show all)/wedisplay show cuboid (show specific renderer)/wedisplay toggle - Toggle rendering on/off
/wedisplay reloadplayer - Reload your personal configuration file
/wedisplay lang <language> - Set interface language
/wedisplay lang en_us/wedisplay share invite <player> - Invite a player to view your selection
worldeditdisplay.use.share.invite/wedisplay share accept <player> - Accept a pending share invitation
worldeditdisplay.use.share.accept/wedisplay share revoke <player> - Revoke a share you previously granted
worldeditdisplay.use.share.revoke/wedisplay share unwatch <player> - Stop watching another player's selection
worldeditdisplay.use.share.unwatch/wedisplay share list [page] - List current share relationships
worldeditdisplay.use.share.listView All Sub-commands (op-only by default)
/wedisplay view - Toggle view-all mode (see all online players' selections)
worldeditdisplay.use.view/wedisplay view hide <player> - Exclude a player from your view-all mode
worldeditdisplay.use.view.hide/wedisplay view hideall - Exclude all online players from view-all mode
worldeditdisplay.use.view.hide/wedisplay view unhide <player> - Remove exclusion for a player
worldeditdisplay.use.view.hide/wedisplay view label - Toggle name label display for watched selections
worldeditdisplay.use.view.label/wedisplay view list [page] - Show view-all monitoring status
worldeditdisplay.use.view.listThe main configuration file is config.yml:
language:
default: "en-us" # Default language
auto_detect: true # Auto-detect player's client language
allow_player_change: true # Allow players to change language manually
renderer:
cuboid:
edge_color: "#FFD700FF" # Color for edges in #RRGGBBAA
edge_thickness: 0.05 # Line thickness
grid_spacing: 8 # Grid spacing
fill_enabled: true # Enable face filling
fill_color: "#FF000040" # Face fill color
# ... more settings
player_limits:
thickness:
min: 0.01 # Minimum thickness
max: 0.5 # Maximum thickness players can set
# ... more limits
Each renderer type has its own configuration section:





Core Components
Rendering Technology
The plugin uses Minecraft's Display Entity system:
Performance
worldeditdisplay.use: # Use visualization features (default: true)
worldeditdisplay.use.settings: # Manage personal rendering settings (default: true)
worldeditdisplay.use.share: # General share feature toggle (default: true)
worldeditdisplay.use.share.invite: # Send share invitations (default: true)
worldeditdisplay.use.share.accept: # Accept share invitations (default: true)
worldeditdisplay.use.share.revoke: # Revoke granted shares (default: true)
worldeditdisplay.use.share.unwatch: # Stop watching a shared selection (default: true)
worldeditdisplay.use.share.list: # List share relationships (default: true)
worldeditdisplay.use.view: # Toggle view-all mode (default: op)
worldeditdisplay.use.view.defaultenable: # Auto-enable view-all on join (default: op)
worldeditdisplay.use.view.hide: # Hide players from view-all (default: op)
worldeditdisplay.use.view.list: # List view-all monitoring status (default: true)
worldeditdisplay.use.view.label: # Toggle name label display (default: true)
worldeditdisplay.use.view.label.defaultenable: # Auto-enable labels on join (default: true)
worldeditdisplay.reload: # Reload configuration (default: op)
worldeditdisplay.render.auto-enable: # Automatically enable rendering on join (default: true)
About Auto-Enable Permission
The worldeditdisplay.render.auto-enable permission controls whether rendering is automatically enabled when a player joins the server:
/wedisplay toggle to enable renderingThis allows server admins to control which player groups have rendering enabled by default.
Basic Usage
//wand command to get the selection tool/wedisplay commands to customize the appearanceCustomization Examples
# Change cuboid edges to solid diamond blue
/wedisplay set cuboid edge_color #55FF55FF
# Make lines thicker
/wedisplay set cuboid edge_thickness 0.08
# Change grid spacing
/wedisplay set cuboid height_grid_division 2
# Enable face filling with half-transparent red
/wedisplay set cuboid fill_enabled true
/wedisplay set cuboid fill_color #FF000080
# Toggle rendering on/off
/wedisplay toggle
# Reset all settings
/wedisplay reset cuboid
To build the plugin from source:
mvn clean package
The compiled jar will be in target/WorldEditDisplay-version-platform.jar
Project Structure
src/main/java/dev/twme/worldeditdisplay/
├── event/ # CUI event system
├── display/ # Render engine
│ └── renderer/ # Renderer implementations
├── config/ # Configuration management
├── lang/ # Language system
├── command/ # Command handlers
├── listener/ # Packet listeners
└── player/ # Player data management
Issues and pull requests are welcome.
See LICENSE file for details.
Made with ❤️ by TWME-TW