Forest Logo
search
package_2

roblox-progression

By @hurreman

Roblox

Mirrored from Wally

roblox-progression

Progression mechanics for hurreman's Roblox games:

  • stats that grow, and gates and requirements that need them;
  • upgrades and multipliers;
  • rebirth with declared resets;
  • carry and deposit;
  • objectives;
  • an idempotent ledger;
  • binding to roblox-world-builder maps;
  • an offline balance sim.

The game writes one config (shared/Config/Progression), builds the runtime objects in its own service with adapters, and keeps its own save, remotes and UI.

# wally.toml
[dependencies]
Progression = "hurreman/roblox-progression@0.1.2"
local Progression = require(ReplicatedStorage.Packages.Progression) -- modules load on first access
local problems = Progression.Config.validate(Config)

Modules

ModuleWhereWhat
Curvesanyconstant / linear / exponential / polynomial / steps / piecewise, with round and cap; sum, maxAffordable
Stateanythe Progress save section, the view rules read, counter refs, reward amounts
Requirementsanyconditions as data with typed blockers, plus custom checks (Register)
Modifiersanythe multiplier stack (base + Σadd) × (1 + Σbonus) × Πmul, scoped to a stat or source
Sourcesanypassive, zone and action gains, and their rates
Upgradesanyleveled and tiered prices and effects; quotes against the level the buyer saw
Gatesanygauntlet thresholds, in-order passing, first-time gate and milestone rewards, gate pad pay
Rebirthanyeligibility, cost, reward and a reset plan from declared reset / keep
Objectivesanythe next goal with {need} / {have} and progress
Carryanyretrieval: access by area, capacity, drops, haul worth
Configanyvalidation of the whole config with paths; wallet currencies
Ledgerserverall-or-nothing grants over a roblox-data wallet, once per op id (ids saved with the grant)
Statsserverthe authoritative ticker, zone sources from the server's position check, actions capped per second
Shopserverupgrade purchases as ledger ops
Gauntletservergate runs on a bound lane (GateBarrier fields or Breakable walls), put-back positions, first-time rewards, gate pads (free and paid, each ending the run), the finish per run token
Prestigeserverrebirth as one ledger op
Carrierserverhauls: picks, hits, deposits per haul token, leave policy
Binderserver, clientbinds by WB_World / WB_Zone / WB_Role / WB_Id keys (or a tag), never names; volumes and world-aligned bounds
Simofflinea persona playing a config; game-tools Recorder-shaped results

Every module's header has its full API. The roblox-progression-builder skill has the guide: mechanics, archetypes, binding, authority and testing.

Tests

lune run tests/run

The specs run on luau-spec. The server specs use the real roblox-data Currency and Profiles with its FakeProfileStore: from DevPackages, or else copied from ../roblox-data into build/. They cover:

  • authoritative gains;
  • costs and grants;
  • requirements;
  • idempotent grants;
  • rebirth resets;
  • replayed requests;
  • crash and rejoin;
  • the sim;
  • binding to world-builder-shaped maps, including a rebuilt zone.

Package Details

Install command (Click to copy)


Version

0.1.2

License

MIT

check_circle

Safe for commercial use

Automated license review — not legal advice.