REX TENNIS
Real tennis on the vanilla courts of Los Santos
Rex Tennis turns the 16 vanilla tennis courts of the map into real matches: walk onto a court, press E, play another player or an NPC at three levels, and set a bet. You toss and time your serve, run to the ball and pick your shot, while the server flies every ball, checks every hit and keeps the score with the full tennis rules. Players around see the same ball at the same time and follow the scoreboard.
Important: Rex Tennis requires OneSync, ox_lib and oxmysql. ESX, QBCore and QBox are detected automatically, and it also runs standalone (bets off).
16 VANILLA COURTS
- Vespucci Beach (8 courts), Rockford Hills (Michael's house, golf club), Richman, Richman Glen, Vinewood Hills, Hawick, Vespucci Canals, Chumash
- Courts placed from Rockstar's own tennis data: vanilla props, peds, animations and sounds, nothing to stream
- Map blips, join zone with an [E] prompt on every court, and your own courts (MLOs) can be added in the config
PVP AND NPC
- 1 vs 1 PvP: open the court, the second player joins, the host starts the match
- vs NPC with 3 levels: Rookie, Amateur, Pro, each with its own speed, reaction, reach, accuracy, mistakes and tactics
- Best of 1, 3 or 5 sets, 2, 4 or 6 games per set, tie-break and advantage or no-ad, chosen in the lobby
SERVE
- The ball sits in the server's left hand, seen by everyone, NPC included
- LMB tosses the ball, LMB again at the top of the toss: a timing meter decides the quality of the serve
- Aim wide or down the T with A / D
- First and second serve, service boxes, faults, double faults and lets
SHOTS
- Drive (LMB), lob (RMB), drop shot (Q) and an automatic smash on high balls
- Aim left / right with A / D and deep / short with W / S
- Hit quality depends on how well you are placed: a late, stretched or low ball goes wide, long or into the net
- Assists: landing marker for the incoming ball, auto-face, lunge and an assisted step toward the ball (all configurable)
- Tennis ready stance between shots, forehand / backhand, topspin / slice, high / mid / low swings from
mini@tennis
SERVER-SIDE BALL PHYSICS
- Gravity, bounces with spin per shot, the net and the net cord, outs and double bounces, all computed by the server
- Every player and spectator replays the same trajectory on the server clock
- One setting for the game speed (
Config.Gameplay.ballSpeed) plus a speed per shot
REAL SCORING AND CALLS
- 15 / 30 / 40, deuce and advantage, games, sets, tie-break, server rotation and change of ends
- Every point is called on screen (Out, Fault, Ace, Net, Winner, Double fault, Let), on the scoreboard and with a sound
- A bounce marker shows where the ball landed: white in, red out
- Broadcast scoreboard for players and spectators: break, set and match point, deuce, tie-break, second serve
- Results screen at the end of the match
BETS
- PvP pot: both players pay the bet, the winner takes the pot minus the house cut (destroyed or credited to a society account)
- Bet against the NPC: win your bet times the level payout
- Taken and paid by the server, cash or bank, min / max. Refunded if the match does not start. Leaving a running match counts as a forfeit
STATS AND LEADERBOARD
- Elo rating for PvP, wins / losses, record against the NPC, sets, games, points, aces, double faults, winners and earnings, saved with oxmysql
- Server leaderboard one click away from the lobby
ADMIN TOOLS
/tennisadmin stop ends the match on the closest court (bets refunded), /tennisadmin court prints a court template from your position (ACE permission)/tennisracket to tune the racket in the right hand and the ball held before the serve live, values printed and copied for the config/tennisdebug draws the court lines as the script computes them and prints every bounce with its in / out verdict, to check any court you add
SECURITY
- The client only asks to toss or hit: the server measures the serve timing, checks every hit against your position on the server, the ball at contact time and the bounce rules, and builds the shot
- Score, bets and payouts are handled by the server only
FRAMEWORKS & REQUIREMENTS
Frameworks
- ESX
- QBCore
- QBox
- Standalone (bets disabled)
Requirements
- OneSync (required)
- ox_lib (required)
- oxmysql (required)
PERFORMANCE
- 0.00 ms idle: courts handled with
lib.points, local ball and NPC, the match loop only runs while a match is played near you
WHAT YOU RECEIVE
- The escrow-protected
rex_tennis resource - Open files: config, locales, bridge and install files
- Locales: English, French
- SQL table created automatically on start (SQL file included)
- Server exports and a
rex_tennis:server:matchEnded event to hook your own scripts - Documentation: README with quick-start, plus the online docs
SUPPORT
Rex Studio – rex-studio.com