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