Admin UI
- Added
- Updated

Captured from the current UI in a browser using sample data.
What this gives you: the screen where all of the above lives.
There are two ways in. Both show the same thing.
| In-game (NUI) | Browser | |
|---|---|---|
| How to open | /economy | http://<host>:30120/REC_Economy/ |
| Who gets in | A grant | An access token |
| Out of the box | On | Off |
| Setup needed | None | See below |
/economy is all you need, skip the browser section entirely.Ten pages share one sidebar.
| Page | What you use it for |
|---|---|
| Dashboard | The total, split by currency, plus money moving in real time |
| Players | Look up any character's balance |
| Distribution | How evenly money is spread — or how much of it sits with ten people |
| Societies | Every group account, and how each balance has moved |
| History | The total over time, with your own notes marked on the chart |
| Money flow | Explicit issuance/destruction, transfers, internal moves and unclassified movements |
| Economic analysis | Activity returns, prices, growth and period comparisons |
| Alerts | What tripped, newest first |
| Watchlist | Who is being recorded, and everything they did |
| Settings | Everything this page tells you to set |
Re-aggregate rebuilds all of it from scratch. Money item figures come from REC_ItemManager, so recount there first if you want those refreshed too.
playerList.limit (500) caps how many characters the player list draws at once. Searching and sorting happen before that limit, so you are never searching a truncated list, and the page tells you when there was more.
Settings
What this gives you: one place that is the truth, instead of a file and a database row that can disagree.
Intervals, retention, thresholds and toggles are declared by the resource and changed here. What the page shows is what the server is running.

| Risky | Asked about before it is written, because it stops something being recorded or deletes rows that cannot be brought back |
| Needs a restart | Read once at boot, so the running server keeps the old value until you restart the resource |
| Default | Printed under every setting, and one click puts it back |
| Export / Import | The whole set as a file, so a test server and a live one can be made to match |
rec_config_overrides, a table that ships with REC_Library and is shared by every RE : CORD panel. Import it once from the REC_Library page. Without it the panel still works, but what you change is forgotten on the next restart.Who gets in
What this gives you: a moderator who can look without being able to change anything.
Access is granted per area, and this resource has four: economy, notes, watchlist and settings. Each one splits into :read and :write, so economy:read opens the dashboard while economy:write is what re-aggregates it.
config.web = webConfig:build(config.debugMode, {
---@type REC_Library.Server.Class.Web.WebConfig.Grant[]
grants = {
{ ace = "moderator", scopes = { "economy:read", "watchlist", }, },
{ job = "police", ranks = { [3] = true, [4] = true, }, onDutyOnly = true, scopes = { "watchlist:read", }, label = "police", },
},
})
Naming a bare area ("watchlist") grants both halves of it, and "*" grants everything.
REC_Library already grants the admin ACE full access, and your entries are added on top of that list rather than replacing it, so narrowing a grant here can never lock an admin out. Every entry that matches contributes its scopes, and somebody matching two of them gets the union. There is no deny form — to take something away, stop granting it. Naming an ace and a job in one entry means the player needs both.
Economic analysis
Requires economy:read. Configure config.analytics.enabled, moneyTypes, priceBasket and collection limits in the server configuration.
The page covers activity success and returns per participant-time, actual purchase prices, balances, newcomer growth and before/after comparisons. Comparison periods range from 1 to 30 days; unclassified transactions and missing observation coverage remain visible.
Instrument activities with beginActivity → recordActivityMoney → endActivity, and purchases with recordPurchase. Activity and purchase-price datasets require these integration calls. priceBasket defines the products and quantities used for price comparison.
server/sv_schema.lua creates analysis tables and adds missing flow-table columns on startup. The database user needs CREATE / ALTER permission. rec_economy.sql also provides the definitions for a fresh installation.
