Season 1LiveArenas openUS-East
For creators

Build for the arena.

A simple mode is a data descriptor — team sizes, rules, loadouts. A serious one drops to code: lifecycle hooks, reusable systems, a custom driver. Arenas, cosmetics and load screens plug in the same way, through one versioned SDK — no engine fork, no backdoor.

What you can build

Everything is extensible.

First-party modes and packs register through the exact same public SDK as anything you ship — there is no first-party backdoor.

Luamode → sdkregisterMode
-- a mode starts as data…
exports.sdk:registerMode({
  id        = "duel",
  label     = "1v1 Duel",
  teamCount = 2,
  perTeam   = 1,
  rules   = { structure = "rounds", win = { roundWins = 5 } },
  systems = { "zone", "loot" },   -- attach modules, by name

  -- …then go as deep as you need:
  onKill = function(sceneId, killerSrc, victimSrc)
    exports.engine:notify(sceneId, "First blood!")
  end,
})

Game modes

Declare team sizes, rules and loadouts as data — then reach for lifecycle hooks, systems and a custom driver when you need real gameplay code. 1v1 to battle royale, and past it.

Arenas & maps

Ship your own arena pool; the engine pulls a map from it for each match.

Skins & cosmetics

Player skins and weapon wraps, packaged as a pack that plugs in without touching the engine.

Load screens

A pluggable splash system — image, video or bundle — shown while players connect.

UI toolkit

The same NUI design system the HUD is built on, reusable for your own panels.

How deep it goes

A descriptor is the floor, not the ceiling.

Every tier is optional. Ship a mode in minutes with data — or take full control. Same SDK, same contract, no engine fork.

01

Data

Team sizes, loadouts, timings — the declarative descriptor. The 1v1 Duel is data-only.

02

Rules

Rounds, deathmatch, zone control and win conditions — auto-run, no code.

03

Systems

Attach modules by name — a shrinking zone, a loot layer — alongside any mode.

04

Hooks

setup · onJoin · tick · onKill · onDeath — real functions, in your mode's VM.

05

Driver

Register a reusable native driver — the escape hatch beyond rules.

Distribute & sell

Build it. Ship it. Sell it.

One resource is one product. Release it open-source as an example, or keep it proprietary and sell it — the SDK plugs it into any RivalityFX server.

  • Open-source examplesBase modes and packs ship MIT — fork them as a starting point.
  • Proprietary packsKeep your work closed and sell it; entitlements gate ownership server-side.
  • One versioned SDKPin an apiVersion and the contract won't shift under you.

Start building.

The creator docs walk through every artifact — game modes, the mode API, maps, cosmetics, load screens and the UI toolkit.

Read the creator docs →