REX HORSESHOES

REX STUDIO – REX HORSESHOES – Real horseshoe pitching for RedM (VORP / RSG / Standalone)

Real horseshoes, pitched in the world. Step up beside your stake, aim across the pit while your hand sways, swing and release: the shoe flies underhand on a real arc, turning in the air, lands in the sand, slides, and rings the stake, leans on it or bounces off it. Everybody around sees the same shoe.

The server decides every shoe. The client only sends where you aimed and how hard you swung. The server adds the scatter, computes the flight, the slide and the stake contact, scores the inning and handles the money. Scores cannot be faked.

Horseshoes for RedM ranches and towns: classic cancellation scoring to 21, count-all, innings and practice, from 1 to 4 players or against an NPC, with optional cash stakes held by the server. One resource, works with VORP, RSG or standalone without any framework (detected automatically), with a sober wood / parchment UI and native RedM prompts. Vanilla props only: nothing to stream, nothing else to install.


Features

Game modes

  • Classic: 1 vs 1, cancellation scoring (ringers and leaners cancel, only the closer side scores), first to 21
  • Count-all: 2 to 4 players, every shoe counts, first to 21
  • Innings: 1 to 4 players, best total after 10 innings
  • Practice: solo, never a stake, never counted
  • Ringer 3, leaner 2, closest shoe within one shoe-width 1; a shoe outside the pit is a foul
  • 2 shoes per player per inning, turn timer, inning limit, the scorer pitches first
  • Lobby: the host opens the pitch, others join with a hold prompt, the host starts

NPC opponent

  • Easy, medium or hard, a local townsfolk ped on the other side of the stake
  • Pitches with exactly the same physics as the players, decided by the server
  • Optional stakes against the house (paid ×1.8, configurable)

Pitching

  • Two vanilla horseshoe stakes in sand pits, regulation 12 m apart (6–14 m adjustable)
  • Placement with a ghost of both stakes, their sand pits and foul lines: green when valid, red with the reason when not, distance and direction adjustable. The outline is a placement guide only: placed pitches stay clean
  • Underhand throw animation, the pitcher never walks: pinned on his spot, snapped back if he slides
  • Native prompt hold & release with a power gauge, sweet spot drawn on the gauge
  • Aim ring on the ground, clamped to the whole pit, hand sway, right click steadies the hand
  • Ballistic arc with gravity and spin, landing, hop, slide in the sand, ringers, leaners, heel swivels, deflections
  • Static cameras (thrower, side, high), no follow cam during the flight, then a close-up of the stake once the shoe is at rest

Spectators

  • Everyone near the pitch sees the scorebug (with a top view of the pit) and the shoes, and can watch through the game cameras

Bets (VORP / RSG)

  • Always off in standalone (every game is free)
  • Optional cash stakes (VORP cash; RSG cash or bank), min / max limits
  • House cut in %, RSG: optional society credited with the cut (rsg-bossmenu)
  • Stakes taken from every player at the start (all or nothing), held by the server in a crash-safe ledger, winner takes the pot
  • Players offline at the end of a game are paid or refunded on their next character load
  • Disconnect and walk-away policies configurable (forfeit or refund), admin cancel and restarts refund everybody

Security (server-authoritative)

  • Clients only send lateral aim, power and a shoe number
  • The server checks the turn, the sequence, the timing, the values and that the pitcher really stands behind the foul line, then adds its own scatter and resolves the shoe
  • Every event is rate limited, suspicious events are logged (console + Discord)

Leaderboard

  • Top 10: games, wins, ringer %, points per inning, best inning, winnings, plus your own line
  • End-of-game summary per player: score, ringers, leaners, ringer %, best inning
  • Open with R near a stake or /horseshoes

Pitches

  • /horseshoesadd [label]: place two stakes where you look (ghost preview), saved in the database (or the resource KVP without oxmysql)
  • /horseshoesremove [id], /horseshoeslist, /horseshoescancel [id], /horseshoescalib (shoe orientation, saved for every player)
  • Usable rex_horseshoes_pitch item: players set up their own pitch and take it down again (standalone: optional /horseshoepitch command, off by default)
  • Pitches can also be defined in config.lua
  • Optional map blips

Other

  • Native RedM prompts only, sober NUI (wood or parchment theme, one accent colour), bundled font
  • English and French locales
  • Notifications: framework, built-in toast, ox_lib or chat
  • Exports (IsInGame, GetPitches, GetMatch, GetPlayerStats, IsPlaying, IsPitching) and a rex_horseshoes:matchEnded event
  • Optional Discord webhook logs
  • Database tables created automatically (SQL file included), oxmysql optional (resource KVP fallback), VORP SQL and RSG item lines + item images included

