Chrono | Drop-in custom physics replication library

I tried looking at the v1 docs, but I dont think they do a good example of explaining HOW to set up npcs, I used client sided hitboxes so, if I do use the register npc api and whatnot the npc just doesn’t move (even though I do the kb for npcs on the server) cuz I’m pretty sure the model isn’t on the client anymore

Should check out v2 instead as it brings alot of quality of life changes and improved reliability for NPCS. And we have some guides on entities Entities - Chrono

Migration docs if anyone needs

Might be a bad question, but how do I load animations (from server) with Chrono?

if it’s using native or native with lock for the characters you should just be able to load it normally via the animator

1 Like

Does chrono manipulate humanoid root part cframe? In my combat game, I use the humanoid root part cframe during an animation to position my hitboxes which works just fine, but when I used Chrono’s and got the humanoid Root part, there were rotational factors applied to it which shouldn’t happen since the humanoid root part doesn’t rotate.

We use the primary part which in r6 would be the head. You could change it so that r6 uses the hrp and that should solve the issue

oh ok. Where would I change it?

you change it by

local function onCharacterAdded(char)
char.PrimaryPart = char.HumanoidRootPart
end

1 Like

Cool module! there’s a few issues tho:

  1. The documentation is really hard to understand, even after a few days of reading it I still cannot properly understand how everything works.
  2. This module claims it supports Ragdolls, and well, it kinda does. For example: It only supports it’s own Ragdoll module, and for battlegrounds experiences that maybe have a different ragdoll module, importing the supported ragdoll module is not an option. And plus, there isn’t that much clarifying on the documentation on how to implement ragdolls, for example: in my experience which HEAVILY relies on ragdolls, whenever i started using this module the ragdolls “jitters”, even setting the tick rate to 1/60th of a frame won’t fix the issue, It’s like seeing a dummy ragdoll on a slideshow.

Please fix this as soon as possible!

2 Likes

Does anyone have a public ragdoll system that actually functions with v2.0? I’ve been struggling all day with trying to make my system as smooth as possible with no luck…

You can clone the player locally and make the player transparent and ragdoll the clone. And then cframe the clone to the player.

cc @Nobie_dev as well. This is how most battlegrounds games do it

Absolute godsent. I was just brainstorming on how to replicate my cars to other clients without the lag.

Amazing project! I’ve been keeping up with releases and updates and I want to integrate chrono into a professional project I’m working on but just want to check directly with you if you consider this production ready. I don’t have the time to look into the code myself but I understand the skeleton of chrono.

V1’s default config should be pretty stable - It has been used in deepwoken for a few months but I’m unsure how extensively they used it.

I am going to release a new iteration of v2-experimental today and I would say that v2 is a lot more production ready than v1 as a whole

2 Likes

I see. Interesting that deepwoken used it!

They’re planning to roll out the Server Authority update sometime (presumably soon) in the future which might partially deprecate Chrono or change its use case. I think it’s a good idea to hold of on the release if you plan to continue developing it past v2.

Also, it seems they’re actively updating Server Authority. I’m not too sure how good it actually is but I am using the beta right now and dont see a HUGE difference.
Waiting on the new iteration! Thank you for this great resource and answering my question.

1 Like

from what i understand server authority is horrible imagine you run movement on the client like double jump or special parkour function server authority would snap you back thinking you cheated
(i just researched about it so i might be wrong) but some games like deepwoken needs those special type of movement to feel alive and responsive

No it’s actually industry standard for other engines like UE5, UE4, UE3, UEFN, Unity, and GoDot.

You really shouldn’t be playing with important stuff that can be exploited like physics (velocities) or general-movement on the client. You should be keeping a “log” of what’s happening on the server and allow the client to initilaize and replicate what it needs too. Basically, Server-Authority is a parent with short-term responsive memory that rolls back the client-state when the client is behaving like a naughty boy.

It’s essentially both an anti-cheat for movement/physics and improves the pipeline in which you instance movement.

It’s also (potentially, very speculatively) going to improve the tick rate (1/20) or 30fps which current physics operate on. Custom Physics and Replication solutions like Chrono (godsent) are a bandaid for the incredibly outdated and backwards compatible (sorta) engine that Roblox is.

SORRY FOR THE RANT! Very passionate about this.

from my very short testing that happened while you were writing this message i found out 2 things
server authority doesnt allow any client script to effect the character and there is no way to “approve” a client script or a function or something so it will still kill movments based games

and second what you said is true theoretically but practically in roblox we are looking for responsiveness using your method head on will not feel as responsive for games like deepwoken

lets say i wanna wall hope it will feel very laggy if i have to go through the server everytime
instead of just running it on the client as is , again i might be wrong since i only tested it today for like 10 mins

but if you are going to send every input to the server and wait for confirmation it will feel slow no matter how good the prediction
first bug i found in server authority is with shift lock (which is very buggy) if you rotate you characrter lags behind

for example games like TSBG if you have server authority there the dash attack everyone uses to start combo would feel delayed and unresponsive since the movement and the basic hit box are done on the client (the actual dmg hitbox is from the server) from what i know

big rant but im trying to learn and get better so if I bs let me know

What you said is all incredibly valid, just that your thinking about the problem in a way that shifts the goal and the goalie and the entire field.

The point of server-authority is relying on Client Prediction and Server Validation. This is more efficient then most systems and is also the easiest to use.

The client shouldn’t really be instancing any sort of exploitable object. There are systems you can use to validate that instancing and to compartmentalize it so only one or X clients see’s it.

The entire improvement of having actual server authority is Client-prediction. A very efficient way to use the Server would be to let each client predict their own state and allow the state if the logs (very lightweight) in the server matchup. Basically the server is just a guy with a checklist and the client is writing the stuff in their own checklist and the Server cross-references that with it’s own checklist.

But your right, this does have its limitations (although very minor compared to the current model) that are genuinely going to be mind numbingly annoying for some use cases.

So no, no bs, just a misunderstanding.

1 Like