BetterReplication | Vastly improve your combat experience by fighting LAG!

Have you considered using Zap or Blink instead of Bytenet? (it’s slightly faster since it generates remote event code based on your input)

1 Like

I think this would make more sense because then it wouldn’t interfere with games that wanted to use this + bytenet (it’d also need to be not put in the default zap folder)

1 Like

I’m going to create my own small implementation of a buffer reader and writer so that it does not depend on ByteNet anymore.

edit: V6 has been released which this is now a part of!

1 Like

To come back to this;
Interpolation is done with PreSimulation (if you’d do PostSimulation the interpolation would be 1 frame behind).
The replication is done on PostSimulation (after physics simulation)

2 Likes

Hello, the Roblox model leads to only version 4. How can I get a hold of version 6? Thank you.

I just downloaded the version from the link in the post and I get V6. Perhaps refresh the page will solve it for you.,

Thank you, it has updated to V6.1!

1 Like

Can you upload this to the creator marketplace?

Done! https://create.roblox.com/store/asset/84417102001176/BetterReplication

1 Like

You should add a debug option in the configuration, like in ax1s’s system it should spawn a part where the player’s replicated position is.

1 Like

hey! quick question, is this for R15 or R6 only?

Hey! It works for both rigtypes. It should essentially work for all rigtypes. The important thing to know is that the replication is done based on the HumanoidRootPart of the rig.

I love this. I’ve been wondering, would mobile players face any issues with the custom replication?

Nope, while mobile players generally have bad connections; BetterReplication solves this with the use of the replication buffer!!

Furthermore; since there’s only an additional .6 KB/s worth of RECV networking overhead per player in proximity, mobile players will not experience any connectivity issues caused by BetterReplication

I’m interested to see how this turns out in my project however, I am coming across an issue where if I enable makeRagdollFriendly, I get a buffer access out of bounds error message. I get the error both in the test place and in my own project place as well.

ReplicatedStorage.BetterReplication.Lib.BufferUtils:47: buffer access out of bounds 

For now, I will have to look at other options but I do hope you can fix this soon :+1:

Thank you so much for this bug report! I picked it up and released a fix for it!

2 Likes

I tried it and the error has disappeared but the ragdoll was being replicated weirdly. I just did a local fix on my project where I just do a sanity check that doesn’t take the request from a client who is currently being affected by my ragdoll script. I think that’s good enough for now.

Other than that, it’s working nicely, good job!

Also a few suggestions::

  • Utils.FrequencyPostSimulation doesn’t disconnect when a player’s character dies (correct me if I’m wrong here). Maybe it is not neccessary but I think it would be good for it to disconnect.
  • Imo, I think the UpdatePosition script should use 1/Config.tickrate instead of just 20 for the FrequencyPostSimulation line.
  • @TimeFrenzied suggestion would be great to see!
  • Lastly, maybe for the sanity check in UptodatePositions, just add a simple table that tracks the last time a player has made a remote call (to prevent spamming).

Nice job on the module though! I haven’t tried playing my project with friends just yet but in studio, it looks like it’s working good!

1 Like

If not already, this module should use unreliables btw.

I really can’t tell why, but ax1s’s replication feels more responsive for me when team testing both of them.

I think it is using unreliable remote events, how come you mention it?

For me, I’m not too sure which one is more responsive but I think they’re both good. It’s a lot more better than just the default Roblox replication system which is a bit too slow for my project.

Have you tried playing around with the tick rate maybe?

1 Like

There is a reason for this; Ax1’s has NO interpolation buffer. This makes replication direct but it will causes a lot of issues in a production-ready game. Any packet loss will cause major stuttering.

BetterReplication has a minimum replication buffer of .1 seconds. This is something that is a must in order to ensure smooth interpolation during any packet loss.

And obviously this module uses unreliables (which you can also just easily verify yourselves by checking the ‘Remotes’ folder)

3 Likes