FPS Team Deathmatch
Provides team deathmatch rules on the shared first-person match: score or time victory, respawns chosen for cover and distance, spawn protection, free loadout and health recovery.
FPS Team Deathmatch (fps.deathmatch) #
What it is for #
Provides team deathmatch rules on the shared first-person match: score or time victory, respawns chosen for cover and distance, spawn protection, free loadout and health recovery.
It needs fps.match, game.engine; installing it brings them in.
Turn it on #
Install the kit in a project, then change a setting (the values shown are its defaults):
gripforge_gamekit_install { project_id: "gkp_…", id: "fps.deathmatch" }
gripforge_gamekit_configure { project_id: "gkp_…", id: "fps.deathmatch",
config: { "duration": 300, "scoreLimit": 40 } }
First example #
<!-- test: kits/fps_deathmatch/tests/fps_deathmatch.rs::the_default_options_are_the_deathmatch_defaults --> This is the body of the passing test the_default_options_are_the_deathmatch_defaults; the helper functions it calls are defined at the top of the same test file.
#[test]
fn the_default_options_are_the_deathmatch_defaults() {
let mut s = deathmatch(json!({}));
let r = rules(&mut s);
let m = &r["match"];
assert_eq!(m["duration"], 300);
assert_eq!(m["scoreLimit"], 40);
assert_eq!(m["respawnDelay"], 3);
assert_eq!(m["spawnProtection"], 1.5);
assert_eq!(m["spawnMinDistance"], 8);
assert_eq!(m["healthRegenDelay"], 5);
assert_eq!(m["healthRegenRate"], 20);
assert_eq!(m["startingWeapon"], "rifle");
assert_eq!(m["loadout"], json!(["rifle", "smg", "pistol", "knife"]));
let h = &r["handling"];
assert_eq!(h["ads"], true);
assert_eq!(h["adsFov"], 60);
assert_eq!(h["adsTime"], 0.16);
assert_eq!(h["sprint"], true);
assert_eq!(h["sprintMultiplier"], 1.45);
assert_eq!(h["sprintToFire"], 0.18);
}
Settings and defaults #
Descriptions come from the kit manifest and stay in English.
| Setting | Type | Default | Range or values | Meaning |
|---|---|---|---|---|
duration | number | 300 | 30–1800 | Match duration in seconds; tied scores produce a draw. |
scoreLimit | integer | 40 | 1–500 | Enemy eliminations required to win. |
respawnDelay | number | 3 | 0.5–30 | |
spawnProtection | number | 1.5 | 0–5 | Seconds of protection; firing or throwing a grenade cancels it. |
spawnMinDistance | number | 8 | 0–50 | Prefer spawns farther from opponents; cover and occupancy are checked too. |
healthRegenDelay | number | 5 | 0–60 | |
healthRegenRate | number | 20 | 0–100 | Health per second after the damage-free delay. |
loadout | array | ["rifle", "smg", "pistol", "knife"] | ||
startingWeapon | string | "rifle" | rifle, smg, pistol, knife | |
ads | boolean | true | ||
adsFov | number | 60 | 35–100 | |
adsTime | number | 0.16 | 0.05–1 | |
adsMoveMultiplier | number | 0.65 | 0.2–1 | |
adsSpreadMultiplier | number | 0.25 | 0.05–1 | |
sprint | boolean | true | ||
sprintMultiplier | number | 1.45 | 1–2 | |
sprintToFire | number | 0.18 | 0–0.8 | Seconds before the weapon can fire after a sprint. |
Services, events, variables #
- Service
fps.deathmatch: Team scores, match limit, protected respawn and free starting loadout. - Events listened to:
fps.match_start,fps.match_end,fps.respawn
Hooks and modding #
- Moddable settings:
duration,scoreLimit,respawnDelay,spawnProtection,spawnMinDistance,healthRegenDelay,healthRegenRate,loadout,startingWeapon,ads,adsFov,adsTime,adsMoveMultiplier,adsSpreadMultiplier,sprint,sprintMultiplier,sprintToFire
Engines #
Declared targets: web, rust. gripforge kit api fps.deathmatch lists the exact settings and services of your version.
Versions #
Kit version 1.1.0.