Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
Quick Information
*All informations are in the Github repository page !A simple state machine first person controller asset made in Godot 4.-------------------------------------------------------------------------------------------This asset provides a fully commented, finite state machine based first-person controller with a modular camera system and a debug properties HUD. It is 100% written in GDScript and follows GDScript conventions. My main goal with this project is to provide an easy + complete way to manage and modify a controller for first person games.A test map is included to demonstrate the controller's capabilities.The controller uses a finite state machine architecture where each state has its own script, making it straightforward to add, remove, or modify behaviors. All movement parameters, camera settings, and keybindings are exposed as export variables in the inspector for easy customization.- Godot 4.4, 4.5, 4.6: Fully supported.- Godot 4.0 - 4.3: Should work, but you will need to delete the .uid files.-------------------------------------------------------------------------------------------Features :Movement : - Finite state machine based controller - Smooth acceleration and deceleration - Slope and hill traversal - Walking - Crouching (continuous hold or toggle) - Running (continuous hold or toggle) - Jumping (configurable multi-jump) - Jump buffering - Coyote time - Air control (customizable via curves) - Bunny hopping (with optional auto bunny hop)Camera : - Per-state FOV transitions - Forward and side tilt - Head bob - Zoom - Configurable mouse sensitivityUI : - Crosshair/reticle - Debug properties HUD - Input action checker
A simple state machine first person controller asset made in Godot 4
General
This asset provides a simple, fully commented, finite state machine based controller, camera, as well as a properties HUD
A test map is provided to test the controller.
The controller use a finite state machine, designed to be easely editable, allowing to easily add, remove and modify behaviours and actions.
Each state has his own script, allowing to easly filter and manage the communication between each state.
He is also very customizable, with a whole set of open variables for every state and for more general stuff. This is the same for the camera.
The asset is 100% written in GDScript.
He works on Godot 4.4, 4.3, and 4.2. I didn't test it in Godot 4.1 and Godot 4.0, but it should work just fine.
The video showcasing the asset features :
Features
Smooth moving
Ability to move on slopes and hills
Walking
Crouching (continious and once pressed input)
Running (continious and once pressed input)
Jumping (multiple jump system)
Jump buffering
Coyote jump/time
Air control (easely customizable thanks to curves)
Bunny hopping (+ auto bunny hop)
Camera tilt
Camera bob
Custom FOV
Reticle
Properties HUD
Purpose
At start, i just wanted to rework my FPS controller template, make an alternate version of it, closer to the finite state machine approach.
But while i was working on it, i said to myself "why not share it with the community, when it's ready ?".
And so here we go !
How to use
It's an asset, which means you can add it to an existing project without any issue.
Simply download it, add it to your project, get the files you want to use.
You will see for the player character script (and in the camera script) a keybinding variables group,
you need to create a input action in your project for each action, and then type the exact same name into the corresponding input action variable
(for example : name your move forward action "moveForward", and then type "moveForward" into the variable "moveForwardAction").
Requets
For any bug request, please write on down in the "issues" section.
For any new feature/improvement request, please write it down in the "discussions" section.
Credits
Godot Theme prototype Textures, by PiCode : https://godotengine.org/asset-library/asset/2480
*All informations are in the Github repository page !
A simple state machine first person controller asset made in Godot 4.
-------------------------------------------------------------------------------------------
This asset provides a fully commented, finite state machine based first-person controller with a modular camera system and a debug properties HUD. It is 100% written in GDScript and follows GDScript conventions. My main goal with this project is to provide an easy + complete way to manage and modify a controller for first person games.
A test map is included to demonstrate the controller's capabilities.
The controller uses a finite state machine architecture where each state has its own script, making it straightforward to add, remove, or modify behaviors. All movement parameters, camera settings, and keybindings are exposed as export variables in the inspector for easy customization.
- Godot 4.4, 4.5, 4.6: Fully supported.
- Godot 4.0 - 4.3: Should work, but you will need to delete the .uid files.
-------------------------------------------------------------------------------------------
Features :
Movement :
- Finite state machine based controller
- Smooth acceleration and deceleration
- Slope and hill traversal
- Walking
- Crouching (continuous hold or toggle)
- Running (continuous hold or toggle)
- Jumping (configurable multi-jump)
- Jump buffering
- Coyote time
- Air control (customizable via curves)
- Bunny hopping (with optional auto bunny hop)
Camera :
- Per-state FOV transitions
- Forward and side tilt
- Head bob
- Zoom
- Configurable mouse sensitivity
UI :
- Crosshair/reticle
- Debug properties HUD
- Input action checker
Reviews
Quick Information
*All informations are in the Github repository page !A simple state machine first person controller asset made in Godot 4.-------------------------------------------------------------------------------------------This asset provides a fully commented, finite state machine based first-person controller with a modular camera system and a debug properties HUD. It is 100% written in GDScript and follows GDScript conventions. My main goal with this project is to provide an easy + complete way to manage and modify a controller for first person games.A test map is included to demonstrate the controller's capabilities.The controller uses a finite state machine architecture where each state has its own script, making it straightforward to add, remove, or modify behaviors. All movement parameters, camera settings, and keybindings are exposed as export variables in the inspector for easy customization.- Godot 4.4, 4.5, 4.6: Fully supported.- Godot 4.0 - 4.3: Should work, but you will need to delete the .uid files.-------------------------------------------------------------------------------------------Features :Movement : - Finite state machine based controller - Smooth acceleration and deceleration - Slope and hill traversal - Walking - Crouching (continuous hold or toggle) - Running (continuous hold or toggle) - Jumping (configurable multi-jump) - Jump buffering - Coyote time - Air control (customizable via curves) - Bunny hopping (with optional auto bunny hop)Camera : - Per-state FOV transitions - Forward and side tilt - Head bob - Zoom - Configurable mouse sensitivityUI : - Crosshair/reticle - Debug properties HUD - Input action checker