A system built to help combat input latency with physics-based tools on Roblox.
A system built to help combat input latency when using physics on Roblox. This system is built using the principles described by TheNexusAvenger in this article on his website.
This module creates a Folder that stores all items added to the Buffer via the server, such as projectiles. When an item is added to the buffer it will have its NetworkOwnership assigned to whichever player is given ownership over the buffer (e.g the player who is holding a weapon).
Buffered items are held suspended far away from the play area. When the client needs to create a new projectile, such as when the player activates a weapon, instead of creating a new Instance we instead pull an existing one from the Buffer. Since the Instance already exists and we have NetworkOwnership over it, we can instantly start controlling the physics of the item.
As nice as the system sounds, it does come with some clear caveats that may influence if you decide to use this system over something else:
ReplicatedStorage
.BufferModule.Configuration
and tweak it to your liking.See the documentation below below to find out how to implmenet the system in your own experiences. An example place can be found in the releases tab.