5 min read
Removing a State or Mechanic Without Breaking the Framework

Intro: Freedom to Customize Without Fear Most controllers lock you into their design. If you want to remove a state like crouch, stamina, or cover — the whole system falls apart. This forces developers to either keep unwanted mechanics or rewrite core code. The Modular Third-Person Framework is different. It’s designed with interfaces, enums, factories, ScriptableObjects, and events/delegates, so you can add, remove, or replace mechanics without breaking the entire system. 


The Challenge: Hardcoded Systems Other controllers suffer from: 

  • Tightly coupled logic → stamina code inside movement scripts.
  • Animator dependency → removing an animation breaks transitions.
  • Global state spaghetti → removing crouch requires editing dozens of files.
  • High maintenance cost → small changes ripple across the project.

The Solution – Truly Modular States The framework’s state machine and subsystems are modular by design, meaning no mechanic is essential to the core loop. Key Features 

  • Enum-Driven States → All movement, animation, IK, and interaction systems use enums (not strings), so states can be added or removed cleanly.
  • Factory Pattern → States are instantiated by a central factory — just remove a case, and the state no longer exists.
  • Interface-Driven Contracts → IPlayerState, IHealthState, IStaminaState, IBreathState, IInteractable, and IInputCommand ensure no subsystem depends on specific implementations.
  • Event & Delegate Communication → Removing a system doesn’t break others, since they only subscribe to events, not hardcoded calls.
  • ScriptableObject Configs → Vitality, collider, and interaction configs can be safely detached by unassigning them from the CharacterConfig hub, so the system never references them.
  • Animator Integration → No hardcoded animation transitions. As long as the state is unbound, the Animator continues to run without issues.

Proof: Removing Systems in Action Without the framework: 

  • Removing stamina → breaks sprinting and rolling logic.
  • Removing crouch → leaves broken animator transitions.
  • Removing cover → causes null references in movement code.

 With the framework: 

  • Remove stamina → movement works fine; sprinting just won’t drain stamina.
  • Remove crouch → locomotion continues seamlessly, no null refs.
  • Remove cover → framework ignores cover logic; other interactions still work.

How to Remove a State Safely (No Core Edits Required) 

  • Unbind the input key → in the Input setup, don’t assign a key/button to that action. No binding = no transition.
  • Remove state from factory → comment/remove its case in the state factory; the state won’t be created.
  • Detach ScriptableObjects → if the mechanic uses configs (e.g., stamina, collider profile), unassign them from CharacterConfig.
  • Remove interactable scripts (if applicable) → for scene-driven states (Cover, Climb, Parkour, Water), don’t place the corresponding script (e.g., CoverObject).
  • Events remain safe → if a state never fires, no subscribed systems break.

Developer-Friendly by Design 

  • Plug-and-Play → States can be removed or swapped like modules.
  • No Core Edits → Core controller code remains untouched.
  • Safe Defaults → With no input and no SO reference, states are effectively disabled.
  • Scalable → Removing one mechanic doesn’t block adding new ones later.
  • Testable → Easily strip out mechanics for lightweight prototypes.

Use Cases 

  • Prototyping → Quickly strip unused mechanics for simple demos.
  • Unity developers → Only keep mechanics that fit your game (no feature bloat).
  • Studios → Test multiple gameplay variations (with or without stamina, cover, or parkour).
  • Learning → Start simple with locomotion, then scale up as skills grow.

Closing: Customize Without Fear With the Modular Third-Person Framework, you’re in control. You can remove any state or mechanic you don’t need, and the system will keep running — no spaghetti code, no hidden dependencies, no broken controllers. 

👉 Get the Modular Third-Person Framework on the Unity Asset Store: Modular Third-Person Framework | Game Toolkits | Unity Asset Store

Comments
* The email will not be published on the website.