Skip to content

zSkanz/Synchronizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Synchronizer

A high-performance state synchronization library for Roblox.


Overview

Synchronizer manages server-authoritative data channels with automatic client replication, batched networking, and event-driven updates. Instead of manually firing RemoteEvents, you mutate a channel and Synchronizer handles the rest.

📖 Read the full documentation →

Features

  • Channel-Based Architecture — Isolated, reusable data channels per-player, per-entity, or global.
  • Batched Networking — All mutations within a frame sent as a single RemoteEvent per listener.
  • Action Deduplication — Multiple Set calls to the same path only send the final value.
  • Event-Driven — Subscribe to Changed, ArrayInsert, ArrayRemoved, DictionaryInsert, DictionaryRemoved.
  • Listener System — Control which players receive updates from each channel.
  • Security — Rate limiting and listener-only data access validation.
  • Strict Typing — Full --!strict with exported types for IDE autocompletion.
  • Zero Memory Leaks — Complete cleanup on channel destruction.

Quick Example

-- Server
local channel = Synchronizer:Create(player.UserId, {
    coins = 0;
    level = 1;
})
channel:AddListener(player)
channel:Set("coins", 100):Increase("coins", 50)

-- Client
local channel = Synchronizer:Wait(player.UserId)
channel:OnChanged("coins", function(new, old)
    print("Coins:", old, "→", new)
end, true)

Installation

See the Getting Started guide.

License

MIT © 2026 Skanz

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors