Godot MANA Plugin Progress

Godot MANA Plugin Progress
Photo by Safar Safarov / Unsplash

Progress continues and moving along nicely. All systems are also currently network capable up to this point. Below is a brief recap of where we're at.

Since making this post, the Plugin has since been renamed MANA

šŸ”¹ Tags System

  • Create, edit, delete tags
  • Category support with safeguards (Cue category blocked)
  • is_cue flag (used by cue dropdowns)
  • Tooltip display, flat tag structure
  • Saved in gameplay_tag_registry.tres

šŸ”¹ Attributes System (GameplayAttributes)

  • Attribute structure: base / current / max / regen
  • Dependency targeting: base, max, regen
  • Regen toggle and min regen clamp
  • Min/max clamping
  • has_max_value, regen_enabled
  • regen_tag_filter
  • Full manager and popup UI
  • Stored in gameplay_attribute_registry.tres

šŸ”¹ Gameplay Cue System

  • Cue types: Instant, Duration, Looping
  • Socket attach / follow emitter
  • Audio + Visual playback
  • Tag-based registry (Cue.Some.Tag)
  • Grouped in tree under tag → child rows titled "Instance: 0", "Instance: 1"
  • Multiplayer support with All, ServerOnly, ClientOnly modes
  • Network-safe dispatch and signal emission
  • GameplayCueComponent fully implemented
  • Stored in gameplay_cue_registry.tres

🚧 Next: GameplayEffect System

This system unifies PassiveEffects and active GameplayEffects
All attribute mods, tag grants, and effect policies will go here.

šŸ”ø Core Features:

  • Attribute Modifiers (target: base / current / max / regen)
  • Application Policies: Instant, Duration, Periodic, Infinite
  • Tag Requirements & Blocks (via TagQuery)
  • Tag Grant/Removal (temporary or permanent)
  • Source tracking (ability, passive, etc.)
  • Removal conditions
  • Full editor popup and registry

šŸ“Œ After GameplayEffects

šŸ”¹ GameplayAbility System

  • Activate with input, tag requirements, attribute cost
  • Apply Cues, Effects, Cooldowns
  • Hook into external logic (e.g., animations, timers)
  • Modular structure

šŸ”¹ Cooldowns (Integrated)

  • Handled internally by GameplayAbility
  • Track cooldowns on tags or ability names
  • Emits signals for UI/feedback
  • Supports global or per-instance logic

šŸ”¹ GameplayTasks

  • Asynchronous ability flow (waits, delays, montages, async movement)
  • Expandable framework similar to UE5’s UGameplayTask
  • Integrates with GameplayAbility

Subscribe to IndieGameDad

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