urSovngarde Co-op for Skyrim VR
← All entries

The update that took our swords away

On 14 October, nothing physical about the other player existed in our games any more. Swords passed through each other with no clash and no sparks, no parry counted, and grabbing an NPC that the other game ran did nothing at all.

What PLANCK does

PLANCK is the mod that gives bodies in Skyrim VR real physics: you can shove people, they fall over properly, and a sword is an object. From version 0.7 it watches one particular game function, the one that sets a character's position, and treats every call to it as a teleport. A character that has just teleported is left out of PLANCK's physics for two and a half to five seconds.

That is the function we call on every copy, every frame. It is how a copy follows its owner. So PLANCK, doing exactly what it says, saw every copy teleporting every frame and kept all of them out of the physics for good. The other player's sword had no body. There was nothing for yours to meet.

What we changed

Copies are now moved with the game's own version of that function, read before any plugin had a chance to replace it. PLANCK still sees real teleports. It just stopped seeing ours.

The same thing was happening, more quietly, to the NPCs your own game runs. A piece of code inherited from the original mod sent every NPC's movement through the same function, about a thousand times a second, which kept them out of PLANCK's physics too. That matters when you grab them with HIGGS. They move the game's own way now as well.

Status

Seen working in a real fight the same evening: sparks, the jolt in the hand, and parries that count. It is in the build we are testing and comes with the next release. Grabbing NPCs with HIGGS has not been tried in a real session since.

If you play 1.9.3 with PLANCK 0.7 or newer, this is why blades pass through each other. Nothing in PLANCK is broken, and no setting fixes it. The next release does.

Skyrim is a big country to cross alone

Free, open source, and it runs on the modlist you already have.