Skip to content

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


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 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
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
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.

  • 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.

In order:

  1. Magnetism · Stickiness · Rotation · Strafing
  2. Bloom · Pellet Count · Pellet Spread (Spread kits only) · Recoil · Kickback · Barrel Jump · Barrel Sway
  3. Stability (degradation rate) · optional Equip · Airborne / Hip / Slide
  4. Range: RangeStat · BarrelRangeDelta · Hip Start/End_m (read-only)
  5. Fake Mag: MagFamily · MagSize · ReloadSpeed
  6. Fake Optic or Counterweight (Heavy): OpticKind · ZoomAdd · ZoomMult · ADS meters — or CounterweightBias. GL: Sight + arc/Velocity note
  7. 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.