> ## Documentation Index
> Fetch the complete documentation index at: https://docs.warpathstudios.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Attribute Definition

> An Attribute Definition is the blueprint of a single stat inside UMAS.

## **What Is an Attribute Definition?**

An *Attribute Definition* is the blueprint of a single stat inside UMAS.\
It defines:

* Attribute Handle / Name
* Base Value
* Min/Max
* Optional regen settings
* Optional progression settings
* Modifier behavior

These definitions live inside an **AttributeProfile**.

UMAS treats every attribute as a number, but categories and Gameplay Tags can be used to group and organize them.

***

## **Fields Defined in** `UAttributeDefinition`

*(Summarized from the plugin source)*

* **AttributeHandle**\
  The unique FName/handle used internally to identify the attribute.
* **BaseValue**\
  The initial value for this attribute when the profile loads.
* **MinValue / MaxValue**\
  Hard clamps to ensure the attribute stays within valid bounds.
* **bCanRegenerate**\
  Whether the attribute supports passive regeneration.
* **RegenRate / RegenDelay**\
  Optional regeneration configuration.
* **ProgressionConfig**\
  A reference to a struct used for leveling, XP, and scaling.
* **Tags**\
  Optional tags used for filtering, tooltips, UI, or effect logic.

***

## **Runtime Data Structure**

At runtime, definitions are converted into **FAttributeInstance** records stored inside the Attribute Manager Component.

These instances contain:

* Current Value
* Base Value
* Delta Modifiers
* Active Effects
* Cached Scaled Values
* Flags for replication

***

## **Designer Notes**

* Keep attribute names simple and consistent\
  *(e.g., Health, MaxHealth, Strength, Defense).*
* Use tags to group attributes for UI or effects.
* For survival games, use regen settings for stamina/energy, not for health.
* For RPGs, use progression config + link definitions for stat scaling.

***

## **Developer Notes**

* Attribute handles are used internally as efficient lookup keys.
* Definitions are immutable at runtime.
* Editing the profile updates future spawns, not existing characters.
* Use modifiers and effects to change stats at runtime.
