NoMoreRP est une base de gamemode MVC orientée objet pour nanos world — câblée par un loader et un registre DI, épaulée par des packages Lua sans dépendances pour le réseau, les données et l’asynchrone.
# clone les packages dans ton serveur Packages/ nmrp/ MVC gamemode base nmrp-rpc/ typed RPC layer nmrp-norm/ Norm ORM nmrp-promise/ async / promises # nmrp/Package.toml name = "nmrp" title = "NoMoreRP" type = "game-mode" ▶ gamemode chargé — contrôleurs enregistrés ▋
Conçu pour l’écosystème créateur nanos world
Comment c’est construit
NoMoreRP te donne une architecture propre et une boîte à outils de packages Lua sans dépendances — tu construis du gameplay au lieu de la tuyauterie.
Une base de gamemode orientée objet câblée par un loader et un registre DI — modèles, vues, contrôleurs.
Requête/réponse typée basée sur des promesses au-dessus des events moteur — Call, CallAsync et CallRemote, serveur et client.
Un ORM Lua sans dépendances : modèles, relations, query builder, migrations, hooks et soft deletes.
Une implémentation Promise/A+ digne de JS avec async/await, :Await() et tout le jeu de combinateurs.
Un système i18n partagé sans dépendances pour Lua et WebUI, pour que ton serveur parle la langue de chaque joueur.
Entièrement annoté avec LuaCATS pour un vrai autocomplete, une doc inline et du type-checking dans ton éditeur.
Une stamina server-authoritative en jauge HUD, avec faim, soif et alcool sur la roadmap.
Chaque package est entièrement open source sous MIT et sans dépendances — prends toute la stack ou une seule pièce.
Pensé pour les devs
Résous tes services depuis le registre, interroge la base via l’ORM et réponds sur la couche RPC typée — les annotations LuaCATS te guident à chaque étape.
-- un contrôleur résolu par le registre DI local Controller = Registry:get("PlayerController") function Controller:OnReady(player) -- Norm ORM: load or create the character local char = Character :where("steam_id", player:GetSteamID()) :firstOrCreate():await() -- typed RPC back to the client RPC.CallRemote("character:loaded", player, char:toTable()) end
Écosystème
Chaque package est un dépôt nanos world autonome et sans dépendances, sous MIT. Prends toute la stack ou seulement ce dont tu as besoin.
La base de gamemode MVC — loader, registre DI et architecture OO en Lua.
RPC typé basé sur des promesses au-dessus des events moteur. Call / CallAsync / CallRemote.
ORM Norm : modèles, relations, query builder, migrations, hooks, soft deletes.
Promise/A+ pour Lua : async/await, :Await() et tout le jeu de combinateurs.
Localisation partagée sans dépendances pour Lua et WebUI.
Jauge HUD de stamina server-authoritative — faim et soif sur la roadmap.
Démarrage rapide
Tout vit dans le dossier Packages de ton serveur. Récupère le core et les libs qu’il utilise, branche l’ORM sur ta base et démarre.
Ajoute la base de gamemode NMRP à ton dossier Packages.
git clone .../No-More-RP/nmrp Récupère les packages RPC, ORM et promise.
git clone .../nmrp-rpc nmrp-norm nmrp-promise Branche Norm sur ta base et lance les migrations.
edit Packages/nmrp-norm/Config Définis nmrp comme gamemode et démarre le serveur.
NanosWorldServer.exe Star les dépôts, lis le code et contribue sur GitHub, ou pose tes questions dans les discussions de l’org.