
DynLight
dynamic lights -- held or dropped items, glowing or on-fire mobs, flaming arrows, etc. configurable and provides an API for other plugins
A dynamic entity-based lighting plugin, which allows for integrations with other plugins.
Held items, dropped items, burning mobs, and other entities glow. Fully configurable, and other plugins can use the API or scoreboard tags to define their own custom glowing entities.
Features
Light Sources
- Held Items - Torches, lanterns, glowstone, and 40+ other items emit light when held
- Dropped Items - Items on the ground emit their light level
- Burning Entities - Any entity on fire glows with configurable intensity
- Flaming Projectiles - Arrows on fire, fireballs, and spectral arrows emit light
- Enchanted Equipment - Players wearing enchanted armor or holding enchanted items emit a subtle glow
- Always-Lit Entities - Blazes, Glow Squids, Magma Cubes, and Allays always emit light
- Scoreboard Tag Lights - Any entity with a
dynlight:<level>scoreboard tag emits light, enabling cross-plugin integration without compile-time dependencies
Special Mechanics
- Water Sensitivity - Fire-based items (torches, campfires) are extinguished underwater while waterproof items (glowstone, sea lanterns) continue to glow
- Client-side only - Light blocks are packet based, and don't modify the world. Inspired by DynamicLights
- Per-Player Toggle - Players can individually enable/disable dynamic lights client side
- Async Rendering - Light calculations run asynchronously for minimal server impact
Configuration
Performance settings:
# Update interval in ticks (20 ticks = 1 second)
# smaller values = more frequent updates = smoother light movement but higher CPU usage
update-interval: 1
# Maximum distance to render dynamic lights (blocks)
render-distance: 96
# How often to check for fire expiration on entities (ticks, 10 = 0.5 seconds)
fire-sweep-interval: 10
Enable or disable specific light source types:
detection:
held-items: true
dropped-items: true
burning-entities: true
flaming-arrows: true
enchanted-armor: true
enchanted-items: true
always-lit-entities: true
tagged-entities: true
Configure light intensity for enchanted equipment:
light-levels:
enchanted-armor: 3
enchanted-items: 3
Configure how items emit light:
items:
TORCH:
light: 10
water-sensitive: true
LANTERN:
light: 12
water-sensitive: false
Water-sensitive items stop emitting light when submerged.
Configure how entities emit light when on fire:
entities:
# Properties: base-light, fire-light, horizontal-radius, height
BLAZE:
base-light: 8 # Always emits light
fire-light: 15
| Property | Description | Default |
|---|---|---|
base-light | Light level when not on fire (0 = only when burning) | 0 |
fire-light | Light level when on fire | 12 |
horizontal-radius | Light column radius (0=1x1, 1=3x3, 2=5x5) | 1 |
height | Light column height in blocks | 2 |
The light column will once place one light block -- we search wider than you'd think to avoid obstacles, since light blocks can't be placed inside things like vines, tall grass, ladders, etc.
Commands
| Command | Description | Permission |
|---|---|---|
/dynlight help | Show available commands | - |
/dynlight enable | Enable dynamic lights for yourself | dynlight.use |
/dynlight disable | Disable dynamic lights for yourself | dynlight.use |
/dynlight info | Show active light source count | dynlight.admin |
/dynlight stats | Show detailed statistics | dynlight.admin |
/dynlight reload | Reload configuration | dynlight.admin |
/dynlight regen | Regenerate all light sources | dynlight.admin |
Scoreboard Tag Lights
Any entity with a scoreboard tag matching dynlight:<level> will emit light. No API dependency required — just add the tag via commands or another plugin.
Format: dynlight:<level> or dynlight:<level>:<radius>:<height>
| Parameter | Range | Description |
|---|---|---|
level | 1–15 | Light level |
radius | 0–5 | Horizontal search radius (optional, default from entity config) |
height | 1–10 | Vertical search height (optional, default from entity config) |
Examples:
/summon armor_stand ~ ~ ~ {Tags:["dynlight:15"]}
/summon armor_stand ~ ~ ~ {Tags:["dynlight:10:3:5"]}
Note: the /tag command does not support colons in tag names — use NBT Tags when summoning, or add tags programmatically from another plugin.