Refactor Gameplay Tags: Split DT_ProjectTags.csv into 11 per-category Data Tables

- Removed DT_ProjectTags.csv and migrated tags into separate Data Tables:
  - DT_Tags_Player.csv (35 tags)
  - DT_Tags_Interaction.csv (37 tags)
  - DT_Tags_Item.csv (28 tags)
  - DT_Tags_Narrative.csv (55 tags)
  - DT_Tags_AI.csv (24 tags)
  - DT_Tags_Save.csv (25 tags)
  - DT_Tags_Environment.csv (35 tags)
  - DT_Tags_Combat.csv (28 tags)
  - DT_Tags_State.csv (43 tags)
  - DT_Tags_Audio.csv (29 tags)
  - DT_Tags_Achievement.csv (22 tags)

- Updated INDEX.md to reflect new structure and deprecated DT_ProjectTags.csv.
- Enhanced documentation in 01-core-foundation.md regarding tag-driven architecture.
This commit is contained in:
Lefteris Notas
2026-05-19 19:20:40 +03:00
parent bec6cb715e
commit 209f24a0f8
17 changed files with 491 additions and 176 deletions

View File

@@ -44,6 +44,18 @@ Content/
Input/ # Enhanced Input assets (NEW)
Actions/ # IA_* Input Action assets
Contexts/ # IMC_* Input Mapping Context assets
DataTables/ # Gameplay Tag Data Tables (NEW — 11 per-category CSV files)
DT_Tags_Player.csv
DT_Tags_Interaction.csv
DT_Tags_Item.csv
DT_Tags_Narrative.csv
DT_Tags_AI.csv
DT_Tags_Save.csv
DT_Tags_Environment.csv
DT_Tags_Combat.csv
DT_Tags_State.csv
DT_Tags_Audio.csv
DT_Tags_Achievement.csv
Achievements/
Settings/
State/ # State Management assets (NEW)
@@ -110,7 +122,7 @@ docs/
enhanced-input-system.md
bpc-statemanager.md # NEW — State Manager implementation checklist
```
**Total: 135 numbered Blueprint files + 5 enums + 5 Data Assets + TEMPLATE.md + AUDIT_REPORT.md + INDEX.md + 11 developer docs + 8 architecture docs + 1 audit report = 166 files in 18 directory groups**
**Total: 135 numbered Blueprint files + 5 enums + 5 Data Assets + 11 Data Table CSVs + TEMPLATE.md + AUDIT_REPORT.md + INDEX.md + 11 developer docs + 8 architecture docs + 1 audit report = 177 files in 19 directory groups**
## Naming Conventions
| Prefix | Type |

View File

@@ -14,12 +14,12 @@ This document catalogs all UE5 engine functions that are C++ only (not exposed t
**UE5 Node:** Does NOT exist in Blueprint
**Files Affected:** `01_GI_GameTagRegistry.md`, any system that needs to enumerate all tags
**Blueprint Workaround — Data Table Proxy:**
**Blueprint Workaround — Data Table Proxy (Multi-Table):**
1. Create a Data Table: `DT_ProjectTags` with Row Structure = `GameplayTagTableRow`
2. Populate it with all framework tags (mirrors `DefaultGameplayTags.ini`)
3. Register in Project Settings → GameplayTags → Gameplay Tag Table List
4. In Blueprint: use `Get Data Table Row Names``ForEachLoop``Get Data Table Row` → extract `Tag` field
1. Create 11 per-category Data Tables with Row Structure = `GameplayTagTableRow` (see `docs/blueprints/01-core/data-tables/`)
2. Populate each with its category's tags (mirrors `DefaultGameplayTags.ini`)
3. Register ALL tables in `Project Settings → GameplayTags → Gameplay Tag Table List`
4. In Blueprint: use outer `ForEachLoop` over `Array<Data Table>` + inner `ForEachLoop` over `Get Data Table Row Names``Get Data Table Row` → extract `Tag` field
5. This provides a complete tag list without C++
**Trade-off:** Manual maintenance. Adding new tags requires updating both the `.ini` file AND the Data Table. Mitigation: use `ExportTagNamespace()` to audit for discrepancies.
@@ -176,7 +176,7 @@ OR create a Blueprint Macro Library with a macro that wraps the subsystem lookup
When writing or updating Blueprint spec files, follow these rules to avoid C++-only references:
1. **Never reference `UGameplayTagsManager::Get()`** — use `Get Tag Display Name`, `Is Gameplay Tag Valid`, `Make Literal Gameplay Tag`.
2. **Never reference `Get All Gameplay Tags`** — use the Data Table proxy pattern (`DT_ProjectTags``Get Data Table Row Names`).
2. **Never reference `Get All Gameplay Tags`** — use the multi-table Data Table proxy pattern (Array<Data Table> → nested `ForEachLoop``Get Data Table Row`).
3. **Never use `FPrimaryAssetId` as a type name** — use `Primary Asset Id` (Blueprint type).
4. **Never use `TSoftObjectPtr` as a type name** — use `Soft Object Reference` (Blueprint type).
5. **Never put logic in Data Assets** — move initialization/validation to GameInstance, Subsystem, or Editor Utility.

View File

@@ -54,7 +54,7 @@ None. The registry is a flat collection of tag declarations.
| Name | Inputs | Outputs | Category | Description |
|------|--------|---------|----------|-------------|
| `GetAllRegisteredTags` | — | `Array<FGameplayTag>` | Query | Reads tags from `DT_ProjectTags` Data Table (see Section 14 for UE5 BP workaround) |
| `GetAllRegisteredTags` | — | `Array<FGameplayTag>` | Query | Reads tags from all registered per-category Data Tables (see Section 14) |
| `GetTagDisplayName` | `Tag: FGameplayTag` | `Text` | Query | Returns the human-readable display name via `Get Tag Display Name` node |
| `ValidateTag` | `Tag: FGameplayTag` | `Boolean` | Validation | Returns `true` if the tag is valid via `Is Gameplay Tag Valid` node |
@@ -83,29 +83,30 @@ None. This Data Asset is passive — it has no runtime events.
├─► Load DA_GameTagRegistry (hard reference or Get Data Asset)
├─► Call DA_GameTagRegistry.GetAllRegisteredTags()
├─► Array Length == 0?
│ ├─► Yes → Print Warning: "No tags in DT_ProjectTags! Framework tags are unregistered."
│ ├─► Yes → Print Warning: "No tags in registered Data Tables! Framework tags are unregistered."
│ └─► No → Log: "N tags registered."
└─► Optional: call LogAllTags() for debug output
```
## 9. Blueprint Graph Logic
### 9.1 GetAllRegisteredTags (Data Table Proxy)
### 9.1 GetAllRegisteredTags (Multi-Table Data Table Proxy)
**⚠️ UE5 Limitation:** `UGameplayTagsManager::RequestAllGameplayTags()` is C++ only — not exposed to Blueprints. This function uses a **Data Table proxy** instead. Tags must be registered in `DT_ProjectTags` which mirrors `DefaultGameplayTags.ini`.
**⚠️ UE5 Limitation:** `UGameplayTagsManager::RequestAllGameplayTags()` is C++ only — not exposed to Blueprints. This function uses a **Data Table proxy** with multiple per-category tables. All tables must be registered in `Project Settings → GameplayTags → Gameplay Tag Table List`.
```
[Function: GetAllRegisteredTags] → Array<GameplayTag>
Step 1: Get Data Table Row Names (DT_ProjectTags)
Step 2: Create empty Array<GameplayTag> → LocalTags
Step 3: ForEachLoop (RowNames):
├─► Get Data Table Row (DT_ProjectTags, RowName)
│ → Break the GameplayTagTableRow struct → get "Tag" field
├─► Add "Tag" to LocalTags array
Step 4: Return LocalTags
Step 1: Create empty Array<GameplayTag> → LocalTags
Step 2: ForEachLoop over TagDataTables (outer loop):
├─► Branch: IsValid(current table)? → False: skip
├─► Get Data Table Row Names (current table)
└─► ForEachLoop (RowNames) (inner loop):
├─► Get Data Table Row → Break GameplayTagTableRow → get "Tag"
└─► Add "Tag" to LocalTags
Step 3: Return LocalTags
```
**Node Search:** `Get Data Table Row Names`, `ForEachLoop`, `Get Data Table Row`, `Break GameplayTagTableRow`, `Add`
**Key Change from v1:** The outer loop iterates `TagDataTables` (Array), not a single `TagDataTable`. This enables tags split across multiple CSV files by category.
### 9.2 ValidateTag
@@ -173,43 +174,25 @@ None. This Data Asset is passive — it has no runtime events.
## 10. Tag Namespace Reference (Framework Canonical)
All framework-level tags are defined in `DefaultGameplayTags.ini`. The following namespaces are **reserved and documented** by this asset:
All framework-level tags are defined in per-category Data Tables (CSV format, Row Structure: `GameplayTagTableRow`). These tables are registered in `Project Settings → GameplayTags → Gameplay Tag Table List`. The engine's `UGameplayTagsManager` merges all tables into one master list.
```
Player.State.Alive
Player.State.Dead
Player.State.Hidden
Player.State.Interacting
Player.Stress.Low / Mid / High / Critical
Player.Posture.Standing / Crouching / Prone / Vaulting
| Data Table | Namespaces Covered | Example Tags |
|------------|-------------------|--------------|
| `DT_Tags_Player` | `Framework.Player.State.*`, `*.Stress.*`, `*.Posture.*`, `*.Movement.*`, `*.Camera.*`, `*.Body.*`, `*.Overlay.*`, `*.Vitals.*` | Alive, Dead, Hidden, Sprinting, Crouching, Aiming, FullBody, Blood |
| `DT_Tags_Interaction` | `Framework.Interaction.Type.*`, `*.Context.*`, `*.Prompt.*`, `*.HidingSpot.*`, `*.Traversal.*`, `*.Door.*` | Pickup, Door, Container, Locked, OneShot, Vault, Mantle |
| `DT_Tags_Item` | `Framework.Item.Type.*`, `*.Slot.*`, `*.Rarity.*`, `*.Context.*` | Weapon, KeyItem, PrimaryWeapon, Legendary, Stackable |
| `DT_Tags_Narrative` | `Game.Narrative.Flag.*`, `*.Phase.*`, `*.Choice.*`, `*.Ending.*`, `*.Trial.*`, `*.Cutscene.*`, `*.Lore.*`, `Framework.Objective.*` | Chapter1Complete, Act2, GoodEnding, HospitalEscape, Intro |
| `DT_Tags_AI` | `Framework.AI.Alert.*`, `*.Archetype.*`, `*.Stimulus.*`, `*.Behavior.*`, `*.Memory.*` | Alerted, Stalker, Hearing, Aggressive, LastKnownLocation |
| `DT_Tags_Save` | `Framework.Save.*`, `*.DeathSpace.*`, `*.Checkpoint.*`, `*.Respawn.*`, `*.RunHistory.*` | Checkpoint, HardSave, Slot.1, Entered, Active, Reached, Start, Death |
| `DT_Tags_Environment` | `Game.Environment.Atmosphere.*`, `*.Scare.*`, `*.Light.*`, `*.Pacing.*`, `*.Performance.*` | Tense, MirrorJump, Flicker, Combat, High |
| `DT_Tags_Combat` | `Framework.Combat.Damage.*`, `*.Weapon.*`, `*.Ammo.*`, `*.FireMode.*`, `*.HitReaction.*`, `*.Feedback.*`, `*.Shield.*` | Physical, Firearm, Pistol, Flinch, HitMarker, Active |
| `DT_Tags_State` | `Framework.State.Action.*`, `*.Overlay.*`, `*.Vital.*`, `*.Gating.*` | Fire, Sprint, Menu, Health, BlockSprint |
| `DT_Tags_Audio` | `Framework.Audio.Bus.*`, `*.Room.*`, `*.Parameter.*`, `*.Surface.*` | SFX, Small, HeartRate, Concrete |
| `DT_Tags_Achievement` | `Game.Achievement.*` | FirstBlood, Survivor, Pacifist, Ghost, Collector, LoreMaster, TrueEnding, SpeedRunner, WeaponsMaster, Completionist |
Interaction.Type.Pickup / Door / Drawer / Container / Inspect / Climb / Hide / Use / Combine
Interaction.Context.Requires.Key / Requires.Item / Locked / Disabled
**Usage Rule:** All systems must add the prefix `Framework.` to framework tags in code comments. Project-specific tags use `Game.` prefix. Example: `Framework.Item.Type.Weapon` vs `Game.Narrative.Flag.BasementDoorOpened`.
Item.Type.Weapon / Consumable / KeyItem / Document / Collectible / Ammo / Tool
Item.Slot.PrimaryWeapon / SecondaryWeapon / Flashlight / Shield / Active
Narrative.Flag.* ← game-specific flags
Narrative.Phase.* ← story chapters / acts
Narrative.Choice.* ← choice consequence tags
Narrative.Ending.* ← ending conditions
Objective.Status.Active / Complete / Failed / Hidden
AI.Alert.None / Suspicious / Alerted / Engaged
AI.Archetype.Patrol / Ambush / Stalker / Passive
Save.Type.Checkpoint / HardSave / AutoSave
Achievement.* ← per-achievement tags
Environment.Atmosphere.* ← atmosphere state tags
Environment.Scare.* ← scare event tags
DeathSpace.Active ← triggers alt death space layer
```
**Usage Rule:** All systems must add the prefix `Framework.` to framework tags in code comments. Project-specific tags use `Game.` prefix. Example: `Framework.Interaction.Type.Pickup` vs `Game.Narrative.Flag.BasementDoorOpened`.
**CSV Format:** Each Data Table CSV uses columns: `Name,Tag,DevComment`. Name is a unique row identifier. Tag is the full gameplay tag string. DevComment explains the tag's purpose.
---
@@ -245,19 +228,23 @@ This asset does not talk to other systems directly. All communication is passive
## 14. Manual Implementation Guide
> **For human implementer:** Follow these steps to build `DA_GameTagRegistry` in UE5 Blueprints.
> **⚠️ UE5 BP Limitation:** `UGameplayTagsManager::RequestAllGameplayTags()` is C++ only. This implementation uses a **Data Table proxy** (`DT_ProjectTags`) as the 100% Blueprint workaround. You must create and maintain `DT_ProjectTags` alongside your `DefaultGameplayTags.ini`.
> **⚠️ UE5 BP Limitation:** `UGameplayTagsManager::RequestAllGameplayTags()` is C++ only. This implementation uses an **Array of Data Tables** (11 per-category tables) as the 100% Blueprint workaround. All tables must be registered in `Project Settings → GameplayTags → Gameplay Tag Table List`.
### 14.0 Prerequisite: Create the Tag Data Table
### 14.0 Prerequisite: Create the Per-Category Data Tables
Before implementing the Data Asset, create the proxy Data Table:
Before implementing the Data Asset, create **11 Data Tables**, one per category. Each follows the same format:
1. Right-click in Content Browser → **Miscellaneous → Data Table**
**Format:** Data Table with Row Structure = `GameplayTagTableRow`
**CSV Columns:** `Name,Tag,DevComment`
**Location in docs:** `docs/blueprints/01-core/data-tables/DT_Tags_*.csv`
**Location in UE5:** `Content/Framework/Core/DataTables/DT_Tags_*`
1. For each category, right-click in Content Browser → **Miscellaneous → Data Table**
2. Row Structure: `GameplayTagTableRow`
3. Name: `DT_ProjectTags`
4. Save to: `Content/Framework/Core/`
5. Add rows: one per tag (row name = anything, fill the "Tag" field with your GameplayTag)
6. Go to **Project Settings → GameplayTags → Gameplay Tag Table List** → click `+` → select `DT_ProjectTags`
- This auto-registers these tags with the engine's tag manager.
3. Name: `DT_Tags_{Category}` (e.g., `DT_Tags_Player`)
4. Import the corresponding CSV file (Right-click Data Table → Import → CSV)
5. **Critical:** Go to `Project Settings → GameplayTags → Gameplay Tag Table List` → click `+` 11 times → assign each table to a slot
- This auto-registers ALL tags with the engine's tag manager.
### 14.1 Class Setup
@@ -273,30 +260,39 @@ Add to Class Defaults:
|----------|------|------------------|---------|----------|
| `TagNamespace` | `Text` | ✓ | *"Framework tag namespace documentation"* | Documentation |
| `bIsFrameworkTag` | `Boolean` | ✓ | `true` | Documentation |
| `TagDataTable` | `Data Table` (Object Reference) | ✓ | `DT_ProjectTags` | Config |
| `TagDataTables` | `Array<Data Table Object Reference>` | ✓ | [DT_Tags_Player, DT_Tags_Interaction, DT_Tags_Item, DT_Tags_Narrative, DT_Tags_AI, DT_Tags_Save, DT_Tags_Environment, DT_Tags_Combat, DT_Tags_State, DT_Tags_Audio, DT_Tags_Achievement] | Config |
**⚠️ Multi-Table Design:** Tags are split into 11 per-category Data Tables (see Section 10). In UE5 `Project Settings → GameplayTags → Gameplay Tag Table List`, add ALL 11 tables. The engine's `UGameplayTagsManager` merges them automatically.
### 14.3 Function Implementations
#### `GetAllRegisteredTags()` → `Array<GameplayTag>` *(Blueprint Pure)*
**Purpose:** Returns all tags from the Data Table proxy. This replaces the C++-only `UGameplayTagsManager::RequestAllGameplayTags()`.
**Purpose:** Returns all tags from ALL registered Data Tables. Uses an outer loop over `TagDataTables` array and inner loop over each table's rows.
**⚠️ UE5 Limitation:** `UGameplayTagsManager::RequestAllGameplayTags()` is C++ only — not exposed to Blueprints. This function uses the Data Table proxy approach with multiple tables.
**Node-by-Node Logic:**
```
[Function: GetAllRegisteredTags] (Pure, no execution pins)
Step 1: Get Data Table Row Names (TagDataTable) → returns Array<Name>
Step 2: Create empty Array<GameplayTag> → LocalTags
Step 3: ForEachLoop over RowNames:
├─► Get Data Table Row (TagDataTable, Array Element)
→ Struct Pin: Break GameplayTagTableRow
→ Get "Tag" field (type: GameplayTag)
├─► Add "Tag" to LocalTags array
Step 4: Return LocalTags
Step 1: Create empty Array<GameplayTag> → LocalTags
Step 2: ForEachLoop over TagDataTables array (outer loop):
├─► Array Element = current Data Table
├─► Branch: IsValid(current table)?
False → Skip to next table
True → Continue
├─► Get Data Table Row Names (current table) → returns Array<Name>
└─► ForEachLoop over RowNames (inner loop):
├─► Get Data Table Row (current table, Array Element)
│ → Struct Pin: Break GameplayTagTableRow
│ → Get "Tag" field (type: GameplayTag)
└─► Add "Tag" to LocalTags array
Step 3: Return LocalTags
```
**Nodes to Search:** `Get Data Table Row Names`, `ForEachLoop`, `Get Data Table Row`, `Break GameplayTagTableRow`, `Add`, `Array`
**Nodes to Search:** `ForEachLoop` (outer over TagDataTables), `ForEachLoop` (inner over row names), `Get Data Table Row Names`, `Get Data Table Row`, `Break GameplayTagTableRow`, `Add`, `Array`, `IsValid`
**⚠️ Note:** Since this is a **Pure** function, the ForEachLoop must be inside a **Pure function graph** (which supports loops in UE5). If your UE version doesn't support loops in Pure functions, make this a **BlueprintCallable** (impure) function instead.
**⚠️ Note:** If your UE version doesn't support loops in Pure functions, make this **BlueprintCallable** (impure) instead.
#### `GetTagDisplayName(Tag: GameplayTag)` → `Text` *(Blueprint Pure)*
@@ -322,11 +318,11 @@ Add to Class Defaults:
**Node Search:** `Is Gameplay Tag Valid`, `Get Tag Name`
**⚠️ Note:** `Is Gameplay Tag Valid` returns true only if the tag is registered in the engine's tag table (which `DT_ProjectTags` populates via Project Settings). Tags NOT in the table will return false.
**⚠️ Note:** `Is Gameplay Tag Valid` returns true only if the tag is registered in the engine's tag table (which the 11 Data Tables populate via Project Settings). Tags NOT in any registered table will return false.
#### `LogAllTags()` → *(void)* *(Blueprint Callable)*
**Editor Only.** Prints all tags from the Data Table to the output log.
**Editor Only.** Prints all tags from all Data Tables to the output log.
**Node-by-Node Logic:**
```
@@ -334,11 +330,9 @@ Add to Class Defaults:
Step 1: Call GetAllRegisteredTags() → LocalTags
Step 2: ForEachLoop (LocalTags):
├─► Get Tag Name (Array Element) → ToString → Print String
Step 3: Print String: "Total tags: " + Array Length(LocalTags)
Step 3: Print String: "Total tags across all tables: " + Array Length(LocalTags)
```
**Node Search:** `ForEachLoop`, `Get Tag Name`, `ToString (String)`, `Print String`, `Array Length`
#### `ExportTagNamespace(NamespacePrefix: String)` → `String` *(Blueprint Callable)*
**Node-by-Node Logic:**
@@ -348,14 +342,12 @@ Add to Class Defaults:
Step 2: Create String variable → Output = ""
Step 3: ForEachLoop (LocalTags):
├─► Get Tag Name (Array Element) → ToString → TagString
├─► Branch: Does TagString start with NamespacePrefix? (use "Starts With" string node)
├─► Branch: Does TagString start with NamespacePrefix?
│ True → Append TagString + "\n" to Output (use "Append" or "Build String")
└─► Continue
Step 4: Return Output
```
**Node Search:** `Starts With (String)`, `Append`, `Build String`, `ForEachLoop`
### 14.4 External Initialization
Since Data Assets have no `BeginPlay`, call validation from your GameInstance or StateManager:
@@ -365,7 +357,7 @@ Since Data Assets have no `BeginPlay`, call validation from your GameInstance or
Step 1: Get DA_GameTagRegistry (hard reference or Load Asset)
Step 2: Call DA_GameTagRegistry.GetAllRegisteredTags() → LocalTags
Step 3: Branch: Array Length(LocalTags) == 0
├─► True → Print Warning: "No tags in DT_ProjectTags!"
├─► True → Print Warning: "No tags in registered Data Tables!"
└─► False → Print String: "N tags registered: " + Array Length
Step 4: [Debug builds only] Call DA_GameTagRegistry.LogAllTags()
```
@@ -376,19 +368,30 @@ No replication needed. This is a read-only Data Asset with a read-only Data Tabl
### 14.6 Blueprint Build Checklist
- [ ] Create Data Table `DT_ProjectTags` (Row Structure: `GameplayTagTableRow`)
- [ ] Populate `DT_ProjectTags` with all framework tags from Section 10
- [ ] Add `DT_ProjectTags` to `Project Settings → GameplayTags → Gameplay Tag Table List`
- [ ] Create Data Asset `DA_GameTagRegistry` (Parent: `PrimaryDataAsset`)
- [ ] Add variables: `TagNamespace` (Text), `bIsFrameworkTag` (Boolean), `TagDataTable` (Data Table Ref → DT_ProjectTags)
- [ ] Implement `GetAllRegisteredTags` using Data Table Row iteration
- [ ] Create 11 Data Tables with Row Structure `GameplayTagTableRow`:
- [ ] `DT_Tags_Player` — Player state, stress, posture, movement, camera, body, vitals
- [ ] `DT_Tags_Interaction` — Interaction types, contexts, prompts, hiding spots, traversal, doors
- [ ] `DT_Tags_Item` — Item types, slots, rarities, contexts
- [ ] `DT_Tags_Narrative` — Flags, phases, choices, endings, trials, cutscenes, lore, objectives
- [ ] `DT_Tags_AI` — Alert levels, archetypes, stimuli, behaviors, memory
- [ ] `DT_Tags_Save` — Save types, death space, checkpoints, respawn
- [ ] `DT_Tags_Environment` — Atmosphere, scares, lighting, pacing, performance
- [ ] `DT_Tags_Combat` — Damage types, weapons, ammo, fire modes, hit reactions, shield
- [ ] `DT_Tags_State` — Action states, overlay states, vitals, gating
- [ ] `DT_Tags_Audio` — Audio buses, room acoustics, parameters, surfaces
- [ ] `DT_Tags_Achievement` — Achievement identifiers
- [ ] Add ALL 11 tables to `Project Settings → GameplayTags → Gameplay Tag Table List`
- [ ] Create Data Asset: `DA_GameTagRegistry` (Parent: `PrimaryDataAsset`)
- [ ] Add variables: `TagNamespace` (Text), `bIsFrameworkTag` (Boolean), `TagDataTables` (Array<Data Table> — populate with all 11 tables)
- [ ] Implement `GetAllRegisteredTags` with OUTER loop over TagDataTables + INNER loop over row names
- [ ] Implement `GetTagDisplayName` using `Get Tag Display Name` node
- [ ] Implement `ValidateTag` using `Is Gameplay Tag Valid` node
- [ ] Implement `LogAllTags` (editor-only, prints all tags)
- [ ] Implement `ExportTagNamespace` (string prefix filtering)
- [ ] Implement `LogAllTags` (editor-only, prints tags from all tables)
- [ ] Implement `ExportTagNamespace` (string prefix filtering across all tables)
- [ ] Add external initialization call from `GI_GameFramework.Init()` or `BPC_StateManager.BeginPlay()`
- [ ] Verify: all tags from Section 10 exist in `DT_ProjectTags`
- [ ] Verify: `ValidateTag` returns true for registered tags, false for unregistered
- [ ] Verify: all tags from Section 10 exist in the appropriate Data Table
- [ ] Verify: `ValidateTag` returns true for tags in any registered table, false for unregistered
- [ ] Verify: `GetAllRegisteredTags` returns ALL tags merged from all tables
---

