NoMoreRP is an object-oriented MVC gamemode base for nanos world — wired by a loader and a DI registry, backed by a set of dependency-free Lua packages for networking, data and async.
# clone the packages into your server 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 loaded — controllers registered ▋
Built for the nanos world creator ecosystem
How it is built
NoMoreRP gives you a clean architecture and a toolkit of dependency-free Lua packages, so you build gameplay instead of plumbing.
An object-oriented gamemode base wired by a loader and a DI registry — models, views, controllers.
Promise-based, typed request/reply over engine events — Call, CallAsync and CallRemote across server and client.
A dependency-free Lua ORM: models, relations, a query builder, migrations, hooks and soft deletes.
A JS-grade Promise/A+ implementation with async/await, :Await() and the full combinator set.
A dependency-free shared i18n system for Lua and WebUI, so your server speaks every player’s language.
Fully annotated with LuaCATS for real autocomplete, inline docs and type checking in your editor.
Server-authoritative stamina as a HUD gauge, with hunger, thirst and alcohol on the roadmap.
Every package is fully open source under MIT and dependency-free — take the whole stack or just one piece.
Developer-first
Resolve services from the registry, query the database through the ORM and reply over the typed RPC layer — with LuaCATS annotations guiding you the whole way.
-- a controller resolved by the DI registry 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
Ecosystem
Each package is a standalone, dependency-free nanos world repository under MIT. Use the whole stack or pull in only what you need.
The MVC gamemode base — loader, DI registry and OO architecture in Lua.
Promise-based, typed RPC over engine events. Call / CallAsync / CallRemote.
Norm ORM: models, relations, query builder, migrations, hooks, soft deletes.
Promise/A+ for Lua: async/await, :Await() and the full combinator set.
Dependency-free shared localization for Lua and WebUI.
Server-authoritative stamina HUD gauge — hunger and thirst on the roadmap.
Quick start
Everything lives in your server Packages folder. Pull the core and the libraries it uses, point the ORM at your database and start.
Add the NMRP gamemode base to your Packages folder.
git clone .../No-More-RP/nmrp Pull in the RPC, ORM and promise packages.
git clone .../nmrp-rpc nmrp-norm nmrp-promise Point Norm at your database and run migrations.
edit Packages/nmrp-norm/Config Set nmrp as your gamemode and start the server.
NanosWorldServer.exe Star the repositories, read the code and contribute on GitHub, or ask questions in the org discussions.