Props

  • Vanilla RDR3 only: p_horseshoestake01x stakes (fallbacks p_metalstake01x, p_woodstake01x) and p_horseshoe01x shoes, nothing to stream, no props resource
  • Config.Props.stake = false when your MLO already has stakes
  • Optional custom rex_horseshoe (regulation pitching shoe, not included) used automatically if you stream one
  • Shoe model fallback chain rex_horseshoe > p_horseshoe01x > s_oldhorseshoe01x, with a console warning if none loads
  • Landed shoes lie on the real sand of the pit (surface probe + model bounds), stay until the inning is scored. Tunable: Config.Props.restLift, Config.Props.surface, Config.Props.keepShoes, Config.Props.autoFit, Config.Props.endLinger, Config.Props.lodDist

Commands

CommandWhoWhat it does
/horseshoeseveryoneOpen the standings (top 10 + your own line)
/horseshoesleaveeveryoneLeave the current game or lobby
/horseshoepitchstandalone only, option (Config.Items.standaloneCommand: off / everyone / ACE rex_horseshoes.pitch)Set up a personal pitch (two stakes, ghost placement), or take it down when you stand next to one of yours
/horseshoesadd [label]adminPlace a pitch (two stakes) with the ghost preview, saved
/horseshoesremove [id]admin / consoleRemove the nearest pitch (or by id); its game is cancelled and stakes refunded
/horseshoeslistadmin / consoleList every pitch (position, heading, distance, running game)
/horseshoescancel [id]admin / consoleCancel the game on the nearest pitch (or by id), stakes refunded
/horseshoescalibadminLay a shoe on the sand of the nearest stake and tune its rotation and height above the sand (saved for every player)
/horseshoescalib resetadminReset the shoe rotation to config.lua

Usable item rex_horseshoes_pitch (VORP / RSG): sets up a personal pitch where you look (1 per player by default, taken down again with hold G). Optional item rex_horseshoes_set (pair of shoes) required to play when Config.Items.requireShoes = true. Every command name is configurable (Config.Commands, Config.Items.command). Admin = framework admin group (Config.Admin.groups) or ACE rex_horseshoes.admin.

Controls (native RedM prompts)

WhereKeyAction
near a free stakeEPlay: open the lobby (mode, player or NPC opponent, level, stake)
near an open lobby / hosthold EJoin the game / start it (stakes are taken at the start)
your turnEStep up to your pitching spot
on the spotmouseMove the aim ring across the target pit

hold right clickSteady the hand (less sway, refilled every inning)

hold / release left clickSwing on the power gauge, release to pitch

CNext camera (thrower, side, high)

arrows / wheelMove / zoom the camera

Z (W on AZERTY)Hide / show the scoreboard

BackspaceStep back

hold GLeave the game
near a running gameCWatch it (spectator cameras), Backspace stops watching
near a stakeRStandings
your own pitchhold GTake it down (item back)
placing a pitcharrows up / down / wheel, arrows left / right, R, E, BackspaceStake distance, turn (Shift = fast), default 12 m, place, cancel
/horseshoescalibR, arrows up / down, E, BackspaceNext axis, adjust (Shift = fast), save, cancel

Framework compatibility

  • VORP: vorp_core, vorp_inventory
  • RSG: rsg-core, rsg-inventory
  • Standalone (no framework, supported): players identified by their Rockstar license, names = player names, admin by ACE, free games only (no money, no inventory), built-in notifications, optional /horseshoepitch command for personal pitches. oxmysql optional: without it, pitches and stats are saved in the resource KVP

Detection is automatic (VORP, then RSG, else standalone), or can be forced in the config. All framework calls are in an open bridge file, so you can adapt it if needed.

Changelog

  • 1.0.2: fix: landed horseshoes were sunk under raised sand pits (invisible). They now rest on the real pit surface, with a model fallback chain and new resting-shoe settings (Config.Props.restLift, surface, keepShoes, autoFit, endLinger, lodDist). /horseshoescalib tunes the height above the sand.
  • 1.0.1: release build.

Escrow

The resource uses the Cfx.re Asset Escrow. config.lua, the locales, the client/server bridge, the install files, the SQL and the README are open and editable. The core logic is escrowed.


Released by REX STUDIO. Requirements: OneSync. Optional: VORP or RSG, oxmysql, ox_lib, rsg-bossmenu.

Price: 20 € · Version: 1.0.2

20.00 EUR

Purchase