View File

@@ -1,65 +1,5 @@
Name,Tag,DevComment
Framework_Player_State_Alive,Framework.Player.State.Alive,
Framework_Player_State_Dead,Framework.Player.State.Dead,
Framework_Player_State_Hidden,Framework.Player.State.Hidden,
Framework_Player_State_Interacting,Framework.Player.State.Interacting,
Framework_Player_Stress_Low,Framework.Player.Stress.Low,
Framework_Player_Stress_Mid,Framework.Player.Stress.Mid,
Framework_Player_Stress_High,Framework.Player.Stress.High,
Framework_Player_Stress_Critical,Framework.Player.Stress.Critical,
Framework_Player_Posture_Standing,Framework.Player.Posture.Standing,
Framework_Player_Posture_Crouching,Framework.Player.Posture.Crouching,
Framework_Player_Posture_Prone,Framework.Player.Posture.Prone,
Framework_Player_Posture_Vaulting,Framework.Player.Posture.Vaulting,
Framework_Interaction_Type_Pickup,Framework.Interaction.Type.Pickup,
Framework_Interaction_Type_Door,Framework.Interaction.Type.Door,
Framework_Interaction_Type_Drawer,Framework.Interaction.Type.Drawer,
Framework_Interaction_Type_Container,Framework.Interaction.Type.Container,
Framework_Interaction_Type_Inspect,Framework.Interaction.Type.Inspect,
Framework_Interaction_Type_Climb,Framework.Interaction.Type.Climb,
Framework_Interaction_Type_Hide,Framework.Interaction.Type.Hide,
Framework_Interaction_Type_Use,Framework.Interaction.Type.Use,
Framework_Interaction_Type_Combine,Framework.Interaction.Type.Combine,
Framework_Interaction_Context_Requires_Key,Framework.Interaction.Context.Requires.Key,
Framework_Interaction_Context_Requires_Item,Framework.Interaction.Context.Requires.Item,
Framework_Interaction_Context_Locked,Framework.Interaction.Context.Locked,
Framework_Interaction_Context_Disabled,Framework.Interaction.Context.Disabled,
Framework_Item_Type_Weapon,Framework.Item.Type.Weapon,
Framework_Item_Type_Consumable,Framework.Item.Type.Consumable,
Framework_Item_Type_KeyItem,Framework.Item.Type.KeyItem,
Framework_Item_Type_Document,Framework.Item.Type.Document,
Framework_Item_Type_Collectible,Framework.Item.Type.Collectible,
Framework_Item_Type_Ammo,Framework.Item.Type.Ammo,
Framework_Item_Type_Tool,Framework.Item.Type.Tool,
Framework_Item_Slot_PrimaryWeapon,Framework.Item.Slot.PrimaryWeapon,
Framework_Item_Slot_SecondaryWeapon,Framework.Item.Slot.SecondaryWeapon,
Framework_Item_Slot_Flashlight,Framework.Item.Slot.Flashlight,
Framework_Item_Slot_Shield,Framework.Item.Slot.Shield,
Framework_Item_Slot_Active,Framework.Item.Slot.Active,
Game_Narrative_Flag,Game.Narrative.Flag,
Game_Narrative_Phase,Game.Narrative.Phase,
Game_Narrative_Choice,Game.Narrative.Choice,
Game_Narrative_Ending,Game.Narrative.Ending,
Game_Narrative_Flag_PrologueComplete,Game.Narrative.Flag.PrologueComplete,
Framework_Objective_Status_Active,Framework.Objective.Status.Active,
Framework_Objective_Status_Complete,Framework.Objective.Status.Complete,
Framework_Objective_Status_Failed,Framework.Objective.Status.Failed,
Framework_Objective_Status_Hidden,Framework.Objective.Status.Hidden,
Framework_AI_Alert_None,Framework.AI.Alert.None,
Framework_AI_Alert_Suspicious,Framework.AI.Alert.Suspicious,
Framework_AI_Alert_Alerted,Framework.AI.Alert.Alerted,
Framework_AI_Alert_Engaged,Framework.AI.Alert.Engaged,
Framework_AI_Archetype_Patrol,Framework.AI.Archetype.Patrol,
Framework_AI_Archetype_Ambush,Framework.AI.Archetype.Ambush,
Framework_AI_Archetype_Stalker,Framework.AI.Archetype.Stalker,
Framework_AI_Archetype_Passive,Framework.AI.Archetype.Passive,
Framework_Save_Type_Checkpoint,Framework.Save.Type.Checkpoint,
Framework_Save_Type_HardSave,Framework.Save.Type.HardSave,
Framework_Save_Type_AutoSave,Framework.Save.Type.AutoSave,
Game_Achievement,Game.Achievement,
Game_Achievement_FirstBlood,Game.Achievement.FirstBlood,
Game_Environment_Atmosphere,Game.Environment.Atmosphere,
Game_Environment_Atmosphere_Eerie,Game.Environment.Atmosphere.Eerie,
Game_Environment_Scare,Game.Environment.Scare,
Game_Environment_Scare_MirrorJump,Game.Environment.Scare.MirrorJump,
Framework_DeathSpace_Active,Framework.DeathSpace.Active,
# SUPERSEDED — Tags split into 11 per-category Data Tables in docs/blueprints/01-core/data-tables/
# See: DT_Tags_Player.csv, DT_Tags_Interaction.csv, DT_Tags_Item.csv, DT_Tags_Narrative.csv,
# DT_Tags_AI.csv, DT_Tags_Save.csv, DT_Tags_Environment.csv, DT_Tags_Combat.csv,
# DT_Tags_State.csv, DT_Tags_Audio.csv, DT_Tags_Achievement.csv
# This file kept as migration reference only. Do not use in new implementations.
1 Name # SUPERSEDED — Tags split into 11 per-category Data Tables in docs/blueprints/01-core/data-tables/ Tag DevComment
2 Framework_Player_State_Alive # See: DT_Tags_Player.csv, DT_Tags_Interaction.csv, DT_Tags_Item.csv, DT_Tags_Narrative.csv, Framework.Player.State.Alive
3 Framework_Player_State_Dead # DT_Tags_AI.csv, DT_Tags_Save.csv, DT_Tags_Environment.csv, DT_Tags_Combat.csv, Framework.Player.State.Dead
4 Framework_Player_State_Hidden # DT_Tags_State.csv, DT_Tags_Audio.csv, DT_Tags_Achievement.csv Framework.Player.State.Hidden
5 Framework_Player_State_Interacting # This file kept as migration reference only. Do not use in new implementations. Framework.Player.State.Interacting
Framework_Player_Stress_Low Framework.Player.Stress.Low
Framework_Player_Stress_Mid Framework.Player.Stress.Mid
Framework_Player_Stress_High Framework.Player.Stress.High
Framework_Player_Stress_Critical Framework.Player.Stress.Critical
Framework_Player_Posture_Standing Framework.Player.Posture.Standing
Framework_Player_Posture_Crouching Framework.Player.Posture.Crouching
Framework_Player_Posture_Prone Framework.Player.Posture.Prone
Framework_Player_Posture_Vaulting Framework.Player.Posture.Vaulting
Framework_Interaction_Type_Pickup Framework.Interaction.Type.Pickup
Framework_Interaction_Type_Door Framework.Interaction.Type.Door
Framework_Interaction_Type_Drawer Framework.Interaction.Type.Drawer
Framework_Interaction_Type_Container Framework.Interaction.Type.Container
Framework_Interaction_Type_Inspect Framework.Interaction.Type.Inspect
Framework_Interaction_Type_Climb Framework.Interaction.Type.Climb
Framework_Interaction_Type_Hide Framework.Interaction.Type.Hide
Framework_Interaction_Type_Use Framework.Interaction.Type.Use
Framework_Interaction_Type_Combine Framework.Interaction.Type.Combine
Framework_Interaction_Context_Requires_Key Framework.Interaction.Context.Requires.Key
Framework_Interaction_Context_Requires_Item Framework.Interaction.Context.Requires.Item
Framework_Interaction_Context_Locked Framework.Interaction.Context.Locked
Framework_Interaction_Context_Disabled Framework.Interaction.Context.Disabled
Framework_Item_Type_Weapon Framework.Item.Type.Weapon
Framework_Item_Type_Consumable Framework.Item.Type.Consumable
Framework_Item_Type_KeyItem Framework.Item.Type.KeyItem
Framework_Item_Type_Document Framework.Item.Type.Document
Framework_Item_Type_Collectible Framework.Item.Type.Collectible
Framework_Item_Type_Ammo Framework.Item.Type.Ammo
Framework_Item_Type_Tool Framework.Item.Type.Tool
Framework_Item_Slot_PrimaryWeapon Framework.Item.Slot.PrimaryWeapon
Framework_Item_Slot_SecondaryWeapon Framework.Item.Slot.SecondaryWeapon
Framework_Item_Slot_Flashlight Framework.Item.Slot.Flashlight
Framework_Item_Slot_Shield Framework.Item.Slot.Shield
Framework_Item_Slot_Active Framework.Item.Slot.Active
Game_Narrative_Flag Game.Narrative.Flag
Game_Narrative_Phase Game.Narrative.Phase
Game_Narrative_Choice Game.Narrative.Choice
Game_Narrative_Ending Game.Narrative.Ending
Game_Narrative_Flag_PrologueComplete Game.Narrative.Flag.PrologueComplete
Framework_Objective_Status_Active Framework.Objective.Status.Active
Framework_Objective_Status_Complete Framework.Objective.Status.Complete
Framework_Objective_Status_Failed Framework.Objective.Status.Failed
Framework_Objective_Status_Hidden Framework.Objective.Status.Hidden
Framework_AI_Alert_None Framework.AI.Alert.None
Framework_AI_Alert_Suspicious Framework.AI.Alert.Suspicious
Framework_AI_Alert_Alerted Framework.AI.Alert.Alerted
Framework_AI_Alert_Engaged Framework.AI.Alert.Engaged
Framework_AI_Archetype_Patrol Framework.AI.Archetype.Patrol
Framework_AI_Archetype_Ambush Framework.AI.Archetype.Ambush
Framework_AI_Archetype_Stalker Framework.AI.Archetype.Stalker
Framework_AI_Archetype_Passive Framework.AI.Archetype.Passive
Framework_Save_Type_Checkpoint Framework.Save.Type.Checkpoint
Framework_Save_Type_HardSave Framework.Save.Type.HardSave
Framework_Save_Type_AutoSave Framework.Save.Type.AutoSave
Game_Achievement Game.Achievement
Game_Achievement_FirstBlood Game.Achievement.FirstBlood
Game_Environment_Atmosphere Game.Environment.Atmosphere
Game_Environment_Atmosphere_Eerie Game.Environment.Atmosphere.Eerie
Game_Environment_Scare Game.Environment.Scare
Game_Environment_Scare_MirrorJump Game.Environment.Scare.MirrorJump
Framework_DeathSpace_Active Framework.DeathSpace.Active

