Search

Releases

Latest - v1.1.28 (5th March 2024)

Additions

  • Added dual wielding
    • InputDualWield is used to send input to 2 weapons (firearm, wieldable tool, melee or thrown weapon)
    • Each firearm should be a child of the weapon root with the wieldable and input handler components
    • An example swappable weapon prefab has been added for dual machines guns
    • An example with a single machine gun and a secondary grapple tool has been added
    • For more information, check the weapons section of the docs
  • You can now create firearms with a secondary fire mode
    • Secondary can use any of the weapon types (firearm, wieldable tool, melee or thrown weapon)
    • The same view model is used in both cases instead of a separate weapon
    • Components have been tweaked to allow a non-child view model and additive transform system
    • When either the primary or secondary is blocked (eg reloading) it will block the other
    • Example swappable weapon prefabs that demonstrate use
      • Assault rifle with grenade launcher secondary
      • Assault rifle with blink tool secondary
      • Assault rifle with guided bullets and a secondary that tags targets
  • CompoundCrosshairDriver tracks the worst accuracy of all child weapons for proper dual wield behaviour
  • Added a new audio effects system
    • FpsCharacterAudioEffects sits on the player character and manages the audio effects
    • AudioEffectsPreset is an asset that details a specific audio effect
    • Blend between settings for low-pass, high-pass, reverb and distortion
    • Added presets for underwater and injured (not currently used)
  • Added new water sound effects (large splash, swim stroke, exit water, ambience)
  • New motion graph elements
    • AnimCurveDirectionalDash state dashes in a specific direction (vector parameter)
    • VectorType condition checks for specific vectors (empty, unit, wall, floor)
    • SetAudioEffectStrength behaviour is used to apply audio effects while in a state / sub-graph
    • SwimStrokeAudio behaviour plays audio files while swimming
  • New “ability” button input handlers for melee and wieldable tools
  • Added a KinematicHingeDoubleDoor for interacting with double doors as one
  • Example fly-cam character (minimal setup with custom motion graph)

Changes

  • Updated the input system extension with new handlers for dual wield, primary/secondary and ability based weapons
  • Added docs links to all input system input handlers
  • Modified carry system to add moving object backwards and forwards using the mouse scroll wheel
  • Carryables can now specify a default orientation offset
  • Added trigger query options to filtered casts
  • Tweaked doors to use character transform to decide open direction (for AI)
  • Moved AdvancedParticleMuzzleEffect initialisation into public method to allow calling from outside
  • Added “Bypass Damage Handler” setting to InstantDamageZone to apply direct to health manager
  • Exposed item identifier property for InteractivePickup and InventoryItemPickup
  • Modified parkour motion graph to add an upwards dash for vertical wall runs
  • Exposed wall angle getter for INeoCharacterController
  • Added water sounds to swimming and demo facility motion graphs
  • Added a “Disable Neo Object Browsers” setting to the unity settings page in the hub
  • Disables the NeoFPS hierarchy and project prefab browsers and uses Unity default instead (for low spec PCs)
  • Exposed onSelect and onDeselect events on FpsInventoryWieldableSwappable
  • Double clicking an empty area in the motion graph now goes to the parent sub-graph
  • NeoFpsTimeScale now has onPauseTime and onResumeTime C# events
  • PooledObject tweaks
    • Can now select what to do when the pool is empty (grow, recycle oldest, return null)
    • Added a version of the ReturnToPool() method with a delay parameter
  • Added a max distance property to projectiles
  • Animator parameter key attributes no longer show an error if no animator is found (eg attachments)
  • Object / component in hierarchy no longer forces null for values outside the hierarchy
    • Highlights in orange instead
    • Prevents excessive errors in attachments and primary/secondary firearm inspectors
  • Firearm inspector improvements
    • Less memory allocations
    • Can now specify an animator controller from quick setup if the view model is not a child object
    • Prevents listing / checking modules that are in another firearm’s hierarchy (eg primary/secondary firearms)

Bug Fixes

  • Prevent CharacterInteractionHandler from working when disabled
  • Fixed carry system not grabbing health manager and therefore not dropping on damage
  • Fixed HUD damage markers not showing for damage without a source transform
  • Fixed unneeded ExecuteAlways on wieldable tools causing error when inspected
  • Inventories were ignoring “auto switch slot” runtime gameplay setting
  • Prototype pooled audio source for 2D/UI now bypasses reverb and effects
  • Ladded demo motion graph was using the wrong ladder parameters for the climbing audio
  • Extra bomb-proofing in SurfaceFootstepAudioSystem
  • Fixed AnimatorTriggerToolAction for wieldable tools not resetting correctly if interrupted
  • Extra null checks for wieldable tool HealToolAction

Previous Releases

Additions

  • Completely reworked the hand matching system for full body FPS characters
    • FirstPersonCharacterArms component on body now needs its own HandBoneOffsets asset, and you can edit hand alignment in prefab view
  • New NeoMainMenuSceneSwitcher is a scene switcher variant that goes to the main menu listed in the neofps scene manager
  • Added SubSceneOperation behaviour which can be used with events (eg interactive object) to trigger sub-scene saves / loads
  • Added new ThrownProjectileShooter which allows firing hand grenades or similar rigidbody projectiles from firearms

Changes

  • Added pooling support to health and shield pickups
  • Added caching of pooled object to pickups
  • Improved inspector value clamping for health and magazine count
  • Added main menu scene setting to neofps scene manager
  • Added OnUsedWhenLocked event to locked interactive objects and locked doors
  • Added OnOpen, OnClosed, and OnTryOpenLocked events to doors
  • Made SetHealth method public in health manager
  • Added animator controller and demo prefabs for prototype weapon
  • Added busy property to BaseWieldableItem, and changed deselection to wait for busy to complete before starting animation and timer
  • Added duration to AnimatorTriggerToolAction and set tool to busy while playing
  • Switched NeoFpsInputManager inspector to use a new list style for buttons that doesn’t destroy editor performance while open
  • Added options to replace or combine loadout with starting items in FpsSoloGameMinimal
  • Reworded inspector warning in game settings editor base class
  • Added system to prevent playing the same surface audio multiple times in one frame (eg shotgun)
  • Added setting to auto resume aim on obstacle handler
  • Added rigidbody movement support to BaseBallisticProjectile, and moved casting into a virtual method
  • Moved Demo Facility pre-spawn UI tab list down next to spawn button to make it more obvious
  • Added ability to change holdBreathDuration on DrowningMotionGraphWatcher at runtime
  • Changed initial controller check on BaseCharacter to use controller changed method. Same end result, but more control for inherited classes
  • Changed max speed to max step rate for motion controller / footstep tracking
  • Added ability to interrupt and reverse direction on waypoints moving platform
  • Added GoToStart, GoToEnd and GoToOppositeEnd methods to waypoints moving platform
  • Added optional root motion speed multiplier parameters to the RootMotionState
  • New input system package that uses correct body lean base class (lean wasn’t working in full body)
  • Better interpolation on optics attachments
  • Boosted speed and improved responsiveness, plus more jetpack fuel in jetpacks and missiles demo
  • Made it easier to mantle out of water in swimming demo
  • Added new replacement holo sight glass for basic demo assault rifle and replaced in prefab (makes switching render pipeline easier)
  • Added new HasKey() method and virtual used success vs locked methods to LockedInteractiveObject

Bug Fixes

  • Fixed broken reload on assault rifle polymer magazine attachment
  • Fixed surface audio data editor not correctly initialising array length when first created
  • Added extra null checks to ModularFirearmAmmoPickup, ProceduralSprintAnimationHandler and BodyTiltBehaviour
  • Fixed old link on hub front page (trello -> codecks)
  • Fixed NeoSerializedGameObject status info not detecting if prefab is registered in a collection
  • Added missing docs links on sub-scene behaviours
  • Improved door open while closing (prevent opening away from player)
  • Forced removal of shadows from laser pointer line renderer
  • Fixed broken body lean (splitting into base class for full body had broken the logic)
  • Fixed bug where carry system wouldn’t notice if the carried object was destroyed outside its control
  • Removed duplicate NSGOs on platforms in moving platforms demo
  • Modified ScenePoolHandler to add better error checks and resizing if no pooled objects found
  • Various save system fixes
    • Swappable inventory wasn’t loading selection properly when non default
    • Fixed pooled objects not properly saving due to timing of getting NSGO on start
    • Fixed target tracking projectile losing target on load
    • Fixed player tracking missiles not resetting target on load from save
    • Fixed guided projectile tracking when loading from save mid flight
    • Added NeoSerializedGameObject components to demo missile prefabs
    • Carry system wasn’t saving carried object state properly (broke gravity setting for rigidbody on load)
    • Extra bomb proofing and changed evaluation order for OriginShift to prevent resetting position after load
    • Fixed firearm attachments not properly loading if firearm object has never been activated before save
    • Fixed aim offsets with save games (new attachments setup wasn’t loading correctly for the selected weapon)
    • Added save games support to hitscan bullet trails
    • Fixed issue with BinaryDeserializer incorrectly reading saved collections of vectors to lists
    • Fixed weapon procedural animations on loading from save (AdditiveJiggle and WeaponAimAmplifier)
    • Set NSGOs in character aim hierarchy to save local rotations
    • Prevented pose handlers from zeroing out weapon position on load from save. Was moving all turrets in the jetpacks demo to origin

Additions

  • New GenericDamageTriggerZone applies damage to any overlapping collider with an IDamageHandler attached

