A Minecraft plugin that renders visible particle forcefields around WorldGuard regions that players cannot enter.
- Automatically detects WorldGuard regions with
entry denyflag - Renders visible glass pane barriers and particle effects for blocked regions
- Only shows forcefields to players who actually cannot enter (respects bypass permissions and ops)
- Glass panes only placed where there's currently air (doesn't cover existing blocks)
- Configurable particle color, size, spacing, and render distance
- Configurable block material (glass panes, barriers, etc.)
- Supports cuboid and polygonal region types
- Performance-optimized with distance-based rendering
- Automatic cleanup when players move away or disconnect
- Clean, readable, and well-documented code
- Paper 1.21.8 or higher
- WorldGuard 7.0.14 or higher
- Java 21
-
Build the plugin:
./gradlew build
-
Copy
build/libs/RegionForcefield-1.0.0.jarto your server'splugins/folder -
Restart your server
-
Configure the plugin by editing
plugins/RegionForcefield/config.yml
Once installed, the plugin automatically works with your existing WorldGuard regions:
- Create a WorldGuard region:
/rg define myregion - Set the entry flag to deny:
/rg flag myregion entry deny - Players who cannot enter the region will see a purple forcefield around it
/forcefield debugor/ff debug- Toggle debug mode on/off/forcefield reloador/ff reload- Reload the configuration file/forcefield statusor/ff status- View plugin status and settings/forcefield infoor/ff info- View information about blocked regions nearby/forcefield material <MATERIAL>or/ff material <MATERIAL>- Change the block material (e.g., BARRIER, GLASS)/forcefield testor/ff test- Test block rendering/forcefield helpor/ff help- Show command help
Players who are members or owners of a region can enter it even if entry is denied for others. These players will not see the forcefield.
regionforcefield.*- Grants all permissions (default: op)regionforcefield.command- Allows use of/forcefieldcommand (default: true)regionforcefield.debug- Allows toggling debug mode (default: op)regionforcefield.reload- Allows reloading config (default: op)regionforcefield.status- Allows viewing status (default: op)regionforcefield.info- Allows viewing region info (default: true)
Edit plugins/RegionForcefield/config.yml:
# Enable debug logging (useful for troubleshooting)
debug: false
# Update frequency (20 ticks = 1 second)
update-interval-ticks: 20
# Maximum render distance in blocks
max-render-distance: 100
# Render walls or just edges
render-walls: true
# Particle rendering
render-particles: true
particle-spacing: 0.5
particle-color:
red: 147
green: 112
blue: 219
particle-size: 1.0
# Block rendering
render-blocks: true
block-spacing: 1.0
block-material: PURPLE_STAINED_GLASS_PANE- Reduce
max-render-distancefor servers with many regions - Set
render-particles: falseto disable particles and only show blocks - Set
render-blocks: falseto disable glass panes and only use particles - Increase
particle-spacingto reduce particle count - Increase
block-spacingto reduce block count - Set
render-walls: falseto only show edges (not faces) - Increase
update-interval-ticksif you don't need real-time updates - Use
BARRIERblocks instead of glass panes (less visible but lighter)
- Enable debug mode:
/forcefield debugor setdebug: truein config.yml - Check the server console for debug messages
- Use
/forcefield infoto see if regions are being detected - Verify the region has
entry denyset:/rg info <region> - Check you can't actually enter - ops and members won't see forcefields
- Ensure you're within render distance of the region (default: 100 blocks)
- Try setting
render-blocks: trueif you only see particles - Check that locations aren't already occupied by blocks
- Verify WorldGuard 7.0.14 or higher is installed
- Check server logs for error messages
- Ensure you're running Paper 1.21.8 or higher
- Verify Java 21 is being used
- Increase
particle-spacing(less particles) - Reduce
max-render-distance - Set
render-walls: false(edges only) - Increase
update-interval-ticks(update less frequently)
./gradlew buildThe compiled JAR will be in build/libs/
This project is provided as-is for educational purposes.
For issues or feature requests, please open an issue on the project repository.