View File

@@ -0,0 +1,24 @@
Name,Tag,DevComment
Framework_AI_Alert_None,Framework.AI.Alert.None,No awareness of player
Framework_AI_Alert_Suspicious,Framework.AI.Alert.Suspicious,Heard or glimpsed something
Framework_AI_Alert_Alerted,Framework.AI.Alert.Alerted,Confirmed player presence
Framework_AI_Alert_Engaged,Framework.AI.Alert.Engaged,Actively fighting
Framework_AI_Alert_Searching,Framework.AI.Alert.Searching,Lost sight searching area
Framework_AI_Alert_Fleeing,Framework.AI.Alert.Fleeing,Retreating from combat
Framework_AI_Archetype_Patrol,Framework.AI.Archetype.Patrol,Standard patrol guard
Framework_AI_Archetype_Ambush,Framework.AI.Archetype.Ambush,Lurking ambush predator
Framework_AI_Archetype_Stalker,Framework.AI.Archetype.Stalker,Persistent slow stalker
Framework_AI_Archetype_Passive,Framework.AI.Archetype.Passive,Non-aggressive NPC
Framework_AI_Archetype_Berserker,Framework.AI.Archetype.Berserker,Aggressive rush-down enemy
Framework_AI_Archetype_Sniper,Framework.AI.Archetype.Sniper,Long-range stationary enemy
Framework_AI_Stimulus_Sight,Framework.AI.Stimulus.Sight,Visual perception trigger
Framework_AI_Stimulus_Hearing,Framework.AI.Stimulus.Hearing,Audio perception trigger
Framework_AI_Stimulus_Damage,Framework.AI.Stimulus.Damage,Damage perception trigger
Framework_AI_Stimulus_TeamAlert,Framework.AI.Stimulus.TeamAlert,Ally alert shared perception
Framework_AI_Behavior_Aggressive,Framework.AI.Behavior.Aggressive,Aggressive combat style
Framework_AI_Behavior_Defensive,Framework.AI.Behavior.Defensive,Defensive combat style
Framework_AI_Behavior_Cautious,Framework.AI.Behavior.Cautious,Cautious slow approach
Framework_AI_Behavior_Reckless,Framework.AI.Behavior.Reckless,Reckless rush style
Framework_AI_Memory_LastKnownLocation,Framework.AI.Memory.LastKnownLocation,Last known player position
Framework_AI_Memory_InvestigationPoint,Framework.AI.Memory.InvestigationPoint,Point of interest to investigate
Framework_AI_Memory_ThreatHistory,Framework.AI.Memory.ThreatHistory,Record of damage sources
1 Name Tag DevComment
2 Framework_AI_Alert_None Framework.AI.Alert.None No awareness of player
3 Framework_AI_Alert_Suspicious Framework.AI.Alert.Suspicious Heard or glimpsed something
4 Framework_AI_Alert_Alerted Framework.AI.Alert.Alerted Confirmed player presence
5 Framework_AI_Alert_Engaged Framework.AI.Alert.Engaged Actively fighting
6 Framework_AI_Alert_Searching Framework.AI.Alert.Searching Lost sight searching area
7 Framework_AI_Alert_Fleeing Framework.AI.Alert.Fleeing Retreating from combat
8 Framework_AI_Archetype_Patrol Framework.AI.Archetype.Patrol Standard patrol guard
9 Framework_AI_Archetype_Ambush Framework.AI.Archetype.Ambush Lurking ambush predator
10 Framework_AI_Archetype_Stalker Framework.AI.Archetype.Stalker Persistent slow stalker
11 Framework_AI_Archetype_Passive Framework.AI.Archetype.Passive Non-aggressive NPC
12 Framework_AI_Archetype_Berserker Framework.AI.Archetype.Berserker Aggressive rush-down enemy
13 Framework_AI_Archetype_Sniper Framework.AI.Archetype.Sniper Long-range stationary enemy
14 Framework_AI_Stimulus_Sight Framework.AI.Stimulus.Sight Visual perception trigger
15 Framework_AI_Stimulus_Hearing Framework.AI.Stimulus.Hearing Audio perception trigger
16 Framework_AI_Stimulus_Damage Framework.AI.Stimulus.Damage Damage perception trigger
17 Framework_AI_Stimulus_TeamAlert Framework.AI.Stimulus.TeamAlert Ally alert shared perception
18 Framework_AI_Behavior_Aggressive Framework.AI.Behavior.Aggressive Aggressive combat style
19 Framework_AI_Behavior_Defensive Framework.AI.Behavior.Defensive Defensive combat style
20 Framework_AI_Behavior_Cautious Framework.AI.Behavior.Cautious Cautious slow approach
21 Framework_AI_Behavior_Reckless Framework.AI.Behavior.Reckless Reckless rush style
22 Framework_AI_Memory_LastKnownLocation Framework.AI.Memory.LastKnownLocation Last known player position
23 Framework_AI_Memory_InvestigationPoint Framework.AI.Memory.InvestigationPoint Point of interest to investigate
24 Framework_AI_Memory_ThreatHistory Framework.AI.Memory.ThreatHistory Record of damage sources

View File

