Releases

Latest - v1.1.02 (29th Jun 2020)

IMPORTANT - The NeoFpsWelcome and SettingsWizard scripts found at "Assets/NeoFps/Core/Editor" have been depricated, but upgrading will not delete them automatically. You will need to do this manually to fix the console errors

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

Upgrade Notes

From 1.0.06

  • Save System
    • In order to work with the save/load system, all objects to save require a NeoSerializedGameObject component
    • Any custom scripts that instantiate objects at runtime should be changed to instantiate via the save system if objects require saving
    • Refer to the sample prefabs and documentation
    • New input buttons have been added for quicksave and quickload
  • Leaning
    • The NeoFPS character now has an extra gameobject in the upper body hierarchy with an AdditiveTransformHandler, similar to the head spring on PlayerCameraRoot
    • FpsSoloCharacter needs to reference the new transform handler for its Body Transform Handler property
    • The demo characters use the BodyTilt and BodyLean behaviours
    • Refer to the sample prefabs and documentation
  • Game Settings
    • The game settings have been switched from singleton gameobjects to scriptable object assets
    • Game settings are now found in the NeoFPS/Resources folder
    • If you have manually placed the settings components in your scenes (not done by default) then you will need to delete them
  • Changes to WeaponAimAmplifier
    • The WeaponAimAmplifier behaviour which applies spring rotation to the gun when the camera is rotated has been modified to fix an up/down rotation limits issue and make the settings more intuitive
    • You will need to tweak the settings on your guns if the new defaults feel wrong
    • A new WeaponMomentumSway alternative behaviour has been added which applies spring position offset instead of rotation. This can work better with aiming down sights
  • Motion Graph Additions
    • All changes to the old motion graph elements should have been done in a way that the default settings match the original behaviour, therefore no work should be required to adapt old motion graphs
  • Neo SceneManager
    • All scene changes in the samples now go via the new Neo SceneManager
    • Menus and the SceneSwitcher behaviour (now named NeoFpsSceneSwitcher) have been updated to use this
    • This is not a requirement, but can take advantage of saving and loading
    • The build settings order MUST be scene 0 = main menu, scene 1 = loading screen. If this is not the case, then the save settings and scene switcher can be modified to reference the new build index / scene name of the loading screen

Previous Releases

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

STAY INFORMED

Subscribe to receive exclusive content and notifications

You can unsubscribe at any time by clicking the link in the footer of our emails.

We use Mailchimp as our marketing platform. By clicking above to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices here.