> For the complete documentation index, see [llms.txt](https://devmosaic.gitbook.io/devmosaic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://devmosaic.gitbook.io/devmosaic/resources/devmosaic-dm-tennis.md).

# Dm Tennis

<figure><img src="https://1989732204-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPqTcxlijq9VUZLAPYtqr%2Fuploads%2Fgit-blob-882543552cfb7a892dde892fbffbffc7b9cca81f%2Fdm-tennis-hero.jpg?alt=media" alt="A timed forehand with the shot trail"><figcaption><p>A timed forehand with the shot trail</p></figcaption></figure>

`dm-tennis` brings real singles and doubles tennis to FiveM. It is built on the game's own tennis animations and locomotion, so players move, swing and serve the way GTA's tennis does, while the match itself (ball physics, line calls, scoring, formats) runs on the server.

Players walk up to a court terminal, pick a mode and a match length, fill the empty spots with friends or computer players, and press Ready. Every shot is timed with one key, close balls get an instant line review, and the final score is painted on the court when the match ends.

Works on **Qbox**, **QBCore**, **ESX** and standalone servers. The only dependency is `ox_lib`. No database.

***

### Key Features

* **Singles and doubles**: 1v1 and 2v2 with real doubles rules (serve rotation, alternating receiver, the nearer partner takes the ball).
* **Friends or CPU**: fill any spot with a computer player at Easy, Normal or Hard skill.
* **Five match lengths**: tie-break, short set, one set, best of 3 with a deciding tie-break, or best of 3 full sets.
* **Timed shots**: topspin, slice, flat, lob and drop shot. Hold to charge, release as the ball arrives, and get graded Perfect, Good, Early or Late.
* **Instant line review**: any ball landing within a few centimetres of a line gets a replay camera on the mark, with the call decided by the server.
* **Server-side physics**: one ball simulation for everyone, so what you see is what the server scored.
* **Two cameras**: a TV camera behind your baseline or the normal camera, switched with one key.
* **Live scoreboard and calls**: points, games and sets on screen, with Out, Net, Fault and Let called automatically.
* **Final score on the court**: the result board is painted on the court surface at the end of the match.
* **Leaderboard**: wins, aces, longest rally and fastest serve per player, shown in the court terminal.
* **16 courts included**: every vanilla court in Los Santos, ready to play. Add your own in one file.
* **Spectators**: anyone near a court sees the ball, the players and the score.
* **Assist levels**: from a full auto-run arcade feel to fully manual movement and swings.

### Resource Name

The resource folder should be named:

```
dm-tennis
```

### In This Section

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-download">:download:</i></td><td><strong>Installation</strong></td><td>Requirements, server.cfg and the first match.</td><td><a href="/devmosaic/resources/devmosaic-dm-tennis/installation.md">Installation</a></td></tr><tr><td><i class="fa-gear">:gear:</i></td><td><strong>Configuration</strong></td><td>Every option in config.lua: lobby, formats, match rules, assists, cameras, keys, bots and stats.</td><td><a href="/devmosaic/resources/devmosaic-dm-tennis/configuration.md">Configuration</a></td></tr><tr><td><i class="fa-map-location-dot">:map-location-dot:</i></td><td><strong>Courts</strong></td><td>The 16 included courts and how to add your own.</td><td><a href="/devmosaic/resources/devmosaic-dm-tennis/courts.md">Courts</a></td></tr><tr><td><i class="fa-ranking-star">:ranking-star:</i></td><td><strong>Leaderboard And Languages</strong></td><td>Player stats, where they are stored, and translating the resource.</td><td><a href="/devmosaic/resources/devmosaic-dm-tennis/leaderboard-and-languages.md">Leaderboard And Languages</a></td></tr><tr><td><i class="fa-wrench">:wrench:</i></td><td><strong>Troubleshooting</strong></td><td>Terminal not showing, keys not working, matches not starting.</td><td><a href="/devmosaic/resources/devmosaic-dm-tennis/troubleshooting.md">Troubleshooting</a></td></tr></tbody></table>
