MFPC – Modular First Person Controller
MFPC is a clean, extensible first person character controller designed for developers who want full control over their project architecture.
It provides a solid, production-ready foundation for FPS, immersive sims, walking simulators, and narrative experiences — without forcing opinions about animation, UI, or gameplay systems.
MFPC is controller-first, not demo-first.
Take a look at the WebGL demo, documentation, roadmap and join the discord server!
Movement & Player State
- Walk, Sprint, and Crouch
- Hold or Toggle modes (configurable)
- Forward-only sprint restriction
- Lean left / right with smooth interpolation
- Jump with gravity tuning
- Collision-safe auto-uncrouch
- Optional auto-unsprint when stopping movement (for toggle mode)
- Optional advanced slope handling
- Physics interactions with environment.
Movement is predictable, tweakable, and free from hidden behavior.
Input Systems
- Legacy Input System controller
- New Input System controller
- Mouse + keyboard support
- Gamepad support (tested with multiple controllers)
- Sensitivity parity between input systems
- Frame-rate independent mouse smoothing (New Input System)
Choose the input workflow that fits your project — or swap later without rewriting logic.
Camera System (Cinemachine-based)
MFPC is built around Cinemachine, not custom camera math.
- Virtual Camera setup for: idle, walk, sprint, crouch, aim
- FOV kick on sprint (via Virtual Camera swap)
- Headbob via Cinemachine Noise (no custom scripts)
- Separate aim camera variants
- Clean integration with camera stacks
You control the camera behavior visually — no black-box logic.
Audio System
- Surface-based footsteps and landing sounds
- Terrain and object support
- Water surface handling
- Audio pooling (no runtime instantiation spikes)
- Easy to extend with ScriptableObjects
Creating new surface sounds:
- Create a new SurfaceSFX asset
- Assign terrain layers or
- Add an ObjectLayer component to scene objects
No hardcoded layers. No forced setup.
Architecture & Design Philosophy
MFPC is intentionally not an all-in-one solution.
- No forced Animator Controller
- No stamina system assumptions
- No UI or HUD dependencies
- No required layers or tags
- No multiplayer logic baked in
- Zero GC allocations in Update
Instead, MFPC gives you:
- Clean state logic (by exposing variables)
- Clear extension points
- Optional systems via future modules