Changes

  • Switched some interfaces that expose MonoBehaviour methods to inherit from IMonoBehaviour instead
  • Added “Import Post Processing” button to render pipelines setup to speed up project setup
  • Modified StandardCarrySystem to add an option to allow carrying all rigidbodies instead of just carryables
  • Added new input system extension v9 package (fixes below) and cleaned up old packages
  • Expanded firearm drops/pickups to add custom payload settings (starting ammo count and attachments)
  • Added properties for additional (optional) items for pickups (these don’t affect when the pickup is destroyed / returned to pool)
  • Added CharacterEventKickTrigger to moddable demo facility weapons to improve their physicality on landing and impacts
  • Reverted “damageSourceTransform” to return weapon transform not character (same as in 1.1.24)
  • Added extension methods to IDamageSource for GetSourceCharacter() and GetOriginalSourceTransform()
  • Changed headTransformHandler and bodyTransformHandler on ICharacter to use IAdditiveTransformHandler instead of concrete type
  • Removed redundant checks from input handlers to improve performance
  • Moved procedural input behind a scripting define since it adds overhead for very limited uses
  • Optimised deferred pool growth

Bug Fixes

  • Added damage handler enabled checks to damage dealers where missing
  • Implemented correct scale handling on water zones
  • Fixed incremental reloader not correctly unlocking wieldable (eg allowing melee) after reload when using events instead of fixed duration
  • Changed conditions in swimming motion graph to prevent cyclic dependency when swimming out of the side of a water zone
  • Added null check to NeoFpsEditorPrefs to catch possible issues with hub open during a domain reload
  • Fixed SpreadHitscanShooter not calling hit effect correctly
  • Updated NeoFPS input settings to add in URP debug input axes (bypasses URP not checking axes exist and throwing errors)
  • Fixed sample UI menus handling escape key multiple times in a frame in input system extension

A version “b” hotfix update was released on the 22nd May. Hotfix changes prefixed with (b) below

Additions

  • Modular firearm attachment system
    • Add sockets to your weapons and specify attachments for them
    • Sockets can be nested inside attachments (eg muzzle socket on barrel attachment)
    • Demo attachments can optionally require an inventory item to use
    • Demo attachment UI that ties into firearm inspect system
    • Can randomise attachments for pickups
    • Dropping a weapon will store its attachments to recreate when picked up
    • Alternate demo facility weapons provided with attachments set up
  • Pick up and carry physics objects
    • RigidbodyCarrySystem can pick up any dynamic rigidbody under the mass limit
    • StandardCarrySystem requires objects to have a Carryable component to be picked up
    • Manipulate, drop and throw carried objects
    • The Carryable component has events for picked up and dropped (eg fold up / deploy a turret)
    • HUD popup to show carry state / prompts
  • FirstPersonCameraTracker behaviour can be added to any object for inspector events
  • OrientGravityToolModule to change gravity direction based on the surface you’re aiming at
  • GravityModifier behaviour can be used with unity events (eg trigger zone or interactive object)
  • Added basic prototype weapon model with simple animations
    • Swap out the model with your own for simple placeholder animations before adding custom ones
  • New demo first person body package set up for MoCap Online’s Rifle BASIC pack (required)

Changes

  • New v8 input system extension package adds carry system input handler
  • Modified inventory HUD to add “show on start” setting
  • Added momentum conservation and separate deceleration settings for motion graph falling state
  • Renamed kinematic door audio properties and added door movement sound
  • Added layer mask option to spawners
  • Added SetHeathSilent() and SetNormalisedHealthSilent() to health manager to bypass events
  • Added max range to hit FX
  • Expanded ModularFirearmModeSwitcher
    • Added “Register On Start” setting (defaults to yes to match previous behaviour)
    • Added optional animation trigger on switch
    • Added optional animation int parameter to track current mode index in animator
  • Added new filtered casts to PhysicsExtensions (ignores specific rigidbodies)
  • NeoCharacterController can now filter collisions and depenetration for rigidbodies
    • Prevents colliding with carried object for example
  • Modified weapon inspect component to use wieldable animation handler instead of animator directly
  • Added “GetModifiedValue” virtual functions to various weapon elements to make extending easier:
    • damage for ammo effects
    • spread for shooters
    • speed multiplier for reloaders
    • damage for melee weapons and thrown weapon projectiles
    • throw distance for thrown weapons
  • New IAimable interface added to firearms to make aim offsets more reliable
    • Offsets are relative to gun bone instead of root so animations won’t affect them
  • Added setting to ModularFirearm to transfer magazine count when swapping reloaders
    • Excess will be returned to the pool if swapping to a smaller magazine
  • Reworked firearm drops to use new payload system
    • Used to store attachments info
    • Can be expanded to store more data and perform setup on firearm when activated
  • Added “onPickedUp” event to InteractivePickup
  • Added indent to multi-input widgets and UI style assets (requires setting up in inspector)
  • LaserPointerAimerSwitch completely reworked for better attachments handling
    • Now grabs aimer when switched on, and tracks aimer changes
  • (b) Added ignore option to firearm module activation mode
    • Changes connect timing and disconnect behaviour for objects that are activated/deactivated externally
  • (b) Tweaked recoil and laser aim interpolation on demo facility moddable weapons

Bug Fixes

  • Fixed missing origin shift on hitscan bullet trails
  • Fixed horizontal to vertical FoV setting for graphics settings in hub
  • Pooled objects now reset scale to 1,1,1 when grabbed if no scale specified
  • Fixed Origin Shift demo name
  • (b) Fixed firearm modules in socket filled/empty objects not reconnecting when toggled multiple times
  • (b) Prevented delayed firearm eject from causing errors if firearm is destroyed before eject
  • (b) Prevented intermittent error in shooter modules if gunshot destroys gun (eg shooting an explosive barrel, therefore killing self and dropping gun)

Additions

  • New instant use inventory item consumables such as heals (modular actions)
    • Heal
    • Recharge shields
    • Play audio
    • Unity event
    • Consume inventory item
  • Quick melee, throw, shoot and tool wieldables
    • Switch from current weapon, perform action and then switch back
    • Disable equipped weapon functionality and then perform action before re-enabling
    • Quick-action wieldable can signal animator on equipped weapon (eg to lower left hand)
  • New InputFirearmWithMelee (and InputSystemFirearmWithMelee) component allows adding a melee weapon behaviour to a firearm for melee attacks (eg pistol whip)
  • New CriticalHitAudioPlayer to add some extra feedback (eg CoD)

Changes

  • Disabled button filtering for gamepad profiles to allow things like reload and interact on one
  • Added position marker option for virtual analog sticks
  • New v7 input system extension package to match new input changes
  • Added onCategoryFull event to swappable inventory
  • Added item ID conditions to HUD ammo counters to allow unique counters per gun
  • InputInventory (and InputSystemInventory) now allow you to specify quick slot inputs to allow better quick use items
    • Eg Keys 1-4 for weapons, and “Quick Melee” button to select the quick-melee weapon slot
  • HudInventoryStandardPC now lets you specify which quick slots are displayed
  • Exposed onAimUp and onAimDown C# events on BaseAimerBehaviour

Bug Fixes

  • Laser pointer flare now set to correct layer on creation
  • Prevented dropping backup item if it has a drop item set
  • Prevented instant weapon switch and deselect when swapping weapons
  • Fixed incorrect clamp values for mouse sensitivity setting
  • Changed demo hit FX particles transparency type to prevent visible box
  • Unity settings page in hub now correctly refreshes notification state when manually applying settings
  • Fixed teleporters breaking if stepping outside zone after triggering
  • Fixed broken aim offset calculations in firearm wizard
  • Fixed error when applying offsets to HeadMoveAimer in firearm wizard
  • Prevented manual save still occuring on cancel
  • Fixed error when rebinding keys at the end of the list when rebinding is disabled on multiple above
  • Improved error handling during save (now correctly aborts instead of leaving save system waiting for write)
  • Prevented CheckpointTrigger from triggering a save, etc immediately on loading
  • Fixed incorrect Follow Curve behaviour for projectiles

Additions

  • Added new touch screen controls system
    • Custom touch screen buttons, virtual analog (movement) and virtual track ball (aim)
    • Replacement HUD and menu prefab with full demo setup
    • Unity input manager and Unity input system versions

Changes

  • Added virtual input systems to both input managers (emulates input buttons / actions)
  • Renamed “Floating Origin” feature to “Origin Shift” due to trademark issue
  • Added new on-consume options to inventory item pickups (“DisableOnPartial”, “RespawnOnPartial”, “Infinite”)
  • Improved error log messages for NeoSceneManager and SurfaceManager
  • Added new extended gizmo options for drawing 2D arrows
  • FirstPersonCharacterArms now disables arms when selecting nothing or a weapon without kinematics if not part of a full body
  • Added new “RespawnWithItems” option to FpsSoloGameMinimal which respawns you with your inventory when you died
  • Added new “Custom” save path option to SaveGameManager, along with “Enable Save Games” toggle that can disable the whole system
  • Can now specify a save name for autosaves in the CheckpointTrigger behaviour (uses scene display name if blank)
  • Switched NeoFpsTimeScale from static class to Monobehaviour to allow saving value with save system
  • Added impact clip playback to empty shotgun shells
  • Added dynamic update system for motion graph behaviours and states (eg better smoothing for animator parameters)
  • Modified inventories to check for items under item root on start
  • Can now specify which object to disable in HudHider component
  • Added new input toggles to character base class (allowMoveInput, allowLookInput, allowWeaponInput)
    • Modified input handlers to check against this

Bug Fixes

  • Modified input handlers to block input if context gains focus this frame (prevents shooting if context switch is due to mouse click for example)
  • Prevented inventories from modifying prefab item quantity on appending to an existing inventory item using AddItemFromPrefab
  • Fixed broked arm IK and position matching if spawning with no weapons and then picking one up
  • Fixed real time between fixed updates increasing with NeoFpsTimeScale change
  • Replaced broken ammo crate in quickswitch inventory demo
  • Fixed load-on-demand and json bugs for FpsGamepadSettings when using input system
  • Startup checks used wrong conditional compilation version for Unity API change causing error on 2021.1

Additions

  • New demo scenes for camera shake and floating origin
  • ContactDamageSend and InstantDamageZone components for damaging player via collider and trigger collisions
  • Added CameraShakeOneShot behaviour for placing on scene objects and triggering via API or events
  • New OverlaySceneCamera for rendering scene in an area over the first person view
    • Used in floating origin, multi-scene save and first person body demos

