MFPC – Modular First Person Controller

Coming soon to Unity Asset Store

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.

Discord server link: FaberBrizio Assets

Unity Asset Store link: MFPC -Modular First Person Controller (if not working, coming soon)

Documentation: MFPC - Documentation

Roadmap: Notion roadmap link

Demo Inputs (customizable in Unity editor):

  1. PC: 
    1. movement: wasd or arrows
    2. camera rotation: mouse
    3. aim: mouse right (hold)
    4. sprint: shift (for this demo it's toggle mode - hold mode can be selected in Unity editor)
    5. crouch: ctrl (for this demo it's toggle mode - hold mode can be selected in Unity editor)
    6. jump: space
  2. Gamepad:
    1. movement: left stick
    2. camera rotation: right stick
    3. aim: LT
    4. sprint: left stick press
    5. crouch: B (Xbox controller), A (Nintendo controller)
    6. jump: A (Xbox controller), B (Nintendo controller)

"Escape" to show rotation sensitivity slider: the sensitivity is already quite fine for PC input, but it's recommended to increase it to maximum value of the slider for gamepad. This slider functionality is not included in the released version of the package in order to not enforce unnecessary structure.


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