Configuration Helps
SS-Stable Setup & Configuration Guide
SS-Stable is an advanced stable system for RedM. It handles personal horses, personal wagons, horse and wagon shops, equipment, training, breeding, taming, wagon cargo, repairs, animal cargo, markets, and optional integrations with other Sirec Studio scripts.
This guide is written for server owners who want to install, configure, and test the script safely, even without deep Lua knowledge.
Features Overview
SS-Stable includes:
Personal horse ownership: buy, store, call, and send away horses.
Personal wagon ownership: buy, store, call, and send away wagons.
Horse and wagon equipment shops.
Horse and wagon preview inside stable zones.
Horse equipment transfer using the
horseequipmentitem.Horse food, water, tricks, pelts, and saddlebag inventory.
Horse training, experience, horseshoes, and stamina behavior.
Breeding, foals, age stages, and optional crossbreed visuals.
Wild horse taming and selling.
Player horse market and stable budget withdrawal.
Wagon cargo for hunted animals and pelts.
Wagon damage, repair, cargo blocking, and stash blocking when damaged.
Multi-language support.
Optional integrations with
SS-Clan,SS-Housing,SS-Metabolism, lockpick systems, and outfit menus.
Dependencies
Required
SS-Coreoxmysql
Used By Default
menuapivorp_core, used by the defaultNOTIFY(text)function.SS-Inputs, used for keyboard input prompts.
Optional Integrations
SS-ClanSS-HousingSS-MetabolismSS-Lockpickoutfits, or another outfit menu trigger.
If you do not use an optional integration, disable it in config.lua.
Installation
1. Add The Resource
Place the script in your server resources folder:
Keep the resource folder name exactly:
2. Import SQL
Import the SQL file from:
The main database tables are:
horseswagons
The horses table stores ownership data, selected horse state, model, name, components, equipment, stats, shoes, age, breeding data, carried pelts, horse status, packed property data, and crossbreed values.
The wagons table stores ownership data, selected wagon state, model, name, components, damage/body data, cargo data, and stored city or area.
3. Add Inventory Items
Check every item name enabled in your config and make sure it exists in your inventory/database.
Important examples:
If an item does not exist, the feature using that item will not work correctly.
4. Start Order
Recommended start order:
If you use optional integrations, start them before SS-Stable when possible:
5. Restart The Server
After importing SQL and checking the start order, restart the server and test the main stable flow in-game.
Languages
Languages are configured in:
Included languages:
ENITESFRDEPTRURO
Example:
First Configuration
Open:
The file is grouped into clear sections:
General settings
Controls
Horse extra equipment
Horse settings
Wagon settings
Training
Breeding
Taming
Stable locations
Notification function
General Settings
Dev: Usetruewhile testing. Usefalseon live servers so the script waits for character selection.Language: Translation language used by the script.Metabolism: Set totrueonly if you useSS-Metabolism.WebHook: Discord webhook URL. Leave empty to disable webhook logs.
Police & Search Settings
SearchAllow: Jobs allowed to search horses and wagons with fewer restrictions.SearchAllowGrade: Minimum grade required for those jobs.GradePolice: Grade allowed to take market horses for free, useful for stolen horse recovery.
Controls
Controls use RedM key hashes:
Only change these values if you know the correct RedM control hash.
Horse Systems
Horse Equipment Transfer Item
SS-Stable supports one item that can store the main tack from one horse and apply it to another personal horse:
Behavior:
The player must be inside a stable area.
The source horse must be a personal horse.
The item stores main horse equipment as metadata.
The item can apply that equipment to another personal horse.
Mane, tail, mustache, and extra equipment are not included.
Equipment cannot be applied to a horse that already has main equipment.
The item must exist in your inventory/database.
Block Mount Without Saddle
true: Managed horses without saddle/equipment cannot be mounted normally.false: Players can mount even if the horse has no equipment.
This helps prevent players from removing equipment only to protect saddlebag access while travelling.
Extra Horse Equipment
Example:
Fields:
The key, for example
horseblanket, is the usable item name.Hash: Metaped outfit hash applied to the horse.Label: Text shown in the menu.Stash: Optional extra inventory size behavior.Flame: Optional special visual behavior.
Core Horse Settings
Important examples:
MaxHorses: Normal player horse limit.TrainersMaxHorses: Horse trainer limit.BuyHorseAge: Random age range for newly bought horses.AttackEnemies: Minimum EXP required for the horse to attack enemies when called. Usefalseto disable.StandbySit: Idle time before horses sit/rest. Usefalseto disable.CallHorseOnlyInCities: Restrict horse calling to allowed cities or stables.SendHorseOnlyInCities: Restrict sending horses away to allowed cities or stables.
Horse Food
Example:
The key is the item name.
label: Display name.boost: Enables stronger effect behavior.health: Horse health restored.stamina: Horse stamina restored.thirstyandhungry: Used with metabolism integration.
Horse Tricks
Example:
HorseTricksCommand: Command used to open tricks. Usefalseto disable command access.HorseTrickDistance: Maximum distance between player and horse.Exp: Minimum horse EXP required for that trick.
Wagon Systems
Core Wagon Settings
Important examples:
WagonLowHealth: Health threshold where the wagon is considered heavily damaged.BlockWagonIfDamage: Usefalseto disable blocking,trueto block under 500 health, or a number such as300for a custom threshold.ActiveLastPosition: Wagon can be recalled only from its saved area.CallWagonOnlyInCities: Restrict wagon calls to cities, stables, housing areas, or clan areas.SendWagonOnlyInCities: Restrict sending wagons away.WagonDistanceToRoads: Road search distance when spawning wagons.
Wagon Repair
HammerRepair: Usable repair item.HammerRepairScenario: Scenario played while repairing.HammerRepairTime: Repair duration in milliseconds.HammerAddWagonHealth: Health added per repair.HammerRepairNeeds: Required item, amount, and display label.
Optional Wagon Integrations
EnableOutfits: Event/trigger used to open wardrobe from wagon. Usefalseto disable.SSHousing: Set totrueonly if you useSS-Housing.SSClan: Set totrueonly if you useSS-Clan.
Training, Breeding & Taming
Training
Training is split into:
Experience tiers
Trainer jobs
Training routes
Random action training
Free training
Horseshoes
Trainer job example:
Horseshoes
The key is the item name.
label: Display name shown to players.km: Distance before horseshoe degradation.
Breeding
Jobs: Jobs allowed to breed horses.AllowCross: Enables custom crossbreed visual values.Pill: Item used to start breeding.Brush: Item used to clean horses.Chance: Chance to start breeding.BreedWaitTime: Days until the foal is born.
Foal age stages:
These values control when foals can be ridden, trained, equipped, become old, die, or are deleted.
Taming
MaxFails: Failed button prompts before taming fails.MaxSucces: Successful prompts required.RandomTime: Random time between prompts.ReactionTime: Time allowed to press the correct prompt.TamingPrice: Price percentage needed to keep a tamed horse.SellPrice: Price percentage used when selling a tamed horse.TamingAge: Random age range for tamed horses.
Stable Locations
Stable entries are configured in config.lua.
Example:
Important fields:
Name: Stable name.CamPos: Camera position for UI/preview.Blip: Stable blip hash orfalse.MySpot: Personal horse spawn spot.ActiveMyWagon: Enables personal wagon spot.MyWagonSpot: Personal wagon spawn spot.CustomPos: Equipment/customization position.TrainingType: Training type used at this stable.TrainingPos: Training, breeding, and taming area.Distance: Zone radius.SellHorses: Enables horse shop.SellSpots: Horse shop preview spot.SellWagons: Enables wagon shop.SellWagonsSpot: Wagon shop preview spot.SellPlayersHorse: Enables player horse market.SellPlayersHorseSpot: Player horse market spot.
Keep interaction spots separated. If two spots overlap, prompts can overlap in-game.
Add A New Stable
Copy an existing stable entry and change only the values:
After adding a stable, restart the resource/server and test every interaction spot.
Adding Shop Content
Add A New Horse
Open:
Copy an existing horse entry in the correct category and change:
Important:
Modelmust be a valid RedM/RDR2 horse model.Statsorder must match the script's expected horse stat order.Crossbreed = 0means default/no custom crossbreed.
Add A New Wagon
Open:
Copy an existing wagon entry and change:
Important:
Modelmust be a valid wagon/vehicle model.Stashcontrols stash capacity.UtilityStashis used by utility/inventory logic if supported.
Add Horse Equipment
Open:
Use an existing entry as a template. Equipment categories can include saddle, bags, bedroll, blanket, stirrups, bridles, and other tack parts.
Typical equipment fields:
Important:
Use valid component hashes.
Keep equipment order logical: blanket before saddle, saddle before bags.
Test preview and called horses after adding new equipment.
Add Wagon Equipment
Open:
Copy an existing color, livery, or prop entry and change values carefully.
Add Animal Cargo
Open:
Animals and pelts must use correct model/hash and quality data. If quality data is wrong, players can see the wrong star quality when putting or removing animals from wagons.
Exports
Get Nearby Horse
Returns nearby horse data, or false/nil.
Get Nearby Wagon
Returns nearby wagon data, or false/nil.
Get Active Personal Wagon
Returns active personal wagon data, or false.
Add Horse EXP
Returns:
trueif a nearby horse was found and EXP was sent to the server.falseif no valid horse was nearby.
Commands
Player-facing command:
The command name depends on:
Dev/test commands can exist when Config.Dev = true. They are for testing only and should not be used on live servers.
Notifications
At the bottom of config.lua:
If your server uses another notification system, change only this function.
Recommended Live Checklist
Before going live, confirm:
SQL has been imported.
SS-Corestarts beforeSS-Stable.Dev = false.Languageis selected.Optional integrations are disabled if missing.
Inventory items are added.
Horse shop works.
Wagon shop works.
Personal horse call/send works.
Personal wagon call/send works.
Horse equipment buying works.
horseequipmentitem works.Wagon repair works.
Wagon cargo works with different animal qualities.
Horse training works.
Breeding works.
Taming works.
Troubleshooting
Stable Menu Does Not Appear
Check:
Resource name is
SS-Stable.SS-Coreis started.Config.Devis correct for your test/live flow.Player has selected a character.
Stable coordinates are correct.
Spots are not too far away or inside the ground.
UI Opens But Stats Look Wrong
Check:
Horse/wagon data in the database.
cfg/horses.luastats.Equipment stats.
Browser cache or NUI refresh.
Horse Does Not Spawn
Check:
Horse model exists.
Player is in an allowed call area.
CallHorseOnlyInCities.AllowedToCallCity.Server/client console for model load timeout.
Wagon Does Not Spawn
Check:
Wagon model exists.
Player is in an allowed call area.
CallWagonOnlyInCities.WagonDistanceToRoads.ActiveLastPosition.SS-ClanandSS-Housingsettings if used.
Cannot Open Wagon Stash Or Cargo
Check:
Wagon health.
BlockWagonIfDamage.WagonLowHealth.Lockpick blacklist cities.
Police/search permissions.
Cannot Mount Horse
Check:
BlockMount.Horse has saddle/equipment.
Horse is old enough.
Horse is not dead.
Horse Equipment Item Does Not Work
Check:
Item
horseequipmentexists in inventory/database.Player is inside a stable area.
Horse is a personal horse.
Target horse has no main equipment.
Metadata is preserved by your inventory framework.
Horse Food Does Not Work
Check:
Item exists.
Item is registered as usable server-side.
Horse is nearby.
Feedconfig entry exists.
Wagon Repair Does Not Work
Check:
HammerRepairitem exists.Player is near the active wagon.
Required repair items exist.
Wagon has draft animals if your config/logic requires it.
Wagon is not below recovery threshold.
Translations Show Nil Or Wrong Text
Check:
Language.l/l.lua.Missing translation keys.
Editing Rules For Beginners
When editing Lua:
Strings use quotes:
"text".Table entries usually end with a comma:
,.trueenables a feature.falsedisables a feature.Numbers do not use quotes:
100.Item names usually use quotes:
"itemname".Coordinates usually look like
{x, y, z, heading}.
Bad:
Good:
Bad, if you do not actually use SS-Housing:
Good:
Support
For bug reports and support:
Last updated