riptide/core
A lightweight and professional framework for Roblox.
____ _ __ _ __
/ __ \(_)___ / /_(_)___/ /__
/ /_/ / / __ \/ __/ / __ / _ \
/ _, _/ / /_/ / /_/ / /_/ / __/
/_/ |_/_/ .___/\__/_/\__,_/\___/
/_/
A lightweight, strictly-typed, and modular framework for Roblox.
๐ Why Riptide?
Riptide was built from the ground up for production Roblox games. It solves the most common architecture problems while remaining invisible, staying out of your way, and scaling elegantly.
- Deterministic Lifecycle: Phased initialization (
InitโStart) eliminates race conditions. - Dependency Injection: Ditch circular
require()chains. Inject your dependencies safely using canonical paths. - Unified Networking: One single
RemoteEventandRemoteFunctionhandle your entire game's network traffic. ZeroReplicatedStorageclutter. Let Riptide multiplex everything. - Strictly Typed: 100%
--!strictLuau. Enjoy flawless autocomplete and compile-time safety right out of the box. - Built-in Power: Comes fully loaded with a robust
StateMachine,ComponentService, andStateReplication.
๐ฆ Installation
Riptide is formally distributed via Pesde. Install it directly into your project using the Pesde CLI:
pesde add riptide/core
Via Wally
If you prefer Wally, Riptide is dual-published to the Wally index:
[dependencies]
Riptide = "riptide/[email protected]"
Manual Installation (.rbxm)
If you strictly prefer not to use package managers, you can download Riptide.rbxm directly from the Releases tab and insert it into ReplicatedStorage.Packages.
๐ Quick Look
Write clean, modular code with predictable execution phases.
--!strict
local RiptidePkg = require(ReplicatedStorage.Packages.Riptide)
type Riptide = RiptidePkg.Riptide
local PlayerState = {}
function PlayerState:Init(Riptide: Riptide)
self.DataService = Riptide.GetService("DataService")
Riptide.Network.Register("PlayerJumped", function(player, height)
print(player.Name .. " jumped " .. height .. " studs!")
end)
end
function PlayerState:Start(Riptide: Riptide)
self.DataService:GiveMoney(100)
end
return PlayerState
๐งช Testing Architecture
Riptide guarantees production stability through a custom Hybrid Testing Architecture built on frktest.
- Development / CI: Lightning-fast unit tests run via Lune CLI ensuring 0 millisecond regressions during active coding (
lune run test/lune/RunLuneTests.luau). - Engine Integration: The exact same mock-free test suites seamlessly compile and run inside standard Roblox Studio DataModels, validating true Client/Server replication, network invocations, and Instance boundary behaviors.
Every single framework feature (StateReplication, ComponentService, Unified Networking, Async, and StateMachine) is covered by comprehensive Integration tests mapped across both sides of the network boundary.
๐ Documentation
For complete setup guides, API reference, and examples, visit our official documentation site:
๐ Go to Riptide Documentation
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.