Releases

Latest - v1.1.03 (8th July 2020)

Additions

  • Added new ricochet ammo effects (ballistic and hitscan) which stack with normal bullet effects
  • New penetration ammo effects (ballistic and hitscan) which stack with normal bullet effects
  • 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

Upgrade Notes

Previous Releases

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