---
id: wiki-2026-0508-eugen-systems-모딩-매뉴얼
title: Eugen Systems 모딩 매뉴얼
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Eugen modding, Wargame mod, Steel Division mod, WARNO mod, Iriszoom modding]
duplicate_of: none
source_trust_level: B
confidence_score: 0.88
verification_status: applied
tags: [game-modding, eugen-systems, wargame, warno, steel-division, ndf-script, iriszoom]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: NDF (Eugen)
  framework: Eugen Systems Iriszoom Engine / WARNO Mod Tools
---

# Eugen Systems 모딩 매뉴얼

## 매 한 줄
> **"매 Wargame / Steel Division / WARNO 의 mod 의 NDF script + Mod Tools"**. Eugen 의 자체 Iriszoom 엔진 — 매 NDF (Numerical Description Files) 매 unit / weapon / division. 매 modding 생태계 의 RTS 의 longevity 의 핵심.

## 매 핵심

### 매 Eugen game line
- **Wargame**: European Escalation, AirLand Battle, Red Dragon (cold war).
- **Steel Division**: Normandy 44, 2 (WW2).
- **WARNO**: 매 modern Eugen RTS — 매 1989 가상 cold war.

### 매 Iriszoom 엔진 특징
- 매 self-developed (Eugen).
- 매 NDF script 의 unit data.
- 매 dat / pak 의 archive.
- 매 multi-resolution streaming.
- 매 large-scale battlefield.

### 매 mod tool
- **WARNO Mod Tools**: 매 Steam 의 official.
- **Wargame Mod Manager**: 매 community.
- **Mod.io / Steam Workshop** integration.

### 매 modding category
1. **Unit balance**: 매 stats tweak.
2. **New unit**: 매 historical / fictional.
3. **Division**: 매 deck composition.
4. **Map**: 매 scenario, terrain.
5. **AI**: 매 behavior tweak.
6. **Visual**: 매 skin, texture.

## 💻 패턴

### NDF unit definition
```
TUnitModernGfxModuleDescriptor is TUnitModernGfxModuleDescriptor
(
    Tags = ["Tank", "Heavy"]
    BlindageProperties = TModuleSelector
    (
        ResistanceFront = TResistanceTypeRTTI(Family="ERA" Index=10)
        ResistanceSides = TResistanceTypeRTTI(Family="ERA" Index=8)
    )
    MaxPhysicalDamages = 12
    Speed = 60.0  // km/h
)
```

### Weapon NDF
```
TWeaponManagerModuleDescriptor is TWeaponManagerModuleDescriptor
(
    Salves = [
        TWeaponSalvoDescriptor
        (
            Type = "Cannon"
            Caliber = 125
            RangeGRU = 2310  // 매 unit
            ReloadTime = 12
        )
    ]
)
```

### Division deck (WARNO)
```
TDeckPackDescriptor is TDeckPackDescriptor
(
    Faction = ~/EFactionCategory/UnitedStates
    DivisionName = "11th Armored Cavalry Regiment"
    UnitCards = [
        ~/Descriptor_Unit_M1_Abrams,
        ~/Descriptor_Unit_M2_Bradley,
        // ...
    ]
)
```

### Mod folder structure
```
WARNO/Mods/MyMod/
├── meta.ini
├── GameData/
│   ├── Generated/
│   │   ├── Gameplay/
│   │   │   ├── Gfx/UniteDescriptor.ndf
│   │   │   ├── Gfx/WeaponDescriptor.ndf
│   │   │   └── Decks/Divisions.ndf
└── ModSettings.ini
```

### meta.ini
```ini
[mod]
name = "Operation: Custom"
author = "PlayerOne"
version = "1.2.0"
game_version_min = "1.0.0"
description = "Adds 5 new divisions"
```

### Stat tweak (balance mod)
```
// 매 BTR-80 의 health ↑ 의 buff
~/UniteDescriptor.ndf:
TUnitDescriptor is TUnitDescriptor
(
    Name = ~/Descriptor_Unit_BTR_80
    BlindageProperties = TBlindageProperties (
        MaxPhysicalDamages = 6  // 4 → 6
    )
)
```

### New unit (clone + modify)
```
~/UniteDescriptor.ndf — append:
TUnitDescriptor is TUnitDescriptor
(
    Name = ~/Descriptor_Unit_M1A2_Custom
    InheritFrom = ~/Descriptor_Unit_M1_Abrams
    OverrideWeapons = [...]
)
```

### Steam Workshop publish
```bash
# 매 WARNO Mod Tools UI:
# 1. Build mod → 매 .pak
# 2. Steam Workshop login
# 3. Upload (image, description, tag)
```

### Compatibility check
```python
# 매 mod conflict 의 detect (overlapping NDF symbol)
def check_conflict(mods):
    symbols = {}
    for mod in mods:
        for ndf in mod.parsed_ndf:
            for sym in ndf.symbols:
                if sym in symbols:
                    print(f'CONFLICT: {sym} in {mod.name} and {symbols[sym]}')
                symbols[sym] = mod.name
```

### AI behavior tweak
```
~/AIDescriptor.ndf:
TAIDescriptor is TAIDescriptor
(
    Aggressiveness = 1.5  // 매 1.0 → 1.5
    PreferredEngagementRange = 1500
)
```

### Map scripting (Lua)
```lua
-- 매 trigger 의 specific area
function on_unit_enter(unit, zone)
    if zone == 'OBJECTIVE_ALPHA' and unit.faction == 'BLUFOR' then
        spawn_reinforcements('OPFOR', 'NORTH_EDGE')
        broadcast('Enemy reinforcements arriving!')
    end
end
```

### Locale (multi-language)
```
LOCALISATION/UNITS.csv:
TOKEN,EN,FR,DE,RU
DESC_M1_CUSTOM,"Custom Abrams","Abrams Custom","..","..."
```

### Mod testing checklist
```yaml
test_checklist:
  - faction_balance: PvP test 5 games
  - unit_stats: per-unit damage curve
  - division_validity: each card spawns
  - texture_asset: no missing
  - performance: 60fps@1440p large battle
  - multiplayer_sync: deterministic
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| Balance tweak | NDF stat override |
| New faction | Inherit + override |
| Map | Mission editor + Lua |
| Cosmetic | Texture replace |
| AI | AI NDF tweak |
| Multi-mod | Compatibility audit |

**기본값**: 매 official WARNO Mod Tools + 매 NDF inherit 의 minimize 의 conflict + 매 Workshop publish + 매 multiplayer test.

## 🔗 Graph
- 변형: [[WARNO-Modding]]
- 응용: [[Iriszoom-Engine]]
- Adjacent: [[게임 밸런싱|Game-Balance]]

## 🤖 LLM 활용
**언제**: 매 Eugen game mod. 매 NDF parsing.
**언제 X**: 매 non-Eugen RTS.

## ❌ 안티패턴
- **NDF override without inherit**: 매 update break.
- **No version pin**: 매 game patch fail.
- **No conflict check**: 매 multi-mod break.
- **No multiplayer test**: 매 desync.

## 🧪 검증 / 중복
- Verified (Eugen Systems community wiki, WARNO Mod Tools docs).
- 신뢰도 B.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — NDF + Iriszoom + 매 unit / weapon / division / Lua / Workshop code |
