promotional bannermobile promotional banner

Fairy Lights (Neoforge)

A modern port of the beloved decorative hanging lights mod, bringing customizable string lights, bunting, and garlands to Minecraft 1.21.1.
Back to Files

fairylights-8.0.11-neoforge-1.21.1.jar

File namefairylights-8.0.11-neoforge-1.21.1.jar
Uploader
ImbavirusImbavirus
Uploaded
Jul 21, 2026
Downloads
242
Size
829.6 KB
Mod Loaders
NeoForge
File ID
8475283
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:fairy-lights-neoforge-1429552:8475283"

Learn more about Curse Maven

What's new

Fairy Lights 8.0.11 - Stability, Colors, Placement

Critical Fixes

Server Watchdog Hang on Chunk Unload

  • Guarded HangingLightsConnection.removeLight() with world.isLoaded(pos) so unload no longer triggers blocking chunk loads / deadlocks.
  • Soft-teardown on fastener remove (noDrop() before connection teardown) to avoid item rain and world mutation during unload.

Placement Tether / Player Fling

  • Aborting a place (e.g. hotbar switch) now fully tears down the connection instead of only stripping the player’s incoming map entry.
  • PlayerFastener is ticked from ServerEventHandler and stored via NeoForge data attachments (replacing the fragile WeakHashMap).

Visual / Item Fixes

Invisible Black / Gray (and EMI icons)

  • Normalize dye/string/item tints to opaque ARGB for Minecraft 1.21 ItemColor.
  • Sync COLOR from connection logic on pickup; restore fl_backup_color for pennant patterns; opaque seasonal/ClientProxy fallbacks.

Light Block Toggle

  • Migrated dead LightBlock.use() to useItemOn / useWithoutItem and sync BE on with LIT.

Recipes / Data

  • Restored color_changing_light recipe (was a width-0 stub) and wire "colors" through crafting + ColorChangingBehavior.
  • Fixed light_twinkle crafting to persist the twinkle component; tooltip/name helpers read components correctly.
  • Fixed malformed NeoForge tag JSON for #c:ingots/iron and #c:nuggets/gold.

Performance

  • Stop per-tick sendBlockUpdated for dynamic catenaries (only sync when explicitly dirty).
  • Strip hot-path info logging (letter/pennant/tinsel/JEI).

Other

  • Pick-block (getCloneItemStack) updated for NeoForge 1.21.1.
  • Fastener renderer provides infinite render bounds so long connections cull correctly.
  • settings.gradle NeoForge plugin repo URL uses /releases.

This mod has no additional files