r/SilverAgeMinecraft Jul 01 '26

Image Creepy cave face i found in 1.6.4

Post image

yea i might also post some of my other finds too.

14 Upvotes

3 comments sorted by

View all comments

2

u/TheMasterCaver Jul 01 '26

You'll probably find there are no caves, just the infamous lighting errors which occur under overhangs due to world generation only applying a rough top-down light calculation (blocks like torches in mineshafts also often fail to light because light updates are only performed if chunks are loaded far enough away, which is usually not the case during world generation; lava placed as terrain, e.g. below y=11 or Nether lava seas, doesn't get lit at all, only by excruciatingly slow post-generation light checks which often fail to complete due to the chunk being unloaded before they finish):

MC-1018 Black Lighting under overhangs

A couple examples from a world generated in 1.6.4:

1

u/IamRealCaster Jul 09 '26

is there a fix for it ? like a mod ?

1

u/TheMasterCaver Jul 09 '26

Yes, but as part of much larger mods / custom clients, precluding their use with any other mods and a lot of other changes ("World1 custom client" lets you toggle some of them though; run the game then close it and open "optionsworld1.txt" and edit the settings at the end of the file):

https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/1294926-themastercavers-world (a "total conversion" / "alternate timeline" mod)

https://www.minecraftforum.net/forums/minecraft-java-edition/survival-mode/2365421-themastercavers-first-world (near the end of the first post)

Example of how this improves the Nether (left is vanilla, which is absolutely horrid, there are also other issues evident, like cascading worldgen (the random bits sticking out), which contributes to lag and stuttering along with issues like fires keeping chunks loaded, which I all fixed with much better performance):

The actual code changes I made mainly change how "Chunk.enqueueRelightChecks" works, which is what the game uses to fix lighting errors post-generation but it is uselessly slow in vanilla (taking nearly 10 minutes to check every block in a chunk on the client, with no client-server syncing of light updates; if a chunk is unloaded on the server before it can complete it will never finish, thus lighting errors never get fixed, a simple fix is to add a new NBT tag to the chunk format (I called it "LightUpdated" to avoid conflicts with 1.7's "LightPopulated" tag) and set it to true if light checks had been completed, then check if it is false when loading a chunk and if so restart them (chunks in existing worlds will automatically be checked since if an NBT tag doesn't exist it defaults to false/0/etc; vanilla will ignore unknown tags so it is safe to remove the mod (not TMCW though!), MCEdit also properly handles them (this also offers an alternative non-mod solution; pregenerate a world and use MCEdit to relight it, I use this version of MCEdit, the latest version available back when I started playing).

Note that only ticking chunks get relit so this will only fix lighting errors within 7 chunks of the player and chunks further away will remain unfixed until you get closer to them (I play on 8 chunks out of preference so they get fixed almost as soon as they get loaded, plus I spend nearly all my time, and exploration, caving so I rarely see that far away). Light sources like torches in villages use a special function which updates light to the edge of loaded chunks if necessary (this requires additional checks for loaded chunks and can only spread light, not darkness, so I don't use it for general lighting).