Light casts shadow but doesn't illuminate, or vice versa

This is a bit hard to describe, but: I’m making a world with two lights, a point light and a directional light. They are set to illuminate surfaces and cast shadows. In editor, everything looks fine and works the way that it should – but inside VRChat, for any surface, each light will either cast shadows OR brighten the surface, but never both… and it changes every time I make a tiny tweak, including just changing the color of the light??

I’ve tried this purely in realtime mode, and in mixed mode, and it doesn’t make a difference. Does anyone have any guesses about what could be causing this?

First off, lights should generally be put on baked when they’re not moving, with the exception of directional which can be mixed. (For performance reasons)

Secondly, have you tried putting the stuff that doesn’t move on “static” and baking your lightmap?
Any light that isn’t baked will be set to realtime during gameplay.

Thirdly, you should play around with your lightmap resolution, if your lightmap resolution is really small, multiple objects might share the same lighting, meaning something that’s lighting up Wall A might also light up Wall B by accident.

Also. Pictures help…

Oof; I did a ton of testing in different modes, and then finally realised that it only happens on objects that use a custom Standard Surface Shader I made. I still don’t know why it’s happening in VRChat and not the editor, but at least I have a new thing to research; I’ll look into shadows on custom shaders in Unity in general and come back if that doesn’t get me anywhere…

anyway, I already took all the screenshots, so if you’re curious:

My scene looking correct in the editor:

Three different configurations of lighting and static geometry (with captions if you click through):