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.

Source: module-kits:kits/fps_deathmatch/usage/en.mdView Markdown source

Also read offline — CLI: grip-forge docs fps-deathmatchMCP tool: gripforge_docs { "topic": "fps-deathmatch" }

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.

SettingTypeDefaultRange or valuesMeaning
durationnumber30030–1800Match duration in seconds; tied scores produce a draw.
scoreLimitinteger401–500Enemy eliminations required to win.
respawnDelaynumber30.5–30
spawnProtectionnumber1.50–5Seconds of protection; firing or throwing a grenade cancels it.
spawnMinDistancenumber80–50Prefer spawns farther from opponents; cover and occupancy are checked too.
healthRegenDelaynumber50–60
healthRegenRatenumber200–100Health per second after the damage-free delay.
loadoutarray["rifle", "smg", "pistol", "knife"]
startingWeaponstring"rifle"rifle, smg, pistol, knife
adsbooleantrue
adsFovnumber6035–100
adsTimenumber0.160.05–1
adsMoveMultipliernumber0.650.2–1
adsSpreadMultipliernumber0.250.05–1
sprintbooleantrue
sprintMultipliernumber1.451–2
sprintToFirenumber0.180–0.8Seconds 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.