NeoFPS Installation
Overview
On first adding NeoFPS to a project, once the assets have been imported, the NeoFPS hub should appear, guiding you through the installation and providing useful ingormation on getting started. This document covers any extra steps and gives details of what is happening in case you want more manual control of the installation process.
Unity Settings
NeoFPS requires various project settings to be applied in order to function correctly. This includes custom layers, custom input axes, and an optimised layer collision matrix. NeoFPS has an automated system for applying Unity settings built into the NeoFPS Hub. It uses version numbers to track when updates to NeoFPS require new settings to be applied and will open the hub on the Unity Settings page if they are not up to date. You can also find the hub in the toolbar via Tools/NeoFPS/NeoFPS Hub.

You can apply all required settings automatically here. If you are installing NeoFPS in a fresh project then this is the recommended approach. If you would prefer to apply the correct settings manually then you can do so using the Individual Settings section. Clicking the Apply Manually button for a section will open the relevant Unity settings editor and flag the settings as up to date in the NeoFPS hub. The following is a breakdown of what is required for each section:
| Settings | Details |
|---|---|
| Layers and Tags | NeoFPS makes extensive use of custom layers. For more information, see the Layers and Tags documentation. |
| Physics | NeoFPS uses the physics layer collision matrix to define interactions between the custom layers. For more information see the Layer Collision Matrix section of the Layers and Tags documentation. This must be changed after the layers and tags have been set up. |
| Input | To enable consistent controller mapping across platforms, NeoFPS has some fairly complex input settings. You can find a full list in the Input Settings documentation. |
| Player Settings | NeoFPS uses the Linear color space (this will be set to "Gamma" by default). Without this change, the sample scenes will look very washed out and bright. |
| Build Settings | See the Sample Scenes section below. |
Sample Scenes
Sample scenes that demonstrate NeoFPS' features can be found in the project folder: NeoFPS/Samples/SinglePlayer/Scenes
The MainMenu scene is intended as a jumping off point for the individual demos and needs to be set as the first scene in the build settings (index 0). This means it will be the start-up scene for standalone builds. The Loading scene is a loading screen that is displayed when loading demo scenes. By default, this must be the second scene in the build settings (index 1), though this can be changed via the Neo Scene Manager in the hub.
The Unity Settings page applies the above settings automatically as part of the Build Settings section.
Render Pipeline Selection
❗❗❗ As of NeoFPS 1.1.36, the NeoFPS demos are set up for URP and the input system in Unity 6 and above. In Unity versions below Unity 6, the demos are set up to use the built-in render pipeline and the legacy input manager. It also comes with extension packages with shaders and replacement assets that support the alternative render pipelines. For more information, see Graphics and Rendering.
Runtime Managers
By default, NeoFPS will instantiate runtime versions of its managers in the DontDestroyOnLoad scene as soon as you enter play mode or run your game. If you want to prevent this from happening (for example, if you have imported NeoFPS into a test project with a number of other assets and you want to try each one in isolation), then you can add the NEOFPS_LOAD_ON_DEMAND scripting define to your Unity player settings. This will delay instantation until the first time the manager is accessed. In some cases this can cause a slight frame hitch as the manager initialises, so it is advised not to use this in a final project.