All Docs Documentation Version: Base (Free) Influence System Ultimate
Simple Attribute Forge Ultimate

Quick Start Guide

Create your first formula system in 15 minutes

Before You Begin

Important: The Ultimate system extends the base Simple Attribute Forge system. You must have the base system installed and at least one attribute container generated before proceeding.

Prerequisites Checklist

Verify Your Base System

Check that your attribute container has the three-tier value system:

// Your generated component should look like this: public class CharacterAttributes : MonoBehaviour, ISimpleAttributeDataSource { public SimpleRuntimeAttribute health; public SimpleRuntimeAttribute mana; public SimpleRuntimeAttribute strength; public SimpleRuntimeAttribute intelligence; // Three-tier values available: // health.baseValue - Base value // health.formulaBonus - Pro system calculations // health.totalValue - Final combined value }

Complete Tutorial: RPG Character Progression

We'll create a complete RPG character system where Level affects Health, and Strength affects Damage, with breakpoint bonuses.

1 Open the Influence Wizard

Navigate to Window → Simple Attribute Forge → Influence Wizard

The Influence Wizard is a 4-step process: Setup → Formulas → Configuration → Generate
2 Setup Tab: Connect Your Attributes
  1. Click the Setup tab
  2. In Attribute Data Source, select your AttributeData ScriptableObject
  3. Verify your attributes appear in the "Available Attributes" list
Available Attributes Found: • Health (Vital) • Mana (Vital) • Strength (Basic) • Intelligence (Basic) • Level (Resource)
3 Formulas Tab: Create Your First Formula

Formula 1: Level Affects Health

  1. Click the Formulas tab
  2. Click Add Formula
  3. Set Name: "LevelHealth"
  4. Set Target Attribute: "Health"
  5. Set Start Mode: "Zero"
  6. In Flat Bonuses, click Add Row
  7. Set Source: "Level", Operation: "Add", Value: 20
  8. Set Apply Mode: "Add to Base"
LevelHealth Formula Result
Each level adds 20 health points
Level 1: +20 health, Level 5: +100 health, Level 10: +200 health

Formula 2: Strength Affects Damage

  1. Click Add Formula again
  2. Set Name: "StrengthDamage"
  3. Set Target Attribute: "Damage" (if you have it, or any Basic attribute)
  4. In Flat Bonuses, add: Source "Strength", Value 1.5
  5. In Post-Flat Bonuses, add: Label "Base Damage", Amount 10
StrengthDamage Formula Result
Base damage: 10 points
Each STR point adds 1.5 damage
STR 10: 10 + (10 × 1.5) = 25 damage
4 Test Your Formulas

Use the Test Preview panel on the right side of the Formulas tab:

  1. Set test values for your attributes (Level: 5, Strength: 10)
  2. Select your formula in the list
  3. View the real-time calculation breakdown
The test panel shows live calculations as you adjust values, letting you validate formulas before generation.
5 Configuration Tab: System Settings
  1. Click the Configuration tab
  2. Set System Name: "CharacterInfluence"
  3. Set Namespace: "MyGame" (optional)
  4. Keep default paths or customize output locations
  5. Set Update Mode: "Smart" (recommended)
6 Generate Tab: Create Your System
  1. Click the Generate tab
  2. Review the generation summary
  3. Click Generate System
  4. Wait for compilation to complete
Generated Files:

Integration with Your GameObject

Add the Orchestrator

  1. Select your GameObject with the CharacterAttributes component
  2. Click Add Component
  3. Search for and add CharacterInfluence
  4. In the inspector, assign the Attribute System field to your CharacterAttributes component
  5. The Formulas list should auto-populate with your created formula assets
// Your GameObject now has: CharacterAttributes (Base System) ├── health.baseValue = 100 ├── strength.baseValue = 10 └── level.baseValue = 5 CharacterInfluence (Pro System) ├── LevelHealth.asset └── StrengthDamage.asset

Test the Integration

  1. Enter Play mode
  2. Check your attribute values in the inspector
  3. Modify the Level attribute's baseValue
  4. Watch Health's formulaBonus update automatically
Success! Your formulas are now automatically calculating and integrating with your attribute system.

Using in Your Code

Accessing Calculated Values

public class PlayerController : MonoBehaviour { private CharacterAttributes attributes; void Start() { attributes = GetComponent<CharacterAttributes>(); } void AttackEnemy() { // Use totalValue for gameplay calculations // This includes base + formula + modifier bonuses float damage = attributes.strength.totalValue * weaponMultiplier; // For Vitals, show current/max if (attributes.health.behaviorType == SimpleBehaviorType.Vital) { healthUI.text = $"{attributes.health.currentValue}/{attributes.health.totalValue}"; } } void LevelUp() { // Modify baseValue for permanent changes attributes.level.baseValue += 1; // Formulas automatically recalculate in Smart mode // health.formulaBonus will update automatically } }

Manual Recalculation

public class TurnBasedManager : MonoBehaviour { private CharacterInfluence orchestrator; void Start() { orchestrator = GetComponent<CharacterInfluence>(); // Set to Manual mode for turn-based games orchestrator.recalculationMode = RecalculationMode.Manual; } void EndTurn() { // Apply all stat changes during turn ApplyEquipmentChanges(); ApplyLevelUps(); ApplyBuffs(); // Single recalculation at turn end orchestrator.RecalculateAll(); } }

Next Steps

Expand Your System

Learn More

Formula Pipeline

Deep dive into the 7-step mathematical system

Formula Examples

Extensive collection of real-world formula patterns

Breakpoint System

Advanced conditional effects and threshold bonuses

Orchestrator Setup

Advanced configuration and performance tuning

Common First Questions

Q: Can I modify formula assets after generation?

A: Yes! Formula assets are ScriptableObjects that can be edited in the Inspector. Changes take effect immediately in Smart mode or on next manual recalculation.

Q: How do I add temporary buffs?

A: Use the modifierBonus field on attributes for temporary effects. The Ultimate system only manages formulaBonus.

// Temporary buff example attributes.strength.modifierBonus += 5; // +5 STR buff // Remove after duration StartCoroutine(RemoveBuffAfter(attributes.strength, 5, 30f));

Q: Can formulas reference other formulas?

A: Formulas read from baseValue and write to formulaBonus, preventing direct formula-to-formula references. Use execution order for formula dependencies.

Q: What happens if I change attribute names?

A: Regenerate your influence system after changing attribute names. The wizard will detect missing references and prompt for updates.

Quick Troubleshooting

Formulas not calculating?
  1. Check that orchestrator's Attribute System field is assigned
  2. Verify formula assets are in the Formulas list
  3. Ensure Update Mode is set to Smart or Manual recalculation is called
Values seem wrong?
  1. Use the Test Preview panel in the wizard to verify calculations
  2. Check Apply Mode setting (Override vs Add vs Subtract)
  3. Verify source attribute names match exactly