TL;DR
Is there a global message / event / callback that I can hook into when a World Origin Shift happens?
There are objects that are external to the player that need to be offset with the player when the WOS happens, otherwise everything breaks quite spectacularly.
Longer story
I’m making a game that has a flea-on-a-dog’s-back problem. Player is on a ship, the ship is moving through space (while being able to collide with stuff in space), while the player can move freely inside the ship, and interact with physics objects inside the ship. While this sounds like a nightmare, I don’t need “outside” physics to interact with “inside” physics, so I have a virtual set the player moves around in that’s in stationary, then I move a fake (non-physics) player around inside the ship graphic, and all that works pretty well for me.
My problem is that we are dealing with space, so that means large(ish) distances, so when the ship travels far enough from the world origin the virtual player gets left behind at the old world origin and the whole system desyncs and kinda explodes, that is when the virtual set stuff doesn’t get deleted outright.
So a global message that I can hook into to correct that problem would be nice, or even a flag that makes other objects recenter with the player when necessary.