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 horseequipment item.

  • 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-Core

  • oxmysql

Used By Default

  • menuapi

  • vorp_core, used by the default NOTIFY(text) function.

  • SS-Inputs, used for keyboard input prompts.

Optional Integrations

  • SS-Clan

  • SS-Housing

  • SS-Metabolism

  • SS-Lockpick

  • outfits, 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:

  • horses

  • wagons

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:

  • EN

  • IT

  • ES

  • FR

  • DE

  • PT

  • RU

  • RO

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: Use true while testing. Use false on live servers so the script waits for character selection.

  • Language: Translation language used by the script.

  • Metabolism: Set to true only if you use SS-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. Use false to disable.

  • StandbySit: Idle time before horses sit/rest. Use false to 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.

  • thirsty and hungry: Used with metabolism integration.

Horse Tricks

Example:

  • HorseTricksCommand: Command used to open tricks. Use false to 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: Use false to disable blocking, true to block under 500 health, or a number such as 300 for 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. Use false to disable.

  • SSHousing: Set to true only if you use SS-Housing.

  • SSClan: Set to true only if you use SS-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 or false.

  • 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:

  • Model must be a valid RedM/RDR2 horse model.

  • Stats order must match the script's expected horse stat order.

  • Crossbreed = 0 means default/no custom crossbreed.

Add A New Wagon

Open:

Copy an existing wagon entry and change:

Important:

  • Model must be a valid wagon/vehicle model.

  • Stash controls stash capacity.

  • UtilityStash is 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:

  • true if a nearby horse was found and EXP was sent to the server.

  • false if 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.


Before going live, confirm:

  • SQL has been imported.

  • SS-Core starts before SS-Stable.

  • Dev = false.

  • Language is 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.

  • horseequipment item 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-Core is started.

  • Config.Dev is 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.lua stats.

  • 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-Clan and SS-Housing settings 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 horseequipment exists 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.

  • Feed config entry exists.

Wagon Repair Does Not Work

Check:

  • HammerRepair item 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: ,.

  • true enables a feature.

  • false disables 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