View Format: Multi-Page Single Page

Simple Enemy Forge

Generate Complete Enemy Databases, Squads, Spawn Tables, and More in Minutes.

Quick Start Guide

Create a complete enemy database in under 5 minutes. This walkthrough covers the Enemy Forge wizard — the foundation everything else builds on.

Prerequisites

  • Unity 2021.3 or newer
  • Simple Enemy Forge package imported

5-Step Creation Process

1 Open the Enemy Forge Wizard
Navigate to Window → Simple Enemy Forge → Enemy Forge Wizard
2 Step 1 — Setup
Enter a Class Prefix (e.g., "DarkFantasy") and optionally select a genre template to pre-populate definitions. Templates include Generic RPG, Soulslike, Survival Horror, Tower Defense, Sci-Fi Shooter, and RTS/Strategy.
3 Step 2 — Definitions
Define your property system. Add Categories (dropdowns like Enemy Type, Rank), Flags (toggles like Is Boss, Is Flying), Numerics (numbers like HP, ATK, DEF, Aggro Range), and Texts (strings like Lore, Weakness Hints).
4 Step 3 — Enemies
Create enemies using the properties you defined. Each enemy has a name, code (auto-generated), description, icon, and values for all your categories, flags, numerics, and texts.
5 Step 4 — Settings
Choose output paths for generated scripts and the database asset.
6 Step 5 — Generate
Click Generate. The wizard creates your enum, database class, custom editor, and database asset automatically.

Example: Dark Fantasy Enemies

Step 1: Setup

Basic Settings

  • Class Prefix: "DarkFantasy"
  • Template: Generic RPG

The Generic RPG template pre-populates categories (Enemy Type, Rank, Element), flags (Is Boss, Is Flying, Is Undead), numeric properties (HP, ATK, DEF, Speed, Aggro Range, XP Reward), and text fields (Lore, Weakness Hints) — covering everything you need for a dark fantasy bestiary.

Step 3: Create Enemies

Goblin Warrior

  • Code: GOBLIN_WARRIOR
  • Enemy Type: Humanoid
  • Rank: Common
  • HP: 50
  • ATK: 8

Shadow Wraith

  • Code: SHADOW_WRAITH
  • Enemy Type: Undead
  • Rank: Elite
  • HP: 200
  • ATK: 25
  • Is Flying: true

Dragon Lord

  • Code: DRAGON_LORD
  • Enemy Type: Dragon
  • Rank: Boss
  • HP: 5000
  • ATK: 150

Step 5: Generate

After generation, your project will contain:

Assets/ └─ Generated/ ├─ Enemies/Scripts/ │ ├─ DarkFantasyType.cs (enum) │ ├─ DarkFantasyDatabase.cs (ScriptableObject) │ └─ Editor/ │ └─ DarkFantasyDatabaseEditor.cs (custom inspector) └─ Enemies/Data/ └─ DarkFantasyDatabase.asset (your data)

Using Your Enemies in Code

Access Your Data

The generated database ScriptableObject provides methods to access your enemies:

using UnityEngine; public class EnemySpawner : MonoBehaviour { [SerializeField] DarkFantasyDatabase enemyDatabase; void Start() { // Get enemy by code string var goblin = enemyDatabase.GetEnemyByCode("GOBLIN_WARRIOR"); // Get enemy by enum var dragon = enemyDatabase.GetEnemy(DarkFantasyType.DRAGON_LORD); // Access dynamic properties by index float hp = dragon.numericValues[0]; string lore = dragon.textValues[0]; } }

Property indices match the order you defined them in Step 2. For example, if “HP” is the first numeric property you defined, it will be at numericValues[0].

Interface-Based (Generic Code)

// Works with any enemy database through the interface ISimpleEnemyDataSource source = enemyDatabase; // Filter enemies by category var undead = source.GetEnemiesByCategory(0, 1); // Category 0 (Enemy Type), Entry 1 (Undead) // Filter by flag var bosses = source.GetEnemiesByFlag(2, true); // Flag 2 (Is Boss) = true // Filter by numeric range var tanky = source.GetEnemiesByNumericRange(0, 500f, 99999f); // Numeric 0 (HP) >= 500

The Generated Custom Editor

Your database asset gets a professional custom Inspector with:

  • Split panel — Enemy list on the left, enemy editor on the right
  • Search — Filter by name or code
  • Sort — Name A-Z/Z-A, Code A-Z/Z-A
  • Category filter — Show only Humanoids, only Undead, etc.
  • Multi-select — Checkbox per enemy for bulk Delete, Duplicate, Set Icon
  • Pagination — Handles 300+ enemies smoothly

No more "Element 0", "Element 1" in the Inspector. Every property shows its real name.

Next Steps

AI-Powered Content

Export a schema, paste it into ChatGPT or Claude, and import hundreds of enemies in one click.

AI Workflow →

Build Squads

Group enemies into squads with slot assignments and formation data.

Squad Forge →

Design Spawn Tables

Create weighted spawn pools with conditions and context-sensitive logic.

Spawn Forge →

Add Scaling

Define how enemy stats scale with level, difficulty, or any custom parameter.

Scaling Forge →
Congratulations! You now have a fully functional enemy database with type-safe enum access and a generated custom Inspector editor. The enemies you define here are the foundation for squads, spawn tables, scaling profiles, wave sequences, behavior rules, and factions.