# Bundled gun models

## L115A3 .338 — TastyTony (18 October 2026)

- Source: [Low-Poly L115A3](https://sketchfab.com/3d-models/low-poly-l115a3-a795adf5f8dd4a2294210d427cbb0e58)
- Creator: [TastyTony](https://sketchfab.com/TastyTony)
- License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/).
- Downloaded using Sketchfab's official free GLB download after account sign-in.
- Adaptations: 1.25 m normalization, baked rest-pose geometry separated by authored
  bone weights into body/magazine/bolt groups, preserved split normals, converted
  palette to sRGB textures and tuned metal/roughness, dark optical glass, planar
  camouflage UVs, game-specific hand/attachment/FX contacts and matching UI renders.
- 8,132 triangles. Stable `sniper` ID preserves XP, unlocks, classes and finishes.
- Source and output hashes: `L115-PROVENANCE.json`. Reproduce with
  `scripts/import-l115-model.py` using Blender 5.2.1.
- Replaces the interim austincford PRC model. Its prior attribution and conversion
  evidence remain in Git history. No endorsement by the creator is implied.

## MPX — austincford (2026-10-18 addition)

- Model: https://poly.pizza/m/p7sAqeuUWR
- Author: https://poly.pizza/u/austincford
- License: Creative Commons Attribution 3.0 Unported,
  https://creativecommons.org/licenses/by/3.0/
- Source GLB SHA-256: `e06ecb310a80fd8dab8c11da181d68b301e88f0a049bd6d4b62948696d6b5571`
- Changes: converted into normalized body/magazine/action groups, added small
  receiver/handguard/magazine edge bevels, lowered the front sight upright to
  align with the rear aperture, converted color maps to JPEG, authored compact
  metal/roughness maps, fitted hands/muzzle/attachments and paintable surfaces.
  These adaptations are by xFPS; the author does not endorse this game.
- Source has color textures, not a supplied normal-map/PBR texture set.
  Mechanical animation is the game's existing code, not an imported animation.
- Reproduction: `scripts/import-mpx-model.py`. File hashes and download URL:
  `MPX-PROVENANCE.json`.

## Original CC0 imports

Downloaded and inspected 2026-09-06. Source listings identify all three as
CC0 1.0 Universal: https://creativecommons.org/publicdomain/zero/1.0/
No login, paid tier, Sketchfab viewer extraction or purchased content was used.

## M4A1 — nisu / 3DModelsCC0

- Source: https://opengameart.org/content/m4a1-assault-rifle
- Original source linked by the listing: https://www.3dmodelscc0.com/model/m4a1-assault-rifle
- Download: https://opengameart.org/sites/default/files/m4a1_0.zip
- ZIP SHA-256: `ed5779ec82718861964227e2aad2a900978ea087081154365d6d86246be62f0d`
- Listing says CC0; the archive contains no separate license document.
- Changes: FBX converted to local GLB, metres/orientation normalized, rigid
  magazine/action separated, textures downsampled. xFPS's red-dot optic retained.

## Desert Eagle — SirDraco65

- Source: https://opengameart.org/content/desert-eagle-0
- Download: https://opengameart.org/sites/default/files/desert_eagle_0.zip
- ZIP SHA-256: `599e979d9b01ebdb8b6ca4694b2bd4a93dfce981d83ecf023f01284bf9ee8b6e`
- Listing says CC0; the archive contains no separate license document.
- Changes: bind-pose rigid pieces converted to GLB; decorative internal bullets
  removed; magazine and slide separated; textures downsampled. The source's
  one-frame clip is not a usable reload animation and is not presented as one.

## AK-47 — Stein Games

- Source: https://stein-indie.itch.io/classic-weapons-pack
- Pack: Classic Weapons Pack v1.1, downloaded through its normal free-download form.
- ZIP SHA-256: `e91fd8954226cf99f72bd27065e0ef1042675a96cd9b600d77c623c2f50e90c0`
- Source page and included `license.txt` both say CC0 1.0.
- The included license allows copying, modification, distribution and commercial
  use without permission; credit is appreciated, not required.
- Changes: rigid bone groups split to magazine/action/body, internal bullet
  removed, transforms normalized, textures downsampled, RMAO channels separated.
- Channel documentation: https://stein-indie.itch.io/classic-weapons-pack/devlog/1200852/first-update-new-guns

All running/reload/ADS/recoil/switch behavior remains the game's own animation
code. Hand and character assets have separate credits in ../characters/CREDITS.md.

## Former AMAX look-alike ("Rifle Assault East") — replaced 2026-10-19

Historical attribution only; the current AMAX asset is the Galil adaptation below.

- Creator: Pichuliru. Model page: https://poly.pizza/m/xrJfQgAuDL — licence shown
  "Public Domain (CC0)" (published 2022-03-08).
- Author's pack page: https://pichuliru.itch.io/cc0-flat-guns-east — "Licensed under
  CC0, attribution isn't required but greatly appreciated."
- Download (the GLB the model page links): https://static.poly.pizza/50533c95-ee1a-4906-84e8-06075367a503.glb
- Source SHA-256: `7ff78924e87676226f9b298b749ecc14ec545900ed67c911f531f91210b95566`
  (334,228 bytes, 3,271 triangles, seven flat colours, no images, no animations).
- A generic modern 7.62 rifle (AR-style stock, full top rail, rail handguard,
  curved magazine), used as a look-alike for the game's AMAX class. Not a game
  rip; no trademarked weapon name appears in the source or the shipped files,
  which live under the neutral key `rifle762/`.
- Changes (`scripts/convert-amax-asset.mjs`): rigid skin baked at bind pose;
  triangles split by bone into body / magazine (`Magazine`) / action (`Bolt`,
  the right-side charging handle); normalized to 0.90 nominal metres with the
  muzzle along -Z; palette UVs added and four 32 px-cell PNG palette maps written
  (colour lifted x1.35 for the game's weapon light rig). 211 KB GLB, ~0.21 MB total.
- Rejected alternatives and the reasons are recorded in `docs/WEAPON_MODELS.md`.

# Combat knife — added 2026-09-07

- Creator: 3DModelsCC0. Author listing: https://3dmodelscc0.itch.io/free-cc0-melee-weapons-pack
- The author explicitly releases the pack under CC0 public domain: https://creativecommons.org/publicdomain/zero/1.0/
- GLB conversion mirror linked from the listing's comments: https://github.com/BoQsc/cc0-melee-weapons-pack-glb/releases/tag/0
- Download: https://github.com/BoQsc/cc0-melee-weapons-pack-glb/releases/download/0/MeleeWeaponsPack_glb.zip
- Archive SHA-256: `f49695979399c48f82855c781ece30bc35c79ef49e307fab6b9922823dcf7545` (verified against release digest).
- Downloaded entry: `MeleeWeaponsPack_glb/Combat_Knife/Combat_Knife.glb`.
- Entry SHA-256: `3ed5f43714bfe426b1b1143b3cebf3b451fdf06e6c40b299a6e05f5e0ba41443`.
- Original mesh/UV/normal details retained. Reoriented/rescaled to the game grip;
  embedded textures converted to 1024px JPEG, GLB reduced to geometry/material data.
- 1,550 triangles; 54,764-byte geometry; approximately 650 KB total runtime bundle.
- No source animation clips supplied. Draw/thrust/recovery curves are authored
  in this project and use the existing glove/forearm rig; no game-ripped animations.

## RD-9 — MP5 A2 by Gintoki1234

- Source: https://gintoki1234.itch.io/mp5-a2
- Author: Gintoki1234
- License: Creative Commons Attribution 4.0 International (CC BY 4.0)
  https://creativecommons.org/licenses/by/4.0/
- Download: `MP5 A2 by Gintoki1234.zip` (free itch.io download).
- Adaptations: body simplification, 1024px body / 512px magazine textures,
  converted FBX to GLB, ammunition display meshes removed, source rigid bone
  groups adapted to the game's magazine and action animation, nominal pose and
  hand fitting, material partitions for camos. Original UVs retained.
- Converter: `scripts/import-itch-weapon-models.py` (Blender 5.2.1).
- Attribution is also available in the game's Settings → Credits.
- No endorsement by the creator or firearm manufacturer is implied.

## M870 — Remington 870 FieldMaster by Gintoki1234

- Source: https://gintoki1234.itch.io/remington-pump-action-shotgun
- Creator: Gintoki1234. License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
- Free download: `Remington 870 FieldMaster by Gintoki1234.zip`.
- Adaptations: normalized scale and orientation, 1024px external JPEG maps,
  converted FBX to GLB; fore-end and bolt separated for the existing pump animation.
  Source UVs retained. Hand contacts, aim position and finish partitions adapted.
- 8,312 triangles. Tube loading retains the game's shell animation.

## Glock slot — Glock 19 Gen 4 by Gintoki1234

- Source: https://gintoki1234.itch.io/glock-19-gen-4
- Creator: Gintoki1234. License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
- Free download: `Glock 19 Gen 4.zip`.
- Adaptations: normalized scale and orientation, 1024px body / 512px magazine
  JPEG maps, converted FBX to GLB; separated slide and magazine for game animation,
  removed source display ammunition; hand contacts and finish partitions adapted.
- 6,395 triangles. This is a visual adaptation of a Glock 19 for the existing
  GLOCK 18 game slot, not a claim that the source depicts an exact Glock 18.

Metalness and roughness share one lossless packed PNG per material (green =
roughness, blue = metalness); colour and normal maps remain JPEG. This avoids
eight extra texture decodes/uploads across the three models.

All three itch.io model conversions use `scripts/import-itch-weapon-models.py`
with Blender 5.2.1. Archive and output hashes, byte sizes and source links are in
`ITCH-PROVENANCE.json`. Attribution is available in Settings → Credits.
No endorsement by the creator or firearm manufacturer is implied.

Reproduce each conversion with:

```sh
blender --background --threads 2 --python scripts/import-itch-weapon-models.py -- WEAPON EXTRACTED_SOURCE_DIR public/models/weapons/WEAPON
```

`WEAPON` is `rd9`, `shotgun` or `glock`; `EXTRACTED_SOURCE_DIR` contains that
model's FBX and texture folders. No third-party scripts or animation clips run.

## Magnum Revolver — 629 Classic by Gintoki1234 (18 October 2026)

- Creator and source: [Gintoki1234, Smith & Wesson's 629 Classic .44 Magnum](https://gintoki1234.itch.io/smith-wessons-629-classic-44-magnum).
- License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/).
- Free itch.io download: `Wesson & Smith 629 Classic Magnum.zip`; source/output hashes in `ITCH-PROVENANCE.json`.
- Adaptation: 8,498 source triangles, 1024px color/normal/packed material maps;
  separate cylinder and ejector driven by xFPS's existing animation. Display
  ammunition omitted in favor of lightweight game-authored rounds/speedloader.
- The former .357 slot now displays “MAGNUM REVOLVER” to avoid claiming this
  .44 source is an exact .357 replica. Gameplay ID, balance and progression unchanged.
- Runtime bundle: 1,484,789 bytes. Converter: `scripts/import-itch-weapon-models.py`.


## M249, Kar98 and FAMAS — 19 October 2026

All three are adapted under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/):

- [M249](https://sketchfab.com/3d-models/m249-9b4c19512e6749248704ff5a5b6d4421) by **Chipotle0303**. Source geometry retained, separated hinged feed cover and charging handle, aligned rear aperture; game-authored belt and ammunition box added. 37,451 triangles. The stable `lmg` ID preserves earned progression, classes and finishes; displayed as M249.
- [Kar 98](https://sketchfab.com/3d-models/kar-98-638b3b2308e8461ea6a9232322731501) by **buh**. Separated bolt, fitted stripper-clip loading and hand/sight contacts. 16,119 triangles. Stable `kar98` ID.
- [FAMAS](https://sketchfab.com/3d-models/famas-7d35e14ad8874d148ce9cc46e5765a6b) by **Frostoise**. Separated magazine and charging handle; game-authored open iron sights added to the carry handle. 24,070 triangles including sights. Stable `famas` ID.

Adaptations also include normalized scale/orientation, external 1K PBR maps,
material/finish fitting, hand contacts and matching card/killfeed renders.
The original creators do not endorse these adaptations. No source animations
are claimed: all reload motion is authored in xFPS.

Reproduce with `node scripts/convert-rifle-upgrades.mjs DOWNLOADS_DIRECTORY`.
Each asset folder includes `PROVENANCE.json` with source and output hashes.
M249 firing audio uses separately credited, processed CC0 5.56 recordings;
see [M249 audio provenance](../../audio/M249-CREDITS.json). These are not
presented as recordings of an actual M249.

## USP .45

“HP USP 45” by Joche007 (fkboy123), [Sketchfab](https://sketchfab.com/3d-models/hp-usp-45-e27cf9dcff6b411cb5e7fe0544e402e4), [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Source bind pose baked and normalized; rigid slide and magazine separated; source 1K PBR textures retained. Conversion: `scripts/convert-usp.mjs`. Saved weapon ID and progression remain `usp`.


## SCAR-L, MK2 and AMAX — 19 October 2026

All three adaptations are licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Their creators do not endorse xFPS.

- **SCAR-L:** [FN Scar-L Assault Rifle](https://sketchfab.com/3d-models/fn-scar-l-assault-rifle-ea1823de59684fd596d9f6726382f948) by **Hitansh 3D**. Source UVs, textures and geometry retained; magazine and charging mechanism separated; normalized scale/orientation. Runtime removes the tiny rear peep insert for a usable sight picture and removes factory rear sights when optics are fitted.
- **MK2:** [Marlin](https://sketchfab.com/3d-models/marlin-a876a9e6c17a4af1af96c4b1a6dc5daa) by **DJMaesen**. Source UVs and textures retained; lever isolated and animated about its actual hinge; cartridges and hand fitted to the right-side loading gate.
- **AMAX:** [Galil Ace](https://sketchfab.com/3d-models/galil-ace-5471bfc3d66a402f8eb4fda52b62a2df) by **MarkLevin**. Removed display ground and loose cartridges; baked rigid parts from the source demonstration; seated magazine; corrected one invalid skin-weight seam using its coincident source vertex. Original PBR maps and UVs retained. Game-authored adjustable shoulder stock and open rear sight added. The source is a stockless Galil ACE 21, so this is an adaptation, not an exact CR-56 replica.

The gameplay IDs remain `scarl`, `mk2`, and `amax` (AMAX asset folder `rifle762`). Progression, classes, balance and cosmetic ownership are preserved. Reloads use xFPS animation code, not imported Call of Duty assets. Matching loadout/killcam cards and killfeed silhouettes are rendered from the production models.

Reproduce with `node scripts/convert-scar-mk2.mjs DOWNLOADS_DIRECTORY` and `node scripts/convert-galil-amax.mjs DOWNLOADS_DIRECTORY/galil_ace.glb`. Both converters require the reviewed source hashes. Per-folder `PROVENANCE.json` records original sources and generated file hashes.

## UZI — 1Matzh, Gintoki1234 and Blue Spirit (24 October 2026)

- [UZI | First Person Animations (2026 Remake)](https://sketchfab.com/3d-models/uzi-first-person-animations-2026-remake-73266e9f1eb949b69a3ab11d8f636048) by [1Matzh](https://sketchfab.com/1Matzh).
- Gun: [UZI](https://skfb.ly/oCnPs) by [Gintoki1234](https://sketchfab.com/Gintoki1234).
- Hands: [Division Agent (Rigged)](https://skfb.ly/oLVSU) by [Blue Spirit](https://sketchfab.com/Blue-Spirit), edited by 1Matzh.
- All three listings identify [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
- Changes: converted original FBX; removed guides/background and unused rig controls; reduced textures; normalized world gun; integrated source firing and reload animation with xFPS timing, sights and attachment mounts. See `uzi/PROVENANCE.json` for hashes. No endorsement is implied.
- Audio: existing owner-licensed GameMaster Audio SMG-family recordings, with three takes and a separate suppressed bank. These are family matches, not claimed recordings of this exact firearm. Source recording credits remain in `audio/GAMEMASTER-CREDITS.json`.
