3.2.7
Compatibility
Changes
Simple Flashlight Port 3.2.7 — Lighting Overhaul
Minecraft 1.12.2 · Forge · Java 8
This release rebuilds the flashlight's lighting system and includes the changes made since the previous 1.12.2 release, 2.0.0.
New lighting system
- Replaced temporary light-block placement with independent client-side shader lighting, removing the repeated server block updates used by the old system.
- Added directional lighting with soft beam edges and shadows from supported terrain and block models.
- Added lens rings with uneven brightness for a more natural flashlight pattern. The effect can be disabled in the server configuration.
- Added a visible beam in the air, including beams from other players.
- Offset the light source according to the hand holding the flashlight, respecting left-handed players.
- Extended lighting to water surfaces, vanilla mobs and players, chests, and supported Forge block-entity renderers.
- Light now passes through glass, water, ice, slime, plants, leaves and cobwebs. Openings in supported fences, bars and cutout models let light through while their solid parts cast shadows.
Multiplayer and configuration
- All flashlight settings are now controlled by the server, including range, beam angle, brightness, lens effect, hand offset, visible-beam intensity and battery capacity. Clients use the server's settings when connected.
- Server settings are kept separate from the client's local configuration.
- Removed the obsolete light-spread setting. Existing entries are ignored.
Fixes and performance
- Fixed right-click handling so one click does not also toggle a second flashlight.
- Fixed battery consumption when the flashlight is already full or battery capacity is set to zero.
- Fixed tooltips for fresh flashlights and server-defined battery capacities.
- Improved lighting and shadows on supported non-full and animated block models.
- Fixed water visibility under zero ambient light, including Hardcore Darkness.
- Fixed OpenGL errors caused by mismatched depth-copy dimensions after rendering resolution changes.
- Fixed beam clipping when the renderer uses separate read and draw framebuffers.
- Reduced rendering allocations and unnecessary shadow-atlas uploads; cached shader uniform locations and batched static shadow geometry.
- Removed unused code and resources while preserving existing item IDs and NBT.
Compatibility and known limitations
Compatibility checks during this rewrite covered Forge 14.23.5.2864, Hardcore Darkness 2.0 and OptiFine G5, including Fast Render. Shaderpack checks covered Complementary Reimagined r5.9.3, Sildur's Enhanced Default 1.20 Fast, MakeUp UltraFast 9.4e (high) and BSL 10.1.8 (ULTRA).
- OptiFine and shaderpacks are optional.
- Some custom rendering pipelines still require adapters. Chisels & Bits 14.33 worked in the tested static mode; its dynamic regional renderer is unsupported. LittleTiles 1.5.87 does not have complete lighting/shadow compatibility.
- Slight shadow stepping during movement remains a known issue.
- Many overlapping beams can still be expensive
Install the same mod version on the server and every client. Configuration
remains in config/flashlight_v1.0.cfg; changes require a restart. Flashlight
illumination is visual and does not change mob-spawning or other world light rules.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:qjYKQXEs:DpN6mpE7"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:qjYKQXEs:DpN6mpE7"
}