Changes

  • Added scene camera to multi-scene saves demo with text log for scene load events
  • Renamed “Level Select” to “Feature Demos” in main menu and moved to top of single player list
  • Can now set quickswitch max inventory size down to 1
  • Can now set swappable inventory per-category sizes down to 0
  • Added warning to floating origin particle systems when applied to local space particle systems
  • Added error to inventories when trying to add wrong wieldable type (swappable vs non-swappable)
  • New onSceneLoadRequested C# event added to NeoSceneManager
  • Added OnEmptyChanged unity and C# event to incremental reloader
  • Modified SurfaceManager to make key functions virtual and add a basic hit FX method
  • Modified FirearmAnimEventsHandler to make functions virtual and expose firearm property

Bug Fixes

  • Fixed error when dropping wieldable tool
  • Various floating origin fixes
    • Trail renderer glitches solved
    • Fixed moving platform interpolation
    • Removed floating origin from bullet hit particles systems when not needed
    • Fixed broken projectiles
    • Fixed crosshair pop on origin shift when physics auto-sync transforms disabled
  • Fixed prototype player controller not attaching
  • Fixed broken prefab override in moving platforms demo
    • Added jump transition to first person body animators to prevent lag on raising feet

 

Additions

  • Scriptable render pipeline support
    • Shader graph versions of all NeoFPS shaders
    • Modified demo materials for SRPs as part of extension packages
    • Example materials and prefabs
    • New MonoBehaviours for SRP holographic sights and render texture scopes
    • Installer built into Unity Settings page of NeoFPS Hub
  • Floating origin system for large scale worlds
    • Repositions the player character and the world once they pass a certain threshold
    • Works with all the following:
      • Standard transform
      • World space particle systems
      • Trail renderers
      • Projectiles
      • Moving platforms
      • NeoCharacterControllers
  • New PickableLockedInteractiveObject can be used for interactive items like locked containers
  • InventorySelectionAnimator sets an animator parameter based on currently selected quick-slot

Changes

  • Streamlined package checks on install for better SRP handling
  • Modified demo materials to switch legacy shaders for modern to aid upgrading to SRPs
  • Added auto-switch setting to inventories (none, always or starting order)
  • Added “Fire Event On Start” setting to firearm mode switcher

Bug Fixes

  • Fixed melee weapon using its own animator instead of the abstracct animation handler (prenvented full character animation)
  • Blocked wizards from creating prefabs during playmode due to broken domain reload
  • Added stricter null and initialisation checks for pose handler on thrown weapons
  • Fixed out of bounds error when rebinding inputs at bottom of the list in menu when entries are disabled

 

Additions

  • Multi-scene save system to allow splitting levels into multiple scenes
  • SubSceneManager provides and API for loading/unloading sub-scenes
  • SubSceneLoadTrigger and SubSceneUnloadTrigger provide trigger zones for loading/unloading subscenes
  • On unloading a sub-scene, the save system will save its contents to a buffer to recreate later
  • Loading a sub-scene checks for existing save data to recreate the contents
  • Sub-scene save data is included in quick, manual and auto saves
  • Multi-Scene Save demo scene with 3 rooms, each using separate sub-scenes
  • New AdditiveSceneSaveInfo component to track sub-scene contents and data
  • InventoryInteractionHandler controls weapon selection when interacting with objects
  • New weapon inspect system that sets animator parameters and blocks weapon use while inspecting

Changes

  • Set animator parameter motion graph behaviours now have options to use motion graph parameter values
  • Added shell collision audio clips to ParticleSystemShellEject firearm module
  • Automated animator and skinned mesh culling options for first person body
  • Automated animator culling options for weapons
  • Updated Kubold demo package with animator controller fix
  • Updated input system package with weapon inspect trigger

Bug Fixes

  • Fixed sprint to crouch slide blend when using hold to sprint (full body character animator)
  • Wieldable tool wasn’t correctly setting crosshair on selection
  • Added 1 frame delay to info popup in FP body demo to prevent out of order issues
  • Waypoint moving platform was overwriting save data on start

Additions

  • Added stub animations and override controller for first person body
  • New FpsInventoryMultiDrop can be used to drop multiple items at once
  • Added new backpack drop to demo characters on death
  • Added one-shot local camera shakes + motion graph behaviour to trigger them
  • ContinuousTrigger adds support for weapons like beams or flamers
  • New FirstPersonBodyRotationTracker sends steering direction changes to animator controller
  • New MapCaptureCamera helper to capture top down views of a scene
  • New enemy health bar and world space hit damage counters (example in firing range demo)
  • New pre-spawn UI popup system and game modes
    • Spawn point selection
    • Character selection
    • Loadout selection
    • Loadout builder (pick individual weapons)
    • Created new game mode for the Demo Facility using spawn point selection and loadout builder
  • Added pooled object and save game prefab collection assets that can be shared between scenes

Changes

  • Pooling system now allocates pools over time for new items requested after level load
  • Replaced mouse smoothing algorithm with proper damping
  • Removed unused head recoil handler from BetterSpringRecoilHandler
  • Sample UI multi-select widgets can now be set to looping
  • Added unityCamera property to FirstPersonCameraBase class (for cinemachine)
  • Switched to new DamageEvents static events class instead of hit handler on character
  • Modified crosshair to use new events
  • Added healthManager property to IDamageHandler
  • Improved world space HUD markers system for better flexibility
  • Allowed resuming trigger press after reload, etc
  • Wrapped all input manager code in #if ENABLE_LEGACY_INPUT_MANAGER
  • Tweaked NeoCharacterController depenetration algorithm to prioritise ground
  • Disabled old PhysX sphere/capsule cast workaround in NeoCharacterController that’s no longer required (huge speed boost)
  • Reduced memory allocations (baseline is now just an intermittent gamepad connectivity check with no alternative)
  • Added “Mark All As Up To Date” option to unity settings page in the hub
  • Improved finger matching in FirstPersonCharacterArms
  • Removed duplicate heading behaviours and constraints from FP body motion graph
  • Added prefab recognition to ObjectInHierarchy editor (better prefab stage handling)
  • Added warning to any components that change an object’s layer on start
  • Split singleplayer game mode into base class
  • Added option to popups to prevent back button / escape / clicking off
  • Added progress events to NeoSceneManager and demo LoadingScreen class
  • Separate out onUsed event on interactive objects to C# event + unity event to allow character parameter
  • Added DropAllWieldables method to inventories
  • Extended LockSelectionOnDeath to add dropping items
  • Added error to RootMotion motion graph state if no body animator found
  • Updated Cinemachine and Input System extension packages
  • Added damping to AnimatorVelocityBehaviour
  • Added highlighted colour for selected connections in the motion graph editor
  • Added spawn point add/remove events to SpawnManager

Bug Fixes

  • Replaced drop objects on first person body firearms with correct pickups
  • Fixed problem with wielder change not correctly activating IK
  • Forced pool transform positions to world origin
  • Prevented repeat event calls on character controller change
  • Added in-game check to first person body game mode when popup disabled
  • Added initialisation checks to inventories to prevent adding things before initialised
  • Fixed wrong additive transform handler and object tags in character wizard
  • Prevented auto-switch weapons for disabled inventories
  • Fixed incorrect FoV readout in in-game settings
  • FpsSoloGameMinimal now correctly resets inGame property after exiting level
  • Changed game settings json save path on mac and uwp (access denied)
  • Fixed reload trigger lock not resetting on weapon switch
  • Removed crouch jump popping from character controller gizmo in motion debugger view
  • Prevent “RequiredString” property from deselecting when validity check result changes
  • Fixed lock/unlock inventory selection multiple times on consecutive frames causing failure to unlock
  • Added vertical velocity reset to mantle state to prevent momentum causing it to fail
  • Set correct stencil indices on scope rings
  • Prevented non-prefabs showing “register with save manager” in NSGO inspector
  • Fixed character arm IK not disabling when switching to a weapon without the required component
  • Prevented error in PackageDependencyChecker due to invalid version code
  • Fixed game mode not applying loadout on respawn
  • Fixed broken using directive error due to Unity feature leaving experimental
  • Switched AssetDatabase.Find calls to use fully qualified type name to prevent fail if duplicate names exist
  • Improved prefab ID check on duplicated variant prefabs
  • Set correct ammo count on 40mm grenade x 2 pickup
  • Set correct audio mixers and clips on pickup prefabs
  • Fixed time scale 0 causing “Not A Number” errors on NeoCharacterController and AimController
  • Fixed incorrect visual state on dead cameras and turrets after loading from save
  • Added pose handler init checks to prevent save system setting pose before initialised

Additions

  • AnimatedFirearmObstacleHandler and ProceduralFirearmObstacleHandler classes for moving weapon if obstructed
  • New ProceduralSpineLean replaces BodyLean additive effect for full body characters

Changes

  • Switched wieldable pose system to use a referenced priority queue for better stacking of poses
  • Added intro popup to FirstPersonBody demo with third party asset info
  • Improved error message for invalid package names in package dependency checker
  • Added root motion position and rotation multipliers and damping to motion graph
  • Split BodyLean into base class for sharing
  • Added lean settings to ProceduralSpineAimMatcher
  • Improved character and fp camera handling of disabling/enabling player character
  • Modified WieldableItemKinematics to work on child objects (to allow switching between multiple)
  • Updated input system extension package for parity with current input handlers

Bug Fixes

  • Fixed error on quantity = 0 for inventory wieldables
  • Fixed jump state using physics gravity instead of character gravity
  • Fixed issue with guns and hand IK desync on scroll wheel
  • Switched foot IK rotation blending to start on character up not world up
  • Replaced platform rotation algorithm in NeoCharacterController for better handling of slow rotations
  • Fixed input bindings failing to recognise changes to toggle v hold
  • Fixed firearm getting stuck in aim if switching from hold to toggle while ADS

