I’ve been trying out this module and so far its great! I do have one issue though and I’m trying to find a fix. Whenever a character touches an anchored part with the .Touched event, it doesn’t fire, and it only fires when the part is unanchored.
They solve different problems, but server auth probably increases network receive.
Server auth is also not drop in and requires you to write your entire game to account for it (using attributes for world state, binding actions to a deterministic simulation on both client/server to not cause mispredictions, etc). Chrono is client auth so obviously it is not as secure against movement exploits and you would need your own checks to prevent them.
Is there any recommended way to have NATIVE_WITH_LOCK compatible with VehicleSeat cars?
Currently, I’m just syncing ownership everytime the VehicleSeat occupant property changes. This is because if I don’t sync ownership, the car will replicate from Driver > Server, but not Server > Viewer.
I think this has to do with the locker and the vehicle > hrp weld created by Roblox causing network ownership conflicts.
Syncing ownership on every occupant change is a messy way to handle it, but there isn’t much of a cleaner alternative if you want to keep using NATIVE_WITH_LOCK. The weld between the seat and the character is definitely causing the conflict since Roblox forces its own ownership logic on those parts. You might be better off just handling the car replication through a separate system that doesn’t rely on the same locker logic used for the player.
CUSTOM won’t fix the underlying ownership conflict caused by the welds and Roblox’s internal physics handling. The issue with two people is likely because you’re still hitting those same network ownership clashes when a second character interacts with the seat or the car’s parts.
Not necessarily a custom system, but you’ll need to manage how ownership and welds are handled so they don’t fight with the library. If you can’t decouple the car from the character’s physics/ownership logic, then yeah, you might as well use a custom setup.
That is one way to do it, but you could also just disable the default seat behavior and handle the character attachment yourself with a different constraint or manual CFrame. The goal is to stop Roblox from automatically creating that specific weld that triggers the ownership fight.
Edit: I was putting chrono’s loading after my module loading, not before
I’ve tried numerous times on separate occasions to get this module working to no avail, always getting this error when downloading from wally. Tried manually creating a remote event inside the client, does not work
Infinite yield possible on 'ReplicatedStorage.Packages._Index.parihsz_chrono@2.1.4.chrono.Shared.Stats:WaitForChild("Stats")
Apologies if I’ve missed something obvious but how would one get the RootPart velocity of the character with NATIVE_WITH_LOCK turned on?
Edit: Figured out it was in the snapshots. I was using entity.latestCFrame the whole time so I didn’t know
Also what would be the best way to integrate this into an already existing ragdoll system with NATIVE_WITH_LOCK? Maybe that’s too specific of a question but asking just in case if there’s something that’d make it easier to do that universally
Edit 2: I originally asked the question as I had already spent 2 hours trying to figure out why it wasn’t working with the system, turns out I was editting the wrong module for 5 hours because my colleague didn’t label the module to be unused, so I got it working perfectly fine now just by disabling chrono for the duration of the ragdoll
Oh and one more question how would I handle other physics objects under the character, for example a flail connected by a ballsocket under a tool held by the character