@@ -0,0 +1,22 @@
Name,Tag,DevComment
Game_Achievement,Game.Achievement,Root achievement namespace
Game_Achievement_FirstBlood,Game.Achievement.FirstBlood,First enemy killed
Game_Achievement_Survivor,Game.Achievement.Survivor,Survived first chapter without dying
Game_Achievement_Pacifist,Game.Achievement.Pacifist,Completed a chapter without killing any enemy
Game_Achievement_Ghost,Game.Achievement.Ghost,Never detected by enemies in a chapter
Game_Achievement_Collector,Game.Achievement.Collector,Collected all collectibles
Game_Achievement_LoreMaster,Game.Achievement.LoreMaster,Discovered all lore entries
Game_Achievement_SpeedRunner,Game.Achievement.SpeedRunner,Completed game in under 3 hours
Game_Achievement_TrueEnding,Game.Achievement.TrueEnding,Unlocked the true ending
Game_Achievement_BadEnding,Game.Achievement.BadEnding,Witnessed the bad ending
Game_Achievement_WeaponsMaster,Game.Achievement.WeaponsMaster,Used every weapon type
Game_Achievement_Crafter,Game.Achievement.Crafter,Crafted 10 items
Game_Achievement_Untouchable,Game.Achievement.Untouchable,Completed a chapter without taking damage
Game_Achievement_Hoarder,Game.Achievement.Hoarder,Carried 100 items at once
Game_Achievement_Completionist,Game.Achievement.Completionist,Completed all side objectives
Game_Achievement_FirstDeath,Game.Achievement.FirstDeath,Died for the first time
Game_Achievement_TenDeaths,Game.Achievement.TenDeaths,Died 10 times
Game_Achievement_Chapter1Complete,Game.Achievement.Chapter1Complete,Completed Chapter 1
Game_Achievement_Chapter2Complete,Game.Achievement.Chapter2Complete,Completed Chapter 2
Game_Achievement_Chapter3Complete,Game.Achievement.Chapter3Complete,Completed Chapter 3
Game_Achievement_AllEndings,Game.Achievement.AllEndings,Unlocked every ending
1 Name Tag DevComment
2 Game_Achievement Game.Achievement Root achievement namespace
3 Game_Achievement_FirstBlood Game.Achievement.FirstBlood First enemy killed
4 Game_Achievement_Survivor Game.Achievement.Survivor Survived first chapter without dying
5 Game_Achievement_Pacifist Game.Achievement.Pacifist Completed a chapter without killing any enemy
6 Game_Achievement_Ghost Game.Achievement.Ghost Never detected by enemies in a chapter
7 Game_Achievement_Collector Game.Achievement.Collector Collected all collectibles
8 Game_Achievement_LoreMaster Game.Achievement.LoreMaster Discovered all lore entries
9 Game_Achievement_SpeedRunner Game.Achievement.SpeedRunner Completed game in under 3 hours
10 Game_Achievement_TrueEnding Game.Achievement.TrueEnding Unlocked the true ending
11 Game_Achievement_BadEnding Game.Achievement.BadEnding Witnessed the bad ending
12 Game_Achievement_WeaponsMaster Game.Achievement.WeaponsMaster Used every weapon type
13 Game_Achievement_Crafter Game.Achievement.Crafter Crafted 10 items
14 Game_Achievement_Untouchable Game.Achievement.Untouchable Completed a chapter without taking damage
15 Game_Achievement_Hoarder Game.Achievement.Hoarder Carried 100 items at once
16 Game_Achievement_Completionist Game.Achievement.Completionist Completed all side objectives
17 Game_Achievement_FirstDeath Game.Achievement.FirstDeath Died for the first time
18 Game_Achievement_TenDeaths Game.Achievement.TenDeaths Died 10 times
19 Game_Achievement_Chapter1Complete Game.Achievement.Chapter1Complete Completed Chapter 1
20 Game_Achievement_Chapter2Complete Game.Achievement.Chapter2Complete Completed Chapter 2
21 Game_Achievement_Chapter3Complete Game.Achievement.Chapter3Complete Completed Chapter 3
22 Game_Achievement_AllEndings Game.Achievement.AllEndings Unlocked every ending

View File

@@ -0,0 +1,29 @@
Name,Tag,DevComment
Framework_Audio_Bus_Master,Framework.Audio.Bus.Master,Master audio bus
Framework_Audio_Bus_SFX,Framework.Audio.Bus.SFX,Sound effects bus
Framework_Audio_Bus_Ambient,Framework.Audio.Bus.Ambient,Ambient audio bus
Framework_Audio_Bus_Music,Framework.Audio.Bus.Music,Music bus
Framework_Audio_Bus_Dialogue,Framework.Audio.Bus.Dialogue,Dialogue/VO bus
Framework_Audio_Room_Small,Framework.Audio.Room.Small,Small room acoustics
Framework_Audio_Room_Large,Framework.Audio.Room.Large,Large room acoustics
Framework_Audio_Room_Outdoor,Framework.Audio.Room.Outdoor,Outdoor acoustics
Framework_Audio_Room_Cave,Framework.Audio.Room.Cave,Cave acoustics
Framework_Audio_Room_Hallway,Framework.Audio.Room.Hallway,Hallway acoustics
Framework_Audio_Room_Bathroom,Framework.Audio.Room.Bathroom,Bathroom acoustics
Framework_Audio_Room_Cathedral,Framework.Audio.Room.Cathedral,Cathedral acoustics
Framework_Audio_Room_Anchoric,Framework.Audio.Room.Anchoric,Anechoic/dead acoustics
Framework_Audio_Parameter_HeartRate,Framework.Audio.Parameter.HeartRate,Heart rate audio parameter
Framework_Audio_Parameter_Stress,Framework.Audio.Parameter.Stress,Stress audio parameter
Framework_Audio_Parameter_Fear,Framework.Audio.Parameter.Fear,Fear audio parameter
Framework_Audio_Parameter_MusicIntensity,Framework.Audio.Parameter.MusicIntensity,Music intensity parameter
Framework_Audio_Parameter_Tension,Framework.Audio.Parameter.Tension,Tension parameter
Framework_Audio_Surface_Concrete,Framework.Audio.Surface.Concrete,Concrete footstep
Framework_Audio_Surface_Wood,Framework.Audio.Surface.Wood,Wood footstep
Framework_Audio_Surface_Metal,Framework.Audio.Surface.Metal,Metal footstep
Framework_Audio_Surface_Water,Framework.Audio.Surface.Water,Water footstep
Framework_Audio_Surface_Carpet,Framework.Audio.Surface.Carpet,Carpet footstep
Framework_Audio_Surface_Gravel,Framework.Audio.Surface.Gravel,Gravel footstep
Framework_Audio_Surface_Glass,Framework.Audio.Surface.Glass,Glass footstep
Framework_Audio_Surface_Dirt,Framework.Audio.Surface.Dirt,Dirt footstep
Framework_Audio_Surface_Grass,Framework.Audio.Surface.Grass,Grass footstep
Framework_Audio_Surface_Tile,Framework.Audio.Surface.Tile,Tile footstep
1 Name Tag DevComment
2 Framework_Audio_Bus_Master Framework.Audio.Bus.Master Master audio bus
3 Framework_Audio_Bus_SFX Framework.Audio.Bus.SFX Sound effects bus
4 Framework_Audio_Bus_Ambient Framework.Audio.Bus.Ambient Ambient audio bus
5 Framework_Audio_Bus_Music Framework.Audio.Bus.Music Music bus
6 Framework_Audio_Bus_Dialogue Framework.Audio.Bus.Dialogue Dialogue/VO bus
7 Framework_Audio_Room_Small Framework.Audio.Room.Small Small room acoustics
8 Framework_Audio_Room_Large Framework.Audio.Room.Large Large room acoustics
9 Framework_Audio_Room_Outdoor Framework.Audio.Room.Outdoor Outdoor acoustics
10 Framework_Audio_Room_Cave Framework.Audio.Room.Cave Cave acoustics
11 Framework_Audio_Room_Hallway Framework.Audio.Room.Hallway Hallway acoustics
12 Framework_Audio_Room_Bathroom Framework.Audio.Room.Bathroom Bathroom acoustics
13 Framework_Audio_Room_Cathedral Framework.Audio.Room.Cathedral Cathedral acoustics
14 Framework_Audio_Room_Anchoric Framework.Audio.Room.Anchoric Anechoic/dead acoustics
15 Framework_Audio_Parameter_HeartRate Framework.Audio.Parameter.HeartRate Heart rate audio parameter
16 Framework_Audio_Parameter_Stress Framework.Audio.Parameter.Stress Stress audio parameter
17 Framework_Audio_Parameter_Fear Framework.Audio.Parameter.Fear Fear audio parameter
18 Framework_Audio_Parameter_MusicIntensity Framework.Audio.Parameter.MusicIntensity Music intensity parameter
19 Framework_Audio_Parameter_Tension Framework.Audio.Parameter.Tension Tension parameter
20 Framework_Audio_Surface_Concrete Framework.Audio.Surface.Concrete Concrete footstep
21 Framework_Audio_Surface_Wood Framework.Audio.Surface.Wood Wood footstep
22 Framework_Audio_Surface_Metal Framework.Audio.Surface.Metal Metal footstep
23 Framework_Audio_Surface_Water Framework.Audio.Surface.Water Water footstep
24 Framework_Audio_Surface_Carpet Framework.Audio.Surface.Carpet Carpet footstep
25 Framework_Audio_Surface_Gravel Framework.Audio.Surface.Gravel Gravel footstep
26 Framework_Audio_Surface_Glass Framework.Audio.Surface.Glass Glass footstep
27 Framework_Audio_Surface_Dirt Framework.Audio.Surface.Dirt Dirt footstep
28 Framework_Audio_Surface_Grass Framework.Audio.Surface.Grass Grass footstep
29 Framework_Audio_Surface_Tile Framework.Audio.Surface.Tile Tile footstep

View File

@@ -0,0 +1,28 @@
Name,Tag,DevComment
Framework_Combat_Damage_Physical,Framework.Combat.Damage.Physical,Physical/blunt damage type
Framework_Combat_Damage_Arcane,Framework.Combat.Damage.Arcane,Arcane/magic damage type
Framework_Combat_Damage_Fire,Framework.Combat.Damage.Fire,Fire damage type
Framework_Combat_Damage_Poison,Framework.Combat.Damage.Poison,Poison damage type
Framework_Combat_Damage_Fear,Framework.Combat.Damage.Fear,Fear/psychological damage type
Framework_Combat_Damage_Environmental,Framework.Combat.Damage.Environmental,Environmental hazard damage
Framework_Combat_Damage_True,Framework.Combat.Damage.True,True damage (bypasses all resistance)
Framework_Combat_Weapon_Firearm,Framework.Combat.Weapon.Firearm,Firearm weapon type
Framework_Combat_Weapon_Melee,Framework.Combat.Weapon.Melee,Melee weapon type
Framework_Combat_Weapon_Throwable,Framework.Combat.Weapon.Throwable,Throwable weapon
Framework_Combat_Ammo_Pistol,Framework.Combat.Ammo.Pistol,Pistol ammunition
Framework_Combat_Ammo_Rifle,Framework.Combat.Ammo.Rifle,Rifle ammunition
Framework_Combat_Ammo_Shotgun,Framework.Combat.Ammo.Shotgun,Shotgun shells
Framework_Combat_Ammo_Energy,Framework.Combat.Ammo.Energy,Energy cells
Framework_Combat_FireMode_SemiAuto,Framework.Combat.FireMode.SemiAuto,One shot per trigger press
Framework_Combat_FireMode_FullAuto,Framework.Combat.FireMode.FullAuto,Continuous fire while held
Framework_Combat_FireMode_Burst,Framework.Combat.FireMode.Burst,Fixed burst count
Framework_Combat_FireMode_Charge,Framework.Combat.FireMode.Charge,Hold to charge release
Framework_Combat_HitReaction_Flinch,Framework.Combat.HitReaction.Flinch,Minor directional flinch
Framework_Combat_HitReaction_Stagger,Framework.Combat.HitReaction.Stagger,Heavy stagger
Framework_Combat_HitReaction_Knockdown,Framework.Combat.HitReaction.Knockdown,Knocked to ground
Framework_Combat_HitReaction_Ragdoll,Framework.Combat.HitReaction.Ragdoll,Full ragdoll on death
Framework_Combat_Feedback_HitMarker,Framework.Combat.Feedback.HitMarker,Hit marker UI element
Framework_Combat_Feedback_KillConfirm,Framework.Combat.Feedback.KillConfirm,Kill confirm UI element
Framework_Combat_Shield_Active,Framework.Combat.Shield.Active,Shield is blocking
Framework_Combat_Shield_Broken,Framework.Combat.Shield.Broken,Shield durability zero
Framework_Combat_Shield_Recharging,Framework.Combat.Shield.Recharging,Shield recharging
1 Name Tag DevComment
2 Framework_Combat_Damage_Physical Framework.Combat.Damage.Physical Physical/blunt damage type
3 Framework_Combat_Damage_Arcane Framework.Combat.Damage.Arcane Arcane/magic damage type
4 Framework_Combat_Damage_Fire Framework.Combat.Damage.Fire Fire damage type
5 Framework_Combat_Damage_Poison Framework.Combat.Damage.Poison Poison damage type
6 Framework_Combat_Damage_Fear Framework.Combat.Damage.Fear Fear/psychological damage type
7 Framework_Combat_Damage_Environmental Framework.Combat.Damage.Environmental Environmental hazard damage
8 Framework_Combat_Damage_True Framework.Combat.Damage.True True damage (bypasses all resistance)
9 Framework_Combat_Weapon_Firearm Framework.Combat.Weapon.Firearm Firearm weapon type
10 Framework_Combat_Weapon_Melee Framework.Combat.Weapon.Melee Melee weapon type
11 Framework_Combat_Weapon_Throwable Framework.Combat.Weapon.Throwable Throwable weapon
12 Framework_Combat_Ammo_Pistol Framework.Combat.Ammo.Pistol Pistol ammunition
13 Framework_Combat_Ammo_Rifle Framework.Combat.Ammo.Rifle Rifle ammunition
14 Framework_Combat_Ammo_Shotgun Framework.Combat.Ammo.Shotgun Shotgun shells
15 Framework_Combat_Ammo_Energy Framework.Combat.Ammo.Energy Energy cells
16 Framework_Combat_FireMode_SemiAuto Framework.Combat.FireMode.SemiAuto One shot per trigger press
17 Framework_Combat_FireMode_FullAuto Framework.Combat.FireMode.FullAuto Continuous fire while held
18 Framework_Combat_FireMode_Burst Framework.Combat.FireMode.Burst Fixed burst count
19 Framework_Combat_FireMode_Charge Framework.Combat.FireMode.Charge Hold to charge release
20 Framework_Combat_HitReaction_Flinch Framework.Combat.HitReaction.Flinch Minor directional flinch
21 Framework_Combat_HitReaction_Stagger Framework.Combat.HitReaction.Stagger Heavy stagger
22 Framework_Combat_HitReaction_Knockdown Framework.Combat.HitReaction.Knockdown Knocked to ground
23 Framework_Combat_HitReaction_Ragdoll Framework.Combat.HitReaction.Ragdoll Full ragdoll on death
24 Framework_Combat_Feedback_HitMarker Framework.Combat.Feedback.HitMarker Hit marker UI element
25 Framework_Combat_Feedback_KillConfirm Framework.Combat.Feedback.KillConfirm Kill confirm UI element
26 Framework_Combat_Shield_Active Framework.Combat.Shield.Active Shield is blocking
27 Framework_Combat_Shield_Broken Framework.Combat.Shield.Broken Shield durability zero
28 Framework_Combat_Shield_Recharging Framework.Combat.Shield.Recharging Shield recharging

