๐Ÿš€ Godot MANA Plugin

๐Ÿ”ท High-Level System Overview

The Godot Modular Ability & Networked Attributes (MANA) Plugin brings the power and flexibility of Unreal Engine 5โ€™s Gameplay Ability System (GAS) to the Godot Engine, using native Godot workflows. Itโ€™s designed to handle complex character abilities, effects, attributes, and tag-based logic, while remaining intuitive and editor-friendly.

๐Ÿ”‘ The Core Idea

At its heart, the plugin provides a modular, tag-driven gameplay framework where you can define powerful abilities, effects, and character states โ€” all without writing gameplay code from scratch. Everything revolves around defining what something does (like a stun or heal), tagging it for logic, and then connecting the dots.


๐Ÿ”ง Main Systems (Top-Level)

1. ๐Ÿท๏ธ Tags

  • What they are: Keywords or labels like Ability.Fireball or State.Stunned.
  • How theyโ€™re used: Tags are the glue that holds everything together. Abilities, effects, attributes, and gameplay cues all use tags to identify what they are or what they apply.
  • How developers use it: Through the Tag Manager, you define a clean, organized set of gameplay tags for your project. These tags are used everywhere else in the plugin โ€” you select them from dropdowns instead of hardcoding them.

2. ๐Ÿ“Š Attributes

  • What they are: Numerical stats like Health, Stamina, or Strength.
  • What they support: Max values, regeneration over time, dependencies (e.g. Stamina increases Health).
  • How developers use it: Use the Attribute Editor to define your gameโ€™s attributes, set defaults, and decide how they interact. The system handles updates, regen, and clamping automatically.

3. ๐Ÿ’ซ Gameplay Abilities

  • What they are: Actions a character can perform, like casting a spell or dodging.
  • What they include: Activation rules, cooldowns, cost, animations, effects to apply, and tag requirements.
  • How developers will use it: Youโ€™ll define abilities in the editor, assign tags like Ability.Fireball, and link them to scenes or input actions. The system handles checking whether the ability can run, applying effects, and triggering gameplay cues.

4. ๐Ÿ” Gameplay Effects

  • What they are: Modifiers to attributes or states โ€” buffs, debuffs, damage, healing, etc.
  • How they work: Effects can be instant (e.g. take 20 damage), over time (e.g. poison), or passive (e.g. +10% max health).
  • How developers will use it: Youโ€™ll build effects using tags and attribute modifiers, then apply them through abilities or events. You can stack them, time them, and tag them for later removal.

5. ๐ŸŒ€ Gameplay Cues

  • What they are: Visual or audio feedback tied to gameplay โ€” like playing a particle effect when a stun is applied.
  • How they work: Cues are triggered by tags. When an effect applies a tag like Cue.Freeze, the system looks up that cue and plays it.
  • How developers use it: Use the Cue Editor to connect specific tags to audio/visual feedback like VFX, SFX, or animations. Cues can be one-shot, looping, or duration-based โ€” and all are controlled by tags.

6. ๐Ÿงฉ MANA Component

  • What it is: A central node that combines all MANA Systems on a character.
  • What it does: Manages attributes, tags, abilities, and cues for that entity.
  • How developers use it: You drop a MANAComponent on your player or enemy character, link it to your attributes, abilities, etc., and it handles everything else under the hood.

7. ๐ŸŒ Multiplayer-Ready

  • How it works: All systems are designed for server-authoritative multiplayer (Godot 4+), using signals, sync vars, and RPCs.
  • Prediction: A full UE5-style prediction system is planned for future versions โ€” the current version ensures correctness and replication but waits for confirmation.

๐Ÿง  How It All Connects (Example)

Letโ€™s say you create an ability called Fireball:

  1. You tag it as Ability.Fireball.
  2. You define a cue tagged Cue.Fireball.Explosion for the impact effect.
  3. You create a gameplay effect tagged Effect.Burn, which applies a damage-over-time attribute change.
  4. You hook all these together in the ability definition.
  5. When the player activates Fireball:
    • The system checks if it can be used (enough mana, not stunned, etc.)
    • Applies the burn effect and plays the cue
    • Reduces mana and sets a cooldown
    • All of this is synced over the network

You never need to write manual code for timing, replication, or attribute math โ€” the plugin handles it all, based on your definitions and tags.


๐Ÿงฐ What Makes It Easy to Use

  • Visual Editors: No digging through JSON or code โ€” tags, attributes, cues, abilities are all editable through the Godot Inspector and custom panels.
  • Tag-Driven Logic: Everything is controlled through tags. This makes complex logic easy to manage and modify.
  • Modular: You can use just the parts you want โ€” just tags, or tags + attributes, or the full system.
  • Inspired by UE5: If youโ€™re familiar with Unreal, this will feel very natural. If youโ€™re not, it still makes sense thanks to Godot-style workflows.

Subscribe to IndieGameDad

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe