Demo Mod — Aim Assist & Gunfeel variables (Done / Have / Need)
Scope: Variables exposed on W_TFA_DemoMod (hotkey O). Design authority: FS-GUN-001 dials · FS-GUN-008 AA baselines · FS-GUN-002/003 accuracy/recoil · design 2026-10-20-aa-impact-mag-range-bands-design.md. Demo uses one-weapon Frame kits (Receiver × Frame data rows) — Mod edits the selected equipped kit’s feel, not mesh Refit.
Sample plates: OV36 character seats — ov36_demo_mod.jpg; OV37 edit — ov37_demo_mod_edit.jpg; OV38 HUD ammo after Mag — ov38_demo_hud_ammo.jpg. Interactive: demo_mod_mock.html
Done (design / data contract locked)
Section titled “Done (design / data contract locked)”| Variable | Owner (Full-game taxonomy) | Demo Mod shows | Status |
|---|---|---|---|
| Magnetism (AA Mag) | Receiver AA baseline (FS-GUN-008) | Band + editable override | Band catalog locked Class × Receiver |
| Stickiness (AA Stick) | Receiver AA baseline | Band + editable override | Locked |
| Rotation (AA Rot) | Receiver AA baseline | Band + editable override | Locked |
| Strafing (AA Strafe) | Receiver AA baseline | Band + editable override | Locked |
| Impact / Mag / Range bands | Frame (FS-GUN-009) | Triple readout (read-only or override TBD) | Band tables locked; closes TBD-014 |
| Cadence string (RPM / charge / draw) | Frame (FS-GUN-007) | Read-only on plate | Cadence tables locked — Mod does not retune cadence |
| Fire Mode | Receiver (FS-GUN-008) | Read-only | Locked enum |
| AimAssistSystem plugin | Host | Marketplace plugin enabled in .uproject |
Installed (see DONE.md) |
| GunFrames CSV + cadence validator | TFAWeapons | Data for kit rows | Historical test-project only — re-author CSV + remake GFP on 5.8_terra_demo |
| Shot Type + pellet ownership | Frame / Barrel (FS-GUN-010) | N/A design | PelletCount + PelletSpreadBase on Frame; Barrel choke delta; not AA |
| RangeStat 0–100 → meters | Frame + Receiver curve (FS-GUN-011) | Design tables | weapon-range-falloff.md; same 100 ≠ same meters across Receivers |
| Demo fake-modular Mag/Optic | Session overrides (FS-GUN-012) | Design tables | demo-fake-modular-optics-mags.md — no mesh |
Band enum Year-1: Low · Mid · Mid-High · High · Very High.
Have (on disk / partial — not Demo-Mod wired)
Section titled “Have (on disk / partial — not Demo-Mod wired)”| Item | Where | Gap |
|---|---|---|
| Pro Aim Assist marketplace plugin | Plugins\ProAimAs…\ |
Not wired to Demo Mod UI or TFA one-weapon kits |
| TFAWeapons DA types + CSV | — | Absent on live host; remake GFP + re-author CSV (not “unregistered leftover”) |
| Fake-modular parts schema | UDA_TFA_GunParts |
Full-game path — out of Demo |
| Lyra placeholder guns | B_Pistol / B_Rifle / … |
Stand-ins until Demo one-weapon kits |
Need (implement for Demo Mod + gunfeel)
Section titled “Need (implement for Demo Mod + gunfeel)”Demo Mod UI (must ship for team tuning)
Section titled “Demo Mod UI (must ship for team tuning)”| Need | Notes |
|---|---|
W_TFA_DemoMod widget |
OV36 list → OV37 edit; not OmniVisor combat chrome |
bDemoModEnabled ON/OFF |
Mod OFF = no O, no tuner; sandbox + loadout keys still play. External default false |
| Hotkey O open / Esc close | Only when Mod ON |
| Equipped doll list | OV36 categories: Weapons · Armor · Jewelry/ES — demo-mod-item-specs.md |
| Per-var current value + input box | OV37; dropdowns for MagFamily / OpticKind |
| OK commits session overrides | Back / Cancel / Esc discard or return |
| Export / Import split JSON | Own files per concern: gunfeel pieces · lab formulas · economy · raw · encounter (tfa-demo-mod/v1). demo-mod-export.md |
| Hide / strip for external playtest | Gate + package strip |
Aim Assist runtime (tunable in Mod)
Section titled “Aim Assist runtime (tunable in Mod)”| Variable | Need |
|---|---|
| Magnetism / Stickiness / Rotation / Strafing | Map Demo kit → Pro Aim (or TFA AA) runtime; TBD-AA-FLOAT band→float |
| Stability → magnetism degradation | Frame may bias rate (FS-GUN-008); expose rate in Mod |
| ADS / stance modifiers | Bow draw / Fusion charge phase modifiers — document + expose when kits need them |
Gunfeel dials (FS-GUN-001) — expose in Mod
Section titled “Gunfeel dials (FS-GUN-001) — expose in Mod”| Variable | Need |
|---|---|
| Bloom (player-facing cone) | FS-GUN-002 Accuracy vs Stability — runtime + Mod field |
| Pellet Count | Frame field (FS-GUN-010) — Mod row only when kit Shot Type = Spread; hidden/N/A on Single (Pinpoint Slug) |
| Pellet Spread | Effective = Frame PelletSpreadBase + Barrel choke delta — Mod row when Spread only; not an AA dial |
| Recoil magnitude + pattern | FS-GUN-003 Frame-authored patterns; Mod edits magnitude (pattern stay authored) |
| Kickback | Part/kit dial — Mod field |
| Barrel Jump | Mod field |
| Barrel Sway | Mod field |
| Range Falloff | Frame RangeStat 0–100 → Receiver curve meters (FS-GUN-011); Mod edits RangeStat; show hip Start/End_m read-only. Same 100 ≠ same meters — weapon-range-falloff.md |
| BarrelRangeDelta | Optional INPUT; clamped into EffectiveStat before curve |
| Stability (barrel motion) | Distinct from Accuracy/Bloom — Mod field |
| Reload / Mag Size / Equip Speed | Kit dials — also under Fake Mag section |
| Airborne / Hip-Fire / Slide-Fire Effectiveness | Optional Mod rows |
Fake modular (FS-GUN-012) — data only, no mesh
Section titled “Fake modular (FS-GUN-012) — data only, no mesh”| Variable | Need |
|---|---|
| MagFamily (Clip / Mag) | Dropdown per allowlist — demo-fake-modular-optics-mags.md |
| MagSize · ReloadSpeed | Session dials tied to MagFamily. MagSize is Frame-kit-owned (Receiver × Frame × family clamps — e.g. hc_adaptive 11 ≠ auto_adaptive 40; not global Box=30). Field Spec capacity plugs (FS-ITM-014, guns) add mag/reserve deltas on OK; melee Field Specs never touch MagSize. Shiv Spec (FS-ITM-015) Unique/Apex guns + melee · per-name TBD. Writes OmniVisor ammo (OV38). Catalog: demo-fake-modular-optics-mags.md · demo-mod-field-specs.md · demo-mod-shiv-specs.md |
| OpticKind | Sight · ScopeShort · ScopeLong — allowlist per Receiver (Sight ≠ Scope). Rifle Gatling=Auto pack; MG Gatling=MG pack. Heavy / Heavy Gatling: none |
| ZoomAdd | INPUT inside kind band; ZoomMult + ADS Falloff_m read-only (kinetics). GL: Sight only; no ZoomMult falloff (arc/Velocity) |
| CounterweightBias | Heavy / Heavy Gatling only — replaces Optic rows |
Not Demo Mod (Full game / deferred)
Section titled “Not Demo Mod (Full game / deferred)”| Item | Why |
|---|---|
| Real Refit / socket mesh swaps | Forbidden in Demo — one-weapon kits; fake-modular is data only (FS-GUN-012) |
| Modular part deltas writing AA | Forbidden (FS-GUN-008) |
| Cadence / Fire Mode edits via Mod | Cadence locked on Frame; Mod never owns cadence/damage |
| Pellet count / spread under AA Mag/Stick/Rot/Strafe | Forbidden — pellets are Frame / Barrel / Firehand (FS-GUN-010); AA exclusion FS-GUN-008 |
| TBD-IMR-FLOAT | Impact / Mag floats — later. Range closed by FS-GUN-011 + weapon-range-falloff.md |
| Sniper Optic rewriting AA | Forbidden — Optic = ADS/zoom/initial accuracy only |
Demo Mod field order (UI lock) — two screens
Section titled “Demo Mod field order (UI lock) — two screens”Why two screens: Too many dials for one panel. Select a weapon first, then edit its changeables.
OV36 — Weapon select
Section titled “OV36 — Weapon select”- List = equipped doll combat seats (FS-LOD-001): weapons/shield + armor + Energy Shield + jewelry. Category chips. Empties omitted. No bag.
- Highlight → Enter → OV37 (plate + affixes; guns also gunfeel/Mag).
- Footer: mock / no mesh · Press [ O ] to close. Catalog: demo-mod-item-specs.md.
OV37 — Weapon edit (selected kit only)
Section titled “OV37 — Weapon edit (selected kit only)”In order:
- Magnetism · Stickiness · Rotation · Strafing
- Bloom · Pellet Count · Pellet Spread (Spread kits only) · Recoil · Kickback · Barrel Jump · Barrel Sway
- Stability (degradation rate) · optional Equip · Airborne / Hip / Slide
- Range: RangeStat · BarrelRangeDelta · Hip Start/End_m (read-only)
- Fake Mag: MagFamily · MagSize · ReloadSpeed
- Fake Optic or Counterweight (Heavy): OpticKind · ZoomAdd · ZoomMult · ADS meters — or CounterweightBias. GL: Sight + arc/Velocity note
- Read-only footer: Fire Mode · Cadence · Shot Type · Impact/Mag/Range bands
Footer: Back to weapons · OK · Cancel. Mesh never changes.
HUD bind: OK on Fake Mag → OmniVisor bottom-right AMMO = MagSize / reserve, clip = MagFamily for that kit when it is the active seat (FS-AMMO-001, OV38).
Catalog: demo-fake-modular-optics-mags.md.