From 5b004230d6580e88d44eec523a44e12dc1ff9f8d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 May 2026 15:17:45 +0000 Subject: [PATCH] Add Atavism 10.13 combat SQL reference documentation set --- README.md | 2 + docs/README.md | 4 +- docs/database-reference.md | 4 +- docs/sql/reference/README.md | 15 +++ .../ai-database-and-server-reference.md | 43 +++++++ .../reference/atavism-wiki-index-reference.md | 25 ++++ docs/sql/reference/combat-abilities-plugin.md | 119 ++++++++++++++++++ docs/sql/reference/combat-arena-plugin.md | 111 ++++++++++++++++ .../combat-coordinated-effects-plugin.md | 98 +++++++++++++++ docs/sql/reference/combat-damage-plugin.md | 99 +++++++++++++++ docs/sql/reference/combat-effects-plugin.md | 103 +++++++++++++++ docs/sql/reference/combat-skills-plugin.md | 109 ++++++++++++++++ docs/sql/reference/combat-stat-thresholds.md | 90 +++++++++++++ docs/sql/reference/combat-stats-plugin.md | 108 ++++++++++++++++ 14 files changed, 927 insertions(+), 3 deletions(-) create mode 100644 docs/sql/reference/ai-database-and-server-reference.md create mode 100644 docs/sql/reference/atavism-wiki-index-reference.md create mode 100644 docs/sql/reference/combat-abilities-plugin.md create mode 100644 docs/sql/reference/combat-arena-plugin.md create mode 100644 docs/sql/reference/combat-coordinated-effects-plugin.md create mode 100644 docs/sql/reference/combat-damage-plugin.md create mode 100644 docs/sql/reference/combat-effects-plugin.md create mode 100644 docs/sql/reference/combat-skills-plugin.md create mode 100644 docs/sql/reference/combat-stat-thresholds.md create mode 100644 docs/sql/reference/combat-stats-plugin.md diff --git a/README.md b/README.md index 93792ee..e7b44d7 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ If you want a sandbox fantasy MMORPG with campaign-book energy, ocean-crossing d ## πŸ—„ Atavism 10.13 SQL Reference Library - [SQL Reference Library](docs/sql/reference/README.md) +- [AI Database and Server Reference](docs/sql/reference/ai-database-and-server-reference.md) +- [Atavism Wiki Index Reference](docs/sql/reference/atavism-wiki-index-reference.md) - [Atavism 10.13 SQL Migration Notes](docs/sql/reference/atavism-10.13-migration-notes.md) This library documents how Atavism wiki systems map to the actual SQL schema and demo data, so developers and AI tools can later generate safe Mystical Islands SQL inserts. diff --git a/docs/README.md b/docs/README.md index 2bbe031..9d567ec 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,7 +26,7 @@ This folder contains all project documentation for Mystical Islands. | File | Description | |---|---| | [development-roadmap.md](development-roadmap.md) | Current roadmap and milestone tracking | -| [database-reference.md](database-reference.md) | Atavism damage plugin schema reference | +| [database-reference.md](database-reference.md) | Legacy Atavism 10.9 damage plugin archive (use SQL 10.13 reference library for current work) | | [hints-and-tips.md](hints-and-tips.md) | Developer notes and workflow tips | ## Atavism 10.13 SQL Reference Library @@ -34,6 +34,8 @@ This folder contains all project documentation for Mystical Islands. | Path | Description | |---|---| | [sql/reference/README.md](sql/reference/README.md) | Atavism SQL Reference Library β€” full index of all plugin reference files | +| [sql/reference/ai-database-and-server-reference.md](sql/reference/ai-database-and-server-reference.md) | High-level AI/database/server reference entry point for Atavism 10.13 | +| [sql/reference/atavism-wiki-index-reference.md](sql/reference/atavism-wiki-index-reference.md) | Official Atavism wiki location and source-of-truth guidance | | [sql/reference/atavism-10.13-migration-notes.md](sql/reference/atavism-10.13-migration-notes.md) | Atavism 10.9 β†’ 10.13 schema comparison and migration action checklist | SQL source files (core schema and demo data) live in [sql/10.13/](sql/10.13/). diff --git a/docs/database-reference.md b/docs/database-reference.md index 5fac567..7000e09 100644 --- a/docs/database-reference.md +++ b/docs/database-reference.md @@ -2,9 +2,9 @@ Technical Atavism plugin and SQL reference for field meanings, plugin relationships, data dependencies, and automation-ready schema conventions. -This is the primary future source for SQL insert generation, balancing workflows, NPC/item/merchant/quest generation, and AI-assisted content tooling. +> Legacy note: this page is an archived Atavism 10.9-era reference. For current production planning, use `docs/sql/reference/` and Atavism 10.13 SQL under `docs/sql/10.13/core/` and `docs/sql/10.13/demo/`. -This reference targets **Atavism 10.9** and is derived from the live `world_content` database schema in `docs/sql/world_content.sql`. It covers the Damage Plugin and all tables that participate in the combat damage pipeline. +This reference targets **Atavism 10.9** and was derived from earlier `world_content` schema snapshots. It covers the Damage Plugin and related combat tables as historical context. --- diff --git a/docs/sql/reference/README.md b/docs/sql/reference/README.md index 08e334d..fa3ce07 100644 --- a/docs/sql/reference/README.md +++ b/docs/sql/reference/README.md @@ -24,6 +24,8 @@ These reference docs are used by humans, GitHub Copilot, and ChatGPT. Future SQL inserts for Mystical Islands must target Atavism 10.13. - [Atavism 10.13 SQL Migration Notes](atavism-10.13-migration-notes.md) +- [Atavism Wiki Index Reference](atavism-wiki-index-reference.md) +- [AI Database and Server Reference](ai-database-and-server-reference.md) --- @@ -59,3 +61,16 @@ Future SQL inserts for Mystical Islands must target Atavism 10.13. | [items-crafting-recipes-plugin.md](items-crafting-recipes-plugin.md) | Crafting Recipes | Crafting recipe headers, requirements, and outputs. | | [items-build-object-plugin.md](items-build-object-plugin.md) | Build Object | Build object templates and staged construction requirements. | | [items-socketing-plugin.md](items-socketing-plugin.md) | Socketing | Socket profile and gem/socket linking tables. | + +## Combat Module + +| File | Plugin | Description | +|---|---|---| +| [combat-arena-plugin.md](combat-arena-plugin.md) | Arena | Arena templates, teams, categories, rewards, and schedules. | +| [combat-skills-plugin.md](combat-skills-plugin.md) | Skills | Skill definitions, prerequisites, skill profiles, and unlock mapping. | +| [combat-abilities-plugin.md](combat-abilities-plugin.md) | Abilities | Ability configuration, targeting, costs, effects, combos, and triggers. | +| [combat-effects-plugin.md](combat-effects-plugin.md) | Effects | Effect definitions, payload fields, and effect trigger actions. | +| [combat-coordinated-effects-plugin.md](combat-coordinated-effects-plugin.md) | Coordinated Effects | Visual/audio coordinated effect mapping across combat systems. | +| [combat-stats-plugin.md](combat-stats-plugin.md) | Stats | Stat definitions, links, profiles, and character/mob stat usage. | +| [combat-damage-plugin.md](combat-damage-plugin.md) | Damage | Damage type to stat formula mapping and related combat dependencies. | +| [combat-stat-thresholds.md](combat-stat-thresholds.md) | Stat Thresholds | Threshold scaling rules for stat functions. | diff --git a/docs/sql/reference/ai-database-and-server-reference.md b/docs/sql/reference/ai-database-and-server-reference.md new file mode 100644 index 0000000..9aa378f --- /dev/null +++ b/docs/sql/reference/ai-database-and-server-reference.md @@ -0,0 +1,43 @@ +# AI Database and Server Reference + +## Purpose +This repository documents how Atavism 10.13 SQL, server configuration, and game content systems work for Mystical Islands. + +## Current Version +Atavism 10.13 + +## Official Atavism Wiki +https://unity.wiki.atavismonline.com/ + +## SQL Source Folders +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## SQL Reference Library +- docs/sql/reference/README.md + +## Core Reference Areas +- Server Module +- Character Module +- Items Module +- Combat Module +- Future Mob/NPC Module +- Future Quest Module +- Future Merchant Module +- Future Build/Claim Module + +## Rules For AI SQL Generation +- never guess table names +- use SQL schema as source of truth +- use demo rows as examples only +- verify IDs +- verify relationships +- create inserts in dependency order +- do not generate production SQL without review +- preserve Atavism 10.13 compatibility + +## How To Ask AI For SQL Later +Example prompts: +- β€œUsing docs/sql/reference and docs/items.md, generate SQL INSERT statements for 25 starter swords targeting Atavism 10.13.” +- β€œUsing docs/sql/reference/combat-abilities-plugin.md and docs/sql/reference/combat-effects-plugin.md, draft example non-production SQL planning inserts for a mage starter ability chain on Atavism 10.13.” +- β€œUsing docs/sql/reference/server-instances-plugin.md, generate dependency-ordered insert planning notes for three new island instances for Atavism 10.13.” diff --git a/docs/sql/reference/atavism-wiki-index-reference.md b/docs/sql/reference/atavism-wiki-index-reference.md new file mode 100644 index 0000000..4173317 --- /dev/null +++ b/docs/sql/reference/atavism-wiki-index-reference.md @@ -0,0 +1,25 @@ +# Atavism Wiki Index Reference + +## Purpose +The official Atavism documentation wiki is located at: +- https://unity.wiki.atavismonline.com/ + +Use the wiki as a primary functional reference when SQL docs in this repository do not fully explain editor behavior, enum meaning, or runtime plugin rules. + +## AI and Developer Guidance +- Copilot, ChatGPT, and human developers should consult the official wiki whenever local references are incomplete. +- Wiki plugin pages can change after repository docs are created. +- Re-verify plugin behavior against the current wiki page before generating production SQL. +- SQL schema remains the source of truth for exact table names and column names. +- Demo SQL rows are examples only and must not be treated as guaranteed production defaults. + +## Current SQL Source-of-Truth for Mystical Islands +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Recommended Verification Order +1. Confirm target version is Atavism 10.13. +2. Confirm exact table/column names from core schema SQL. +3. Check demo SQL rows for practical examples. +4. Cross-check with relevant wiki plugin page. +5. Confirm IDs and relationships before generating inserts. diff --git a/docs/sql/reference/combat-abilities-plugin.md b/docs/sql/reference/combat-abilities-plugin.md new file mode 100644 index 0000000..3f138e5 --- /dev/null +++ b/docs/sql/reference/combat-abilities-plugin.md @@ -0,0 +1,119 @@ +# Abilities Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Abilities Plugin defines combat actions and spell behaviors, including costs, targeting rules, cooldowns, weapon/reagent requirements, effect application, combo chains, and trigger profiles. + +## Source Links +- https://unity.wiki.atavismonline.com/project/abilities-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `abilities` | Core ability definitions and behavior settings | core + demo | +| `ability_effects` | Effects applied by ability power rows | core + demo | +| `ability_abilities` | Ability chaining/child ability execution | core + demo | +| `ability_combos` | Combo opportunities and follow-up ability links | core + demo | +| `abilities_coordeffects` | Coordinated effects attached to ability events | core + demo | +| `abilities_powerup_settings` | Power-up timing thresholds | core + demo | +| `abilities_triggers` | Trigger profiles attached to ability rows | core + demo | +| `abilities_triggers_profile` | Trigger profile definitions and filter rules | core + demo | +| `abilities_triggers_actions` | Actions executed by trigger profiles | core + demo | +| `effects` | Effect IDs referenced by ability effect rows | core + demo | +| `coordinated_effects` | Coordinated effect names referenced by ability rows | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `abilities` | `id`, `name`, `icon`, `icon2` | Ability identity/display | PK + UI fields | `ability_*` tables | +| `abilities` | `abilityType` | Ability behavior class | Validate against editor choices | Option choice tables | +| `abilities` | `skill` | Owning skill line | `-1` if standalone | `skills.id` | +| `abilities` | `passive` | Passive flag | 1 passive, 0 active ability | β€” | +| `abilities` | `activationCost`, `activationCostType` | Activation resource cost | Usually mana/stamina-like stat name | `stat.name` | +| `abilities` | `activationLength`, `attack_time`, `activationDelay` | Cast/attack timing | Seconds/float values | β€” | +| `abilities` | `maxRange`, `minRange`, `aoeRadius`, `aoeAngle`, `aoeType` | Targeting geometry | Range and AOE rules | β€” | +| `abilities` | `targetType`, `targetSubType`, `reqTarget`, `reqFacingTarget` | Target requirement policy | Editor targeting settings | Option choice tables | +| `abilities` | `globalCooldown`, `cooldown1Type`, `cooldown1Duration` | Cooldown system | Also check `weaponCooldown` | β€” | +| `abilities` | `weaponRequired`, `weaponMustBeDrawn`, `drawnWeaponBefore` | Weapon gating | Comma/text weapon types | Item/weapon profile tables | +| `abilities` | `reagentRequired`..`reagent3Consumed` | Item reagent requirements | Item IDs + consume flags | `item_templates.id` | +| `abilities` | `damageType` | Damage pipeline selector | Must match `damage_type.name` | `damage_type.name` | +| `abilities` | `toggle`, `channelling`, `channelling_cost`, `channelling_pulse_*` | Channel/toggle behavior | Pulse resource checks also exist | β€” | +| `abilities` | `coordEffect1event..coordEffect5` | Legacy coordinated effect slots | Also supported via `abilities_coordeffects` | `coordinated_effects` | +| `ability_effects` | `ability_power_id`, `effect`, `target`, `delay` | Effect execution by ability row | Target/delay and chance range | `abilities.id`, `effects.id` | +| `ability_abilities` | `ability_power_id`, `ability`, `target`, `delay` | Trigger child ability from parent | Ability chain action table | `abilities.id` | +| `ability_combos` | `ability_parent_id`, `ability_sub_id`, `chance_min/max`, `time` | Combo follow-up windows | UI and slot replacement flags included | `abilities.id` | +| `abilities_coordeffects` | `ability_power_id`, `coordEffectEvent`, `coordEffect` | Event-based visual/audio mapping | Demo uses activating/completed events | `abilities.id`, `coordinated_effects.name` | +| `abilities_powerup_settings` | `ability_id`, `thresholdMaxTime` | Power-up threshold timing | One ability can have multiple thresholds | `abilities.id` | +| `abilities_triggers_profile` | `id`, `event_type`, `tags`, `race`, `class`, `action_type` | Trigger profile filters and behavior | Chance range columns apply | `abilities_triggers`, `abilities_triggers_actions` | +| `abilities_triggers` | `ability_power_id`, `trigger_id` | Attach trigger profile to ability | Join table | `abilities.id`, `abilities_triggers_profile.id` | +| `abilities_triggers_actions` | `abilities_triggers_id`, `target`, `ability`, `effect`, `mod_v`, `mod_p` | Action payload from trigger execution | Ability/effect and value modifiers | `abilities_triggers.id`, `abilities.id`, `effects.id` | + +## Relationships +- `skills` to `abilities` through `abilities.skill`. +- `abilities` to `effects` through `ability_effects.effect`. +- `abilities` to coordinated effects through `abilities_coordeffects` and `coordEffect*` columns. +- `abilities` to requirements via `weaponRequired`, reagent columns, and target-state fields. +- ability chains/combos through `ability_abilities` and `ability_combos`. +- trigger profiles through `abilities_triggers` + `abilities_triggers_profile` + `abilities_triggers_actions`. +- `abilities.damageType` participates in damage-type-to-stat mapping via `damage_type`. + +## Data Creation Flow +1. Create required stats and damage types. +2. Create effects used by abilities. +3. Create coordinated effects used by ability visuals. +4. Create base ability rows. +5. Link effects to abilities in `ability_effects`. +6. Configure child ability calls and combos. +7. Add coordinated effect event mappings. +8. Add trigger profiles, link them, then define trigger actions. +9. Add skill-to-ability unlocks in `skill_ability_gain`. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO abilities (name, abilityType, activationCost, activationCostType, maxRange, cooldown1Duration, isactive) +VALUES ('Example Arcane Shot', 'Active', 20, 'mana', 25, 2.5, 1); +``` + +## Mystical Islands Usage +Abilities drive class combat kits, ship-board combat actions, and NPC tactical behavior. Ability data must be curated with strict dependencies to effects, damage types, and skill progression. + +## External Application Notes +- spell/ability database +- combo chain visualizer +- cooldown and resource balancing dashboard +- admin combat editor + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-arena-plugin.md b/docs/sql/reference/combat-arena-plugin.md new file mode 100644 index 0000000..d1f6233 --- /dev/null +++ b/docs/sql/reference/combat-arena-plugin.md @@ -0,0 +1,111 @@ +# Arena Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Arena Plugin configures PvP arena templates, team setup, scheduling windows, level limits, rewards, and optional survival arena wave templates. + +## Source Links +- https://unity.wiki.atavismonline.com/project/arena-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `arena_templates` | Main arena match definitions, rewards, and schedule windows | core + demo | +| `arena_teams` | Team definitions for each arena template | core + demo | +| `arena_categories` | Arena skin/category presets | core + demo | +| `survivalarenatemplates` | Survival arena round spawn definitions | core + demo | +| `currencies` | Reward currency IDs referenced by arena template rows | core + demo | +| `instance_template` | Arena map instance IDs used by arena templates | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `arena_templates` | `id` | Arena template ID | PK | `arena_teams.arenaID` | +| `arena_templates` | `arenaType` | Arena mode type | Numeric mode selector | β€” | +| `arena_templates` | `name` | Arena display name | Used in editor/UI | β€” | +| `arena_templates` | `arenaCategory` | Category/skin ID | References category table | `arena_categories.id` | +| `arena_templates` | `arenaInstanceID` | Map instance ID | Arena scene/world instance | `instance_template.id` | +| `arena_templates` | `team1`..`team4` | Team IDs in this arena | Unused slots are commonly `-1` in demo | `arena_teams.id` | +| `arena_templates` | `levelReq`, `levelMax` | Allowed player level range | Validate against level design | β€” | +| `arena_templates` | `victoryCurrency`, `victoryPayment` | Winner reward currency/value | Currency ID + amount | `currencies.id` | +| `arena_templates` | `defeatCurrency`, `defeatPayment` | Loser reward currency/value | Currency ID + amount | `currencies.id` | +| `arena_templates` | `victoryExp`, `defeatExp` | XP rewards | Match outcome rewards | β€” | +| `arena_templates` | `start_hour`, `start_minute`, `end_hour`, `end_minute` | Active daily window | Demo contains timed windows | β€” | +| `arena_teams` | `id` | Team ID | PK | `arena_templates.team*` | +| `arena_teams` | `arenaID` | Arena template owner | Team belongs to arena template | `arena_templates.id` | +| `arena_teams` | `name` | Team name | e.g., Dragons/Bears in demo | β€” | +| `arena_teams` | `size` | Team player count | Used by matchmaking | β€” | +| `arena_teams` | `goal` | Score/kill target | Win condition component | β€” | +| `arena_teams` | `spawnX`,`spawnY`,`spawnZ` | Team spawn location | Coordinates in arena instance | β€” | +| `arena_categories` | `id` | Category ID | PK | `arena_templates.arenaCategory` | +| `arena_categories` | `skin1`..`skin4` | Team visual skin links | Numeric skin selectors | β€” | +| `survivalarenatemplates` | `id` | Survival template ID | PK | Referenced by arena/survival systems | +| `survivalarenatemplates` | `numRounds` | Number of rounds | Round config master | β€” | +| `survivalarenatemplates` | `round1Spawns`..`round10Spawns` | Spawn package IDs per round | Demo has schema with no rows | Spawn profile tables/editor | + +## Relationships +- `arena_templates.id` β†’ `arena_teams.arenaID`. +- `arena_templates.team1..team4` reference `arena_teams.id` entries. +- `arena_templates.arenaCategory` β†’ `arena_categories.id`. +- `arena_templates.arenaInstanceID` should map to instance rows in `instance_template`. +- `arena_templates.victoryCurrency` / `defeatCurrency` should map to `currencies.id`. +- Survival arena flow uses `survivalarenatemplates` as round spawn definitions. + +## Data Creation Flow +1. Create required arena map instances. +2. Create arena category rows. +3. Create arena team rows with spawn points. +4. Create arena template row and assign team IDs. +5. Configure reward currency IDs and payouts. +6. Configure schedule windows and level limits. +7. Add optional survival arena template rounds. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO arena_categories (id, skin1, skin2, skin3, skin4, isactive) +VALUES (10, 1, 2, 0, 0, 1); +``` + +## Mystical Islands Usage +Arenas will support competitive island factions, match queues, and PvP reward progression. Arena templates should align with island instance IDs and season reward balancing. + +## External Application Notes +- arena leaderboard service +- match schedule dashboard +- PvP reward payout auditor +- admin arena configuration editor + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-coordinated-effects-plugin.md b/docs/sql/reference/combat-coordinated-effects-plugin.md new file mode 100644 index 0000000..bab3958 --- /dev/null +++ b/docs/sql/reference/combat-coordinated-effects-plugin.md @@ -0,0 +1,98 @@ +# Coordinated Effects Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Coordinated Effects Plugin links combat/system events to visual/audio prefabs so abilities, items, and interactions present synchronized feedback in game. + +## Source Links +- https://unity.wiki.atavismonline.com/project/coordinated-effects-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `coordinated_effects` | Master coordinated effect definitions | core + demo | +| `abilities_coordeffects` | Ability event to coordinated effect mappings | core + demo | +| `abilities` | Legacy coordinated effect columns and power-up coordinated effect field | core + demo | +| `interactive_object_coordeffects` | Coordinated effect order for interactive objects | core + demo | +| `item_templates` | Draw/holster coordinated effect references | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `coordinated_effects` | `id` | Coordinated effect ID | PK | Referenced by gameplay systems | +| `coordinated_effects` | `name` | Coordinated effect name | Common lookup key in mappings | `abilities_coordeffects.coordEffect`, `abilities.powerUpCoordEffect` | +| `coordinated_effects` | `prefab` | Prefab asset path | Visual/audio payload | Unity resources | +| `abilities_coordeffects` | `ability_power_id` | Ability receiving coordinated event | FK-style relation | `abilities.id` | +| `abilities_coordeffects` | `coordEffectEvent` | Ability event hook name | Demo uses values like `activating`, `completed` | Editor event options | +| `abilities_coordeffects` | `coordEffect` | Coordinated effect name | Must match configured effect entry | `coordinated_effects.name` | +| `abilities` | `coordEffect1event..coordEffect5event` | Legacy event columns | Older inline mapping path | `coordinated_effects` | +| `abilities` | `coordEffect1..coordEffect5` | Legacy coordinated effect refs | Prefer consistent naming with master table | `coordinated_effects.name` | +| `abilities` | `powerUpCoordEffect` | Coordinated effect for power-up state | Used with power-up settings | `coordinated_effects.name` | +| `item_templates` | `drawWeaponEffect1..10` | Draw weapon effect refs | Item weapon presentation | `coordinated_effects.name` | +| `item_templates` | `holsteringWeaponEffect1..10` | Holster weapon effect refs | Item weapon presentation | `coordinated_effects.name` | +| `interactive_object_coordeffects` | `objId`, `coordEffect`, `order` | Interactive object event effects | Non-combat object integration path | `coordinated_effects.name` | + +## Relationships +- `coordinated_effects` is the reusable visual/audio library. +- Abilities link to coordinated effects through `abilities_coordeffects` and legacy `abilities.coordEffect*` columns. +- Ability power-up behavior can use `abilities.powerUpCoordEffect`. +- Item draw/sheath events can reference coordinated effects. +- Interactive objects can share the same coordinated effect records. + +## Data Creation Flow +1. Create coordinated effect master rows with prefab paths. +2. Create or update abilities. +3. Attach event-based coordinated effects in `abilities_coordeffects`. +4. Populate legacy `abilities.coordEffect*` fields only if required by workflow. +5. Attach coordinated effects to item draw/holster behavior if needed. +6. Validate event timing in editor/runtime. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO coordinated_effects (name, prefab, isactive) +VALUES ('Example Sword Slash CEffect', 'Assets/Resources/Content/CoordinatedEffects/Combat/Slash.prefab', 1); +``` + +## Mystical Islands Usage +Coordinated effects provide weapon trails, spell impacts, cast indicators, and combat readability for players during island exploration and PvP. + +## External Application Notes +- spell visual catalog +- FX timing review tools +- admin coordinated effect mapper +- combat presentation QA checklist automation + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-damage-plugin.md b/docs/sql/reference/combat-damage-plugin.md new file mode 100644 index 0000000..e9c4a87 --- /dev/null +++ b/docs/sql/reference/combat-damage-plugin.md @@ -0,0 +1,99 @@ +# Damage Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Damage Plugin maps each damage type to the stat fields used for resistance, power, accuracy, evasion, and critical formulas. Abilities and effects then consume those mappings. + +## Source Links +- https://unity.wiki.atavismonline.com/project/damage-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `damage_type` | Damage formula stat mapping per damage category | core + demo | +| `abilities` | Ability damage type assignment | core + demo | +| `effects` | Effect payload values used for damage/restoration behaviors | core + demo | +| `stat` | Stat names consumed by damage mappings | core + demo | +| `stat_thresholds` | Threshold functions used by scaling formulas | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `damage_type` | `name` | Damage type key | PK-like unique key in schema | `abilities.damageType`, item/weapon references | +| `damage_type` | `resistance_stat` | Stat used to reduce incoming damage | Must match stat name | `stat.name` | +| `damage_type` | `power_stat` | Stat used for outgoing damage power | Must match stat name | `stat.name` | +| `damage_type` | `accuracy_stat` | Stat used for hit chance | Must match stat name | `stat.name` | +| `damage_type` | `evasion_stat` | Stat used for dodge/evasion checks | Must match stat name | `stat.name` | +| `damage_type` | `critic_chance_stat` | Stat used for critical chance | Must match stat name | `stat.name` | +| `damage_type` | `critic_power_stat` | Stat used for critical multiplier/power | Must match stat name | `stat.name` | +| `abilities` | `damageType` | Damage type used by ability | Must exist in damage_type table | `damage_type.name` | +| `abilities` | `miss_chance` | Extra miss chance modifier | Works with accuracy/evasion logic | `damage_type` + combat formulas | +| `abilities` | `interruption_chance` | Interrupt behavior chance | Can affect hit outcome flow | combat runtime | +| `effects` | `effectMainType`, `effectType` | Damage or restoration behavior class | Determines interpretation of value payload fields | effect runtime | +| `effects` | `intValue*`, `floatValue*`, `stringValue*` | Damage/heal payload values | Exact use depends on effect type | stat/ability/damage formula systems | +| `stat_thresholds` | `stat_function`, `threshold`, `num_per_point` | Progressive scaling breaks used by formulas | Common for crit/resistance scaling | `stat.stat_function` | + +## Relationships +- `damage_type` defines which stats feed each damage pipeline. +- `abilities.damageType` selects a `damage_type` row for runtime formulas. +- mapped stats in `damage_type` must exist in `stat.name`. +- threshold scaling can alter effective formula output through `stat_thresholds` + stat function links. +- effect payload values ultimately use the same stat and damage systems at runtime. + +## Data Creation Flow +1. Create/verify all combat stats used by formulas. +2. Create stat threshold rows for targeted stat functions. +3. Create damage type rows mapping all required stats. +4. Create effects with damage/restoration payloads. +5. Create abilities and set `damageType`. +6. Test hit chance, crit, and mitigation behaviors. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO damage_type (name, resistance_stat, power_stat, accuracy_stat, evasion_stat, critic_chance_stat, critic_power_stat, isactive) +VALUES ('storm', 'storm_resistance', 'storm_power', 'storm_accuracy', 'storm_evasion', 'storm_crit', 'storm_crit_power', 1); +``` + +## Mystical Islands Usage +Damage types support physical and magical schools plus future island-specific schools (storm, tide, volcanic, etc.) while preserving balanced stat interactions. + +## External Application Notes +- damage calculator +- PvP balance analyzer +- crit/resistance tuning dashboard +- admin damage type editor + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-effects-plugin.md b/docs/sql/reference/combat-effects-plugin.md new file mode 100644 index 0000000..c9a6ec5 --- /dev/null +++ b/docs/sql/reference/combat-effects-plugin.md @@ -0,0 +1,103 @@ +# Effects Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Effects Plugin defines buff/debuff/heal/damage/stat-modification behaviors and trigger logic used by abilities and passive systems. + +## Source Links +- https://unity.wiki.atavismonline.com/project/effects-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `effects` | Core effect definitions and parameter payloads | core + demo | +| `effects_triggers` | Trigger profiles for effect-driven reactions | core + demo | +| `effects_triggers_actions` | Trigger actions launched by effect trigger profiles | core + demo | +| `ability_effects` | Abilities that apply these effects | core + demo | +| `abilities` | Ability rows that consume effect IDs | core + demo | +| `coordinated_effects` | Optional pulse coordinated visuals | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `effects` | `id`, `name`, `displayName`, `icon`, `icon2` | Effect identity/display | PK + UI fields | `ability_effects.effect`, trigger action tables | +| `effects` | `effectMainType`, `effectType` | Effect classification | Must match editor effect types | Option choice tables | +| `effects` | `isBuff`, `passive` | Buff/passive behavior flags | 1/0 flags | β€” | +| `effects` | `stackLimit`, `stackTime`, `allowMultiple` | Stacking behavior | Controls duplicate handling | β€” | +| `effects` | `duration`, `pulseCount` | Lifetime and pulse count | Pulse-based effects use both | β€” | +| `effects` | `skillType`, `skillLevelMod` | Skill scaling controls | Verify skill-type values in editor | `skills` | +| `effects` | `bonusEffectReq`, `bonusEffectReqConsumed`, `bonusEffect`, `removeBonusWhenEffectRemoved` | Conditional effect linking | Effect dependency chain | `effects.id` | +| `effects` | `pulseCoordEffect` | Coordinated effect played on pulse | Uses coordinated effect name/id convention | `coordinated_effects` | +| `effects` | `intValue1..5`, `floatValue1..5`, `stringValue1..5`, `boolValue1..5` | Generic effect payload fields | Meaning depends on selected effect type | stat/ability/effect tables | +| `effects` | `chance`, `group_tags`, interruption columns | Chance/tag/interruption behavior | Includes max/all interruption controls | β€” | +| `effects_triggers` | `id`, `name`, `event_type`, `tags`, `race`, `class`, `action_type` | Trigger profile identity and filters | Chance range columns included | `effects_triggers_actions` | +| `effects_triggers_actions` | `effects_triggers_id` | Owning trigger profile | FK-style relation | `effects_triggers.id` | +| `effects_triggers_actions` | `target`, `ability`, `effect` | Trigger action target and payload | Can execute ability/effect | `abilities.id`, `effects.id` | +| `effects_triggers_actions` | `mod_v`, `mod_p`, `chance_min`, `chance_max` | Value/percent modifiers and chance bounds | Runtime scaling controls | β€” | +| `ability_effects` | `ability_power_id`, `effect`, `target`, `delay` | Ability-to-effect application mapping | Core effect usage path | `abilities.id`, `effects.id` | + +## Relationships +- `abilities` apply effects through `ability_effects`. +- effects can reference other effects through bonus/conditional fields. +- effects can trigger additional actions through `effects_triggers` + `effects_triggers_actions`. +- pulse coordinated visuals can link effects to coordinated effect assets. +- effect payload fields map to stat/ability/effect targets depending on effect type. + +## Data Creation Flow +1. Create required stats and damage types first. +2. Create coordinated effects required by pulse visuals. +3. Create effect rows with matching effect type payload values. +4. Create effect trigger profiles. +5. Create trigger actions per profile. +6. Create abilities and map effects via `ability_effects`. +7. Validate stack, duration, and interruption interactions. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO effects (name, effectMainType, effectType, isBuff, duration, pulseCount, chance, isactive) +VALUES ('Example Burning Dot', 'Periodic', 'Damage', 0, 12, 6, 100, 1); +``` + +## Mystical Islands Usage +Effects handle buffs, debuffs, damage-over-time, heals, crowd control, and passive combat modifiers across classes, items, and encounter scripts. + +## External Application Notes +- combat balancing dashboard +- effect dependency map +- damage/heal simulation tool +- admin effect editor + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-skills-plugin.md b/docs/sql/reference/combat-skills-plugin.md new file mode 100644 index 0000000..e6ea27a --- /dev/null +++ b/docs/sql/reference/combat-skills-plugin.md @@ -0,0 +1,109 @@ +# Skills Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Skills Plugin defines skill lines, skill progression profiles, prerequisites, and ability unlocks granted at specific skill levels. + +## Source Links +- https://unity.wiki.atavismonline.com/project/skills-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `skills` | Core skill definitions, prerequisite rules, stat gains, and leveling limits | core + demo | +| `skill_ability_gain` | Abilities unlocked by skill level | core + demo | +| `skill_profile` | XP curve profiles for skills | core + demo | +| `skill_profile_levels` | XP required by level for each skill profile | core + demo | +| `abilities` | Ability IDs referenced by skill unlock rows | core + demo | +| `character_create_skills` | Starter skills assigned to character templates | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `skills` | `id` | Skill ID | PK | `skill_ability_gain.skillID`, `character_create_skills.skill`, `abilities.skill` | +| `skills` | `name`, `icon`, `icon2` | Display identity | UI/Editor fields | β€” | +| `skills` | `maxLevel` | Skill level cap | Demo uses large caps on some rows | β€” | +| `skills` | `automaticallyLearn` | Auto-learn flag | 1 auto-grants skill | β€” | +| `skills` | `skillPointCost` | Point cost to learn/upgrade | Talent-like progression control | β€” | +| `skills` | `playerLevelReq` | Minimum player level | Player gating | β€” | +| `skills` | `parentSkill`, `parentSkillLevelReq` | Parent skill prerequisite | Skill tree dependency | `skills.id` | +| `skills` | `prereqSkill1..3`, `prereqSkill1Level..3Level` | Additional required skills/levels | Multi-branch prerequisites | `skills.id` | +| `skills` | `skill_profile_id` | XP profile used by this skill | `-1` when profile not used | `skill_profile.id` | +| `skills` | `primaryStat`..`fourthStat` and value/interval columns | Stat progression grants | Valid stat names required | `stat.name` | +| `skills` | `type`, `talent` | Skill type behavior flags | Verify option behavior in editor | Option choice tables | +| `skill_ability_gain` | `skillID` | Skill that grants ability | FK-style link | `skills.id` | +| `skill_ability_gain` | `skillLevelReq` | Required skill level | Unlock threshold | β€” | +| `skill_ability_gain` | `abilityID` | Granted ability ID | Ability unlock target | `abilities.id` | +| `skill_ability_gain` | `automaticallyLearn` | Auto-learn unlocked ability | 1 grant automatically | β€” | +| `skill_profile` | `id`, `profile_name` | Skill XP profile identity | Named progression curve | `skill_profile_levels.profile_id`, `skills.skill_profile_id` | +| `skill_profile` | `type`, `level_diff` | Profile mode/tuning | Verify exact editor semantics | β€” | +| `skill_profile_levels` | `profile_id`, `level`, `required_xp` | XP required per level | One row per level per profile | `skill_profile.id` | +| `character_create_skills` | `character_create_id`, `skill` | Starting skill assignment | New character setup dependency | `character_create_template.id`, `skills.id` | + +## Relationships +- `skills.id` is the center key for skill progression and unlock mapping. +- `skills.skill_profile_id` β†’ `skill_profile.id`. +- `skill_profile.id` β†’ `skill_profile_levels.profile_id`. +- `skill_ability_gain.skillID` β†’ `skills.id`. +- `skill_ability_gain.abilityID` β†’ `abilities.id`. +- `character_create_skills.skill` β†’ `skills.id`. +- `abilities.skill` can map an ability back to its parent skill line. + +## Data Creation Flow +1. Create stats used by skill stat-gain columns. +2. Create skill XP profile header rows. +3. Create skill XP profile level rows. +4. Create skill definitions with prerequisites. +5. Create abilities that skills can unlock. +6. Create skill-to-ability gain rows. +7. Assign starter skills in character template setup. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO skill_profile (type, profile_name, level_diff, isactive) +VALUES (1, 'Warrior Skill Curve', 0, 1); +``` + +## Mystical Islands Usage +Skills represent nautical combat disciplines, survival professions, and class progression trees. Prerequisites and unlock rows should enforce intended class identity and level pacing. + +## External Application Notes +- skill planner +- character builder +- class progression validator +- admin skill tree editor + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-stat-thresholds.md b/docs/sql/reference/combat-stat-thresholds.md new file mode 100644 index 0000000..c817e11 --- /dev/null +++ b/docs/sql/reference/combat-stat-thresholds.md @@ -0,0 +1,90 @@ +# Stat Thresholds + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +Stat Thresholds define diminishing/increasing return breakpoints for stat functions. They control how much effective output each additional stat point contributes beyond configured thresholds. + +## Source Links +- https://unity.wiki.atavismonline.com/project/stat-thresholds/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `stat_thresholds` | Threshold definitions per stat function | core + demo | +| `stat` | Provides stat function names used by thresholds | core + demo | +| `damage_type` | Consumes stats whose functions may be threshold-scaled | core + demo | +| `abilities` | Uses damage/stat outcomes affected by threshold logic | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `stat_thresholds` | `stat_function` | Function family to scale | Matches `stat.stat_function` text | `stat.stat_function` | +| `stat_thresholds` | `threshold` | Breakpoint value | Stat amount where scaling step changes | combat formula engine | +| `stat_thresholds` | `num_per_point` | Points required per effective unit after threshold | Higher values = stronger diminishing returns | combat formula engine | +| `stat` | `stat_function` | Function classification for each stat | Link key into threshold table | `stat_thresholds.stat_function` | +| `stat` | `name` | Concrete stat name | Stat participates in formulas using its function group | `damage_type` fields, skills, effects | +| `damage_type` | `resistance_stat`, `power_stat`, `accuracy_stat`, `evasion_stat`, `critic_*` | Formula slots impacted by threshold-scaled stats | Each should resolve to a stat row | `stat.name` | +| `abilities` | `damageType` | Chooses formula family through damage type | Indirect threshold influence path | `damage_type.name` | + +## Relationships +- `stat_thresholds.stat_function` must match values used in `stat.stat_function`. +- stats selected by `damage_type` participate in combat formulas where threshold scaling can apply. +- abilities inherit threshold behavior through their selected `damageType` and resulting stat mappings. +- threshold tuning therefore affects crit scaling, resistance scaling, hit scaling, and damage scaling. + +## Data Creation Flow +1. Define/verify stat rows and stat functions. +2. Add threshold rows ordered by increasing threshold value per function. +3. Map damage types to the relevant stats. +4. Test ability damage/heal and crit outcomes across low/high stat values. +5. Adjust `num_per_point` for desired diminishing return curves. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO stat_thresholds (stat_function, threshold, num_per_point) +VALUES ('Critic Chance', 500, 15); +``` + +## Mystical Islands Usage +Thresholds will be used to keep late-game stat scaling stable and prevent runaway crit or resistance stacking in PvE and PvP. + +## External Application Notes +- player build calculator +- stat curve visualizer +- combat tuning worksheet +- admin threshold editor + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts. diff --git a/docs/sql/reference/combat-stats-plugin.md b/docs/sql/reference/combat-stats-plugin.md new file mode 100644 index 0000000..1db66d1 --- /dev/null +++ b/docs/sql/reference/combat-stats-plugin.md @@ -0,0 +1,108 @@ +# Stats Plugin + +## AI Reference Notes +This file is intended for: +- human developers +- GitHub Copilot +- ChatGPT +- future automated SQL generation +- future admin/player tools + +This file is based on: +- Atavism 10.13 SQL core schema +- Atavism 10.13 demo SQL rows +- official Atavism wiki documentation + +Before generating SQL: +- verify target database version is Atavism 10.13 +- verify table names +- verify column names +- verify IDs +- verify option choices +- verify foreign key-style relationships +- verify whether the database was created from core schema or demo schema + +## Purpose +The Stats Plugin defines all combat and progression stats, their calculation functions, growth rules, links/conversions, and reusable stat profiles for players and mobs. + +## Source Links +- https://unity.wiki.atavismonline.com/project/stats-plugin/ +- https://unity.wiki.atavismonline.com/ + +## SQL Files Reviewed +- docs/sql/10.13/core/ +- docs/sql/10.13/demo/ + +## Tables Edited / Used + +| Table | Purpose | Source | +|---|---|---| +| `stat` | Master stat definitions and behavior settings | core + demo | +| `stat_link` | Converts one stat into another using point conversion settings | core + demo | +| `stat_profile` | Named stat profile headers | core + demo | +| `stat_profile_stats` | Per-stat values inside each profile | core + demo | +| `character_create_stats` | Starting player stat values on character templates | core + demo | +| `mob_stat` | Mob template stat values | core + demo | +| `damage_type` | Uses stat names for resistance/power/accuracy/evasion/crit mappings | core + demo | +| `skills` | Uses stat names for skill-based stat progression | core + demo | + +## Column Reference + +| Table | Column | Meaning | Notes | Related Tables | +|---|---|---|---|---| +| `stat` | `id`, `name` | Stat identity | `name` is the key used throughout combat tables | many tables reference `stat.name` | +| `stat` | `type`, `stat_function` | Stat type and function group | Function text is used by thresholds/formulas | `stat_thresholds.stat_function` | +| `stat` | `mob_base`, `mob_level_increase`, `mob_level_percent_increase` | Mob progression defaults | Baseline + scaling values | `mob_stat`, mob formulas | +| `stat` | `min`, `max`, `maxstat`, `canExceedMax` | Min/max and cap behavior | `maxstat` points to another stat name | `stat.name` | +| `stat` | `shiftTarget`, `shiftValue`, `shiftReverseValue`, `shiftInterval`, `isShiftPercent` | Shift/regen/degeneration mechanics | Supports periodic stat shifts | `stat.name` | +| `stat` | `onMaxHit`, `onMinHit`, `shiftReq*` columns | Boundary and conditional behavior | Requires editor validation | state/effect systems | +| `stat` | `startPercent`, `deathResetPercent`, `releaseResetPercent` | Spawn/death reset handling | Vital for vitality stat behavior | character runtime | +| `stat` | `sendToClient`, `serverPresent`, `stat_precision` | Replication and precision settings | 10.13 schema includes precision/server flags | client/runtime systems | +| `stat` | `onThreshold*`, `threshold*` | Threshold trigger fields | Works with threshold functions | `stat_thresholds` | +| `stat_link` | `stat`, `statTo`, `pointsForChange`, `changePerPoint` | Conversion from one stat to another | Used for derived stat gains | `stat.name` | +| `stat_profile` | `id`, `name` | Stat profile identity | Reusable profile header | `stat_profile_stats.profile_id` | +| `stat_profile_stats` | `profile_id`, `stat_id`, `value` | Stat values within profile | Base value assignment | `stat_profile.id`, `stat.id` | +| `stat_profile_stats` | `level_increase`, `level_percent_increase` | Level scaling in profile | Flat + percent growth | progression systems | +| `stat_profile_stats` | `send_to_client`, `serverPresent`, `override_values` | Profile-level stat flags | Can override default stat behavior | runtime/client systems | +| `character_create_stats` | `character_create_id`, `stat`, `value` | New character base stats | Character template defaults | `character_create_template.id`, `stat.name` | +| `character_create_stats` | `levelIncrease`, `levelPercentIncrease` | Per-level growth by character template | Template-specific scaling | β€” | +| `mob_stat` | `mobTemplate`, `stat`, `value` | Per-mob stat value overrides | Monster balance data | `mob_templates.id`, `stat.name` | + +## Relationships +- `stat` is the central registry used by skills, effects, damage, and character templates. +- `stat_link` maps source stats to destination stats for derived values. +- `stat_profile` + `stat_profile_stats` package reusable stat sets. +- `character_create_stats` and `mob_stat` consume stat names for runtime entities. +- `damage_type` maps combat formula slots directly to stat names. +- `stat.stat_function` names connect to `stat_thresholds.stat_function` rows. + +## Data Creation Flow +1. Create base stat rows. +2. Configure stat caps, shift rules, and reset behavior. +3. Create stat links for derived conversions. +4. Create stat profiles and profile stat entries. +5. Configure character template stats. +6. Configure mob stat values. +7. Connect damage types and skills to finalized stat names. + +## Example SQL Planning Notes +```sql +-- Example only. Verify IDs before inserting. +INSERT INTO stat (name, type, stat_function, min, max, sendToClient, serverPresent, isactive) +VALUES ('seafaring_power', 0, 'Damage Power', 0, 9999, 1, 1, 1); +``` + +## Mystical Islands Usage +Stats define core combat identity (power, resistance, crit, vitality, speed) and progression scaling across classes, mobs, ships, and itemization. + +## External Application Notes +- player build calculator +- combat balancing dashboard +- stat profile editor +- mob tuning assistant + +## Atavism 10.13 Notes +No major 10.13-specific differences were identified from this page. Recheck when upgrading. + +## Uncertain Mappings +Mapping uncertain. Verify against Atavism 10.13 schema and editor behavior before generating production inserts.