Beltborne Lanterns: Accessories Layer
Compatibility bridge between Beltborne Lanterns and Accessories (WispForest).
Equip your lantern in the Accessories Belt slot — it works just like the default belt: sways with physics, casts dynamic light, and keeps your hands free.
🧩 What it does
- Registers all Beltborne Lanterns items as valid Belt accessories.
- Syncs the belt state — equipping via Accessories or pressing B both work seamlessly.
- Fully client & server: renders the lantern on other players and emits light for everyone.
📷 Showcase

⚙️ Requirements
- Beltborne Lanterns — the core mod
- Accessories — the accessory API by WispForest
🔧 For Modpack Makers
By default, lanterns can only be placed in the Belt slot. You can customize this by editing config/bl_accessories_layer.json (auto-generated on first launch):
{
"allowed_slots": ["belt"]
}
To allow additional slots (e.g. charm, necklace), add them to the list:
{
"allowed_slots": ["belt", "charm", "necklace"]
}
No datapacks or item tags are needed — the mod handles slot validation automatically.
Credits
- @DistantDig — idea for configurable slot support (#7)
📜 License
This project is licensed under the Apache License 2.0 — see the LICENSE file for details.
Full license text: Apache 2.0
Crafted with ❤️ for the Minecraft community
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 |
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on Fabric when the Accessories slot mixin could not remap the getMaxStackSize method descriptor
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### Bug Fixes
- Fixed a crash on game startup when playing on Fabric
- Fixed lantern duplication on death when used with mods like "You're in Grave Danger"
### New Features
- Render toggle support — pressing the visibility toggle button in the Accessories UI now hides/shows the BL lantern render
- Cosmetic slot support — placing a different lantern in the cosmetic slot now overrides the rendered lantern visual
v1.1.0 — _Configurable accessory slots_
### New Features
- Added configurable slot support — modpack makers can now specify which Accessories slots accept lanterns via
config/bl_accessories_layer.json - Default configuration uses
["belt"]only, preserving full backward compatibility - Config file is auto-generated on first launch with default values
- Slot validation is handled via mixin — no manual datapacks needed for configured slots
- Removed hardcoded
belt.jsonitem tag in favor of dynamic validation
### Bug Fixes
- Fixed lanterns stacking beyond 1 in accessory slots
v1.0.7 — _Respawn reliability fixes_
### Bug Fixes
- Fixed race condition on NeoForge where Clone event handler could read belt slot before Accessories finished copying attachment data, potentially losing lamp state on death
- Fixed phantom lamp after respawn where mirror state could be restored without an actual item in the belt slot
v1.0.6 — _Stability & compatibility improvements_
### Bug Fixes
- Fixed lantern disappearing when inventory is full — now drops at your feet
- Fixed lantern duplication/desync after death and respawn
- Fixed lantern state clearing during internal sync operations
- Fixed potential item duplication via mirrored state not being cleared on death
- Fixed
getBeltStackImplreturning non-empty Optional with an empty ItemStack - Fixed NeoForge reload listener registration causing potential crash on startup
- Fixed duplicate
no_rendererregistration producing error logs on resource reload
### Improvements
- Added defensive try-catch for Fabric reload listener registration
- Added
accessoriesas a required dependency in mod metadata (Fabric & NeoForge) - Migrated from Architectury Loom to Multiloader build system
### New Features
- Render toggle support — pressing the visibility toggle button in the Accessories UI now hides/shows the BL lantern render
- Cosmetic slot support — placing a different lantern in the cosmetic slot now overrides the rendered lantern visual
v1.1.0 — _Configurable accessory slots_
### New Features
- Added configurable slot support — modpack makers can now specify which Accessories slots accept lanterns via
config/bl_accessories_layer.json - Default configuration uses
["belt"]only, preserving full backward compatibility - Config file is auto-generated on first launch with default values
- Slot validation is handled via mixin — no manual datapacks needed for configured slots
- Removed hardcoded
belt.jsonitem tag in favor of dynamic validation
### Bug Fixes
- Fixed lanterns stacking beyond 1 in accessory slots
v1.0.7 — _Respawn reliability fixes_
### Bug Fixes
- Fixed race condition on NeoForge where Clone event handler could read belt slot before Accessories finished copying attachment data, potentially losing lamp state on death
- Fixed phantom lamp after respawn where mirror state could be restored without an actual item in the belt slot
v1.0.6 — _Stability & compatibility improvements_
### Bug Fixes
- Fixed lantern disappearing when inventory is full — now drops at your feet
- Fixed lantern duplication/desync after death and respawn
- Fixed lantern state clearing during internal sync operations
- Fixed potential item duplication via mirrored state not being cleared on death
- Fixed
getBeltStackImplreturning non-empty Optional with an empty ItemStack - Fixed NeoForge reload listener registration causing potential crash on startup
- Fixed duplicate
no_rendererregistration producing error logs on resource reload
### Improvements
- Added defensive try-catch for Fabric reload listener registration
- Added
accessoriesas a required dependency in mod metadata (Fabric & NeoForge) - Migrated from Architectury Loom to Multiloader build system
### New Features
- Render toggle support — pressing the visibility toggle button in the Accessories UI now hides/shows the BL lantern render
- Cosmetic slot support — placing a different lantern in the cosmetic slot now overrides the rendered lantern visual
v1.1.0 — _Configurable accessory slots_
### New Features
- Added configurable slot support — modpack makers can now specify which Accessories slots accept lanterns via
config/bl_accessories_layer.json - Default configuration uses
["belt"]only, preserving full backward compatibility - Config file is auto-generated on first launch with default values
- Slot validation is handled via mixin — no manual datapacks needed for configured slots
- Removed hardcoded
belt.jsonitem tag in favor of dynamic validation
### Bug Fixes
- Fixed lanterns stacking beyond 1 in accessory slots
v1.0.7 — _Respawn reliability fixes_
### Bug Fixes
- Fixed race condition on NeoForge where Clone event handler could read belt slot before Accessories finished copying attachment data, potentially losing lamp state on death
- Fixed phantom lamp after respawn where mirror state could be restored without an actual item in the belt slot
v1.0.6 — _Stability & compatibility improvements_
### Bug Fixes
- Fixed lantern disappearing when inventory is full — now drops at your feet
- Fixed lantern duplication/desync after death and respawn
- Fixed lantern state clearing during internal sync operations
- Fixed potential item duplication via mirrored state not being cleared on death
- Fixed
getBeltStackImplreturning non-empty Optional with an empty ItemStack - Fixed NeoForge reload listener registration causing potential crash on startup
- Fixed duplicate
no_rendererregistration producing error logs on resource reload
### Improvements
- Added defensive try-catch for Fabric reload listener registration
- Added
accessoriesas a required dependency in mod metadata (Fabric & NeoForge) - Migrated from Architectury Loom to Multiloader build system
### New Features
- Render toggle support — pressing the visibility toggle button in the Accessories UI now hides/shows the BL lantern render
- Cosmetic slot support — placing a different lantern in the cosmetic slot now overrides the rendered lantern visual
v1.1.0 — _Configurable accessory slots_
### New Features
- Added configurable slot support — modpack makers can now specify which Accessories slots accept lanterns via
config/bl_accessories_layer.json - Default configuration uses
["belt"]only, preserving full backward compatibility - Config file is auto-generated on first launch with default values
- Slot validation is handled via mixin — no manual datapacks needed for configured slots
- Removed hardcoded
belt.jsonitem tag in favor of dynamic validation
### Bug Fixes
- Fixed lanterns stacking beyond 1 in accessory slots
v1.0.7 — _Respawn reliability fixes_
### Bug Fixes
- Fixed race condition on NeoForge where Clone event handler could read belt slot before Accessories finished copying attachment data, potentially losing lamp state on death
- Fixed phantom lamp after respawn where mirror state could be restored without an actual item in the belt slot
v1.0.6 — _Stability & compatibility improvements_
### Bug Fixes
- Fixed lantern disappearing when inventory is full — now drops at your feet
- Fixed lantern duplication/desync after death and respawn
- Fixed lantern state clearing during internal sync operations
- Fixed potential item duplication via mirrored state not being cleared on death
- Fixed
getBeltStackImplreturning non-empty Optional with an empty ItemStack - Fixed NeoForge reload listener registration causing potential crash on startup
- Fixed duplicate
no_rendererregistration producing error logs on resource reload
### Improvements
- Added defensive try-catch for Fabric reload listener registration
- Added
accessoriesas a required dependency in mod metadata (Fabric & NeoForge) - Migrated from Architectury Loom to Multiloader build system
### New Features
- Render toggle support — pressing the visibility toggle button in the Accessories UI now hides/shows the BL lantern render
- Cosmetic slot support — placing a different lantern in the cosmetic slot now overrides the rendered lantern visual
v1.1.0 — _Configurable accessory slots_
### New Features
- Added configurable slot support — modpack makers can now specify which Accessories slots accept lanterns via
config/bl_accessories_layer.json - Default configuration uses
["belt"]only, preserving full backward compatibility - Config file is auto-generated on first launch with default values
- Slot validation is handled via mixin — no manual datapacks needed for configured slots
- Removed hardcoded
belt.jsonitem tag in favor of dynamic validation
### Bug Fixes
- Fixed lanterns stacking beyond 1 in accessory slots
v1.0.7 — _Respawn reliability fixes_
### Bug Fixes
- Fixed race condition on NeoForge where Clone event handler could read belt slot before Accessories finished copying attachment data, potentially losing lamp state on death
- Fixed phantom lamp after respawn where mirror state could be restored without an actual item in the belt slot
v1.0.6 — _Stability & compatibility improvements_
### Bug Fixes
- Fixed lantern disappearing when inventory is full — now drops at your feet
- Fixed lantern duplication/desync after death and respawn
- Fixed lantern state clearing during internal sync operations
- Fixed potential item duplication via mirrored state not being cleared on death
- Fixed
getBeltStackImplreturning non-empty Optional with an empty ItemStack - Fixed NeoForge reload listener registration causing potential crash on startup
- Fixed duplicate
no_rendererregistration producing error logs on resource reload
### Improvements
- Added defensive try-catch for Fabric reload listener registration
- Added
accessoriesas a required dependency in mod metadata (Fabric & NeoForge) - Migrated from Architectury Loom to Multiloader build system
### New Features
- Render toggle support — pressing the visibility toggle button in the Accessories UI now hides/shows the BL lantern render
- Cosmetic slot support — placing a different lantern in the cosmetic slot now overrides the rendered lantern visual
v1.1.0 — _Configurable accessory slots_
### New Features
- Added configurable slot support — modpack makers can now specify which Accessories slots accept lanterns via
config/bl_accessories_layer.json - Default configuration uses
["belt"]only, preserving full backward compatibility - Config file is auto-generated on first launch with default values
- Slot validation is handled via mixin — no manual datapacks needed for configured slots
- Removed hardcoded
belt.jsonitem tag in favor of dynamic validation
### Bug Fixes
- Fixed lanterns stacking beyond 1 in accessory slots
v1.0.7 — _Respawn reliability fixes_
### Bug Fixes
- Fixed race condition on NeoForge where Clone event handler could read belt slot before Accessories finished copying attachment data, potentially losing lamp state on death
- Fixed phantom lamp after respawn where mirror state could be restored without an actual item in the belt slot
v1.0.6 — _Stability & compatibility improvements_
### Bug Fixes
- Fixed lantern disappearing when inventory is full — now drops at your feet
- Fixed lantern duplication/desync after death and respawn
- Fixed lantern state clearing during internal sync operations
- Fixed potential item duplication via mirrored state not being cleared on death
- Fixed
getBeltStackImplreturning non-empty Optional with an empty ItemStack - Fixed NeoForge reload listener registration causing potential crash on startup
- Fixed duplicate
no_rendererregistration producing error logs on resource reload
### Improvements
- Added defensive try-catch for Fabric reload listener registration
- Added
accessoriesas a required dependency in mod metadata (Fabric & NeoForge) - Migrated from Architectury Loom to Multiloader build system