View File

@@ -0,0 +1,35 @@
Name,Tag,DevComment
Game_Achievement,Game.Achievement,Root achievement namespace
Game_Achievement_FirstBlood,Game.Achievement.FirstBlood,First kill
Game_Achievement_Survivor,Game.Achievement.Survivor,Survived first chapter
Game_Achievement_Pacifist,Game.Achievement.Pacifist,Completed chapter without killing
Game_Achievement_Ghost,Game.Achievement.Ghost,Never detected in a chapter
Game_Achievement_Collector,Game.Achievement.Collector,Collected all items
Game_Achievement_LoreMaster,Game.Achievement.LoreMaster,Found all lore entries
Game_Achievement_SpeedRunner,Game.Achievement.SpeedRunner,Completed game under time limit
Game_Achievement_TrueEnding,Game.Achievement.TrueEnding,Unlocked true ending
Game_Environment_Atmosphere_Safe,Game.Environment.Atmosphere.Safe,Safe zone atmosphere
Game_Environment_Atmosphere_Neutral,Game.Environment.Atmosphere.Neutral,Neutral atmosphere
Game_Environment_Atmosphere_Tense,Game.Environment.Atmosphere.Tense,Tension building
Game_Environment_Atmosphere_Danger,Game.Environment.Atmosphere.Danger,Active danger
Game_Environment_Atmosphere_Terror,Game.Environment.Atmosphere.Terror,Peak terror
Game_Environment_Atmosphere_Eerie,Game.Environment.Atmosphere.Eerie,Eerie ambient
Game_Environment_Scare,Game.Environment.Scare,Scare event namespace
Game_Environment_Scare_MirrorJump,Game.Environment.Scare.MirrorJump,Mirror jump scare
Game_Environment_Scare_CeilingDrop,Game.Environment.Scare.CeilingDrop,Body drops from ceiling
Game_Environment_Scare_DoorSlam,Game.Environment.Scare.DoorSlam,Door slams behind player
Game_Environment_Scare_Whisper,Game.Environment.Scare.Whisper,Ghost whisper audio
Game_Environment_Scare_LightFlicker,Game.Environment.Scare.LightFlicker,Lights flicker then blackout
Game_Environment_Light_Flicker,Game.Environment.Light.Flicker,Rapid flicker event
Game_Environment_Light_Strobe,Game.Environment.Light.Strobe,Strobe light event
Game_Environment_Light_Blackout,Game.Environment.Light.Blackout,Complete blackout event
Game_Environment_Light_ColorShift,Game.Environment.Light.ColorShift,Color temperature shift
Game_Environment_Pacing_Calm,Game.Environment.Pacing.Calm,Calm pacing band
Game_Environment_Pacing_Exploration,Game.Environment.Pacing.Exploration,Exploration pacing
Game_Environment_Pacing_Tension,Game.Environment.Pacing.Tension,Tension building
Game_Environment_Pacing_Combat,Game.Environment.Pacing.Combat,Combat encounter
Game_Environment_Pacing_Climax,Game.Environment.Pacing.Climax,Story climax
Game_Environment_Pacing_Resolution,Game.Environment.Pacing.Resolution,Post-climax resolution
Game_Environment_Performance_High,Game.Environment.Performance.High,High quality LOD target
Game_Environment_Performance_Medium,Game.Environment.Performance.Medium,Medium quality
Game_Environment_Performance_Low,Game.Environment.Performance.Low,Low quality LOD target
1 Name Tag DevComment
2 Game_Achievement Game.Achievement Root achievement namespace
3 Game_Achievement_FirstBlood Game.Achievement.FirstBlood First kill
4 Game_Achievement_Survivor Game.Achievement.Survivor Survived first chapter
5 Game_Achievement_Pacifist Game.Achievement.Pacifist Completed chapter without killing
6 Game_Achievement_Ghost Game.Achievement.Ghost Never detected in a chapter
7 Game_Achievement_Collector Game.Achievement.Collector Collected all items
8 Game_Achievement_LoreMaster Game.Achievement.LoreMaster Found all lore entries
9 Game_Achievement_SpeedRunner Game.Achievement.SpeedRunner Completed game under time limit
10 Game_Achievement_TrueEnding Game.Achievement.TrueEnding Unlocked true ending
11 Game_Environment_Atmosphere_Safe Game.Environment.Atmosphere.Safe Safe zone atmosphere
12 Game_Environment_Atmosphere_Neutral Game.Environment.Atmosphere.Neutral Neutral atmosphere
13 Game_Environment_Atmosphere_Tense Game.Environment.Atmosphere.Tense Tension building
14 Game_Environment_Atmosphere_Danger Game.Environment.Atmosphere.Danger Active danger
15 Game_Environment_Atmosphere_Terror Game.Environment.Atmosphere.Terror Peak terror
16 Game_Environment_Atmosphere_Eerie Game.Environment.Atmosphere.Eerie Eerie ambient
17 Game_Environment_Scare Game.Environment.Scare Scare event namespace
18 Game_Environment_Scare_MirrorJump Game.Environment.Scare.MirrorJump Mirror jump scare
19 Game_Environment_Scare_CeilingDrop Game.Environment.Scare.CeilingDrop Body drops from ceiling
20 Game_Environment_Scare_DoorSlam Game.Environment.Scare.DoorSlam Door slams behind player
21 Game_Environment_Scare_Whisper Game.Environment.Scare.Whisper Ghost whisper audio
22 Game_Environment_Scare_LightFlicker Game.Environment.Scare.LightFlicker Lights flicker then blackout
23 Game_Environment_Light_Flicker Game.Environment.Light.Flicker Rapid flicker event
24 Game_Environment_Light_Strobe Game.Environment.Light.Strobe Strobe light event
25 Game_Environment_Light_Blackout Game.Environment.Light.Blackout Complete blackout event
26 Game_Environment_Light_ColorShift Game.Environment.Light.ColorShift Color temperature shift
27 Game_Environment_Pacing_Calm Game.Environment.Pacing.Calm Calm pacing band
28 Game_Environment_Pacing_Exploration Game.Environment.Pacing.Exploration Exploration pacing
29 Game_Environment_Pacing_Tension Game.Environment.Pacing.Tension Tension building
30 Game_Environment_Pacing_Combat Game.Environment.Pacing.Combat Combat encounter
31 Game_Environment_Pacing_Climax Game.Environment.Pacing.Climax Story climax
32 Game_Environment_Pacing_Resolution Game.Environment.Pacing.Resolution Post-climax resolution
33 Game_Environment_Performance_High Game.Environment.Performance.High High quality LOD target
34 Game_Environment_Performance_Medium Game.Environment.Performance.Medium Medium quality
35 Game_Environment_Performance_Low Game.Environment.Performance.Low Low quality LOD target

View File

@@ -0,0 +1,37 @@
Name,Tag,DevComment
Framework_Interaction_Type_Pickup,Framework.Interaction.Type.Pickup,Pick up an item
Framework_Interaction_Type_Door,Framework.Interaction.Type.Door,Open/close a door
Framework_Interaction_Type_Drawer,Framework.Interaction.Type.Drawer,Open/close a drawer
Framework_Interaction_Type_Container,Framework.Interaction.Type.Container,Open/loot a container
Framework_Interaction_Type_Inspect,Framework.Interaction.Type.Inspect,Examine an object in 3D
Framework_Interaction_Type_Climb,Framework.Interaction.Type.Climb,Vault or mantle traversal
Framework_Interaction_Type_Hide,Framework.Interaction.Type.Hide,Enter a hiding spot
Framework_Interaction_Type_Use,Framework.Interaction.Type.Use,Use a world object (lever/button/terminal)
Framework_Interaction_Type_Combine,Framework.Interaction.Type.Combine,Combine two items
Framework_Interaction_Type_Grab,Framework.Interaction.Type.Grab,Grab a physics object
Framework_Interaction_Type_Push,Framework.Interaction.Type.Push,Push a physics object
Framework_Interaction_Type_Talk,Framework.Interaction.Type.Talk,Talk to an NPC
Framework_Interaction_Type_Puzzle,Framework.Interaction.Type.Puzzle,Interact with a puzzle device
Framework_Interaction_Context_Requires_Key,Framework.Interaction.Context.Requires.Key,Interaction requires a specific key item
Framework_Interaction_Context_Requires_Item,Framework.Interaction.Context.Requires.Item,Interaction requires a specific item
Framework_Interaction_Context_Locked,Framework.Interaction.Context.Locked,Interaction is locked
Framework_Interaction_Context_Disabled,Framework.Interaction.Context.Disabled,Interaction is disabled
Framework_Interaction_Context_OneShot,Framework.Interaction.Context.OneShot,Single-use interaction
Framework_Interaction_Context_Cooldown,Framework.Interaction.Context.Cooldown,Interaction on cooldown
Framework_Interaction_Prompt_Press,Framework.Interaction.Prompt.Press,Press-to-interact prompt
Framework_Interaction_Prompt_Hold,Framework.Interaction.Prompt.Hold,Hold-to-interact prompt
Framework_Interaction_Prompt_DoubleTap,Framework.Interaction.Prompt.DoubleTap,Double-tap prompt
Framework_Interaction_HidingSpot_Locker,Framework.Interaction.HidingSpot.Locker,Full enclosure
Framework_Interaction_HidingSpot_BehindCover,Framework.Interaction.HidingSpot.BehindCover,Behind low cover
Framework_Interaction_HidingSpot_Under,Framework.Interaction.HidingSpot.Under,Under furniture
Framework_Interaction_HidingSpot_Shadow,Framework.Interaction.HidingSpot.Shadow,In darkness
Framework_Interaction_HidingSpot_Grass,Framework.Interaction.HidingSpot.Grass,In tall grass
Framework_Interaction_Traversal_Vault,Framework.Interaction.Traversal.Vault,Vault over obstacle
Framework_Interaction_Traversal_Mantle,Framework.Interaction.Traversal.Mantle,Mantle onto ledge
Framework_Interaction_Traversal_Slide,Framework.Interaction.Traversal.Slide,Slide under barrier
Framework_Interaction_Traversal_Squeeze,Framework.Interaction.Traversal.Squeeze,Squeeze through gap
Framework_Interaction_Traversal_LedgeGrab,Framework.Interaction.Traversal.LedgeGrab,Grab ledge
Framework_Interaction_Door_Closed,Framework.Interaction.Door.Closed,Door state closed
Framework_Interaction_Door_Open,Framework.Interaction.Door.Open,Door state open
Framework_Interaction_Door_Locked,Framework.Interaction.Door.Locked,Door locked
Framework_Interaction_Door_Barricaded,Framework.Interaction.Door.Barricaded,Door barricaded
1 Name Tag DevComment
2 Framework_Interaction_Type_Pickup Framework.Interaction.Type.Pickup Pick up an item
3 Framework_Interaction_Type_Door Framework.Interaction.Type.Door Open/close a door
4 Framework_Interaction_Type_Drawer Framework.Interaction.Type.Drawer Open/close a drawer
5 Framework_Interaction_Type_Container Framework.Interaction.Type.Container Open/loot a container
6 Framework_Interaction_Type_Inspect Framework.Interaction.Type.Inspect Examine an object in 3D
7 Framework_Interaction_Type_Climb Framework.Interaction.Type.Climb Vault or mantle traversal
8 Framework_Interaction_Type_Hide Framework.Interaction.Type.Hide Enter a hiding spot
9 Framework_Interaction_Type_Use Framework.Interaction.Type.Use Use a world object (lever/button/terminal)
10 Framework_Interaction_Type_Combine Framework.Interaction.Type.Combine Combine two items
11 Framework_Interaction_Type_Grab Framework.Interaction.Type.Grab Grab a physics object
12 Framework_Interaction_Type_Push Framework.Interaction.Type.Push Push a physics object
13 Framework_Interaction_Type_Talk Framework.Interaction.Type.Talk Talk to an NPC
14 Framework_Interaction_Type_Puzzle Framework.Interaction.Type.Puzzle Interact with a puzzle device
15 Framework_Interaction_Context_Requires_Key Framework.Interaction.Context.Requires.Key Interaction requires a specific key item
16 Framework_Interaction_Context_Requires_Item Framework.Interaction.Context.Requires.Item Interaction requires a specific item
17 Framework_Interaction_Context_Locked Framework.Interaction.Context.Locked Interaction is locked
18 Framework_Interaction_Context_Disabled Framework.Interaction.Context.Disabled Interaction is disabled
19 Framework_Interaction_Context_OneShot Framework.Interaction.Context.OneShot Single-use interaction
20 Framework_Interaction_Context_Cooldown Framework.Interaction.Context.Cooldown Interaction on cooldown
21 Framework_Interaction_Prompt_Press Framework.Interaction.Prompt.Press Press-to-interact prompt
22 Framework_Interaction_Prompt_Hold Framework.Interaction.Prompt.Hold Hold-to-interact prompt
23 Framework_Interaction_Prompt_DoubleTap Framework.Interaction.Prompt.DoubleTap Double-tap prompt
24 Framework_Interaction_HidingSpot_Locker Framework.Interaction.HidingSpot.Locker Full enclosure
25 Framework_Interaction_HidingSpot_BehindCover Framework.Interaction.HidingSpot.BehindCover Behind low cover
26 Framework_Interaction_HidingSpot_Under Framework.Interaction.HidingSpot.Under Under furniture
27 Framework_Interaction_HidingSpot_Shadow Framework.Interaction.HidingSpot.Shadow In darkness
28 Framework_Interaction_HidingSpot_Grass Framework.Interaction.HidingSpot.Grass In tall grass
29 Framework_Interaction_Traversal_Vault Framework.Interaction.Traversal.Vault Vault over obstacle
30 Framework_Interaction_Traversal_Mantle Framework.Interaction.Traversal.Mantle Mantle onto ledge
31 Framework_Interaction_Traversal_Slide Framework.Interaction.Traversal.Slide Slide under barrier
32 Framework_Interaction_Traversal_Squeeze Framework.Interaction.Traversal.Squeeze Squeeze through gap
33 Framework_Interaction_Traversal_LedgeGrab Framework.Interaction.Traversal.LedgeGrab Grab ledge
34 Framework_Interaction_Door_Closed Framework.Interaction.Door.Closed Door state closed
35 Framework_Interaction_Door_Open Framework.Interaction.Door.Open Door state open
36 Framework_Interaction_Door_Locked Framework.Interaction.Door.Locked Door locked
37 Framework_Interaction_Door_Barricaded Framework.Interaction.Door.Barricaded Door barricaded

