{"id":60380,"date":"2026-06-03T15:30:00","date_gmt":"2026-06-03T12:30:00","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/"},"modified":"2026-06-03T15:30:00","modified_gmt":"2026-06-03T12:30:00","slug":"dynamiclight","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/","title":{"rendered":"Dynamic Lights"},"content":{"rendered":"<p># DynamicLights<\/p>\n<p>Held items emit dynamic light that follows players **and mobs** in real time. Built for modern Paper 1.21+. No client mod, no ProtocolLib, no world modification.<\/p>\n<p>A torch in your hand lights up the cave around you. A jack-o-lantern on a zombie&#8217;s head lights up the zombie. Drop a lantern on the floor and it lights up the room. Walk away and the world goes dark again \u2014 your save file never changes.<\/p>\n<p>## Why this plugin<\/p>\n<p>&#8211; **Built for Paper 1.21+** \u2014 most alternatives are stuck on 1.16.<br \/>\n&#8211; **Mobs emit light** \u2014 give a zombie a torch in its hand or a jack-o-lantern on its head and it walks around lit up. Configurable per mob type.<br \/>\n&#8211; **Soft falloff clusters** \u2014 outer light blocks fade in brightness so motion looks smooth instead of jumpy.<br \/>\n&#8211; **Zero dependencies** \u2014 pure Paper API. No ProtocolLib, no PacketEvents.<br \/>\n&#8211; **Per-player toggle** \u2014 clients can opt out for performance. Persisted via PDC.<br \/>\n&#8211; **Per-world disable** \u2014 skip Nether, End, or any world by name.<br \/>\n&#8211; **Reload without restart** \u2014 `\/dl reload` reverts all phantom blocks, reloads config, resumes.<br \/>\n&#8211; **Tiny footprint** \u2014 ~40 KB jar, no shaded dependencies except bStats.<\/p>\n<p>## Features<\/p>\n<p>| Feature | Status |<br \/>\n| &#8212; | &#8212; |<br \/>\n| Player held items (main hand, off hand) | \u2705 |<br \/>\n| Player wearable lights (helmet slot) | \u2705 |<br \/>\n| Mob held items (zombies, skeletons, piglins, etc.) | \u2705 |<br \/>\n| Mob wearable lights (jack-o-lantern on a zombie&#8217;s head) | \u2705 |<br \/>\n| Dropped item lighting (lantern on the ground glows) | \u2705 |<br \/>\n| Configurable item \u2192 brightness map | \u2705 |<br \/>\n| Soft cluster falloff for smooth movement | \u2705 |<br \/>\n| Per-player toggle (`\/dl toggle`) | \u2705 |<br \/>\n| Per-world disable | \u2705 |<br \/>\n| Underwater (waterlogged light blocks) | \u2705 |<br \/>\n| No world modification \u2014 purely packet-based | \u2705 |<br \/>\n| Spectator and vanish detection | \u2705 |<br \/>\n| Hot reload | \u2705 |<br \/>\n| Replaceable-block whitelist (preserves slabs, banners, etc.) | \u2705 |<\/p>\n<p>## Compatibility<\/p>\n<p>&#8211; **Server**: Paper 1.21.x (built against 1.21.4 API; tested on 1.21.11). Should run on any 1.21 patch.<br \/>\n&#8211; **Java**: 21+.<br \/>\n&#8211; **Folia \/ Spigot**: untested. PRs welcome.<br \/>\n&#8211; **Conflicts**: none known. Does not modify world data, so safe to remove at any time.<\/p>\n<p>## Default item brightness<\/p>\n<p>&#8220;`<br \/>\nTORCH 14    LANTERN 15    GLOWSTONE 15    JACK_O_LANTERN 15<br \/>\nSOUL_TORCH 10    SOUL_LANTERN 10    REDSTONE_TORCH 7<br \/>\nSEA_LANTERN 15   SHROOMLIGHT 15   END_ROD 14<br \/>\nCAMPFIRE 14   SOUL_CAMPFIRE 10   GLOW_BERRIES 6   BLAZE_ROD 10<br \/>\n&#8220;`<\/p>\n<p>Add or override any material via `config.yml`.<\/p>\n<p>## Commands<\/p>\n<p>| Command | Permission | Description |<br \/>\n| &#8212; | &#8212; | &#8212; |<br \/>\n| `\/dynamiclights toggle` | `dynamiclights.toggle` | Toggle dynamic lights for yourself. |<br \/>\n| `\/dynamiclights reload` | `dynamiclights.reload` | Reload config + resume. |<br \/>\n| `\/dynamiclights status` | \u2014 | Diagnostics: tracked emitters, config summary. |<\/p>\n<p>Aliases: `\/dl`, `\/dynlights`.<\/p>\n<p>## Configuration<\/p>\n<p>&#8220;`yaml<br \/>\nenabled: true<br \/>\nview_radius: 32<br \/>\nupdate_interval_ticks: 1<br \/>\nmob_scan_interval_ticks: 4<br \/>\ntrack_mobs: true<br \/>\ntrack_items: true                # dropped items on the ground emit light<\/p>\n<p>suppress_vanished_emitters: true<br \/>\nsuppress_spectator_emitters: true<\/p>\n<p>cluster_radius: 1                # 0 = single column, 1 = 3&#215;3, 2 = 5&#215;5 (capped at 2)<br \/>\ncluster_height: 2                # 1 = head only, 2 = head + body (capped at 3)<br \/>\ncluster_falloff_per_block: 2     # subtract per block of distance from center<\/p>\n<p>disabled_worlds: []              # e.g. [world_nether, world_the_end]<\/p>\n<p>mob_whitelist:<br \/>\n  &#8211; ZOMBIE<br \/>\n  &#8211; SKELETON<br \/>\n  &#8211; PIGLIN<br \/>\n  &#8211; DROWNED<\/p>\n<p>equipment_slots:<br \/>\n  &#8211; MAIN_HAND<br \/>\n  &#8211; OFF_HAND<br \/>\n  &#8211; HEAD<\/p>\n<p>item_brightness:<br \/>\n  TORCH: 14<br \/>\n  LANTERN: 15<br \/>\n  GLOWSTONE: 15<br \/>\n  JACK_O_LANTERN: 15<\/p>\n<p>replaceable_blocks:              # only these blocks may be replaced with phantom light<br \/>\n  &#8211; AIR<br \/>\n  &#8211; CAVE_AIR<br \/>\n  &#8211; WATER<br \/>\n  &#8211; SHORT_GRASS<br \/>\n  &#8211; TALL_GRASS<br \/>\n&#8220;`<\/p>\n<p>## How it works<\/p>\n<p>When an entity holds a configured light item, the plugin sends each nearby player a phantom `minecraft:light[level=N,waterlogged=B]` block-update packet at the entity&#8217;s eye position (and surrounding cluster). The actual world is never touched \u2014 chunk lighting isn&#8217;t recomputed and no blocks are placed. When the entity moves, the previous block(s) are reverted with a real-block packet and new ones are emitted.<\/p>\n<p>Because the vanilla Minecraft client only knows about block-level lighting, dynamic lights inherently snap to the block grid. The cluster + falloff settings make the visual transitions softer but cannot make the light fully continuous \u2014 that requires a client-side mod such as LambDynamicLights or Optifine&#8217;s Dynamic Lights.<\/p>\n<p>## Performance<\/p>\n<p>On a 4-player test server with ~30 mobs holding torches, default cluster size (3\u00d72\u00d73 = 18 blocks per emitter), the per-tick task takes < 1 ms. If your server is CPU-bound:\n\n- Set `track_mobs: false` to skip the per-tick mob scan.\n- Lower `cluster_radius` to 0 (single column instead of 3\u00d73).\n- Increase `update_interval_ticks` to 2 (light follows entity at 10 Hz instead of 20 Hz).\n\n## Installation\n\n1. Drop `DynamicLights-x.y.z.jar` into your server's `plugins\/` folder.\n2. Restart.\n3. Edit `plugins\/DynamicLights\/config.yml` to taste.\n4. `\/dl reload`.\n\n## License\n\nProprietary \u2014 All Rights Reserved. You may install and run unmodified copies of the plugin on your own Minecraft servers. Redistribution, modification, and reverse engineering are not permitted without written permission.\n\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Held items emit dynamic light that follows players AND mobs. Modern Paper 1.21+. No client mod required.<\/p>\n","protected":false},"featured_media":60381,"template":"","meta":{"_minecraft_slug":"dynamiclight","_minecraft_project_id":"F8hNkKfB","_minecraft_author":"BeansNToast","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":43,"_minecraft_follows":2,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"dynamiclight.zip","_minecraft_size_bytes":73022,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T21:26:16.143847Z","_minecraft_date_created":"2026-05-12T00:13:41.223960Z","_minecraft_date_modified":"2026-05-14T06:11:55.739935Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/dynamiclight","_minecraft_icon_attachment_id":60381,"_minecraft_imported_at":"2026-06-03T12:30:01+00:00","_minecraft_import_hash":"52a361121608a395747daa5dc8d69a91","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[125,127,128,92],"mod_loader":[131,132,133],"minecraft_version":[62,37,40,41,73,74,38,78,79,80,81,82,163],"class_list":["post-60380","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-folia","mod_category-paper","mod_category-purpur","mod_category-utility","mod_loader-folia","mod_loader-paper","mod_loader-purpur","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dynamic Lights - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dynamic Lights - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Held items emit dynamic light that follows players AND mobs. Modern Paper 1.21+. No client mod required.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/\",\"name\":\"Dynamic Lights - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/dynamiclight-icon-226d03d411c9a391bd36984799e5526cffc4fd9e_96.webp\",\"datePublished\":\"2026-06-03T12:30:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/dynamiclight-icon-226d03d411c9a391bd36984799e5526cffc4fd9e_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/dynamiclight-icon-226d03d411c9a391bd36984799e5526cffc4fd9e_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/dynamiclight\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dynamic Lights\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dynamic Lights - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/","og_locale":"en_US","og_type":"article","og_title":"Dynamic Lights - Minecraft","og_description":"Held items emit dynamic light that follows players AND mobs. Modern Paper 1.21+. No client mod required.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/","name":"Dynamic Lights - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/dynamiclight-icon-226d03d411c9a391bd36984799e5526cffc4fd9e_96.webp","datePublished":"2026-06-03T12:30:00+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/dynamiclight-icon-226d03d411c9a391bd36984799e5526cffc4fd9e_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/dynamiclight-icon-226d03d411c9a391bd36984799e5526cffc4fd9e_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/dynamiclight\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Dynamic Lights"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/60380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/60381"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=60380"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=60380"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=60380"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=60380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}