Juicy FPS Player Controller
This is my attempt at making a Godot 3D player controller asset that provides a clean foundation for movement, camera control, camera effects, and interaction systems.
The asset is structured so most configuration can be handled directly through exported properties, making it easier to tweak behavior without digging through the code.
Features
- Player movement setup
- Camera controller system
- Camera effects system
- Basic interaction support through the Interactable node
- Exported settings for quick customization
- Layer-based setup for world, player, and interactable objects
Node Setup
All exported settings are available on the following nodes:
Player
Contains the main player-related exported settings.
CameraController
Contains the camera controller exported settings.
CameraEffects
Contains the camera effects exported settings.
The asset also includes an Interactable class/node.
Interactable System
The Interactable node is basically an Area3D with an interacted signal.
To use it, connect the interacted signal to wherever you want to handle the interaction logic. This gives you full control over what happens when the player interacts with something.
I also included a simple example of hooking the interaction_text value to a label.
Collision Layers
The project uses the following collision layer setup:
| Object Type | Layer |
|---|---|
| World | layer_1 |
| Player | layer_2 |
| Interactables | layer_3 |
Make sure your scene follows this setup so the controller and interaction system behave correctly.
Note: The Interactable node will automatically assign itself to the correct layer.
Future Plans
Planned features include:
- Swimming
- Swinging
- Mantling
- Auto-rolling
Notes
Feel free to recommend improvements or features.
I work on my assets and projects in my free time, so updates may not always be perfectly consistent. That said, I’ll keep pushing whatever improvements and fixes I can.
Changelog for version v0.1
No changelog provided for this version.