Additions

  • New first person body features for full character body and separate arms vs weapon
  • FirstPersonBody component handles foot IK, aim direction animations and
    • FirstPersonBodyRootMotion captures root motion from Animator and passes to the NeoFPS motion controller
    • FirstPersonCharacterAnimationProfile allows you to specify (and name) which animations are exposed for overriding
    • FirstPersonCharacterArms handles IK matching character hands and fingers to weapon
    • HandBoneOffsets scriptable object stores character/weapon rotation offsets for reuse and runtime editing
    • WieldableItemKinematics works with the character arms to specify handle weapon switching
    • WieldableItemBodyAnimOverrides applies animation overrides to the character on switching weapons
    • ProceduralSpineAimMatcher uses additive rotation to bend the spine when aiming up/down or left/right
    • FirstPersonCameraTransformConstraints constraints camera position to one or more objects (eg animated head bone)
    • The firearm CameraConstraintsAimer aimer module uses camera constraints to align the camera when ADS
  • New placeholder input handlers
    • InputVehicle disables character controls while keeping cursor locked as basis for vehicle controls
    • UiInputToggle adds an escape handler that toggles cursor lock and character controls
  • HudWorldSpacePositionTracker and HudWorldSpaceTarget combine to align a HUD object with an object in the world
  • New LockSelectionOnDeath component forces the character to lower their weapon (optionally drop it) on death
  • New motion graph behaviours
    • AlignWithVelocity aligns the character body with the movement velocity vector (eg wall running)
    • ConstrainCharacterHeading aligns the character body to a vector (eg climbing ladder)
    • FootIkBehaviour sets the character foot IK strength while in the state/sub-graph
    • SetRootMotionStrength blends between the current state’s move vector and animated root motion
    • SpineAim enables or disables the ProceduralSpineAimMatcher
    • AnimatorGroundSlopeBehaviour sends ground slope and direction values to the character animator
  • New motion graph conditions
    • InventoryItemCondition checks if the character has an object with a certain ID in their inventory
    • WieldableSelectedCondition checks if the character has the object with the specified ID selected
  • New RootMotion motion graph state sends input to the character animator and moves based on root motion
  • DeathAnimation component triggers an animation when the player character dies

Changes

  • Modified NeoCharacterController, MotionController and AimController classes to enable first person body features
  • Added root motion support to motion controller
    • Added animator property to motion controller (instead of old system that set it as a motion graph parameter)
    • Extended aim controller constraints to add heading constraints (for aliging body to certain movements)
    • Motion controller has new properties for head bone and head root, plus character height animation parameter. If motion controller has a valid animator and “Height Anim Float”, then character height will be animation driven
  • Switched all private Unity message handlers (awake, start, etc) to protected
  • Added 2D sound effect pooling to audio manager
  • Added custom inputs to InputCharacterMotion component (drive motion graph parameters with input buttons)
  • Added “Scroll Select” setting to inventory input handlers
  • Added “Show Mouse Cursor” setting to InputMenu handler
  • All wieldable types have new “Animator Location” setting to specify one or more animators on weapon or character
  • Wieldables that hit 0 quanitity now deselect before destroying
    AddForce motion graph behaviour now had “Space” setting so you can apply in local space
  • AnimatorInputVector motion graph behaviour has new directional multiplier and damping settings
  • Added “Slope Effect” setting to enhanced cast motion graph conditions. Adapts cast to ground slope
  • Enabled opening motion graphs in the editor by double clicking the asset
  • Added “Minimum Distance” settings to all impulse motion graph states. Prevents issues with extreme tick rates
  • Added “ignoreTilt” parameter to NeoCharacterController teleport method in case using rotation from an object
  • Added “Default” layer to interactable mask since it has to block casts
  • Moved shared logic for firearm aimer modules to shared base class
  • All firearm modules now support multiple animators
    Added “Shell Scale” setting to StandardShellEject and ParticleToRigidbodyShellEject
  • Added onSwitchModes C# event to IModularFirearmModeSwitcher
  • ConstrainCameraPitch and ConstrainCameraYaw motion graph behaviours have added ground slope and transform based options
  • Extended HealToolAction for wieldable tools
    • Has separate heal settings for different tool phases
    • Handles inventory consume internally due to timings
  • New “Auto Hold” settings for wieldable tools that act like the trigger is held after clicking until complete
    Added “New Game” button to main menu that loads a specific scene

Bug Fixes

  • Added missing help URLs to tool modules
  • Fixed broken gamepad recognition
  • “Empty as Backup” now works with locking selections and switching between empty slots
  • Reloading immediately on switching weapons now prevents shooting until reload finishes
  • FpsInventorySwappable now checks category count on awake instead of just OnValidate
  • Fixed motion graph editor not updating at runtime for some people
  • Prevented motion graph MovementState never hitting zero speed due to smooth damp
  • Fixed automatic trigger not resuming after reload while pressed
  • Switched AddInventoryItemToolAction to use correct item class
  • Fixed continue and load game buttons in main menu not initialising properly
  • Prevented character controller getting stuck on slightly sloped walls

Additions

  • Input system extension package
  • New AnimatorBoolToolAction that sets an animator parameter while the trigger is held

Changes

  • Changed underlying input architecture to allow for input system extension
  • Rewrote package dependency checker due to upcoming changes to Unity API
  • Added “Empty As Backup” option to inventories to switch to backup item if selecting an empty slot
  • IQuickSlots interface now has additional slot int parameter in onSelectionChanged event
  • Added origin point matcher tool from firearms to melee, thrown weapons and wieldable tools
  • Added “Quality Preset” switcher to in-game graphics settings

Bug Fixes

  • Added missing help URLs to tool modules
  • Fixed broken weapon pickup with multiple of the same weapon
  • Submerging when swimming is now aware of surface level to prevent issues with moving water

Additions

  • Cinemachine extension package
  • New CinemachineFirstPersonCamera component for first person characters
  • New SurfaceFootstepAudioSystem moves footstep handling to character component and exposes onStep C# event
  • SurfaceFootstepAudiobehaviour motion graph behaviour interacts with new footstep system
  • MatchTransformState motion graph state for syncing character motion to animated transforms
  • MoveToPointState motion graph state interpolates to a fixed point in space
  • BlinkToolModule adds an Arkane style blink ability in tool form
  • Added SwimSubmergeState motion graph state and switched swimming graphs over for better surface height awareness
  • New IMeleeHitExtension interface that can be used to extend melee weapon behaviour with new components
  • New AddInventoryItemToolAction for behaviours like adding armour
  • ParticleSystemPlayOnEnable utility component for easier use of pooled particle systems for hit reactions

Changes

  • Added root NeoFPS assembly definition
  • Added “Query Trigger Colliders” and “Layer Mask” settings to melee weapons
  • Split melee weapons into base class
  • Changed melee weapons to use virtual primary and secondary fires instead of attack and block
  • Modified melee sprint handlers and stance manager to adapt to above change
  • Added “Query Trigger Colliders” setting to explosions
  • Added “Grapple Tags” setting to grapple tool
  • Changed script execution orders project wide to align with Cinemachine’s fixed order
  • Split FirstPersonCamera into new base class (for cinemachine extension)
  • Improved capsule and arrow scene gizmos
  • Added colour coding to spawn point gizmos to show when obstructed
  • Improved SetLoadout method on inventories to work after initialisation
  • Added static “CreateLoadout()” methods for FpsInventoryLoadout class
  • Added “Min Load Time” setting to NeoSceneManager
  • Better warnings for player character HUD components if a watcher isn’t found in the parent hierarchy
  • Added onLanded C# event to base character
  • Improved project hierarchy browser to show “Searching…” on open instead of freezing
  • Added AddPositionOffset() and AddYawOffset() to NeoCharacterController
  • Added Interrupt() virtual method and IsValid checks for base tool modules
  • Switched modular firearm camera offset helper to use child object browser
  • Created common base class for input handlers to separate input contexts from button press checks
  • Set firearm aimer module “Aim Transform” settings to use child object pickers
  • Limited inventory item max quantity to prevent rollover to negative at int max value
  • Added scale matching to ParticleToRigibodyShellEject when matching pooled object size and velocity
  • Added rigidbody support to WaterZoneMover for better interpolation matching with character movement
  • Changed locks to allow multiple lock IDs (eg skeleton key + specific key)
  • Added start delay and easing options to SimpleMovingPlatform and SimpleRotatingPlatform
  • Added multiple objects of same type support to swappable inventory (new “Duplicate Behaviour” setting – “Allow”)
  • Added “Holster Action” setting to inventories to allow holstering to nothing instead of backup item
  • Split NeoFpsInputManager to base class

Bug Fixes

  • Prefab browser was ignoring “None” selection
  • Fixed spawn point overlap tests offset
  • Prevented motion graph editor viewport from repainting without input
  • Moved FpsPrototypePlayerController init to Start method to prevent out of order errors
  • Fixed projectiles showing early for near hits
  • Added NeoSerializedGameObject components to swimming demo water zones to prevent issues when saving
  • Fixed error when locking selection in stacked inventory
  • Fixed broken PS4 controller mapping on OSX
  • Fixed error in stacked inventory setup section of player character wizard
  • Fixed error in spread ballistic shooter setup in firearm wizard
  • Switched to correct inventory key types for  ArmouredDamageHandlers and HudInventoryItemTracker
  • Fixed HudInventoryItemTracker failing to get inventory if character spawned but not initialised
  • Fixed settings pages in hub not saving changes
  • Improved stance reset on changing wieldable item selection
  • Fixed MotionGraphDataOverrideAsset inspector not saving changes properly
  • Body impacts now cause the camera to bounce in the correct direction
  • Load and Continue single player menu buttons now initialise before selection
  • Fixed broken save/load for SimpleMovingPlatform and SimpleRotatingPlatform

Additions

  • Added TimedExplosive component

Changes

  • Added filtering to save game thumbnails
  • Added location options to FirearmTransformMatchSetter (head, upper body, aim transform)
  • Added “Pose Transform” setting to firearms to prevent pose system moving root in some situations
  • Applied custom object browsers to object properties on ricochet and penetrating ammo effects
  • Added valid target tag setting and onTargetLost event to target tracking ammo
  • Added damage source interface to sticky projectiles to allow passing of damage info
  • Max distance for hitscan trails
  • Enabled dynamic batching for demo materials
  • Added button to highlight child objects to module lists in ModularFirearm inspector
  • Added “Register With Database” button to inventory database tables
  • Reworked explosion protected virtual methods to allow more flexibility
  • New “Auto Reload” gameplay setting
  • Wieldable tool modules no longer auto-end if there’s no continuous actions
  • Added “Query Trigger Colliders” settings to shooter modules and projectiles
  • Improved coverage of known gamepad names

Bug Fixes

  • Character impact handler switched to impulse forces to prevent insane values being required
  • Corrected quaternion order on transform matcher
  • Removed depth of field from default demo post processing profile (was messing with RT scopes)
  • Tweaked script execution order for HUD target lock markers
  • Removed post processing from player character wizard if not installed
  • Fixed missing property in guided projectile editor script
  • Prevented aim contollers taking input when disabled
  • Fixed broken particle system connection for muzzle effects in firearm wizard
  • Reordered prototype spawnerless character hierarchy to prevent broken spring effects
  • Removed depth fade from laser pointer dot as it stopped working properly
  • Fixed vertical recoil with 0 wander in BetterSpringRecoilHandler
  • Pickup wizard now centers trigger collider on render geo
  • Fixed broken stacked inventory settings for wieldables in wizards
  • Aim toggle is cancelled when rebinding keys, preventing getting stuck aiming
  • Fixed verticalFoV script error in graphics settings on Android
  • Added initial update to accuracy when entering/exiting aim to ensure accuracy caps are handled properly
  • Fixed BetterSpringRecoilHandler error when no aimer attached to weapon

Additions

  • New wieldable tools system (code only – no demo art included currently)
    • New wieldable type alongside firearms, thrown and melee weapons
    • Primary and secondary fire modules
    • Start, continuous (hold) and end actions
      • Animator trigger actions
      • Hold to charge action
      • Consume inventory item actions
      • Flashlight tool module (toggle action)
      • Grapple tool module
      • Heal actions (wielder or target)
      • Play audio actions
      • Shield booster actions
      • Unity event actions
    • Procedural and keyframed sprint handlers
    • Stance system
  • Grapple-swing motion graph state
  • Add force and record velocity motion graph behaviours
  • New HeadBobV2 head bob system with crosshair centering and bob strength sliders in game options
  • Character velocity based weapon sway
  • ParticleToRigidbodyShellEjector uses particle system while in view, swapping particles for rigidbodies after

Changes

  • Added FoV settings to graphics menus
  • Vastly improved explosion damage handling (won’t stack damage on multiple colliders / damage handlers for a single character)
  • Reworked KeyBindingContext system to allow for easier addition of inputs that can share keys
  • Added support for multiple inputs on each gamepad button (eg ADS + secondary fire)
  • Improved KinematicHingeDoor 1-way behaviour (you can now add a hinge transform to either the positive or negative)
  • Added “Tilt Towards” setting to BodyTilt motion graph behaviour
  • Can now specify new pool size prior to adding new pools to scene pool info or pool manager
  • Added max speed multiplier to ricochets and penetration in SurfaceBulletPhysicsInfo
  • Improved bullet trail cleaner for projectiles that aren’t removed on hit
  • Added OnTagged unity event to TargetTrackingAmmoEffect to make switching ammo effects easier on tagging a target
  • Made it easier to extend TargetTrackingAmmoEffect and add conditions to tagging objects
  • Added template descriptions to item creation wizards
  • Checked and re-exported all item templates
  • Switched prefab references in neo inspectors to use new project browser system (eg projectiles, explosions, hitscan trail)
  • Split thrown weapons into base class to remove inventory dependency from core functionality
  • Demo sticky projectile is now set up as an interactive ammo pickup (using shotgun ammo to demonstrate)
  • Item pickups now support pooling (destroy on consume now changed to “return to pool or destroy” on consume)
  • Removed inventory key from generated constants (you should now add new items via the database)
  • Removed FpsInputAxis from generated constants settings and made it harder to accidentally generate all
  • Improved lookahead on StandardShellEject to compensate for character position interpolation
  • Added new shell casing physics material for better bounce
  • More intuitive velocity and slope handling in AnimCurveDashState
  • Better interpolation handling in PhysicsBulletCasing
  • Added ADS multiplier for RotationBob on weapons
  • Made hitboxes on cameras and turrets slightly bigger
  • Nicer water surface texture
  • Demo characters now lower weapons when swimming or climbing ladders
  • Better exception handling when loading from save

Bug Fixes

  • Fixed camera seeker angle ranges clamping in OnValidate before input is finished
  • Prevented hammering different weapon slots from blocking ADS when ending on the original selection
  • Fixed registering NSGO save game prefabs with save system from within prefab-stage
  • Prevented gamepad settings from creating NeoFPS manager objects on run when NEOFPS_LOAD_ON_DEMAND is used
  • Prevented animator parameters resetting on disable/enable for chambered and incremental reloaders
  • Fixed broken player character wizard (incorrect stamina system setup)
  • Restored correct inventory IDs on armour prefabs
  • Dimmed the stylised projectile trail to prevent blinding people
  • Teleporting NeoCharacterController now resets interpolation properly to prevent crazy skipping effect
  • Fixed potential out of range bug on pattern editor for pattern shooters
  • Fixed gizmo error with character prefab open in prefab stage while in play mode
  • Fixed aimer gizmo not matching aim offset transform
  • Fixed LaserPointerAimerSwitch causing error on load from save when not on active weapon
  • Fixed ModularFirearmModeSwitcher not connecting after load from save if weapon was never selected

Additions

  • New water shaders in swimming demo

Changes

  • Added version number to hub front page

Bug Fixes

  • Fixed duplicate script error on upgrading from 1.1.09

Additions

  • Locked doors
    • Inventory based keyring
    • Locked interactive objects and trigger zones
    • Destructible lock example
    • Lockpicks and lockpicking mini-game
    • Keypad based passcode locks
  • Guided projectiles
    • Simple steering and drunken steering examples
    • Player tracking
    • Nearest object with tag and layer tracking
    • Laser pointer targeting system (HL2 style)
    • Target lock firearm trigger (hold to lock, release to fire)
    • Multi-target lock firearm trigger (hold to add targets, release to fire once per target)
    • Raycast targeting (homes on initial aim point)
    • Target tracking ammo effect (tag a target with a bullet to get missiles to home on)
  • Sticky projectiles
  • Contact thrown weapons
  • Recharging ammo firearm module
  • Audio-only muzzle effect firearm module
  • Queued trigger module (hold to queue shots, release to fire)
  • Ability based firearms (eg shoulder mounted launchers)
  • Tribes inspired demo scene for jetpacks and guided missiles
  • New motion graph states
    • Adaptive jetpack (allows for hover effects and max speeds)
    • Anim curve dash
  • New motion graph behaviours
    • Animator parameter setters
    • Animator velocity, speed and input behaviours
    • Impact damage (temporarily disable/enable)
    • Modify character velocity
    • Camera kick, jiggle and shake spring effects
    • Camera FoV pulses
    • Constrain camera pitch
    • Steering rate
  • Info popup trigger (add to interactive objects to show text popups)
  • Checkpoint trigger (enable/disable spawnpoints, and auto-save)
  • World to screen position HUD markers (currently used for target locks)
  • Prefab UI popups system to allow showing arbitrary UI popups from prefabs (eg door keypads)
  • New inventory loadout assets
  • Added HUD Toggle component (press a key to hide/show the HUD for screenshots)

Changes

  • FpsInventoryKey constants replaced with full inventory database system (easier to work with and expand to your needs)
  • Added set and reset velocity methods to NeoCharacterController
  • Added locked animation curve for door handles
  • Improved object fields and browsers in wizards
  • FirstPersonCamera now has methods for FoV pulses
  • Added volume settings to firearm
  • Firearm movement accuracy now exposed in ModularFirearm component settings
  • Firearm modules switched to a common base class and given lifecycle settings
  • Smoother blend in and out of position bob
  • Added sprint hold and ability button to character motion input component
  • New settings for motion graph states: boost pad, jump, fall
  • Improved audio falloff for default audio manager audio sources
  • Motion graph data override API has been changed to allow stacking of overrides
  • Stamina system now uses multipliers for motion when tired instead of absolute values
  • Projectiles can now be teleported
  • Charged trigger now has options for different animation setups (parameter, layer blend, events)
  • Door trigger zones have added “characters only” setting
  • Body lean has new settings to counter rotate camera and weapon
  • Added demo example for multi-waypoint moving platforms (select a destination)
  • Passthrough reloader now has magazine size settings for modules that want to check it
  • Added trigger cancellation using reload button for certain trigger types (and settings)
  • Added onTooltipChanged event to interactive objects (eg Unlock vs Open)
  • IInventory now has AddItemFromPrefab method
  • Added settings for which hit ammo effect to use when penetrating ammo effects fail to penetrate
  • Switched ballistic projectiles to common base class
  • New onShootContinuous event on trigger modules
  • Added deceleration setting to basic motion state (no input)
  • Airborne only setting for recoil pushback component
  • Added inventory loadouts to game mode / spawner
  • Can no longer set character height directly from motion controller property. Must use methods instead
  • Added steering properties to IAimController
  • Added enabled checks to INeoCharacterControllerHitHandler
  • Added reload current setting to NeoSceneSwitcher
  • Added onValueChanged event to motion graph transform parameters
  • New “Decal Layers” setting on surface manager allows you to specify which layers accept decals
  • Character spawns now have a setting to reorient gravity to their tilt on spawn
  • Added filter to modular firearm mode switcher to make it easier to select modules
  • Added ground contact lookahead settings to NeoCharacterController (detect slopes vs steps)
  • Stacked inventory wieldables are now fixed at the maximum stack size of 10 (other options were causing confusion)

