Tags
Creators
Details
2.2.0
Compatibility
Required content
Changes
WorldEditDisplay 2.2.0 Selection Sharing, Multi-Platform Support & Performance Improvements
Summary
Major release introducing a Selection Sharing System that lets players share their WorldEdit selections with others in real-time, expanded multi-platform support (Paper, Folia, Spigot), a new RegionRenderer abstract base class for a more extensible rendering architecture, and numerous performance improvements with render caching and async operations.
New Features
Selection Sharing System
- Added
/wedisplay sharecommand to invite other players to view your selection - Selections shared in real-time with persistent storage across sessions
- Each shared selection is assigned a unique color generated automatically
- Unused shared colors are released when sharing ends to optimize resources
- Permission-based access control:
worldeditdisplay.sharerequired to use share commands - Share manager configuration is reloadable via
/wedisplayreload
RegionRenderer Abstract Base Class
- Introduced
RegionRendererabstract base class for a unified and extensible rendering architecture - Simplifies adding new region types and customizing render behavior
Multi-Platform Support
- Added official support for Folia (region-threaded scheduling)
- Added official support for Spigot (in addition to Paper)
- Task scheduling is now platform-aware and routes to the correct scheduler automatically
Region Bounding Box & Distance Utilities
- Added bounding box calculation methods to region objects
- Added distance calculation methods between regions and players for range-based optimizations
Improvements
Rendering Performance
- Introduced renderer-level caching to reduce redundant computation
- Name cache logic for shared renders is now correctly invalidated to avoid stale reads
- Clearing a sharer's render now properly releases associated resources
- Render brightness and label position adjustments for improved visual quality
Async Settings I/O
- Player settings are now saved asynchronously to prevent main-thread blocking
- Config saves are deferred to a scheduled task to avoid repeated disk writes during rapid state changes
Thread Safety
- Share request timeout is now stored in a thread-safe mutable field
- Player multi-region map is now returned as an unmodifiable view to protect data integrity
Bug Fixes
- fix(render): Corrected shared render name-cache invalidation logic to prevent unnecessary re-reads
- fix(player): Returned unmodifiable multi-region map to protect internal data from external mutation
- fix(share): Made share request timeout mutable for proper thread-safe handling
- fix(render): Adjusted brightness calculation and label position for better display results
Technical & CI Updates
- Updated GitHub Actions workflow file versions for improved stability
- Added
adventure-apiexclusion filter to the Spigot Maven profile to prevent class conflicts - Removed
SHARE-DESIGN.mddesign document (merged into implementation)
System Requirements
| Component | Requirement |
|---|---|
| Minecraft | 1.20 ~ 1.21.x |
| Java | 21+ |
| Platform | Paper / Folia / Spigot |
| PacketEvents | 2.11.1+ |
| WorldEdit | Latest stable / FAWE |
Configuration Notes
- No breaking configuration changes from 2.1.x.
- A new
sharesection will be generated inconfig.ymlon first launch. - Run
/wedisplayreloadafter upgrading to apply any new defaults.
Download
Available on GitHub Actions and Modrinth.
Support
For issues, feature requests, or questions, please open an issue on our GitHub repository.
Full Changelog: 2.1.2...2.2.0
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:eVvfozdY:6aZP512Q"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:eVvfozdY:6aZP512Q"
}

