REX STUDIO – REX STABLE – The complete stable system for RedM (VORP / RSG)
Saddle up, partner. One resource replaces your horse shop, stable, tack shop, wagon dealer, vet, breeder, horse trader and rental counter. Players browse 26 breeds and 122 coats in a 3D showroom, try tack on live, raise horses that age, level up and bond with them, buy and customise 44 wagons, tame wild horses, breed foals and trade with each other, all from a hand-crafted Wild West ledger of leather, brass and parchment.
And you control all of it. Every stable, price, breed, coat, stat, tack item, wagon, timer, fee, limit, rule, key, command, text and camera setting lives in five open, fully commented config files. Run a cheap arcade server or a hardcore economy where horses grow old and die for good: it's your choice, line by line.
VORP and RSG are detected automatically. The server decides every price and every ownership. It costs ~0.00 ms idle and uses native RedM prompts everywhere.
Features
The stable ledger (NUI)
- Six tabs: Horses (shop) · My Horses · Tack · Wagons (shop) · My Wagons · Breeding. Each stable shows only the tabs you enabled for it
- 3D showroom: the horse or wagon stands in front of a local camera that only you see. Drag to rotate, wheel to zoom, gentle auto-rotation, warm fill light at night
- Smooth fade to black when the showroom opens and closes (no camera flying out of your character). Every tab preselects the first item, so the stage is never empty
- Coat swatches, gender and adult / foal switches, stat bars, filters by category, live price tags, inline rename, confirmations, toasts and native sounds. No CDN, all fonts and textures are bundled
Horses
- 26 breeds, 122 coats in 6 shop categories (riding, racing, war, versatile, work, farm), from the Donkey to the Arabian. Breeds can be reserved to jobs and each stable can sell only some categories
- Every horse has a name, gender (stallion / mare), age, 6 statistics (speed, acceleration, stamina, health, handling, courage) applied to the native attributes, a training level 1-10 and bonding
- Foals grow up in real time (their scale grows with them) and can be ridden once adult. Old horses slowly lose stats
- XP is measured by the server while you ride: a modded client cannot send XP. Each level raises the stats
- One main horse you whistle anywhere: it gallops to you, or is brought in from out of sight. The others wait at the stable where you left them
- Stable transfers for horses and wagons, with a fee by distance and an optional travel time
- Injury & vet: a downed horse can be revived with a reviver item or by a vet player (
/vet, paid by the owner) before the timer ends. Otherwise it goes back to its stable injured and needs the vet, or dies for good if you enable it - Care items with native animations: brush, food (hay, sugar cubes, apples...), stimulant, reviver
- Saddlebags: a real framework inventory per horse, optionally only when it wears saddlebags. Robbery RP option to let others open them
- Horse card: lock on any registered horse to read its name, breed, coat, age, level, bonding and stats
- Horse emotes: rest, sleep, drink, graze, wallow
Tack
- 12 categories: saddles, blankets, horns, stirrups, saddlebags, bedrolls, bridles, masks, lanterns, manes, tails, mustaches. 134 styles / 825 items from the game files
- Everything is tried on the 3D horse live: readable style names, colour picker, an order summary with the total, one click to reset. Re-equipping what the horse already wears is free
- Starter tack on newly bought horses, set in the config
Wagons
- 44 wagons in 5 categories: carts & buggies, wagons, coaches & stagecoaches, trade wagons (dairy, doctor, log, coal, oil...), law & army (job-locked)
- Storage per wagon (framework inventory), damage saved, repair at the stable or with a repair kit item
- Customisation with live preview: paint (tints), liveries, extras, cargo prop sets and lanterns, per model, from the game's modding data
/wagon brings your wagon to the nearest road; it is stored automatically when you ride away
Breeding, wild horses, trading, rentals
- Breeding: a stallion and a mare of the same breed, a real-time gestation, a foal with a parent's coat (or, by chance, another coat of the breed). Minimum age and bonding, parent cooldown, fee
- Wild horses: break a wild horse, ride it to one of 10 paddocks and sell it or keep it in your stable. 28 sellable models with their own prices, optional job restriction
- Trading between players: offer a horse or wagon for a price or as a gift, with a timed dialog and an optional stable tax
- Rentals: rent a horse or a wagon for a set number of minutes at a rental counter
- Optional upkeep per horse and wagon, with a debt that blocks the stable until it is paid
World
- 16 locations ready out of the box: 9 stables with a shop and a 3D showroom (Valentine, Blackwater, Saint Denis, Rhodes, Tumbleweed, Wapiti, Manzanita, Southern Camp, Guarma) and 7 retrieval outposts (Van Horn, Emerald Ranch, Hennigan Ranch, Strawberry, Armadillo, Benedict Point, Colter)
- Stable hands spawned only when you are close, blips for stables, outposts, paddocks, rentals and your own horse / wagon
Security & performance
- The server decides everything: prices only come from the server config, every action checks ownership, the job and the server-side distance to the stable. Every database write is
WHERE id = ? AND owner = ? - Spawned horses and wagons are validated (expected id, model, distance) and tracked by the server. Rate limits per player, one money action at a time, refunds if a step fails, forged requests logged
- ~0.00 ms idle: prompts and stable hands only exist near a stable. OneSync aware (state bags, network ids)
- Discord logs (buy, sell, trade, transfer, tack, wild, breeding, vet, admin, exploit), server exports and hooks for your other scripts
- English & French included, more than 1,000 automated checks run before every release
Everything is configurable
Five open config files, every line commented, read by the server. Here is what you can change without touching a single line of code:
Stables & world (config/stables.lua)
- Add, move or remove any number of stables and outposts: position, label, blip on / off, stable hand model, heading and scenario (or no NPC)
- Per stable: shop on / off, wagons on / off, breeding on / off, horse spawn, wagon spawn, 3D preview spots for horse and wagon, the horse and wagon categories sold there, and job-reserved stables (e.g. a ranch only for horse trainers)
- Rental counters: as many as you want, each with its horse model, wagon model, price, minutes, spawn points and blip
- Wild horses: on / off, allowed jobs, job-only blips, keep on / off, paddock list and radius, sale cooldown, and the sell price and keep fee of every model
- Breeding: fee, gestation hours, minimum age, minimum bonding, parent cooldown, tamed wild horses allowed or not, chance of a random coat
Catalogue (config/horses.lua, config/tack.lua, config/wagons.lua)
- Horses: shop categories and their order, then for each breed its name, category, price, currency (dollars or gold), 6 base stats, saddlebag size, allowed jobs and its coats (model, name, optional price per coat). Add your own breeds, even custom streamed horse models
- Tack: which categories are sold, their order, price, currency, removable or not, plus the starter tack of new horses
- Wagons: categories, and for each wagon its label, price, currency, storage slots / weight, draft horses and allowed jobs. Customisation price for each kind of change, repair fee, repair item, broken threshold, buy-back factor, despawn and call distances
Rules & economy (config/config.lua)
- Limits: horses and wagons per character, other limits per job, name length, banned words in names
- Age: on / off, real days per horse year, adult age, foal scale, foal price factor, age of a horse bought adult, old age and stat loss
- Training & bonding: XP per riding tick, tick length, minimum speed, the XP table for levels 1-10, stat bonus per level, bonding from riding, brushing and feeding, bonding decay per day, care cooldown
- Death & vet: revive window, permanent death on / off, vet fee, heal fee, XP penalty, vet jobs and the fee paid to a vet player
- Care items: item names, which are consumed, health / stamina given by each food, the food props
- Transfers: on / off, base fee, price per km, cap, wagon factor, travel delay
- Upkeep: on / off, interval, price per horse and per wagon, notifications, debt or ignore when unpaid
- Trading: on / off, offer time, maximum price, tax %, stables only or anywhere
- Selling to the stable: buy-back factor, bonus per level, injured and wild factors
- Saddlebags & storage: on / off, saddlebags tack required, default slots and weight, weapons accepted, weight limit, others can open, content deleted on sale, and a custom hook for any other inventory
Experience (config/config.lua)
- Camera & showroom: preview on / off, distance, zoom range, height, field of view, rotation speed, auto-rotation, wagon distance, hide the player, and the fade (on / off, fade-out and fade-in times, maximum wait) or the classic camera blend
- Keys of every prompt and the hold time, every command name (or
false to disable it), every distance (stream, interaction, server check, trade, whistle, spawn, despawn, wagon storage) - Blips: on / off, style and sprite of stables, outposts, paddocks, rentals, your horse and your wagon
- UI: server name on the ledger, click sounds. Notifications: framework, ox_lib or chat
- Languages: English and French included. Every text is in
locales/, add your own language file
Server & integration
- Framework (auto, VORP or RSG), admin ACE and groups, admin command names, rate limits per type of request
- Discord webhook: name, avatar, and which events are logged
- Hooks:
CanBuy (refuse any purchase with your own rules), OnStableIncome (send stable income to a society), OnHorseDown (plug your medic / vet scripts) - Exports:
GetHorses, GetWagons, GetMainHorse, GetHorseByNetId, AddHorse, AddWagon, AddHorseXP
Commands
| Command | Who | What it does |
|---|
/wagon | everyone | Brings your active wagon to the nearest road |
/storewagon | everyone | Sends your wagon back to its stable |
/storehorse | everyone | Sends your horse back to its stable |
/horse rest|sleep|drink|graze|wallow|stop | everyone (your horse, dismounted) | Plays a horse emote, or stops it |
/stableaccept | everyone | Accepts the last trade offer (the ledger also shows an accept / decline dialog) |
/vet | vet jobs (Config.Death.VetJobs, default vet, doctor) | Revives the downed horse next to you; its owner pays you the vet fee |
/givehorse <playerId> <model> [name] [male|female] | admin / console | Gives a horse (no payment), stored at the nearest stable |
/givewagon <playerId> <model> [name] | admin / console | Gives a wagon (no payment) |
/healhorse <horseId> | admin / console | Heals and revives a horse, clears its injury |
/stableinfo <playerId> | admin / console | Lists a player's horses and wagons (id, model, stable, XP, health) |
/stablepos | admin (in game) | Prints your position and heading as a vector4, to place new stables |
Every command name is set in Config.Commands / Config.Admin.Commands (false disables a player command). Admin = ACE rex_stable.admin or a framework group in Config.Admin.Groups.
Usable items (optional, names configurable): horse_brush (brush, bonding), horse_hay · horse_candy · apple (food), horse_stimulant (fills the cores), horse_reviver (revives your downed horse), wagon_repair_kit (repairs the wagon next to you).
Controls (native RedM prompts)
| Where | Key | Action |
|---|
| at a stable hand | hold G | Open the stable ledger |
| in the ledger, outside the book | mouse drag / wheel | Rotate / zoom the 3D preview |
| in the ledger | Esc | Back from a detail page, or leave |
| on foot | H | Whistle your main horse |
| lock-on on a registered horse | H | Show its horse card |
| lock-on on your horse | hold G | Open the saddlebags |
| at the back of your wagon | hold G | Open the wagon storage |
| riding a tamed wild horse in a paddock | hold R / hold G | Sell it / keep it in your stable |
| at a rental counter | hold G / hold R | Rent a horse / rent a wagon |
Every key and the hold time are set in Config.Keys.
Framework compatibility & requirements
- VORP:
vorp_core + vorp_inventory (saddlebags and wagon storage use its custom inventories) - RSG:
rsg-core + rsg-inventory (stashes) - oxmysql (required). The tables are created automatically, and the SQL file is included
- OneSync. Optional: ox_lib for notifications
Detection is automatic, or can be forced in the config. All framework calls are in open bridge files, so you can adapt them. A framework (VORP or RSG) is required; there is no standalone mode.
Installation
- Drop
rex_stable in your resources and add ensure rex_stable after oxmysql, your framework and your inventory - Start the server: the database tables are created on their own
- Admins:
add_ace group.admin rex_stable.admin allow (or use your framework groups) - Optional: create the care items (ready-to-paste VORP SQL and RSG
items.lua lines are in the README) - Check the stable spots in game and move them with
/stablepos if your map has custom MLOs
Escrow
The resource uses the Cfx.re Asset Escrow. All config files (config/*.lua), the locales, the client / server bridges, the SQL, the README and the licence are open and editable. The core logic is escrowed.
Support
Support on our Discord: installation help, configuration questions and bug reports. Updates are delivered through your Cfx.re Keymaster.
Released by REX STUDIO. Requirements: VORP or RSG, oxmysql, OneSync. Version: 1.0.2