Package Manager (UPM)
The recommended way to install Simple Skill Forge is through Unity's Package Manager using a Git URL. This approach makes updates easy and keeps the package outside your Assets folder.
Option A — Git URL
Option B — manifest.json
You can also add the package directly to your project's Packages/manifest.json file:
Save the file and return to Unity. The package will be resolved automatically.
#v1.0.0 (or any tag/branch) to the Git URL.
Asset Store
Simple Skill Forge is available on the Unity Asset Store.
The package will be placed under Assets/SimpleSkillForge/.
Manual Import
If you received Simple Skill Forge as a .unitypackage file:
.unitypackage file and select it.
.asmdef) files after import.
They define the SimpleSkillForge.Runtime and SimpleSkillForge.Editor assemblies
and must remain in their original locations for compilation to succeed.
Verifying Installation
After installation, verify that everything is working correctly:
Window > Living Failure > Simple Skill Forge.
You should see 4 forge entries: Skill Forge, Skill Tree Forge,
Skill Set Forge, and Skill Combo Forge, plus the utility windows.
Window > General > Console). A clean installation produces zero errors.
If you encounter issues, see Troubleshooting.
Optional Companions
Simple Skill Forge works standalone with zero dependencies. However, it integrates with 4 companion packages from the Simple Forge Ecosystem. When a companion is detected, SSF automatically enables additional features via safe reflection — no configuration required.
| Package | UPM Name | What It Unlocks in SSF |
|---|---|---|
| Simple Attribute Forge | com.livingfailure.simple-attribute-forge |
Modifier assets on skills, ranks, and set bonuses. Attribute names for prerequisites. Character class restrictions via Character Template integration. |
| Simple Item Forge | com.livingfailure.simple-item-forge |
Item-skill relationships: skill books (grantedByItemCode), weapon requirements
(requiredEquipmentCode), crafted items (producesItemCode), and
reagent costs (reagentCosts[]). |
| Simple Enemy Forge | com.livingfailure.simple-enemy-forge |
Enemy-skill relationships: summon skills (summonEnemyCode), NPC trainers
(taughtByNPCCode), learned-from enemies (learnedFromEnemyCode),
faction effectiveness (effectiveAgainstFactions[]), and faction restrictions
(restrictedToFactionCode). |
| Simple Quest Forge | com.livingfailure.simple-quest-forge |
Quest-skill relationships: quest-gated unlocks (unlockedByQuestCode) and
quest-rewarded skills (rewardedByQuestCodes[]). |
Installing Companions
Install companion packages the same way you installed SSF (UPM, Asset Store, or manual import). Once imported, SSF detects them automatically on the next domain reload. No restart or manual configuration is needed.
Detection Mechanism
SSF uses two detection methods that work together:
- UPM detection: The
.asmdeffiles containversionDefinesentries that set scripting defines (e.g.,SIMPLE_ATTRIBUTE_FORGE,SIMPLE_ITEM_FORGE) when companion packages are present in the Package Manager. - Reflection detection: Bridge classes (
SAFBridge,SIFBridge,SEFBridge,SQFBridge) probe for companion types at runtime usingType.GetType(). This handles non-UPM installations (Asset Store, manual import).
Assembly Definitions
Simple Skill Forge uses two assembly definitions to keep runtime and editor code properly separated:
| Assembly | Namespace | Contents |
|---|---|---|
SimpleSkillForge.Runtime |
SimpleSkillForge |
All runtime types: definitions (skill, tree, set, combo), interfaces
(ISimpleSkillDataSource, etc.), helpers, trackers, evaluators, bridges |
SimpleSkillForge.Editor |
SimpleSkillForge.Editor |
All editor types: wizard windows, wizard steps, wizard data, code generators, templates, schema export, utility windows |
Referencing SSF in Your Code
If your project uses assembly definitions, add a reference to SimpleSkillForge.Runtime
in your runtime .asmdef to access SSF types:
For editor scripts that need SSF editor types, reference both assemblies:
Version Defines
The runtime assembly's .asmdef includes versionDefines for all companion packages.
When a companion is installed via UPM, Unity automatically sets the corresponding scripting define symbol:
| Companion Package | Define Symbol |
|---|---|
com.livingfailure.simple-attribute-forge |
SIMPLE_ATTRIBUTE_FORGE |
com.livingfailure.simple-item-forge |
SIMPLE_ITEM_FORGE |
com.livingfailure.simple-enemy-forge |
SIMPLE_ENEMY_FORGE |
com.livingfailure.simple-quest-forge |
SIMPLE_QUEST_FORGE |
These defines gate #if blocks in SSF source code so that companion-specific features
compile only when the companion is present.