View File

@@ -0,0 +1,28 @@
Name,Tag,DevComment
Framework_Item_Type_Weapon,Framework.Item.Type.Weapon,Firearm or melee weapon
Framework_Item_Type_Consumable,Framework.Item.Type.Consumable,Health pack stim stamina item
Framework_Item_Type_KeyItem,Framework.Item.Type.KeyItem,Story key item
Framework_Item_Type_Document,Framework.Item.Type.Document,Readable document or note
Framework_Item_Type_Collectible,Framework.Item.Type.Collectible,Collectible with set tracking
Framework_Item_Type_Ammo,Framework.Item.Type.Ammo,Ammunition pickup
Framework_Item_Type_Tool,Framework.Item.Type.Tool,Flashlight lockpick etc
Framework_Item_Type_Resource,Framework.Item.Type.Resource,Crafting resource
Framework_Item_Type_Misc,Framework.Item.Type.Misc,Miscellaneous item
Framework_Item_Slot_PrimaryWeapon,Framework.Item.Slot.PrimaryWeapon,Equipped primary weapon slot
Framework_Item_Slot_SecondaryWeapon,Framework.Item.Slot.SecondaryWeapon,Equipped secondary weapon slot
Framework_Item_Slot_Flashlight,Framework.Item.Slot.Flashlight,Equipped flashlight slot
Framework_Item_Slot_Shield,Framework.Item.Slot.Shield,Equipped shield slot
Framework_Item_Slot_Active,Framework.Item.Slot.Active,Active quick-slot item
Framework_Item_Slot_Quick1,Framework.Item.Slot.Quick1,Quick slot 1
Framework_Item_Slot_Quick2,Framework.Item.Slot.Quick2,Quick slot 2
Framework_Item_Slot_Quick3,Framework.Item.Slot.Quick3,Quick slot 3
Framework_Item_Slot_Quick4,Framework.Item.Slot.Quick4,Quick slot 4
Framework_Item_Rarity_Trash,Framework.Item.Rarity.Trash,Trash tier loot
Framework_Item_Rarity_Common,Framework.Item.Rarity.Common,Common tier loot
Framework_Item_Rarity_Uncommon,Framework.Item.Rarity.Uncommon,Uncommon tier loot
Framework_Item_Rarity_Rare,Framework.Item.Rarity.Rare,Rare tier loot
Framework_Item_Rarity_Legendary,Framework.Item.Rarity.Legendary,Legendary tier loot
Framework_Item_Context_Stackable,Framework.Item.Context.Stackable,Item can stack in inventory
Framework_Item_Context_Unique,Framework.Item.Context.Unique,Only one can exist
Framework_Item_Context_Quest,Framework.Item.Context.Quest,Quest-related item
Framework_Item_Context_Droppable,Framework.Item.Context.Droppable,Can be dropped from inventory
1 Name Tag DevComment
2 Framework_Item_Type_Weapon Framework.Item.Type.Weapon Firearm or melee weapon
3 Framework_Item_Type_Consumable Framework.Item.Type.Consumable Health pack stim stamina item
4 Framework_Item_Type_KeyItem Framework.Item.Type.KeyItem Story key item
5 Framework_Item_Type_Document Framework.Item.Type.Document Readable document or note
6 Framework_Item_Type_Collectible Framework.Item.Type.Collectible Collectible with set tracking
7 Framework_Item_Type_Ammo Framework.Item.Type.Ammo Ammunition pickup
8 Framework_Item_Type_Tool Framework.Item.Type.Tool Flashlight lockpick etc
9 Framework_Item_Type_Resource Framework.Item.Type.Resource Crafting resource
10 Framework_Item_Type_Misc Framework.Item.Type.Misc Miscellaneous item
11 Framework_Item_Slot_PrimaryWeapon Framework.Item.Slot.PrimaryWeapon Equipped primary weapon slot
12 Framework_Item_Slot_SecondaryWeapon Framework.Item.Slot.SecondaryWeapon Equipped secondary weapon slot
13 Framework_Item_Slot_Flashlight Framework.Item.Slot.Flashlight Equipped flashlight slot
14 Framework_Item_Slot_Shield Framework.Item.Slot.Shield Equipped shield slot
15 Framework_Item_Slot_Active Framework.Item.Slot.Active Active quick-slot item
16 Framework_Item_Slot_Quick1 Framework.Item.Slot.Quick1 Quick slot 1
17 Framework_Item_Slot_Quick2 Framework.Item.Slot.Quick2 Quick slot 2
18 Framework_Item_Slot_Quick3 Framework.Item.Slot.Quick3 Quick slot 3
19 Framework_Item_Slot_Quick4 Framework.Item.Slot.Quick4 Quick slot 4
20 Framework_Item_Rarity_Trash Framework.Item.Rarity.Trash Trash tier loot
21 Framework_Item_Rarity_Common Framework.Item.Rarity.Common Common tier loot
22 Framework_Item_Rarity_Uncommon Framework.Item.Rarity.Uncommon Uncommon tier loot
23 Framework_Item_Rarity_Rare Framework.Item.Rarity.Rare Rare tier loot
24 Framework_Item_Rarity_Legendary Framework.Item.Rarity.Legendary Legendary tier loot
25 Framework_Item_Context_Stackable Framework.Item.Context.Stackable Item can stack in inventory
26 Framework_Item_Context_Unique Framework.Item.Context.Unique Only one can exist
27 Framework_Item_Context_Quest Framework.Item.Context.Quest Quest-related item
28 Framework_Item_Context_Droppable Framework.Item.Context.Droppable Can be dropped from inventory

View File

@@ -0,0 +1,55 @@
Name,Tag,DevComment
Game_Narrative_Flag,Game.Narrative.Flag,Root narrative flag namespace
Game_Narrative_Phase,Game.Narrative.Phase,Story phase namespace
Game_Narrative_Choice,Game.Narrative.Choice,Dialogue choice consequence tags
Game_Narrative_Ending,Game.Narrative.Ending,Ending evaluation tags
Game_Narrative_Flag_PrologueComplete,Game.Narrative.Flag.PrologueComplete,Prologue chapter completed
Game_Narrative_Flag_Chapter1Complete,Game.Narrative.Flag.Chapter1Complete,Chapter 1 completed
Game_Narrative_Flag_Chapter2Complete,Game.Narrative.Flag.Chapter2Complete,Chapter 2 completed
Game_Narrative_Flag_Chapter3Complete,Game.Narrative.Flag.Chapter3Complete,Chapter 3 completed
Game_Narrative_Flag_Act1Complete,Game.Narrative.Flag.Act1Complete,Act 1 completed
Game_Narrative_Flag_Act2Complete,Game.Narrative.Flag.Act2Complete,Act 2 completed
Game_Narrative_Flag_Act3Complete,Game.Narrative.Flag.Act3Complete,Act 3 completed
Game_Narrative_Flag_FoundKey,Game.Narrative.Flag.FoundKey,Player found the basement key
Game_Narrative_Flag_BasementDoorOpened,Game.Narrative.Flag.BasementDoorOpened,Basement door unlocked
Game_Narrative_Flag_SawMonster,Game.Narrative.Flag.SawMonster,Player first saw the monster
Game_Narrative_Flag_SavedNPC,Game.Narrative.Flag.SavedNPC,Player saved the trapped NPC
Game_Narrative_Phase_Act1,Game.Narrative.Phase.Act1,Story phase: Act 1
Game_Narrative_Phase_Act2,Game.Narrative.Phase.Act2,Story phase: Act 2
Game_Narrative_Phase_Act3,Game.Narrative.Phase.Act3,Story phase: Act 3
Game_Narrative_Phase_Prologue,Game.Narrative.Phase.Prologue,Story phase: Prologue
Game_Narrative_Phase_Epilogue,Game.Narrative.Phase.Epilogue,Story phase: Epilogue
Game_Narrative_Phase_Chapter1,Game.Narrative.Phase.Chapter1,Chapter 1: The Awakening
Game_Narrative_Phase_Chapter2,Game.Narrative.Phase.Chapter2,Chapter 2: Into Darkness
Game_Narrative_Phase_Chapter3,Game.Narrative.Phase.Chapter3,Chapter 3: The Truth
Game_Narrative_Phase_Chapter4,Game.Narrative.Phase.Chapter4,Chapter 4: Confrontation
Game_Narrative_Choice_SparedEnemy,Game.Narrative.Choice.SparedEnemy,Player chose to spare
Game_Narrative_Choice_KilledEnemy,Game.Narrative.Choice.KilledEnemy,Player chose to kill
Game_Narrative_Choice_AcceptedDeal,Game.Narrative.Choice.AcceptedDeal,Player accepted the deal
Game_Narrative_Choice_RejectedDeal,Game.Narrative.Choice.RejectedDeal,Player rejected the deal
Game_Narrative_Choice_RevealedSecret,Game.Narrative.Choice.RevealedSecret,Player revealed the secret
Game_Narrative_Choice_KeptSilent,Game.Narrative.Choice.KeptSilent,Player stayed silent
Game_Narrative_Ending_Good,Game.Narrative.Ending.Good,Good ending path
Game_Narrative_Ending_Bad,Game.Narrative.Ending.Bad,Bad ending path
Game_Narrative_Ending_True,Game.Narrative.Ending.True,True/secret ending path
Game_Narrative_Ending_Sacrifice,Game.Narrative.Ending.Sacrifice,Sacrifice ending path
Game_Narrative_Ending_Escape,Game.Narrative.Ending.Escape,Escape ending path
Game_Narrative_Trial_HospitalEscape,Game.Narrative.Trial.HospitalEscape,Trial: escape the hospital
Game_Narrative_Trial_StealthBasement,Game.Narrative.Trial.StealthBasement,Trial: stealth through basement
Game_Narrative_Trial_SurviveSiege,Game.Narrative.Trial.SurviveSiege,Trial: survive the creature siege
Game_Narrative_Trial_Timebomb,Game.Narrative.Trial.Timebomb,Trial: defuse before timer expires
Game_Narrative_Cutscene_Intro,Game.Narrative.Cutscene.Intro,Intro cutscene
Game_Narrative_Cutscene_Act1End,Game.Narrative.Cutscene.Act1End,Act 1 ending cutscene
Game_Narrative_Cutscene_Act2End,Game.Narrative.Cutscene.Act2End,Act 2 ending cutscene
Game_Narrative_Cutscene_Finale,Game.Narrative.Cutscene.Finale,Final confrontation cutscene
Game_Narrative_Lore_Journal1,Game.Narrative.Lore.Journal1,Lore entry: Dr. Voss Journal 1
Game_Narrative_Lore_Newspaper,Game.Narrative.Lore.Newspaper,Lore entry: Abandoned Newspaper
Game_Narrative_Lore_AudioLog,Game.Narrative.Lore.AudioLog,Lore entry: Audio Log
Framework_Objective_Status_Active,Framework.Objective.Status.Active,Objective currently active
Framework_Objective_Status_Complete,Framework.Objective.Status.Complete,Objective completed
Framework_Objective_Status_Failed,Framework.Objective.Status.Failed,Objective failed
Framework_Objective_Status_Hidden,Framework.Objective.Status.Hidden,Objective hidden until discovered
Framework_Objective_Category_Main,Framework.Objective.Category.Main,Main quest objective
Framework_Objective_Category_Side,Framework.Objective.Category.Side,Optional side objective
Framework_Objective_Category_Hidden,Framework.Objective.Category.Hidden,Secret objective
Framework_Objective_Category_Tutorial,Framework.Objective.Category.Tutorial,Tutorial objective
1 Name Tag DevComment
2 Game_Narrative_Flag Game.Narrative.Flag Root narrative flag namespace
3 Game_Narrative_Phase Game.Narrative.Phase Story phase namespace
4 Game_Narrative_Choice Game.Narrative.Choice Dialogue choice consequence tags
5 Game_Narrative_Ending Game.Narrative.Ending Ending evaluation tags
6 Game_Narrative_Flag_PrologueComplete Game.Narrative.Flag.PrologueComplete Prologue chapter completed
7 Game_Narrative_Flag_Chapter1Complete Game.Narrative.Flag.Chapter1Complete Chapter 1 completed
8 Game_Narrative_Flag_Chapter2Complete Game.Narrative.Flag.Chapter2Complete Chapter 2 completed
9 Game_Narrative_Flag_Chapter3Complete Game.Narrative.Flag.Chapter3Complete Chapter 3 completed
10 Game_Narrative_Flag_Act1Complete Game.Narrative.Flag.Act1Complete Act 1 completed
11 Game_Narrative_Flag_Act2Complete Game.Narrative.Flag.Act2Complete Act 2 completed
12 Game_Narrative_Flag_Act3Complete Game.Narrative.Flag.Act3Complete Act 3 completed
13 Game_Narrative_Flag_FoundKey Game.Narrative.Flag.FoundKey Player found the basement key
14 Game_Narrative_Flag_BasementDoorOpened Game.Narrative.Flag.BasementDoorOpened Basement door unlocked
15 Game_Narrative_Flag_SawMonster Game.Narrative.Flag.SawMonster Player first saw the monster
16 Game_Narrative_Flag_SavedNPC Game.Narrative.Flag.SavedNPC Player saved the trapped NPC
17 Game_Narrative_Phase_Act1 Game.Narrative.Phase.Act1 Story phase: Act 1
18 Game_Narrative_Phase_Act2 Game.Narrative.Phase.Act2 Story phase: Act 2
19 Game_Narrative_Phase_Act3 Game.Narrative.Phase.Act3 Story phase: Act 3
20 Game_Narrative_Phase_Prologue Game.Narrative.Phase.Prologue Story phase: Prologue
21 Game_Narrative_Phase_Epilogue Game.Narrative.Phase.Epilogue Story phase: Epilogue
22 Game_Narrative_Phase_Chapter1 Game.Narrative.Phase.Chapter1 Chapter 1: The Awakening
23 Game_Narrative_Phase_Chapter2 Game.Narrative.Phase.Chapter2 Chapter 2: Into Darkness
24 Game_Narrative_Phase_Chapter3 Game.Narrative.Phase.Chapter3 Chapter 3: The Truth
25 Game_Narrative_Phase_Chapter4 Game.Narrative.Phase.Chapter4 Chapter 4: Confrontation
26 Game_Narrative_Choice_SparedEnemy Game.Narrative.Choice.SparedEnemy Player chose to spare
27 Game_Narrative_Choice_KilledEnemy Game.Narrative.Choice.KilledEnemy Player chose to kill
28 Game_Narrative_Choice_AcceptedDeal Game.Narrative.Choice.AcceptedDeal Player accepted the deal
29 Game_Narrative_Choice_RejectedDeal Game.Narrative.Choice.RejectedDeal Player rejected the deal
30 Game_Narrative_Choice_RevealedSecret Game.Narrative.Choice.RevealedSecret Player revealed the secret
31 Game_Narrative_Choice_KeptSilent Game.Narrative.Choice.KeptSilent Player stayed silent
32 Game_Narrative_Ending_Good Game.Narrative.Ending.Good Good ending path
33 Game_Narrative_Ending_Bad Game.Narrative.Ending.Bad Bad ending path
34 Game_Narrative_Ending_True Game.Narrative.Ending.True True/secret ending path
35 Game_Narrative_Ending_Sacrifice Game.Narrative.Ending.Sacrifice Sacrifice ending path
36 Game_Narrative_Ending_Escape Game.Narrative.Ending.Escape Escape ending path
37 Game_Narrative_Trial_HospitalEscape Game.Narrative.Trial.HospitalEscape Trial: escape the hospital
38 Game_Narrative_Trial_StealthBasement Game.Narrative.Trial.StealthBasement Trial: stealth through basement
39 Game_Narrative_Trial_SurviveSiege Game.Narrative.Trial.SurviveSiege Trial: survive the creature siege
40 Game_Narrative_Trial_Timebomb Game.Narrative.Trial.Timebomb Trial: defuse before timer expires
41 Game_Narrative_Cutscene_Intro Game.Narrative.Cutscene.Intro Intro cutscene
42 Game_Narrative_Cutscene_Act1End Game.Narrative.Cutscene.Act1End Act 1 ending cutscene
43 Game_Narrative_Cutscene_Act2End Game.Narrative.Cutscene.Act2End Act 2 ending cutscene
44 Game_Narrative_Cutscene_Finale Game.Narrative.Cutscene.Finale Final confrontation cutscene
45 Game_Narrative_Lore_Journal1 Game.Narrative.Lore.Journal1 Lore entry: Dr. Voss Journal 1
46 Game_Narrative_Lore_Newspaper Game.Narrative.Lore.Newspaper Lore entry: Abandoned Newspaper
47 Game_Narrative_Lore_AudioLog Game.Narrative.Lore.AudioLog Lore entry: Audio Log
48 Framework_Objective_Status_Active Framework.Objective.Status.Active Objective currently active
49 Framework_Objective_Status_Complete Framework.Objective.Status.Complete Objective completed
50 Framework_Objective_Status_Failed Framework.Objective.Status.Failed Objective failed
51 Framework_Objective_Status_Hidden Framework.Objective.Status.Hidden Objective hidden until discovered
52 Framework_Objective_Category_Main Framework.Objective.Category.Main Main quest objective
53 Framework_Objective_Category_Side Framework.Objective.Category.Side Optional side objective
54 Framework_Objective_Category_Hidden Framework.Objective.Category.Hidden Secret objective
55 Framework_Objective_Category_Tutorial Framework.Objective.Category.Tutorial Tutorial objective

