Moteur instancié
Chaque match vit dans son propre routing bucket — une scène, un mode. Des parties en parallèle, sans interférence.
EngineLicencie le serveur RivalityFX complet — moteur, matchmaking ranked, HUD esports, stats off-box, cosmetics et arènes. Clé en main sur ton serveur FiveM, extensible par le SDK.
Le moteur, le matchmaking, les modes, le HUD, les stats, les cosmetics et les arènes — une seule plateforme cohérente, soudée par un SDK versionné. Tu déploies le tout, tu l'étends quand tu veux.
Chaque match vit dans son propre routing bucket — une scène, un mode. Des parties en parallèle, sans interférence.
EngineRooms créées par les joueurs et files ranked auto-lancées. Le ranked est la seule file scorée — anti-farm par construction.
Rooms + RankedSquads anonymes, du 1v1 au battle royale. Déclaratif par défaut — avec des hooks de cycle de vie, des systems et des drivers custom quand un mode a besoin de vrai code.
Data-drivenScoreboard, kill feed, countdown, couleurs égocentriques. En rem + viewport : net de 1280×720 à la 4K.
Overlay HTMLPersistance modulaire — un store clé-valeur autonome (sans base) ou ta propre API et base de données. Carrière et saison, prêtes à alimenter un site public comme celui-ci.
ModulaireSkins joueurs persistés + un map pool d'arènes partagé. Des packs qui se branchent par le SDK, sans toucher au moteur.
ExtensibleLe moteur n'embarque aucune règle — chaque mode déclare les siennes. Les modes simples sont de la pure donnée : tailles d'équipe, un bloc de règles, loadouts. Les ambitieux passent au code — hooks de cycle de vie, systems réutilisables, voire un driver natif custom — sans forker le moteur. Une ressource, versionnable et vendable ; même mécanique pour les arènes et les packs cosmetics.
rules — puis les hooks onKill, tick et les systems quand tu veux une vraie logique de gameplay.restart mode_xxx — pas de reboot serveur pour itérer.-- 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,
})RivalityFX ne vend que du cosmétique — skins de joueur et livrées d'armes. Aucune arme, aucune stat, aucun rang n'est à vendre, conformément aux règles de la plateforme Cfx.re. Le classement se gagne, il ne s'achète pas.
RivalityFX, c'est une seule boucle. Les joueurs remplissent les arènes, les owners les font tourner, les créateurs les renouvellent — et une arène fraîche et peuplée attire les joueurs suivants.
Connecte-toi, grimpe au classement, reviens la saison d'après.
Licencie l'arène complète et fais tourner le serveur que les joueurs cherchent.
Construis des modes, des arènes et des cosmetics qui gardent chaque serveur frais.
RivalityFX s'ouvre en accès anticipé à un nombre limité de propriétaires. Laisse ton email et quelques mots sur ton serveur — on revient vers toi avec les détails de licence et de déploiement.
exports.sdk:registerMode) — déclaratif pour les modes simples, avec des hooks de cycle de vie, des systems et même un driver custom quand tu veux du vrai code de gameplay. Même principe pour les packs cosmetics et les arènes.