Bug Fixes

  • Fixed incorrect force calculations on NeoCharacterController
  • Fixed improper naming of trigger events on character trigger zones
  • Animator parameter key checks now work for animator override controllers
  • Stacking bullet effects can now longer select themselves
  • Fixed persistent stacked inventory HUD (now selection dropdowns fade out)
  • Fixed automatic and burst trigger spacing if shot causes error
  • Driven moving platform gets correct values from rigidbodies if used
  • Fixed tilted spawn points causing character up vs gravity mismatch
  • Fixed FpsInput base class allowing input without focus

Additions

  • New firearm optics
    • Holographic & red dot sights with reticules projected in front of the weapon
    • Render texture based scopes
    • Stencil based scopes
    • Built-in (standard) render pipeline shaders
  • Weapon flashlights
  • Laser pointers
  • New weapon attachments geometry (system not yet implemented)
  • New in-game quick options menu to bypass full UI if changing volume, mouse sensitivity, vsync, etc
  • Added “ability” based slow-mo (press the button to enter slow-mo)
  • Added DirectionalDash motion graph state

Changes

  • Updated demo facility
    • New motion graph for character with swimming, crouch slides and climbing
    • Wall running implemented but disabled by default
    • Firearms switched to projectile based shooters
    • Firearm geometry replaced with new models
    • New camo material options for weapons
    • Firearm prefabs have a variety of optics and other attachments
      • Activate / deactivate in the prefab as required (the attachment system is not yet implemented)
    • Re-baked lighting with light and reflection probes
  • Added keyboard layouts (Qwerty, Azerty, Qwertz, Dvorak, Colemak)
    • In game key bindings now has option to reset to defaults based on layout
  • Added key binding filter to options menu to hide specific inputs that might not be used
  • Improved NeoCharacterController interpolation for smoother results
  • Head move and weapon move aimers can now set separate input sensitivity to FoV multiplier (for RT scopes)
  • New minimum accuracy setting for weapons (in script)
  • New movement accuracy penalty multiplier for weapons (in script)
  • Added strength multipliers to additive spring effects (in script)
  • Added HideCrosshair and ShowCrosshair methods to weapons (in script)
  • Added “ability”, toggle flashlight, and optics brightness up/down input buttons
  • Improved modular firearm wizard to allow non-model prefabs
  • Added NEOFPS_LOAD_ON_DEMAND scripting define, to prevent manager load and creation on start
  • Redesigned pattern shooter pattern editor interface

Bug Fixes

  • Key bindings options menu was showing every input as W
  • Better handling of wieldable selection locks from motion graph behaviours
  • Fixed motion graph states and connections not showing in inspector in 2020+
  • Aimers now use correct rotation easing setting (were using position easing)
  • Character played pain grunt when health went up instead of down
  • Advanced particle muzzle effect particles were disappearing when switching weapons
  • Character step rate now blends in/out to stop popping in spring effects (eg head and weapon bob)
  • Fixed aim persisting between weapon switches (ADS, switch, stop aiming, switch back)
  • Additive transform handler using FixedAndLerp option wasn’t interpolating properly
  • Aim up/down audio was playing at end of transition instead of start

Additions

  • New item creation wizards
    • Pickups (revamped)
    • Melee Weapons
    • Thrown Weapons
    • Player Character
    • Modular Firearm
    • Interactive Objects

Changes

  • Damage dealers (hitscan and projectile firearms, melee weapons and explosives) no detect multiple damage handlers on an object
  • Implemented registration of NeoSerializedGameObject components with the save manager (or scene save info) from the component’s inspector

Bug Fixes

  • Fixed motion graph states and connections not showing in inspector in 2020+
  • Aimers now use correct rotation easing setting (were using position easing)

Additions

  • Regenerating health manager
  • Armour (inventory & pickup based)
  • Shields (recharging, and staggered with pickups to fill empty bars)
  • Healing and damage zones
  • Slow-motion system with slow-mo zones and motion graph behaviour
  • New HudAdvancedCrosshair with hit and critical hit feedback
  • HUD based Interaction tooltips
  • New CameraYawConstraint motion graph behaviour (used in the demo curved wall runs)
  • CutsceneCamera handles disabling HUD and character input for external camera views
  • RecoilPushback behaviour pushes the player character backwards when they shoot a firearm
  • Added a “Pickup Wizard” to the NeoFPS hub to simplify creating item pickups and powerups
  • New example contact based and interactive pickups (inventory items, health and armour)
  • HUD based meters and counters for inventory items, and other systems
  • JumpDirectionV2 motion graph state replaces old directional jump and handles analogue input correctly

Changes

  • Camera constraints are now damped near the limits
  • Character controller height change speed is now set along with target height
  • Added separate body lean settings for crouching vs standing
  • Added frame rate cap options to graphics settings when V-Sync is disabled
  • New IShooterCameraAim interface added to relevant shooters to make it easier to swap shared property at runtime

Bug Fixes

  • Better save system thread handling for IL2CPP
  • Fixed incorred disable on InfiniteAmmo firearm module
  • The character controller is now much better at handling head collisions (doesn’t get stuck on overhang corners now)
  • Swappable inventory sytem now gets the correct slot index from save games
  • Improved spawn order handling by adding an OrderedSpawnPointGroup component
  • Removed assumption from inventory system that starting items would have a save system component (NeoSerializedGameObject)
  • Switched sample scene thumbnails to enable read/write as it was causing an error in save games

Additions

  • TeleportZone1Way allows simple teleportation
  • TargetVelocity condition for motion graph (velocity before collision response)
  • MaintainVelocity motion graph state

Changes

  • Improved pose handler reset
  • Added motion graph parameter reading for head duck spring effect
  • Added FixedUpdate + interpolation in Update or LateUpdate for spring effects (more consistent at low framerates)
  • Added BreathingEffect to all demo weapons

Bug Fixes

  • Fixed firearm quick-setup using wrong transform for spring animation (blocks new stance system from working)
  • Blocked sprint handlers from catching events while not selected
  • Fixed jump charge sometimes resetting before actual jump
  • Fixed broken screenshots in save games
  • Fixed trigger state being saved with save games (would shoot on load)
  • More consistent behaviour when swapping aimer and trigger modules while in use
  • Prevented rapid unlock/lock inventory selection from causing weapon to pop up

Additions

  • New wieldable stance managers that can be used for weapon stances/poses
    • FirearmWieldableStanceManager, MeleeWieldableStanceManager, ThrownWieldableStanceManager
    • SetWieldableStance motion graph behaviour to control stance from motion graph (eg crouching or falling)
  • Procedural and keyframed sprint animation handlers for weapons
    • ProceduralFirearmSprintHandler, ProceduralMeleeSprintHandler, ProceduralThrownSprintHandler
    • AnimatedFirearmSprintHandler, AnimatedMeleeSprintHandler, AnimatedThrownSprintHandler
    • Options to pause sprint animation or break out of sprinting motion state on shooting, reload, melee attack and throwing
  • New BetterSpringRecoilHandler firearm module replaces the old spring recoil module and is much more intuitive and powerful
  • New breathing system provides a consistent way to count breaths for procedural animation (new BreathingEffect additive transform component), as well as firing unity events on breath for things like particle systems
  • StaminaSystem tracks the player character’s stamina and can modify movement speed and breathing rate based on fatigue
    • DrainStamina and ModifyStamina motion graph behaviours let you affect stamina based on movement
    • FirearmAimFatigue behaviour can be added to a modular firearm to drain stamina while aiming down sights
    • Exhaustion lets you block sprinting and others until stamina has recovered to a set threshold
    • New stamina bar HUD item
  • CameraShake additive effect for use with continuous shakes such as earthquakes, and one-off shakes such as explosions
    • Example shake zones can be placed in the scene and activated via events: BoxShakeZone, BoxShakeZone2D, CircleShakeZone, SphereShakeZone
    • Shake has been added to pooled explosions for grenades and exploding barrels
  • New step tracking system added to MotionController and motion graph
    • TrackSteps motion graph behaviour can be added to relevant states and sub-graphs to set stride length
    • Used to sync head and weapon bob, along with procedural sprint animations
    • Can switch on “Use Dumb Stepping” on MotionController instead of using motion graph behaviours for a simple implementation
  • New PositionBob and RotationBob spring effects replace deprecated (but still functional) HeadBob and WeaponBob
    • Better syncing allows gameplay settings to blend head bob out to weapon bob for people that get motion sickness
  • LockInventorySelection and UnlockInventorySelection motion graph behaviours let you set the character inventory to a specific item, hands (backup item) or nothing when entering and exiting motion states
  • AdditiveJiggle adds a Z-axis rotation spring effect
  • Added quickstart to hub for firearm overheat

Changes

  • Added new DemoFacility character and weapons to show off new features. These will be updated much more frequently than the other demo characters and weapons
  • Updated demo weapons with new bob effects and better spring recoil
  • Weapon deselect can now use a lower animation instead of just being instant (demo weapon animators have been updated to add this, but the weapon prefabs are set to instant as before)
  • WeaponMoveAimer and ScopedAimer switched to use new pose handlers for seamless blends to other stances / poses
  • CharacterTriggerZone and CharacterTriggerZone OnTrigger* methods renamed to OnCharacter* due to Unity errors using method names that match message names
  • Added preset accuracy kick settings to all recoil modules
  • OnWielderChanged event on IWieldable (affects firearms, melee and thrown)
  • Aimer modules have replaced onAimUp and onAimDown events with onAimStateChanged event that includes transitions
  • IAdditiveTransform interface now includes properties for bypassing position and rotation scaling
  • IThrownWeapon interface has new properties for throw durations and events for throwing
  • IMeleeWeapon interface has events for attacking and entering/exiting block state
  • ITrigger interface gained an onStateChanged event
  • Added Floor and Ceiling options to ModifyFloatParameter motion graph behaviour
  • Moved damage handling before applying force in bullet effects for better ragdoll force handling on death
  • Moved jetpack example to new “SmallFeatureExamples” folder in samples
  • Added “Lead In” option to AdditiveKicker to allow smoother entry
  • Switched demo assault rifles to use base ModularFirearm behaviour and ModularFirearmModeSwitcher instead of pointless ModularAssaultRifle behaviour

