Version 1.0.0
844 downloads
Kill your way to victory! Gun game is a gamemode where players start with powerful weapons and get less powerful weapons once they score enough kills to level up.
Winning
First player to go through all weapons/levels will win.
Player with the highest level will win if round timer ends.
Config
The config file is located in packages/gungame/config.json.
gameTimeSeconds: Length of a round in seconds. 600 by default which converts to 10 minutes.
healthOnKill: How much health players will get for killing someone. 0 by default which means players won't get any health from killing.
respawnTimeSeconds: Seconds a player needs to wait for respawning. 8 by default.
restartTimeSeconds: Seconds players need to wait before a new round begins. 10 by default.
Loadouts
The loadouts file is located in packages/gungame/loadouts.json. It's a JSON file with each loadout as an array.
Each loadout array must contain at least one valid loadout item.
Loadout items must have:
Weapon: Weapon hash key as string, such as WEAPON_PISTOL. (Weapons list)
Name: Human readable name of the weapon, such as Pistol.
KillsForNext: Amount of kills a player need to get with this weapon before upgrading to the next one. (player will be declared winner if this item is the last in the loadout)
Example Loadout (RPG > Minigun > Special Carbine > Heavy Revolver > Sawed-Off Shotgun > Machete, player needs 5 machete kills to win)
[
{
"Weapon": "WEAPON_RPG",
"Name": "RPG",
"KillsForNext": 1
},
{
"Weapon": "WEAPON_MINIGUN",
"Name": "Minigun",
"KillsForNext": 1
},
{
"Weapon": "WEAPON_SPECIALCARBINE",
"Name": "Special Carbine",
"KillsForNext": 1
},
{
"Weapon": "WEAPON_REVOLVER",
"Name": "Heavy Revolver",
"KillsForNext": 1
},
{
"Weapon": "WEAPON_SAWNOFFSHOTGUN",
"Name": "Sawed-Off Shotgun",
"KillsForNext": 1
},
{
"Weapon": "WEAPON_MACHETE",
"Name": "Machete",
"KillsForNext": 5
}
]
Maps
Map files are located in packages/gungame/maps/.
Maps must have:
CenterOfMap: An object that has x, y, z and radius properties. This is used for defining game area and respawning players around the game area.
SpawnPoints: Array of objects that has x, y, z and a (angle/heading) properties. This is used for spawning players for the first time in the map, like when they connect the server or when a round begins.
Example Map (1 Spawn Point)
{
"CenterOfMap": {
"x": -1108.71240234375,
"y": 4918.75048828125,
"z": 217.17044067382812,
"radius": 70.0
},
"SpawnPoints": [
{
"x": -1126.168212890625,
"y": 4952.76025390625,
"z": 220.46249389648438,
"a": 191.99134826660156
}
]
}
Maps also have optional properties such as:
World: An object that has time and weather properties.
--> time: An object that has hour, minute and second properties.
--> weather: A string property that contains the weather ID. (Weather ID list)
Props: Array of objects that has model, position and rotation properties.
--> model: A string property that contains the model name. Example: prop_fire_hydrant_1
--> position: An object that has x, y and z properties.
--> rotation: An object that has x, y and z properties.
Example Map (Night, Rainy Weather with 1 Prop)
{
"World": {
"time": {
"hour": 2,
"minute": 0,
"second": 0
},
"weather": "RAIN"
},
"CenterOfMap": {
"x": -1108.71240234375,
"y": 4918.75048828125,
"z": 217.17044067382812,
"radius": 70.0
},
"SpawnPoints": [
{
"x": -1126.168212890625,
"y": 4952.76025390625,
"z": 220.46249389648438,
"a": 191.99134826660156
}
],
"Props": [
{
"model": "prop_fire_hydrant_1",
"position": {
"x": -1108.71240234375,
"y": 4918.75048828125,
"z": 217.05
},
"rotation": {
"x": 0.0,
"y": 0.0,
"z": 0.0
}
}
]
}
Source code is available on GitHub in case you don't want to download: https://github.com/root-cause/ragemp-gungame
Have fun!