In order to do real-time shadows, you need to remove the parallel Lua element of the module so each tile is rendered in sequence.
You could use a loop to clear out the Lightmap and then re-render it during each iteration. Recycling the Lightmap parts would also improve performance in this aspect.
But wouldnt that cause so much lag? and how can I recycle Parts?
I’m thinking of using PartCache in conjunction of your module for the clear lightmaps function.
Ok i figured out a way to make realtime shadows very performant, It requires a localScript, SpatialQuery and PartCache. This limits, removes stress on server and caches parts.
i saw the part where you can change render scale,
Roblox studio has a detail called shadow softness which makes the shadows less sharp
or in the case exactly what the render scale appears to do so you could integrate this idea by adding a variable called “Shadow Softness” and adding it to the render scale. FinalScale = RenderScale+Softness
something around those lines that’s the only feedback i could give