Bug Fixes

  • Fixed head bob speed on ladders
  • Fixed AdvancedParticleSystemMuzzleEffect breaking on guns that aren’t in inventory on start
  • Fixed issue with rearranging prefab hierarchies using NeoSerializedGameObjects breaking object’s save hierarchy
  • Prevented spawn points registered with spawn system persisting outside play mode
  • AdditiveTransformHandler was stacking transforms incorrectly, leading to the pivot point getting out of sync
  • Removed ModularFirearm error checks in play mode (were being triggered by mode switching)

Additions

  • New pooled object surface hit FX
  • Added new demo realistic particle system effects for weapon muzzle flashes
  • New demo bullet trails and projectiles
  • Overheat system for firearms including barrel glow, heat-haze and HUD heat bar
  • New standard shaders for firearm VFX and interactive object highlighting
  • Added transition settings for weapon move aimer, using different easing functions

Changes

  • Improved timing on entering aim mode from reload
  • Moved recoil to end of frame to prevent bullet trails from using recoil position
  • Split ParticleSystemMuzzleEffect to Simple and Advanced versions
  • Added distortion shockwave to explosions
  • Added more options to wall running state for entry speed and target speed

Bug Fixes

  • Prevented decals persisting across scene loads
  • Fixed standalone build error
  • Fixed interactive object detection and highlighting
  • Fixed broken inspector for SurfaceBulletPhysicsInfo scriptable object
  • Improved head bob speed on ladders

Additions

  • Added new ricochet ammo effects (ballistic and hitscan) which stack with normal bullet effects
  • Added new penetration ammo effects (ballistic and hitscan) which stack with normal bullet effects
  • Added new pooled hitscan bullet trails

Changes

  • Moved ammo effect modules into own folder
  • Hitscan shooters no longer use a bullet trail on the weapon, but a pooled trail object instead
  • Added speed parameter for bullet effects
  • Added speed based bullet damage falloff to advanced bullet ammo effect

Bug Fixes

  • Fixed script errors when upgrading from 1.1.01 or earlier due to deprecated scripts not being deleted automatically
  • Fixed issue with asset store pulling in 2018 package manager UI as a dependency when importing into 2019+
  • Interactive object markers now work properly with objects of negative scale
  • Post-process Layer Fix behaviour now does nothing if a PPL component already exists on the camera

Additions

  • NeoFPS Hub replaces the welcome popup and settings wizard with a page based editor UI
    • Quick start readmes
    • Update notes tracks the installed version and shows required changes when updating the asset
    • Demo scenes list and readmes for each demo scene
    • Improved game settings (player controlled options)
    • Improved game managers (NeoFPS and unity systems options)
    • Custom script creation wizard
    • Integrations page linking to asset store and GitHub integration repos
    • Standalone tools page describing non-hub tools and providing shortcuts to open them
  • Pattern shooters (hitscan and ballistic) shoot in a specific pattern
  • Spread ballistic shooter allows random spread (shotgun style) with ballistic projectiles
  • Advanced bullet ammo effect adds randomised damage and damage falloff over range to modular firearm bullets
  • Ballistic projectile with simple drag adds a basic drag system to the standard projectiles for more interesting trajectories
  • Anim only aimer adds a simple aimer module to firearms that triggers an aim animation (useful for AI)
  • Accuracy only recoil handler adds a recoil handler that modifies a firearms accuracy each shot, but nothing else
  • New passthrough reloader shoots directly from a firearm’s ammo module instead of a magazine
  • NeoFpsInputManager asset now moves default key bindings and generated constants to one place for easier editing
  • NeoFpsAudioManager moves mixer properties and audio source pooling out of settings for easier editing

Changes

  • MAJOR CHANGE updated samples to Unity 2018.4 and new prefab system
    • New variant prefabs for characters and weapons to reduce maintenance errors
    • Nested prefabs for scenes for easier changes (eg updating lights for HDRP conversion)
    • Old prefabs moved to new Samples/Legacy folder
    • Renamed prefabs and assets for more consistent naming conventions
  • Added toggle lean option to character input
  • Added climb height output to motion graph climbable condition fr synching animation
  • Added health changed and alive changed events to health manager
  • Can now allow reloading while ADS
  • Infinite ammo module has been split out so that the reloader component is now the passthrough reloader
  • New options for what happens when a weapon is deselected
  • Split variable gravity out of INeoCharacterController interface for optimised mobile version
  • New absolute input options in motion graph input vector condition
  • New GetItems() methods on inventories (including non-allocating versions)
  • Added optional steering system to aim controllers (detaches character heading and aim direction)
  • In-game menu now has an option to pause the game when active
  • Added IWieldable interface to items and exposed as a property in the inventory behaviours for better event handling
  • Bullet trail cleaner now has an optional delay before starting trail
  • Added distance parameter to firearm ammo effects
  • Added readme objects to all demo scenes with breakdown of contents and links to in-scene items, documentation, etc
  • Ballistic shooters now use an IProjectile interface instead of referencing the ballistic projectile directly
  • NeoSceneManager is now a scriptable object and exposes unity events to handle scene load success/failure
  • New default loading screen options in scene switcher (default is specified in NeoSceneManager)
  • All managers are now scriptable objects, reducing scene setup complexity
  • Gamepad input now auto-detects the attached gamepad and uses gamepad-agnostic profiles
  • Asset now automatically adds a NEOFPS scripting define to the player settings
  • Game settings now only contain options the player should access (eg no audio mixer variable names)
  • Mouse cursor capture is now on demand instead of default. Prevents issues using NeoFPS alongside other assets

Bug Fixes

  • Swappable inventory was incorrectly setting category sizes to 0 when first placed, causing errors
  • Post process layer fix was setting the wrong layer for post processing profiles
  • Pooled objects with an NSGO attached that aren’t registered with the save system no longer cause an error
  • Inventory items quick slots are now clamped to the available range
  • Motion graph bob interval was being detected, but not correctly used
  • Removed infinite loop in descending order inventory starting slot selection

Additions

  • New ModularFirearmModeSwitcher and API to simplify using the firearm mode switch to swap firearm modules and more
  • Added an AnimationEventAudioPlayer component which can be attached to animated objects for flexible system to play audio clips using animation events

Changes

  • Added absolute rotation option to NeoCharacterController.Teleport
  • Improved blend in and out for head and weapon bob
  • Improved repeat timing for burst fire trigger
  • Added Color32 to save games serializers
  • Graphics settings now retrieves first run settings at runtime and hides options in editor
  • Added discord link to welcome popup
  • Changed gamepad settings to default to off
  • Added NSGO parameters to serialization formatters for saving object references
  • Changed damage and health methods to virtual
  • Added “onItemDropped” event to inventories

Bug Fixes

  • Fixed missing sounds on turrets
  • Removed PostProcessLayer components that were spamming errors and added a component that rebuilds them at runtime
  • Fixed sync issues with incremental reloader
  • Prevented infinite loop in inventory reverse starting selection order
  • Delayed start on projectile trails to prevent spike to origin in 2018.4+
  • HUD scopes now hide other HUD elements when raised
  • Fixed NeoSerializedGameObject prefabs failing to create serialization key for some child objects
  • Removed debug logging from pitch condition and swimming motion graph
  • Fixed null texture data bug in savegame metadata load when not using screenshots
  • Extra bomb proofing for MG condition groups to prevent circular references
  • Fixed multiple audio listener issues with async loading screen

Additions

  • New save game system
    • Quick save/load using F5/F9 (by default) on standalone
    • Quick, auto (checkpoint) and manual saves
    • Save browser in main menu
    • Continue button in main menu resumes from latest save
    • Optional screenshots or thumbnails for quick and auto saves
    • Persistence (save character health and inventory on scene change)
    • NeoSerializable interface for components and scriptable objects
    • Formatters for adding save/load to complex third party components
    • File read/write on separate thread to prevent freezes on save
    • Loading screen system for async scene loading
    • In-game saving notification
    • Custom binary serializer/deserializer
    • Custom serializer for restricted platforms (eg WebGL)
    • Save file inspector
  • Parkour motion graph elements and demo
    • New motion graph states for wall running, dashing, mantling, skiing (crouch slide), pushing off walls, jump pads
    • New conditions for climbing, air time, collision flags, time comparisons, lookahead casts (velocity, direction, etc), enhanced casts that output results to parameters, direction and velocity tests, aim tests
    • New behaviours for recording time, applying body tilt effects, clamping parameters
    • New jump pad scene elements
  • Swimming motion features
    • Surface and underwater swimming states, with or without strokes
    • Wading state that modifies speed by water depth
    • Climbing out of water onto ledges
    • New water zone scene elements with flow and surface info
    • Drowning system that tracks time underwater
  • Jetpack motion state behaviours
  • HUD meters and readouts for motion graph parameters
  • Motion debugger tool
    • Charts character movement stats in detail
    • View character controller and motion graph data
    • Track motion graph parameter values
    • Scrub the graph to inspect specific frames and view movement in the scene
  • Body tilt
    • Lean left / right, with proximity and speed checks
    • Motion graph behaviours to tilt based on wall contacts or movement
  • Weapon momentum sway spring effect that moves held items as the camera rotates
  • New scene management system for async loads with loading screen (ties into save system)
  • Added PS4 controller support

