How players use Deathmatch, how a match is played from start to end, and how to add your own maps, weapons and showcase.
Documentation
How Quasar Deathmatch works on FiveM: create and join lobbies, passwords, Ice vs Fire teams, rounds, round timer, play area, spectator mode, and how to add your own maps and weapons.
How players use Deathmatch, how a match is played from start to end, and how to add your own maps, weapons and showcase.
Follow the Deathmatch Zone blip, stand on the marker and press E. The menu cannot be opened while dead. E is a FiveM key binding, so each player can change it in Settings → Key Bindings → FiveM → Deathmatch Menu.
The first screen lists every lobby that has not started yet.
Control | What it does |
|---|---|
Search | Type a name and press Enter to filter lobbies. |
Sort by | Name A > Z or Name Z > A. |
Filter → Maps / Weapons | Show only lobbies with a given map or weapon. |
Join | Joins a public lobby. |
Password | A private lobby. A password window opens first. |
Create a room | Opens the lobby creator. |
Field | Rules |
|---|---|
Name | 4 to 15 characters. Longer names are replaced by |
Password | Optional — leave empty for a public lobby. Use 10 characters or less: a longer one is discarded and the lobby can no longer be joined. |
Rounds | 1 to 10. The number of rounds a team must win to win the match. |
Map | Chosen with the arrows. |
Weapon | Chosen with the arrows. Every player gets this weapon plus a knife. |
Each player can own one lobby at a time. If you already have one, creating another does nothing.
After creating or joining, you are placed in a random team: the Ice team (team 1, blue) or the Fire team (team 2, red). Click a team's banner to switch sides.
Players who join press I am ready. The host is ready automatically.
The host's Start button only works when both teams have at least one player and everyone is ready.
Leave or closing the menu removes you from the lobby. If the host leaves, the lobby closes for everyone.
Every player is moved to a private routing bucket — one per lobby — so the match is invisible to the rest of the server. Phone SOS is disabled if you use qs-smartphone-pro.
Players see a cinematic lineup of their own team, then the intro animation.
Everyone is revived, teleported to their team's spawn and given the lobby weapon with 500 rounds and a random tint, plus a knife. The HUD shows the timer, the round and each team's round wins.
A round ends when every player of one team is dead. The other team scores a round win and a new round starts.
The first team to reach the host's number of rounds wins. The winners are shown in the showcase; then everyone is revived, their weapons are removed and they return to the entrance.
Rule | Details |
|---|---|
Weapons | Only the lobby weapon is allowed; any other is replaced by it. The weapon wheel is locked with ox_inventory or qs-inventory. |
Damage | Players in a match can only damage other players in a match. |
Play area | A green marker shows the zone. Leaving it shows You are out of the zone and removes 10 health about every 1.5 seconds. |
Blocked keys | F1, F2, F3, F5, F6, F7, F9, K, H and ~ are disabled so other menus cannot be opened. |
Radar | Hidden during rounds. |
Disconnects | The round is re-evaluated. If a team becomes empty, the other team wins. |
When you die you spectate a living teammate. Use the mouse wheel to switch between teammates; the spectated name shows on the HUD.
Config.Timer (420 seconds by default) is the round timer on the HUD and restarts every round.
When it reaches 0, the match ends for the whole lobby with TIMEOUT and no winner.
Separately, after 7 minutes of a round with both teams alive, everyone is teleported face to face (the map's eteam1 / eteam2 positions), sees Time is up!, and 10 seconds later starts losing health until a team is eliminated.
With the default value both happen together and the match ends as a timeout. Above 420, long rounds go through this sudden-death phase first.
Key | Name in the menu | Play area |
|---|---|---|
| Bank | 80 × 80 |
| Lifeinvader | 90 × 90 |
| Cargo | 135 × 135 |
| Skyscraper | None (rooftop) |
| Jeweler | 80 × 80 |
| 24/7 Supermarket | 32 × 32 |
| Liquor store | 70 × 70 |
| 1v1 | 70 × 70 |
Config.MapData = {
['bank'] = {
['team1'] = { x = 244.43, y = 202.98, z = 105.21, h = 73.86 }, -- Ice team spawn
['team2'] = { x = 254.34, y = 225.39, z = 106.29, h = 163.04 }, -- Fire team spawn
['eteam1'] = { x = 222.06, y = 210.99, z = 105.55, h = 158.26 }, -- Ice team when time is up
['eteam2'] = { x = 220.76, y = 206.79, z = 105.47, h = 340.43 }, -- Fire team when time is up
['area'] = { -- optional
['Pos'] = { x = 249.33, y = 217.76, z = 100.29 },
['Size'] = { x = 80.0, y = 80.0, z = 10.0 },
},
},
}Field | Description |
|---|---|
| Each team's spawn at the start of every round. |
| Where each team is teleported when a round passes 7 minutes. Place them close to each other. |
| Centre of the play area. The marker is drawn upwards from here, so put it slightly below the floor. |
| Size of the zone. |
To show a new map in the menu:
Add the map to Config.MapData with a unique key, for example airport.
Put an image named exactly like the key in html/images/maps/, for example airport.png.
Add an entry to html/js/config/maps.js and restart the resource:
{
name: "Airport", // name shown in the menu
img: "airport.png" // must be <key>.png
},The picture's file name without
.pngis what the menu sends as the map key, so it must match the key inConfig.MapData.
The weapon list lives in html/js/config/guns.js. To add one, put its picture in html/images/guns/ and add an entry:
{
name: "Combat Shotgun", // name shown in the menu
img: "combatshotgun.png", // picture in html/images/guns/
weapon: "combatshotgun", // GTA weapon name without WEAPON_
type: "shotgun", // pistol, smg, rifle, shotgun, sniper or lmg
},The server gives WEAPON_ plus the weapon name in upper case, so combatshotgun becomes WEAPON_COMBATSHOTGUN. type picks the small icon in the lobby list.
Before the first round, and to present the winners at the end, the team is shown in front of a camera for 7.5 seconds, followed by the intro animation.
Config.InvisibleSpawnCoords = vec3(1170.10, -1264.40, 20.25)
Config.PedSpawnLocs = {
[1] = vec4(1127.20, -1263.80, 19.60, 44.13),
[2] = vec4(1129.10, -1263.40, 19.65, 44.13),
[3] = vec4(1127.10, -1264.90, 19.60, 44.13),
[4] = vec4(1128.30, -1263.70, 19.75, 44.13),
[5] = vec4(1126.80, -1265.90, 19.60, 44.13),
}
Config.CamPos = vec3(1126.08, -1262.42, 21.0)
Config.Anims = {
{ dict = 'anim@amb@nightclub@peds@', name = 'rcmme_amanda1_stand_loop_cop' },
-- ...
}Option | Description |
|---|---|
| Where the real player waits, invisible and frozen, during the showcase. |
| One position per character in the lineup. Add one entry per player if a team can have more than 5 players. |
| Camera position. |
| Random idle animations for the characters. Add or remove |