Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

Advanced State Machine First Person Controller

An asset by Jeheno
The page banner background of a mountain and forest
Advanced State Machine First Person Controller thumbnail image
Advanced State Machine First Person Controller thumbnail image
Advanced State Machine First Person Controller thumbnail image
Advanced State Machine First Person Controller thumbnail image
Advanced State Machine First Person Controller hero image

Quick Information

0 ratings
Advanced State Machine First Person Controller icon image
Jeheno
Advanced State Machine First Person Controller

All the informations are on the Github repository page !An advanced and complete 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, featuring interactive structures such as slopes, spheres, jump pads (vertical and directional), gravity zones, conveyor zones, and slippery zones.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.Compatibility- Godot 4.4 and 4.5: 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) - Dashing (configurable multi-dash with cooldown) - Sliding (on flat surfaces and slopes) - Flying - Wall running - Wall jumpingCamera : - Per-state FOV transitions - Forward and side tilt - Head bob - Zoom - Configurable mouse sensitivityUI : - Crosshair/reticle - Debug properties HUD - Input action checker

Supported Engine Version
4.5
Version String
3.4
License Version
MIT
Support Level
community
Modified Date
4 days ago
Git URL
Issue URL

An advanced and complete state machine first person controller asset, made in Godot 4.

README Asset logo

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, with interactive structures allowing to test the various functionalities : slopes, spheres, jumppad (both vertical and directional), gravity area, conveyor area, slippery area

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, and respect the GDScript convention.

He works perfectly on Godot 4.5 and Godot 4.4, and should also works well on the others 4.x versions (4.3, 4.2, 4.1, 4.0), but you will have to remove the uid files.

The video showcasing all the changes brought about with the last update (a lot, lot of things) : https://www.youtube.com/watch?v=4PkR2Z1oxG8

Features

  • Finite state machine based controller

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

  • Dashing (multiple dash system)

  • Sliding (on flat surfaces and on slopes)

  • Flying

  • Wallrunning

  • Walljumping

  • Camera FOV management

  • Camera tilt (forward and side tilt)

  • Camera bob

  • Camera zoom

  • Reticle

  • Properties HUD

Purpose

My main goal with this project is to provide a complete and easy to manage/modify controller for first person games.

I hope that it will be the case.

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 "move_forward", and then type "move_forward" into the variable "move_forward_action").

Requets

  • For any bug request, please write on down in the "issues" section.

  • For any new feature request, please write it down in the "discussions" section.

  • For any bug resolution/improvement commit, please write it down in the "pull requests" section.

Credits

Godot Theme Prototype Textures, by PiCode : https://godotengine.org/asset-library/asset/2480

psychowolf960 (Github account name), for resolving some typo issues, as well as adding the following interactive structures/movement modifiers : -vertical jump pad -conveyor area -slippery area -gravity area

All the informations are on the Github repository page !

An advanced and complete 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, featuring interactive structures such as slopes, spheres, jump pads (vertical and directional), gravity zones, conveyor zones, and slippery zones.

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

- Godot 4.4 and 4.5: 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)
- Dashing (configurable multi-dash with cooldown)
- Sliding (on flat surfaces and slopes)
- Flying
- Wall running
- Wall jumping

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

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Advanced State Machine First Person Controller icon image
Jeheno
Advanced State Machine First Person Controller

All the informations are on the Github repository page !An advanced and complete 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, featuring interactive structures such as slopes, spheres, jump pads (vertical and directional), gravity zones, conveyor zones, and slippery zones.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.Compatibility- Godot 4.4 and 4.5: 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) - Dashing (configurable multi-dash with cooldown) - Sliding (on flat surfaces and slopes) - Flying - Wall running - Wall jumpingCamera : - Per-state FOV transitions - Forward and side tilt - Head bob - Zoom - Configurable mouse sensitivityUI : - Crosshair/reticle - Debug properties HUD - Input action checker

Supported Engine Version
4.5
Version String
3.4
License Version
MIT
Support Level
community
Modified Date
4 days ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers