View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.1
- Last updated
- First released
- Unity version
- 6000.3.14 or later
- Package size
- 1.7 GB
- Files
- 1,938
- Favorites
- 14
- Views in the past week
- 85
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $24.99 on
Keywords
Axiom - Physics FPS Framework
An FPS framework for Unity. Includes physics-based movement and parkour, modular weapons with recoil and ammo, abilities, status effects, a grid inventory, and more. A great foundation for any fps.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 9
Axiom - Physics FPS Framework screenshot 1
About this asset
Axiom is an FPS framework for Unity. The player controller, weapons, recoil, inventory, abilities, status effects, death and respawn, and HUD systems are already built and wired together. You deal with the art and game design, and Axiom handles the systems underneath.
=====
======
---- FEATURES AND BASIC ASSET DESCRIPTION----
Player Controller
Built on a Rigidbody with a PID hover, so movement feels physical and handles stairs, slopes, small bumps, and awkward geometry without special-casing. Includes air strafing, wallrun, wall climb, mantle, ledge hang, ladders, three swim modes, sliding, and crouching. Stamina, multi-jump, coyote time, and jump buffering are all included. A reference-counted control lock runs over movement, look, and firing, so overlapping stuns and knockbacks release cleanly instead of fighting each other. Three complete movement presets ship with the package (Movement Shooter, Old-School, and Realistic, all with interchangeable settings through scriptable objects) so you can compare feels side by side.
Weapon System
Up to nine weapon slots, five fire types per weapon (automatic, burst, single, charge, press and release), independent primary and secondary channels, hitscan with falloff, pierce, and bouncing, physics projectiles, and radial explosions with line of sight checks. A weapon can also fire an ability as its fire action. Ammo supports four modes, including a physical magazine model where you reload individual rounds into stacked magazines, a 'loose' type where ammo is stored directly under the gun itself, and more.
Recoil
Three pluggable motion solvers (spring, lerp, curve) plus scripted spray patterns. Each weapon channel can use a different solver. You can author profiles by physics values (stiffness, damping, mass) or designer values (settle time, damping ratio). An editor tool handles authoring and testing, with real-time playback.
Animation
A weapon animator drives Mecanim clips off the events weapons already raise (fire, reload, equip), with clip speed following fire rate and reload duration. The shared first-person arm rig used for climbing, ledge hangs, mantles, slides, crouching, running, and swimming plays clips through the same system. Both come with a setup wizard, a template generator, and placeholder clips for every state. Weapons without an animator, and projects on the old arms controller, keep working unchanged.
Inventory
Grid-based inventory with multi-cell items, rotation, stacking, splitting, nested container items, and per-grid weight. Single-cell grids act as equipment slots. Dragging a weapon into an equipment slot equips it. Container inventories roll from weighted loot tables, enemies and the player drop lootable bodies that carry their loot and gear, and you set what happens to a player's inventory on death: keep it, drop it into a lootable container, or destroy it. Right-click context menus are extensible, with Equip, Transfer, and Unload actions and transfer between two open containers. Gamepad navigation is included. You can also adjust it toward a more traditional 'one item per slot' feel.
Abilities
Three ability slots that reuse the weapon fire-type model. Dash and the grappling hook ship as examples, both fully preset-driven, so swapping a preset swaps the whole feel. Dash has selectable directions and hover suppression; the grappling hook covers attach rules, reel and momentum, pendulum tension, swing control, and movable anchors. Realistic, Movement Shooter, and Old School presets ship for both. Add your own by subclassing AbilityBase.
Combat
Health with overheal and ten typed damage channels with per-type resistances. Damage types are ScriptableObject assets, each carrying its own display name, UI colour, death-screen wording, and status effects to apply on hit, with ten presets included. The status effect engine supports build-up, stacking, and chaining, and ships with over twenty presets (Burn, Bleed, Poison, Frozen, Stun, Flashbang, Haste, Regeneration, and more), plus full-screen overlays and world-space VFX that follow the affected character. Every death raises a kill record naming the victim, killer, weapon, and damage type, ready for killfeeds, scoring, and on-death loot, and status-effect kills credit the original attacker. Teams and friendly fire are configurable through presets.
Death and Respawn
Death and respawn flow with death cameras (killer cam, orbit, follow body, freeze, or stay first-person), respawn strategies (checkpoint, spawn point, reload scene, or a custom event), and death screens for both uGUI and UI Toolkit. All preset-driven.
Camera, HUD, and Input
Camera composes headbob, hit-bob, dual FOV, tilt, slide roll, and recoil into one chain you can tune layer by layer. HUD ships in two flavors, UGUI and UI Toolkit, behind a single interface, so you can use either or both. Input is event-driven on the new Input System with full rebinding for keyboard, mouse, and gamepad. Settings persist to disk.
How customizable is it?
Almost every setting lives in a ScriptableObject preset. Movement, camera, recoil, crosshair, hitmarker, team, item, damage type, status effect, ability, and death presets can be swapped at runtime, so you can build a sprint feel, a slow walk feel, and a heavy armor feel without duplicating prefabs or writing code. Subsystems you might want to replace are exposed through interfaces. Weapon fire behaviors and abilities use abstract bases you can subclass.
Editor tools carry their weight too: the recoil authoring window, an ADS preview that renders the aimed pose live in the Game view with a setup validator, and one-button setup plus template generators for the weapon and arm animators.
Inspectors are organized with NaughtyAttributes, so fields only show when they apply. The codebase is namespaced under AFPS and uses cached delegates, allocation-free hot paths, and early-out guards in the code that runs every frame. Weapon sway, bob, bump, and tilt are frame-rate independent, so feel tuned on one machine holds on another.
What genre is it suitable for?
Best fit:
- First-person shooters where movement feel matters, including extraction, parkour, military, and sci-fi shooters
- Survival or extraction projects that need a grid inventory, loot tables, and physical magazines
- Hero shooters that need an ability system
- Prototypes where you want a working FPS in a day instead of a month
Not the best fit. All three are planned for a future update and are not in v1 or v1.1:
-Multiplayer shooters
-Projects with a strong emphasis on melee weapons. You can do melee with the current system, but there's no complete support
-Projects that need a save system
What is not included
No art and no weapon models. The animation system ships with placeholder clips only, so you bring your own finished animations. Nothing beyond the demo. Axiom is primarily a code framework. It's the backbone, not the finished product.
From the publisher's Asset Store listing.
Technical details
Player Movement
- Rigidbody character controller with a PID hover float that handles everything from slopes to stairs perfectly
- Air strafing with momentum preservation
- Wallrun with six-ray side detection and camera tilt
- Wall climb with PID controller and AnimationCurve-determined velocity profile
- Mantle, vault, and ledge hang
- Crouch slide with ceiling clearance check and impulse cooldown
- Multi-jump with coyote time and jump buffering
- Stamina pool with separate sprint, jump, and climb costs
- Three swim modes and three ladder modes
- Custom gravity pipeline with per-state vectors
- Slope handling with projection-based slide
- Moving platforms with waypoints, rotation, easing, and different movement types
- Explosion knockback integration
- Reference-counted control lock over movement, look, and firing, so overlapping stuns and knockbacks release cleanly
Camera
- Composed LateUpdate transform stack (yaw, pitch, roll, tilt, hit-bob, headbob, recoil)
- Velocity-driven FOV changes for camera
- Procedural headbob in sine or AnimationCurve mode with per-axis amplitudes
- Acceleration-based hit-bob with spring rebound
- Movement-reactive tilt (mouse input, strafe lean, wallrun, slide)
- Ledge hang camera cone clamp with soft inner and hard outer limits
- URP vignette flash presets for damage, heal, and status feedback
- Sensitivity reads from persisted settings, Keyboard & Mouse and Gamepad separate
Weapon System
- Slot-based weapon manager, one to nine slots
- Five different fire types (automatic, burst, single, charge, press and release)
- Independent primary and secondary fire channels
- Coroutine-guarded weapon switching, cancellable mid-swap
- Composed view model offset pipeline (recoil, sway, bob, tilt, ADS, bump, equip)
- Per-weapon equip and de-equip tween presets
- AI-usable weapons through input-less trigger methods
- Inventory-integrated equip and drop with same-type stack merging
- Weapons can fire an ability as their fire action
Weapon and Arm Animation
- Weapon animator drives Mecanim clips off the events weapons already raise (fire, reload, equip)
- Clip speed follows fire rate and reload duration; weapons without an Animator behave exactly as before
- Shared first-person arm rig (climbing, ledge hangs, mantles, slides, crouching, running, swimming) plays clips through the same slot-and-contract system
- Setup wizard, animator template generator, placeholder clips for every state, and a custom inspector for wiring a weapon up
- Legacy mode keeps the old arms controller working unchanged
Recoil
- Three independent channels: camera rotation, view model rotation, view model position
- Three pluggable motion solvers behind IRecoilSolver (spring, lerp, curve)
- Dual spring authoring modes (raw stiffness/damping/mass or settle time / damping ratio)
- Procedural per-axis jitter or scripted spray patterns
- Recoil momentum and barrel climb with reset on tap fire
- Per-profile solver state, swap-safe between weapons and fire modes
- Live inspector tuning during play
- Three recovery modes (auto zero, continuous, hold)
- Custom editor window for displaying, testing, and working with recoil, with real-time playback
Ammo
- Four storage modes (simple, loose, magazine, infinite)
- Physical nested magazine model that allows for anything from normal ammo storage to mixed ammo
- Allows for multiple ammo components per weapon (rifle plus underbarrel example)
- Reload progress feed and abort safety
Fire Behaviors
- Hitscan with falloff curve, multi-pellet spread, pierce dictionary keyed off PhysicsMaterial
- Bouncing hitscan with range
- Physics projectiles with bouncing, gravity, and lifetime
- Radial explosions with line of sight checks, distance falloff, chain reactions, and self-damage controls
- Aim down sights as a fire script (tweens position, FOV, sensitivity, spread, crosshair)
- ADS aimed pose evaluated by shared runtime and editor code, with a live Game-view preview and a rig-setup validation window
- Auto-aim direction modes (forward, nearest ally, nearest enemy, nearest agent)
Procedural Weapon Feel
- Weapon sway in lerp, slerp, or smooth damp modes, allows for both position-based and rotation sway
- Velocity-scaled weapon bob
- Geometry-aware weapon bump with fire suppression and visual feedback
- State-driven weapon tilt mapped to MovementState, allowing for weapon tilt while sliding, sprinting, crouching, etc.
- Equip and de-equip position and rotation tweens
- Sway, bob, bump, and tilt are frame-rate independent (existing tuning values read the same)
Abilities
- Three ability slots using a system similar to the weapon fire-type model
- Can be built in the inspector or assigned with pickup
- Dash and grappling hook example abilities included, both fully preset-driven
- Dash with selectable directions (input, aim, upward) and hover suppression
- Grappling hook with preset-driven attach rules, reel and momentum, pendulum tension, swing control, movable anchors, and auto-detach
- Realistic, Movement Shooter, and Old School presets for dash and grappling hook
- AbilityBase abstract class for custom abilities
Health, Damage, Status
- Base HP plus overheal pool with infinite-health override
- Damage types as ScriptableObject assets (display name, UI colour, death-screen wording, on-hit status effects), ten presets included
- Per-type resistance across all damage channels
- Status effect engine on modular status behaviours (damage over time, move speed, knockback, control lock, screen effects, VFX), with build-up, reapply tick, stacking, and chaining
- Over twenty status presets (Burn, Bleed, Poison, Frozen, Stun, Flashbang, Haste, Regeneration, and more)
- Full-screen status overlays (frost, fire, blind/flashbang) and world-space status VFX that follow the affected character
- Kill records naming victim, killer, weapon, and damage type; status-effect kills credit the original attacker
- DamageInfo payload (instigator, hit point, normal, etc.)
- Agent and team identity with friendly fire and ally rules
- Spatial queries (nearest agent, teammate, ally, enemy)
- Health affect area triggers with per-occupant tick timers
Death and Respawn
- Death and respawn flow, all preset-driven
- Death cameras (killer cam, orbit, follow body, freeze, keep first-person)
- Respawn strategies (checkpoint, spawn point, reload scene, custom event)
- Simple checkpoint respawn with deep-copied HP and status snapshot
- Death screens for both uGUI and UI Toolkit
Inventory
- Multi-cell grid with item rotation
- Stacking, even split, place-one-from-stack, and double-click consolidation
- Auto rotate when only the rotated orientation fits
- Category-constrained grids with specialist-first sorting
- Single-cell equipment slots with auto equip and unequip events
- Nested storage containers with capacity, whitelist, and recursive serialize
- Container inventories with weighted loot tables, rolled on spawn, on first open, or on every open while empty
- Lootable bodies for enemies and the player, carrying loot table, carried items, and optionally equipped weapons
- Inventory-on-death policy (keep everything, drop into a lootable container at the death position, or destroy)
- Equip, Transfer, and Unload item menu actions, plus item transfer between two open containers
- Per-item Sprite Tint multiplied over the icon in every view, so a shared sprite can be recoloured per item
- Count-driven sprite, badge, and HUD icon swaps
- Right-click context menus (Consume, Destroy, Drop, Use, Split, Throw, Remove)
- Per-grid weight tracking
- Gamepad navigation (virtual pointer or grid snap)
- Resolution-adaptive cell sizing
Interaction
- Dual spherecast targeting (weapon layer plus general layer)
- Instant or hold-to-interact with progress
- Weapon pickups support hold-to-swap when the target slot is full, with a verb prompt and hold-progress radial on the HUD
- Pickup routing with refusal when no grid has room / weight limit reached
- Physics drag objects with PID position and rotation, three rotation modes, throw impulse
- Pickup interactables with stack and storage serialize on drop
Props
- Spawn-on-death component so explosive props credit their kills to whoever set them off, including chain reactions and self-inflicted blasts
UI and HUD
- Renderer-agnostic dual HUD behind IHUDLayer (UGUI and UI Toolkit both ship)
- State-driven crosshair with per-MovementState mapping
- Three-phase hitmarker (start, hold, end) with sound
- Magazine display with per-mag round and capacity readout
- HUD interaction prompts through a shared layer with both uGUI and UI Toolkit implementations
- UI sway and fire impulse
- Compass
- Screen-space interaction box with name, description, outline, and stack text
Main Menu, Settings, Levels
- Push-down menu state machine with history stack
- Tabbed options (video, audio, gameplay, controls)
- Settings persist to JSON in persistentDataPath
- Full rebinding for KBM and gamepad, primary and secondary slots per action
- Level select with scene reference and async loader
Environment
- Moving platforms with waypoints or rotator motion, five end modes, five trigger types
- Rider carry with optional rotation carry and exit velocity inheritance
- Ladders by trigger volume or interaction button
- Fluid volumes with swim state, drag, and rigidbody drag for non-player objects
- Generic triggers with collision, any-agent, or player-only gating
Audio
- Surface-aware footsteps via PhysicsMaterial to AudioResource dictionary
- Movement SFX (jump, air jump, land, sprint start, slide loop)
Architecture
- ScriptableObject-first presets, hot-swappable at runtime
- Interface seams (IRecoilSolver, IHUDLayer, IItemMenuRenderer, IDamageable, IMenuState)
- Abstract bases (FireWeaponBase, AbilityBase, ItemMenuButtonBase)
- NaughtyAttributes-driven inspectors
- Allocation-free hot paths, cached delegates, squared-magnitude comparisons
- DontDestroyOnLoad singletons with duplicate-instance guards
Compatibility
| Unity version | Built-in | URP | HDRP |
|---|---|---|---|
| 6000.3.14f1 | Not listed | Compatible | Not listed |
As listed on the Asset Store.