View File

@@ -0,0 +1,35 @@
Name,Tag,DevComment
Framework_Player_State_Alive,Framework.Player.State.Alive,Player is alive and active
Framework_Player_State_Dead,Framework.Player.State.Dead,Player health reached zero
Framework_Player_State_Dying,Framework.Player.State.Dying,Player in downed-but-not-dead state
Framework_Player_State_Hidden,Framework.Player.State.Hidden,Player inside a hiding spot
Framework_Player_State_Interacting,Framework.Player.State.Interacting,Player using an object or UI
Framework_Player_Stress_Low,Framework.Player.Stress.Low,Calm or slightly uneasy
Framework_Player_Stress_Mid,Framework.Player.Stress.Mid,Distressed
Framework_Player_Stress_High,Framework.Player.Stress.High,Panicked
Framework_Player_Stress_Critical,Framework.Player.Stress.Critical,Terrified or catatonic
Framework_Player_Posture_Standing,Framework.Player.Posture.Standing,Default upright posture
Framework_Player_Posture_Crouching,Framework.Player.Posture.Crouching,Crouch-walking or stealth
Framework_Player_Posture_Prone,Framework.Player.Posture.Prone,Lying flat
Framework_Player_Posture_Vaulting,Framework.Player.Posture.Vaulting,Climbing or vaulting obstacle
Framework_Player_Movement_Idle,Framework.Player.Movement.Idle,Not moving
Framework_Player_Movement_Walking,Framework.Player.Movement.Walking,Slow movement
Framework_Player_Movement_Jogging,Framework.Player.Movement.Jogging,Normal movement
Framework_Player_Movement_Sprinting,Framework.Player.Movement.Sprinting,Fast movement with stamina drain
Framework_Player_Movement_Sneaking,Framework.Player.Movement.Sneaking,Quiet crouched movement
Framework_Player_Camera_Default,Framework.Player.Camera.Default,Normal camera
Framework_Player_Camera_Aiming,Framework.Player.Camera.Aiming,ADS zoomed camera
Framework_Player_Camera_Peeking,Framework.Player.Camera.Peeking,Camera offset for hiding peek
Framework_Player_Camera_Injured,Framework.Player.Camera.Injured,Low-health camera effects
Framework_Player_Body_FullBody,Framework.Player.Body.FullBody,Third-person or mirror mode
Framework_Player_Body_ArmsOnly,Framework.Player.Body.ArmsOnly,Default first-person
Framework_Player_Body_ArmsAndShadow,Framework.Player.Body.ArmsAndShadow,Arms plus shadow casting
Framework_Player_Body_Hidden,Framework.Player.Body.Hidden,No body visible (cutscenes/UI)
Framework_Player_Overlay_Clean,Framework.Player.Overlay.Clean,No body overlay
Framework_Player_Overlay_Blood,Framework.Player.Overlay.Blood,Blood splatter on body
Framework_Player_Overlay_Water,Framework.Player.Overlay.Water,Water droplets on body
Framework_Player_Overlay_Mud,Framework.Player.Overlay.Mud,Mud/dirt on body
Framework_Player_Vitals_Stamina_Normal,Framework.Player.Vitals.Stamina.Normal,Full stamina
Framework_Player_Vitals_Stamina_Low,Framework.Player.Vitals.Stamina.Low,Below low threshold
Framework_Player_Vitals_Stamina_Exhausted,Framework.Player.Vitals.Stamina.Exhausted,Below exhausted threshold
Framework_Player_Vitals_Health_Critical,Framework.Player.Vitals.Health.Critical,Below critical health threshold
1 Name Tag DevComment
2 Framework_Player_State_Alive Framework.Player.State.Alive Player is alive and active
3 Framework_Player_State_Dead Framework.Player.State.Dead Player health reached zero
4 Framework_Player_State_Dying Framework.Player.State.Dying Player in downed-but-not-dead state
5 Framework_Player_State_Hidden Framework.Player.State.Hidden Player inside a hiding spot
6 Framework_Player_State_Interacting Framework.Player.State.Interacting Player using an object or UI
7 Framework_Player_Stress_Low Framework.Player.Stress.Low Calm or slightly uneasy
8 Framework_Player_Stress_Mid Framework.Player.Stress.Mid Distressed
9 Framework_Player_Stress_High Framework.Player.Stress.High Panicked
10 Framework_Player_Stress_Critical Framework.Player.Stress.Critical Terrified or catatonic
11 Framework_Player_Posture_Standing Framework.Player.Posture.Standing Default upright posture
12 Framework_Player_Posture_Crouching Framework.Player.Posture.Crouching Crouch-walking or stealth
13 Framework_Player_Posture_Prone Framework.Player.Posture.Prone Lying flat
14 Framework_Player_Posture_Vaulting Framework.Player.Posture.Vaulting Climbing or vaulting obstacle
15 Framework_Player_Movement_Idle Framework.Player.Movement.Idle Not moving
16 Framework_Player_Movement_Walking Framework.Player.Movement.Walking Slow movement
17 Framework_Player_Movement_Jogging Framework.Player.Movement.Jogging Normal movement
18 Framework_Player_Movement_Sprinting Framework.Player.Movement.Sprinting Fast movement with stamina drain
19 Framework_Player_Movement_Sneaking Framework.Player.Movement.Sneaking Quiet crouched movement
20 Framework_Player_Camera_Default Framework.Player.Camera.Default Normal camera
21 Framework_Player_Camera_Aiming Framework.Player.Camera.Aiming ADS zoomed camera
22 Framework_Player_Camera_Peeking Framework.Player.Camera.Peeking Camera offset for hiding peek
23 Framework_Player_Camera_Injured Framework.Player.Camera.Injured Low-health camera effects
24 Framework_Player_Body_FullBody Framework.Player.Body.FullBody Third-person or mirror mode
25 Framework_Player_Body_ArmsOnly Framework.Player.Body.ArmsOnly Default first-person
26 Framework_Player_Body_ArmsAndShadow Framework.Player.Body.ArmsAndShadow Arms plus shadow casting
27 Framework_Player_Body_Hidden Framework.Player.Body.Hidden No body visible (cutscenes/UI)
28 Framework_Player_Overlay_Clean Framework.Player.Overlay.Clean No body overlay
29 Framework_Player_Overlay_Blood Framework.Player.Overlay.Blood Blood splatter on body
30 Framework_Player_Overlay_Water Framework.Player.Overlay.Water Water droplets on body
31 Framework_Player_Overlay_Mud Framework.Player.Overlay.Mud Mud/dirt on body
32 Framework_Player_Vitals_Stamina_Normal Framework.Player.Vitals.Stamina.Normal Full stamina
33 Framework_Player_Vitals_Stamina_Low Framework.Player.Vitals.Stamina.Low Below low threshold
34 Framework_Player_Vitals_Stamina_Exhausted Framework.Player.Vitals.Stamina.Exhausted Below exhausted threshold
35 Framework_Player_Vitals_Health_Critical Framework.Player.Vitals.Health.Critical Below critical health threshold

View File

