
Designed to fit into Minecraft's lore as closely as possible, while providing a more challenging early game experience and encouraging players to use powered, magical, and bioluminescent light sources.
An open source mod built for Fabric (works on Quilt, too). Requires Fabric API and owo-lib. For more in-depth information regarding the project, read the wiki 📖.
Inspired by Realistic Torches, thank you MattCzyr!
✨ Features
- 💡 Dynamic lighting is fully supported with LambDynamicLights.
- 🌧 Candles and torches will extinguish when rained on.
- ⏳ Campfires, candles, jack o' lanterns, lanterns, and torches will extinguish over time.
- 🔥 Bring unlit torches to life during your adventures with fire, lava (flowing, standing, or even in a cauldron!), or flint and steel.
- 🏊 Wading, swimming, fully submerging in water, or getting rained on can cause jack o'lanterns, lanterns, and torches to extinguish.
- 💪 Glowstone lanterns and torches for mid/late-game which are waterproof and never die out.
- 🧯 Torches, lanterns, and jack o' lanterns extinguish when stored in chests or placing in bundles.
- 👷 Villagers prevent any extinguishing in a configurable cubed radius, no more dark villages.
- 📄 Configurable with files or the settings page provided by integration with Mod Menu.
⛔ Compatibility
Should work with most mods that don't modify torches, lanterns, campfires, candles, and jack o' lanterns in an intrusive way.
- Hardcore Torches is incompatible.
📥 Downloads
Officially available at CurseForge, Modrinth, and GitHub.
🛣️ Roadmap
- Finish wiki.
- Add events for developers.
- Extend inventory behaviours to mobs.
- Integrate Jade tooltips.
- Attach to Villager and Allay AI brains to ignite unlit torches, lanterns, jack 'o lanterns, and campfires in a fun way.
📜 Copyright & License
© 2025 Dale E. Wingard, Jr.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU Lesser General Public License and a copy of GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 | ||||
| 22h ago | 1 |
- Port to Minecraft 26.2
- Fix missing block loot tables for unlit copper lanterns
## Changed
- Bump version
- Set Java compatibility for mixins to version 25 instead of the old version 21
- Require annotations for mixin overwriting
- Refactor client source set to use a more descriptive package
- Port to Minecraft 26.1.2
- Bump version
- Default to true for extinguishing lit items in containers
- Update README
- Use more descriptive names for Mixin method names
- Migrate to the official Mojang mappings
- Optimize imports
- Rearrange code and whitespace
- Update Gradle Wrapper
- Bump version
## Removed
- Remove unnecessary code in build script
- Code that was commented out
- Placing lit items in bundles will extinguish them
- Add unlit copper lanterns
- Add copper torch
- Add Game Tests for caretaker functionality and whether torches extinguish in rain
- Add caching for results of whether a caretaker is present
- Add debugging information for certain conditions
## Changed
- Bump version
- Port to Minecraft 1.21.11
- Update dependencies
- Change logic gates to reduce CPU cycles
- Disable Lithium's optimizations for lit campfires instead of all campfires
- Reduce high CPU usage with caretaker functionality enabled
## Fixed
- Fix crash when trying to extinguish in non-player inventories
- Added missing import
## Changed
- Updated Gradle
- Fix [#58](https://github.com/realguyman/totally_lit/issues/58): ArrayIndexOutOfBoundsException crash when attempting to extinguish lit variants in player inventory
## Changed
- Improved readability of code
- Add option to disable/enable caretaker functionality
## Changed
- Bump version
- Changed default caretaker radius to 16
## Fixed
- Fix #46 and #57: lit torches dropping unlit variants
- Use explicit ItemStack type for TypedActionResult generic
- Bump version
## Fixed
- Fix #44: Crash when using items defined in
campfire_igniterstag to ignite campfires - Fix broken recipes
## Removed
- Unused imports
- Port to Minecraft 1.21.1
- Resourcepack format and display name
- Port to Minecraft 1.19.2
- Port to Minecraft 1.20.1
- Configuration setting to enable/disable fire aspect being able to ignite unlit variants
- Configuration setting to enable/disable lit variants extinguishing when stored in containers
- Ability to extinguish lit variants in storage containers
## Fixed
- Items enchanted with fire aspect not igniting unlit campfires, torches, and lanterns
## Changed
- Updated TODO list
- Updated README
- Model data generation for blocks, blockstates, and items
## Changed
- Updated Fabric Loom
## Fixed
- #41 Broken models and missing textures
## Removed
- Most* manually written models for blocks, blockstates, and items (excludes the Unlit Jack O'Lantern for now)
- Port to Minecraft 1.21.4.
- Added new caretaker functionality. Extinguishables will no longer extinguish within a configurable z by z by z box around any entities defined in the new
caretakersEntityType tag. By default this includes: illusioners, pillagers, villagers, vindicators, wandering traders, and witches. Villages and pillager posts should no longer go dark to simulate entities taking care of their properties. - Unlit campfire texture resourcepack that integrates visually with LambDynamicLights (resourcepack is enabled by default).
- Added new performance mods locally for use when testing builds to ensure compatibility. Includes Sodium, Lithium, Noisium, c2me, ScalableLux, and FerriteCore. They may not *always* be available when building new releases.
## Changed
- Reduced time need to complete automated gametests.
- Updated dependencies.
- Fix incorrect stack size be applied to lanterns and other lit variants when extinguishing in player inventory.
- NOTE:** Torches worked fine in 0.15.4, but for some reason lanterns didn't extinguish properly. Hopefully, this is *actually* fixed, now.
- _Actually_ fix incorrect stack size assignment during extinguishing in inventory
- Fix incorrect stack size assignment during extinguishing in inventory
- Lit items cloning to hotbar when extinguishing in player's inventory
- Port to 1.21.3
- Ability to craft lit items with flint and steel (until I find a fix to prevent duplicate spawning of flint and steels)
- Port to 1.21.1
- Port to 1.20.6
- Port to 1.20.5
- Crash when randomly ticking campfires
- Backport to Minecraft 1.20.1
- Using (i.e., right-clicking) unlit items in hand while looking at fluids ignite the item
- Splash water potions can extinguish torches when thrown onto them
- Ability to ignite unlit blocks with items enchanted with Fire Aspect
## Changed
- Refactor ignition system to support igniting unlit items in hand by looking at a block with adjacent hot fluids
- Support for Quilt mod loader.
- Soul torches and lanterns can extinguish when exposed to water.
- Items within the item tags
#torch_igniters,#lantern_igniters, and#campfire_ignitersthat are _damageable_ will automatically be damaged by 1. - Recipe to extinguish torches and lanterns with water bucket.
- Setting to enable/disable items extinguishing in players' inventories.
- Quiet flame sound when igniting torches, lanterns, etc.
#lantern_ignitersblock tag. Lanterns can be ignited by right-clicking torches.- Flint and steel as an ingredient for crafting lit torches. Damages flint and steel by 1 when used in crafting grid.
- Implemented
TotallyLitEntrypointfor developers to register their own custom lit and unlit light sources (i.e., torches, lanterns, and jack o'lanterns) that then Totally Lit can automatically handle igniting, extinguishing, etc, for. - Unlit jack o'lantern.
- Light sources no longer extinguish near villagers.
## Changed
- Adjust default burn duration for all light sources to 16,000 ticks to slightly increase the difficulty.
- Rewrite most of the code base to adopt the new system that supports third-party blocks, items, provided by other developers instead of hard-coded values.
- Simplified a lot of code.
- Migrate to datagen for loot tables and tags.
- Update README.
## Removed
- Hard-coded loot tables and tags.
- Most
Blockclasses in theblockpackage as they were no longer needed.
Developers can now add support for Totally Lit. First, implement
TotallyLitEntrypoint:``
java
package your.example.mod;
import io.github.realguyman.totally_lit.api.TotallyLitEntrypoint;
public class ExampleModTotallyLitImpl implements TotallyLitEntrypoint {
@Override
public void buildMap() {
addTorch(ExampleModBlocks.TORCH, ExampleModBlocks.UNLIT_TORCH);
}
}
`
Then, register the ExampleModTotallyLitImpl entrypoint under totally_lit in your fabric.mod.json:
`json
{
// ...
"entrypoints": {
// ...
"totally_lit": [
"your.example.mod.ExampleModTotallyLitImpl"
]
}
// ...
}
``