BufferModule

A system built to help combat input latency with physics-based tools on Roblox.

View the Project on GitHub

Superball Example Image

About

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.

Why use this implementation?

  1. Support for multiple items inside of the Buffer
  2. Security features that help protect against abuse of the system

How does this work?

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.

Caveats

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:

Getting Started

Install

  1. Grab the latest release from the releases tab on GitHub.
  2. Insert the module somewhere accessible on the server/client, such as inside of ReplicatedStorage.
  3. Review the Configuration module under BufferModule.Configuration and tweak it to your liking.

Usage

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.

Documentation


ko-fi