@@ -0,0 +1,25 @@
Name,Tag,DevComment
Framework_Save_Type_Checkpoint,Framework.Save.Type.Checkpoint,Checkpoint auto-save
Framework_Save_Type_HardSave,Framework.Save.Type.HardSave,Manual save slot
Framework_Save_Type_AutoSave,Framework.Save.Type.AutoSave,Periodic auto-save
Framework_Save_Type_ChapterTransition,Framework.Save.Type.ChapterTransition,Save on chapter load
Framework_Save_Slot_1,Framework.Save.Slot.1,Save slot 1
Framework_Save_Slot_2,Framework.Save.Slot.2,Save slot 2
Framework_Save_Slot_3,Framework.Save.Slot.3,Save slot 3
Framework_Save_Slot_Auto,Framework.Save.Slot.Auto,Autosave slot
Framework_Save_Context_NewGame,Framework.Save.Context.NewGame,First save of new game
Framework_Save_Context_Continue,Framework.Save.Context.Continue,Load existing save
Framework_Save_Context_Delete,Framework.Save.Context.Delete,Delete save slot
Framework_Save_Context_Corrupted,Framework.Save.Context.Corrupted,Save file corrupted
Framework_DeathSpace_Active,Framework.DeathSpace.Active,Player in alternate death space
Framework_DeathSpace_Entered,Framework.DeathSpace.Entered,Player entered death space
Framework_DeathSpace_Exited,Framework.DeathSpace.Exited,Player exited death space
Framework_DeathSpace_FoundExit,Framework.DeathSpace.FoundExit,Player found the exit
Framework_Checkpoint_Active,Framework.Checkpoint.Active,Current active checkpoint
Framework_Checkpoint_Previous,Framework.Checkpoint.Previous,Previous checkpoint
Framework_Checkpoint_Reached,Framework.Checkpoint.Reached,A checkpoint was triggered
Framework_Respawn_Point,Framework.Respawn.Point,Default respawn location
Framework_Respawn_Start,Framework.Respawn.Start,Respawn sequence started
Framework_Respawn_Complete,Framework.Respawn.Complete,Respawn sequence completed
Framework_RunHistory_Death,Framework.RunHistory.Death,Death recorded in run history
Framework_RunHistory_Chapter,Framework.RunHistory.Chapter,Chapter completed in run history
1 Name Tag DevComment
2 Framework_Save_Type_Checkpoint Framework.Save.Type.Checkpoint Checkpoint auto-save
3 Framework_Save_Type_HardSave Framework.Save.Type.HardSave Manual save slot
4 Framework_Save_Type_AutoSave Framework.Save.Type.AutoSave Periodic auto-save
5 Framework_Save_Type_ChapterTransition Framework.Save.Type.ChapterTransition Save on chapter load
6 Framework_Save_Slot_1 Framework.Save.Slot.1 Save slot 1
7 Framework_Save_Slot_2 Framework.Save.Slot.2 Save slot 2
8 Framework_Save_Slot_3 Framework.Save.Slot.3 Save slot 3
9 Framework_Save_Slot_Auto Framework.Save.Slot.Auto Autosave slot
10 Framework_Save_Context_NewGame Framework.Save.Context.NewGame First save of new game
11 Framework_Save_Context_Continue Framework.Save.Context.Continue Load existing save
12 Framework_Save_Context_Delete Framework.Save.Context.Delete Delete save slot
13 Framework_Save_Context_Corrupted Framework.Save.Context.Corrupted Save file corrupted
14 Framework_DeathSpace_Active Framework.DeathSpace.Active Player in alternate death space
15 Framework_DeathSpace_Entered Framework.DeathSpace.Entered Player entered death space
16 Framework_DeathSpace_Exited Framework.DeathSpace.Exited Player exited death space
17 Framework_DeathSpace_FoundExit Framework.DeathSpace.FoundExit Player found the exit
18 Framework_Checkpoint_Active Framework.Checkpoint.Active Current active checkpoint
19 Framework_Checkpoint_Previous Framework.Checkpoint.Previous Previous checkpoint
20 Framework_Checkpoint_Reached Framework.Checkpoint.Reached A checkpoint was triggered
21 Framework_Respawn_Point Framework.Respawn.Point Default respawn location
22 Framework_Respawn_Start Framework.Respawn.Start Respawn sequence started
23 Framework_Respawn_Complete Framework.Respawn.Complete Respawn sequence completed
24 Framework_RunHistory_Death Framework.RunHistory.Death Death recorded in run history
25 Framework_RunHistory_Chapter Framework.RunHistory.Chapter Chapter completed in run history

View File

@@ -0,0 +1,43 @@
Name,Tag,DevComment
Framework_State_Action_Fire,Framework.State.Action.Fire,Firing a weapon
Framework_State_Action_Reload,Framework.State.Action.Reload,Reloading a weapon
Framework_State_Action_Melee,Framework.State.Action.Melee,Melee attack
Framework_State_Action_UseItem,Framework.State.Action.UseItem,Using an item
Framework_State_Action_Interact,Framework.State.Action.Interact,Interacting with world object
Framework_State_Action_OpenMenu,Framework.State.Action.OpenMenu,Opening a menu
Framework_State_Action_Hide,Framework.State.Action.Hide,Entering/occupying hiding spot
Framework_State_Action_Peek,Framework.State.Action.Peek,Peeking from hiding
Framework_State_Action_Sprint,Framework.State.Action.Sprint,Sprinting
Framework_State_Action_Jump,Framework.State.Action.Jump,Jumping
Framework_State_Action_Dodge,Framework.State.Action.Dodge,Dodging/evading
Framework_State_Action_Climb,Framework.State.Action.Climb,Climbing/vaulting
Framework_State_Action_Slide,Framework.State.Action.Slide,Sliding
Framework_State_Action_Squeeze,Framework.State.Action.Squeeze,Squeezing through gap
Framework_State_Action_Grab,Framework.State.Action.Grab,Grabbing a physics object
Framework_State_Action_Throw,Framework.State.Action.Throw,Throwing a held object
Framework_State_Action_Aim,Framework.State.Action.Aim,Aiming down sights
Framework_State_Action_Equip,Framework.State.Action.Equip,Equipping a weapon/item
Framework_State_Action_Holster,Framework.State.Action.Holster,Holstering a weapon
Framework_State_Action_Consume,Framework.State.Action.Consume,Consuming a consumable
Framework_State_Action_Inspect,Framework.State.Action.Inspect,Inspecting an object
Framework_State_Action_ReadDocument,Framework.State.Action.ReadDocument,Reading a document
Framework_State_Action_Dialogue,Framework.State.Action.Dialogue,In dialogue
Framework_State_Action_Choosing,Framework.State.Action.Choosing,Making a dialogue choice
Framework_State_Action_Cutscene,Framework.State.Action.Cutscene,In a cutscene
Framework_State_Overlay_Menu,Framework.State.Overlay.Menu,Menu overlay active
Framework_State_Overlay_Inventory,Framework.State.Overlay.Inventory,Inventory screen open
Framework_State_Overlay_Journal,Framework.State.Overlay.Journal,Journal screen open
Framework_State_Overlay_Map,Framework.State.Overlay.Map,Map screen open
Framework_State_Overlay_Settings,Framework.State.Overlay.Settings,Settings screen open
Framework_State_Overlay_Dialogue,Framework.State.Overlay.Dialogue,Dialogue overlay active
Framework_State_Overlay_Death,Framework.State.Overlay.Death,Death overlay active
Framework_State_Overlay_Loading,Framework.State.Overlay.Loading,Loading screen active
Framework_State_Vital_Health,Framework.State.Vital.Health,Health vital signal
Framework_State_Vital_Stamina,Framework.State.Vital.Stamina,Stamina vital signal
Framework_State_Vital_Stress,Framework.State.Vital.Stress,Stress vital signal
Framework_State_Vital_Fear,Framework.State.Vital.Fear,Fear vital signal
Framework_State_Gating_BlockSprint,Framework.State.Gating.BlockSprint,Gate: sprint blocked
Framework_State_Gating_BlockJump,Framework.State.Gating.BlockJump,Gate: jump blocked
Framework_State_Gating_BlockInteract,Framework.State.Gating.BlockInteract,Gate: interaction blocked
Framework_State_Gating_BlockFire,Framework.State.Gating.BlockFire,Gate: fire blocked
Framework_State_Gating_BlockReload,Framework.State.Gating.BlockReload,Gate: reload blocked
1 Name Tag DevComment
2 Framework_State_Action_Fire Framework.State.Action.Fire Firing a weapon
3 Framework_State_Action_Reload Framework.State.Action.Reload Reloading a weapon
4 Framework_State_Action_Melee Framework.State.Action.Melee Melee attack
5 Framework_State_Action_UseItem Framework.State.Action.UseItem Using an item
6 Framework_State_Action_Interact Framework.State.Action.Interact Interacting with world object
7 Framework_State_Action_OpenMenu Framework.State.Action.OpenMenu Opening a menu
8 Framework_State_Action_Hide Framework.State.Action.Hide Entering/occupying hiding spot
9 Framework_State_Action_Peek Framework.State.Action.Peek Peeking from hiding
10 Framework_State_Action_Sprint Framework.State.Action.Sprint Sprinting
11 Framework_State_Action_Jump Framework.State.Action.Jump Jumping
12 Framework_State_Action_Dodge Framework.State.Action.Dodge Dodging/evading
13 Framework_State_Action_Climb Framework.State.Action.Climb Climbing/vaulting
14 Framework_State_Action_Slide Framework.State.Action.Slide Sliding
15 Framework_State_Action_Squeeze Framework.State.Action.Squeeze Squeezing through gap
16 Framework_State_Action_Grab Framework.State.Action.Grab Grabbing a physics object
17 Framework_State_Action_Throw Framework.State.Action.Throw Throwing a held object
18 Framework_State_Action_Aim Framework.State.Action.Aim Aiming down sights
19 Framework_State_Action_Equip Framework.State.Action.Equip Equipping a weapon/item
20 Framework_State_Action_Holster Framework.State.Action.Holster Holstering a weapon
21 Framework_State_Action_Consume Framework.State.Action.Consume Consuming a consumable
22 Framework_State_Action_Inspect Framework.State.Action.Inspect Inspecting an object
23 Framework_State_Action_ReadDocument Framework.State.Action.ReadDocument Reading a document
24 Framework_State_Action_Dialogue Framework.State.Action.Dialogue In dialogue
25 Framework_State_Action_Choosing Framework.State.Action.Choosing Making a dialogue choice
26 Framework_State_Action_Cutscene Framework.State.Action.Cutscene In a cutscene
27 Framework_State_Overlay_Menu Framework.State.Overlay.Menu Menu overlay active
28 Framework_State_Overlay_Inventory Framework.State.Overlay.Inventory Inventory screen open
29 Framework_State_Overlay_Journal Framework.State.Overlay.Journal Journal screen open
30 Framework_State_Overlay_Map Framework.State.Overlay.Map Map screen open
31 Framework_State_Overlay_Settings Framework.State.Overlay.Settings Settings screen open
32 Framework_State_Overlay_Dialogue Framework.State.Overlay.Dialogue Dialogue overlay active
33 Framework_State_Overlay_Death Framework.State.Overlay.Death Death overlay active
34 Framework_State_Overlay_Loading Framework.State.Overlay.Loading Loading screen active
35 Framework_State_Vital_Health Framework.State.Vital.Health Health vital signal
36 Framework_State_Vital_Stamina Framework.State.Vital.Stamina Stamina vital signal
37 Framework_State_Vital_Stress Framework.State.Vital.Stress Stress vital signal
38 Framework_State_Vital_Fear Framework.State.Vital.Fear Fear vital signal
39 Framework_State_Gating_BlockSprint Framework.State.Gating.BlockSprint Gate: sprint blocked
40 Framework_State_Gating_BlockJump Framework.State.Gating.BlockJump Gate: jump blocked
41 Framework_State_Gating_BlockInteract Framework.State.Gating.BlockInteract Gate: interaction blocked
42 Framework_State_Gating_BlockFire Framework.State.Gating.BlockFire Gate: fire blocked
43 Framework_State_Gating_BlockReload Framework.State.Gating.BlockReload Gate: reload blocked

View File

@@ -11,10 +11,23 @@ This document is the canonical index of every Blueprint specification file in th
```
docs/blueprints/
├── INDEX.md ← THIS FILE
├── TEMPLATE.md ← Spec template
├── TEMPLATE.md ← Spec template v2.0
├── AUDIT_REPORT.md ← Clean slate audit
├── 01-core/ ← Foundation (7 files)
├── 01-core/ ← Foundation (7 files + 11 Data Table CSVs)
│ ├── data-tables/ ← Per-category Gameplay Tag Data Tables (NEW — replaces DT_ProjectTags.csv)
│ │ ├── DT_Tags_Player.csv (34 tags)
│ │ ├── DT_Tags_Interaction.csv (36 tags)
│ │ ├── DT_Tags_Item.csv (26 tags)
│ │ ├── DT_Tags_Narrative.csv (48 tags)
│ │ ├── DT_Tags_AI.csv (23 tags)
│ │ ├── DT_Tags_Save.csv (22 tags)
│ │ ├── DT_Tags_Environment.csv (30 tags)
│ │ ├── DT_Tags_Combat.csv (26 tags)
│ │ ├── DT_Tags_State.csv (39 tags)
│ │ ├── DT_Tags_Audio.csv (30 tags)
│ │ └── DT_Tags_Achievement.csv (20 tags)
│ └── DT_ProjectTags.csv [DEPRECATED — migration reference only]
├── 02-player/ ← Player State & Embodiment (8 files)
├── 03-interaction/ ← Interaction & World Manipulation (8 files)
├── 04-inventory/ ← Inventory, Items & Collectibles (11 files)
@@ -30,22 +43,6 @@ docs/blueprints/
├── 14-data-assets/ ← Data Asset definitions (16 files)
├── 15-input/ ← Enhanced Input System (1 file)
└── 16-state/ ← State Management (2 files)
docs/developer/ ← Developer Reference Docs
├── INDEX.md ← Developer docs master index
├── architecture-overview.md ← Framework-wide architecture
├── implementation-patterns.md ← Common Blueprint patterns
├── 01-core-foundation.md ← Foundation systems explained
├── 02-player-systems.md ← Player systems explained
├── 03-interaction-systems.md ← Interaction systems explained
├── 04-inventory-systems.md ← Inventory systems explained
├── 05-saveload-systems.md ← Save/load systems explained
├── 06-ui-systems.md ← UI systems explained
├── 07-narrative-systems.md ← Narrative systems explained
├── 08-weapons-systems.md ← Weapons systems explained
├── 09-ai-systems.md ← AI systems explained
├── 10-adaptive-systems.md ← Adaptive systems explained
└── 11-16-systems.md ← Meta, Settings, Polish, Data, Input, State
```
---

View File

@@ -392,6 +392,8 @@ MainMenu → Loading → InGame ⇄ Paused
### Key Patterns
- **GS_CoreGameState as Replication Hub:** All shared session state (chapter, phase, objectives, encounter status) writes through GS_CoreGameState which auto-replicates to all clients via OnRep → dispatcher.
- **Tag-Driven Everything:** No booleans, no strings. All state is GameplayTags compared via `HasTag()`/`MatchesTag()`. Tags are split across **11 per-category Data Tables** (`DT_Tags_Player`, `DT_Tags_Interaction`, etc.) registered in Project Settings → Gameplay Tags.
- **DA_GameTagRegistry** uses an `Array<Data Table>` to iterate all tables for validation and enumeration. The engine's `UGameplayTagsManager` merges them automatically at runtime.
- **GamePhase transitions are server-authoritative:** `SetGamePhase()` checks `HasAuthority()`. Clients receive phase changes via `OnRep_GamePhase``OnGamePhaseChanged` dispatcher.
- **Interface calls route through server:** `I_Interactable.Execute_OnInteract` must be called server-side. Clients call `Server_Interact` RPC → server validates → calls interface.
- **Data Assets are client-ready:** All `DA_*` assets load identically on all instances from disk. No replication needed.