Changes

  • Motion graph now supports vector parameters
  • Motion graph connections can now use condition groups that allow combos of any/all
  • Complete rework of NeoCharacterController slope handling
    • Slope speed curves now applied to movement states, not controller
  • Moved game settings to scriptable object resources for easier editing
  • Scene switcher can now switch based on index or name, and allows persisting character data
  • Added “On Death” options to example game mode for loading from saves or returning to menu
  • Added object to surface hits to allow more complex effects
  • Changed weapon aim amplifier to work with variable up vector, and use more intuitive settings
  • Tied head and weapon bob to motion graph for more control over bob amount and rate
  • Added “rounds per second” and “rounds per minute” readouts to trigger inspectors
  • Added settings to block trigger when transitioning aim mode to prevent interrupting animations
  • Simplified ammo effect assignment in ammo firearm modules
  • Explosion and impact forces can now push the character
  • Improved inspector for level select menu
  • Added optional parameter to disable ground snapping when adding a force to the NeoCharacterController
  • Removed old explosion system deprecated in 1.0.05
  • Added audio handling to health pickup
  • Added repeat functionality to charged trigger
  • Added match camera position system to firearm editor to simplify setup process
  • Added all in one character for drop-in testing (doesn’t require spawner and reloads scene on death)
  • Enabled AI turrets in demo facility by default
  • Enabled post-processing by default (asset store tools can now save dependencies)
  • Can now specify camera FoV as horizontal (based on 16:9 aspect) or vertical, but applied in vertical

Bug Fixes

  • Fixed NeoCharacterController throwing errors on non-readable mesh colliders
  • Audio settings now correctly modifying mixer
  • Fixed OnEnter/OnExit for disabled motion graph behaviours
  • Swapped menu dropdown icon on motion graph behaviours to be more visible on light UI
  • Fixed surface manager returning incorrect surface from default layers
  • Pressing escape no longer locks input, but blocks it correctly
  • Removed 1 frame lag on moving platforms
  • Contact ladded base handling fixed (doesn’t force detach)
  • Fixed death camera height
  • Fixed over-amplified weapon sway when looking up / down

Additions

  • New NeoCharacterController demo scene with arbitrary up-vector demo

Bug Fixes

  • Script errors in FpsGamepadSettings.cs due to refactoring not picked up with platform dependent compilation
  • FoV issues on ultra-widescreen monitors and when resizing window
  • Fixed HUD elements not unsubscribing from events properly on destroy

Changes

  • Tweaked pistol recoil
  • Added optional parameter to disable ground snapping when adding a force to the NeoCharacterController

Additions

  • New explosion system that uses pooled particle effect objects and a simple PooledExplosion behaviour.
  • Added example explosion prefabs.
  • New multi-object and particle muzzle flash firearm modules.
  • Split ballistic shooter into new simple ballistic shooter that ignores accuracy and camera aim.
  • Added explosive barrels (red in demo scenes).

Bug Fixes

  • Fixed issues with generated constants editor not refreshing valid state when name clashes are fixed.
  • Set proper layers for AI seeker targets on inventory demo characters.
  • Set correct audio sources for inventory demo characters.
  • Firearm drops now correctly set ammo even without a FirearmAmmoDrop attached.

Changes

  • Fixed “Apply Manually” errors in settings wizard (2018.3+).
  • The ballistic shooter now correctly handles accuracy based on the spread property.
  • All shooters now have options to use the camera aim or gun forward for both hip fire and aimed fire.
  • New accuracy caps in aimer modules allow maximum accuracy (0-1) to be set for aimed and hip fire.
  • Added layers property to CharacterInteractionHandler to choose layers it interacts with.
  • Added multiple inventory types to firearm editor quick-setup.
  • Added aim transform property to camera so effects can be layered on top.
  • Switched swappable inventories to use new FpsSwappableCategory for neater editor and easier expansion.
  • Renamed inventory keys to better describe items.
  • Reorganised inventory editors to make more readable.
  • The spring recoil module can now bypass spring multipliers for more intuitive settings.
  • Added RaycastHit versions of AddDamage on damage handlers for more complex use cases.
  • Renamed spring multipliers on aimers.
  • Added events to AI Seekers for state changes.
  • Thrown grenades now use new explosion system.
  • Demo grenade launcher now uses new explosion system.
  • Spring recoil handler can now bypass the spring multipliers.
  • Added base accuracy level for hip firing and aimed.
  • Tweaked demo firearms (recoil, shooters and aimers) for better handling.

Additions

  • Added new IRecoilHandler modules to modular firearms
  • Added health pickups
  • Added new BaseCharacter and BaseController behaviours and switched singleplayer versions to use these
  • Added new player character and inventory watchers and switched hud elements to use these
  • Added C# events to motion graph parameters

Bug Fixes

  • Hitscan and spread shooter were dealing damage twice when set to use camera forward vector
  • Set HUD inventories to auto-populate slot property in OnValidate and added start errors if not found
  • Enabled collisions between default layer and rough envirnoment geo
  • Fixed WebGL build issue with input bindings
  • Fixed motion graph connectable build error outside editor
  • Hitscan and spread shooters now use correct camera transform for aim (not spring parent)
  • Fixed divide by zero in AdditiveKicker if starting play mode from paused
  • Fixed start-order bug with character disabling on spawn
  • Prevented reload continuing after weapon switch
  • Fixed aimers being blocked if aiming during reload, but switching weapons before done
  • Fixed hold to aim not working
  • Fixed key rebinding not detecting some clashes
  • Fixed startup scripts not triggering properly in 2017.4
  • Added delay between startup checks to prevent overlap on 2019.2+

Changes

  • Moved firearm handling out of modular firearm and into new IRecoilHandler modules
  • Moved firearm scripts into NeoFPS.ModularFirearm namespace
  • Added firearm module error reporting in ModularFirearm inspector
  • Added collision mask option to firearm shooters with that defaults to bullet blockers
  • Switched firearm aimer modules to use vectors instead of proxy transforms (can set from a transform)
  • Switched HUD elements to use new base classes and be more “multiplayer friendly”
  • Removed static onLocalPlayerInventoryChanged event from inventory base and used character change instead
  • Switched canvas HUD in demo scenes to use root prefab instead of individual element prefabs
  • Reorganised weapon drop heirarchies to be more intuitive
  • Replaced crosshair and switched default colour
  • New motion graph editor UI elements

Additions

  • Added new infinite ammo firearm module
  • Added particle system firearm ammo effect
  • Modular firearm behaviour inspector now has troubleshooting and “add modules” features
  • New ChamberedReloader firearm module that uses different reload (anim & duration) when empty
  • New integrations available (https://neofps.com/integrations)
    • Emerald AI
    • Inventory Pro (in progress)
  • New TransformMatcher additive transform for matching animated camera moves

Bug Fixes

  • Enabled inventory HUD in DemoFacility scene
  • Fixed missing explosion sound effects
  • Fixed shadow casting on first person weapons and arms
  • Set default values for all variables to prevent import warnings in 2018.3+
  • Fixed turret damage, sight checks and rate of fire
  • Fixed hard-coded root asset path for auto build settings and startup checks
  • Added bullet trail cleaner that resets trail renderer on pooled projectiles
  • Fixed key bindings index out of range when changing button count after saving settings
  • Fixed occasional start order blocking character input activation bug
  • Fixed hard coded animator key for burst trigger hold
  • Fixed automatic trigger getting stuck in fire mode on quick switch
  • Fixed enabling character object or weapon while menu up bypassing the menu input block

Changes

  • Major rework of motion graph editor to make more reactive and respond to undo/redo better
    • Graph elements are now edited through the standard Unity inspector
    • Added copy/paste to graph viewport
    • Added “Move to Sub-Graph” to graph viewport
  • Replaced MotionData asset with data entries on motion graph and new MotionGraphDataOverride asset
  • Simplified API for creating new graph elements (states, conditions and behaviours)
  • Lowered minimum supported version to 2017.4 (long term support)
  • Split health manager out from solo character to allow swapping (Inventory Pro integration)
  • Added support for multiple box colliders (eg door and handle) to interactive object corner highlights
  • Tweaked layer, tag, and physics settings for Emerald AI integration
  • Tweaked FpsInputButton generated constant for Inventory Pro integration and future work
  • Added inactive “security” layer to demo facility with turrets and cameras
  • Added animator key parameter drawer to check keys exist in animator while inspecting behaviours

Additions

  • Added PlatformDependentObject to allow disabling objects based on platform (used for WebGL and console menus)
  • Disabled exit and graphics options on WebGL
  • Disabled exit, graphics and key bindings for console

Bug Fixes

  • Fixed build errors due to OnValidate on ladder motion graph states
  • Fixed obsolete GetPrefabObject warning on 2018.3
  • Fixed wrong type of hand grenades in inventory demo ammo crates
  • Fixed dropping excess swappable grenades from crates on floor

Tweaks

  • Tweaked light settings for facility and rebuilt lightmaps
  • Switched menu and back key to Tab for WebGL since Escape is reserved

Additions

  • Added minimal character setup with only movement and aim features

Bug Fixes

  • Fixed script compile errors for non-standalone builds
  • Fixed shotgun reload interrupt blocking input
  • Prevented welcome popup appearing on run when “Show on start” set
  • Improved startup order on first import
  • Fixed console errors when deleting a graph connection while inspecting
  • Prevented clicking off “Add Entry” dropdown in MotionControllerData inspector causing an error
  • Temporarily removed copy/paste and move to subgraph features of motion graph editor pending re-engineering
  • Improved ladder aim handling and removed incorrect up-down movement for “AimerHeading” setting on contact ladders
  • Can now change interactive ladder aim constraints while in play mode
  • Motion graph editor now correctly handles exiting play mode while editing runtime graph instance

Tweaks

  • Tweaked timings and recoil on weapons
  • Fixed execution order issue with NeoCharacterController height

The initial release on NeoFPS on the asset store