FPS Classes & Armory

Adds classes, a weapon workshop with validated attachments and perks, grenades, fire modes and a persistent career to the shared first-person match; web only.

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

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

FPS Classes & Armory (fps.armory) #

What it is for #

Adds classes, a weapon workshop with validated attachments and perks, grenades, fire modes and a persistent career to the shared first-person match; web only.

It needs fps.deathmatch, 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.armory" }
gripforge_gamekit_configure { project_id: "gkp_…", id: "fps.armory",
                              config: { "mode": "team_deathmatch", "slide": true } }

First example #

<!-- test: kits/fps_armory/tests/fps_armory.rs::the_default_profile_has_three_classes_and_an_empty_career --> This is the body of the passing test the_default_profile_has_three_classes_and_an_empty_career; the helper functions it calls are defined at the top of the same test file.

#[test]
fn the_default_profile_has_three_classes_and_an_empty_career() {
    let mut s = armory(json!({}));
    let p = profile(&mut s);
    assert_eq!(p["version"], 1);
    let ids: Vec<&str> = p["classes"]
        .as_array()
        .unwrap()
        .iter()
        .map(|c| c["id"].as_str().unwrap())
        .collect();
    assert_eq!(ids, ["assault", "breacher", "recon"]);
    assert_eq!(p["selected"], "assault");
    assert_eq!(p["career"]["xp"], 0);
    assert_eq!(p["career"]["kills"], 0);
    assert_eq!(p["career"]["weaponXp"], json!({}));
    // The first class is the one the player plays.
    assert_eq!(chosen(&mut s)["id"], "assault");
}

Settings and defaults #

Descriptions come from the kit manifest and stay in English.

SettingTypeDefaultRange or valuesMeaning
modestring"team_deathmatch"team_deathmatch, domination, bomb
slidebooleantrue
vaultbooleantrue
penetrationbooleantrue
killcambooleantrue
progressionbooleantrue
maxAttachmentsinteger50–7
helpSecondsnumber180–120
catalogobject—Optional replacement FpsArmoryCatalog.

Services, events, variables #

  • Service fps.armory: Validated classes, attachment statistics, career and class selection on respawn.
  • Events listened to: fps.kill, fps.match_end, fps.loadout_selected, fps.*

Hooks and modding #

  • Moddable settings: mode, slide, vault, penetration, killcam, progression, maxAttachments, helpSeconds, catalog

Engines #

Declared targets: web, rust. gripforge kit api fps.armory lists the exact settings and services of your version.

Versions #

Kit version 1.2.0.