diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md
index bc366ba..a210707 100644
--- a/.claude/CLAUDE.md
+++ b/.claude/CLAUDE.md
@@ -10,14 +10,14 @@ This file is the primary context for any AI coding agent working on this reposit
- **Genre:** Hybrid MMO + Top-down ARPG (NOT full open-world MMORPG)
- **References:** Diablo IV, Path of Exile 2, Lost Ark
- **Setting:** Near-future ~2050, post-apocalyptic, MetaDOS universe
-- **Tone:** Dark sci-fi, cyberpunk, cultivation-progression, AI NPC society
+- **Tone:** Dark sci-fi, cyberpunk, body/soul survival, AI NPC society
## Four Signature Features (DO NOT LOSE TRACK)
1. **AI Agent 24/7** - When the player is offline, an LLM-driven AI agent fully controls their character (farms, quests, socializes with NPCs and other players' agents). When the player returns, they take over control. This is a near-unique feature in MMO/ARPG space.
-2. **Reincarnation with progression reset** - Death is permanent for the body. Consciousness transfers to a new body via SECOND token or special item. Progression resets (roguelike-MMO hybrid). Cultivation tier may carry over partial.
+2. **Reincarnation with progression reset** - Death is permanent for the body. Consciousness transfers to a new body via SECOND token or special item. Current-body progression resets in a roguelike-MMO hybrid loop. Durable soul/profile carryover rules are deferred until the reincarnation design is sharper.
3. **Time-as-Currency** - Time is both the current body's survival resource and a spendable economy resource, adapted from MetaDOS and the `In Time` inspiration. Running out of body time triggers death/reincarnation; spending time creates hard tactical tradeoffs.
-4. **Consciousness transfer to NPC/synthetic bodies** - Sci-fi explanation (mind upload, synthetic bodies, Nibirium-enhanced cloning). NOT spiritual reincarnation.
+4. **Consciousness transfer to NPC/synthetic bodies** - Sci-fi explanation (mind upload, synthetic bodies, cloning, and body imprinting). NOT spiritual reincarnation.
## Actor and Body Model (CORE)
@@ -27,18 +27,16 @@ This file is the primary context for any AI coding agent working on this reposit
- Each important actor body should eventually resolve to a bundle: `BodyProfile`, `CharacterStats`, `CharacterTraits`, `SoulProfile`, `MemoryRecord`, `AgentPolicy` or NPC policy, `AgentRuntime`, and `AgentActivity`.
- Reincarnation destroys or retires the current body. The durable player consciousness transfers into a new body, with only explicitly designed layers carrying over.
-## Cultivation System (sci-fi, not Chinese-style)
+## Advanced Body Progression (DEFERRED)
-6 tiers:
+The previous cultivation / Nibirium XP concept is explicitly deferred and must
+not be implemented in the current vertical slice. It felt too close to a
+traditional XP bar. The slice uses level and character stats as the progression
+baseline.
-1. Awakening - Activate Nibirium absorption
-2. Enhancement - Body strengthening
-3. Core Formation - Energy core formation
-4. Evolution - DNA / special ability evolution
-5. Transcendence - Beyond human limits
-6. Ascension - Near-divine
-
-International-friendly framing. Explained via science (Nibirium, biotech, consciousness transfer).
+Future advanced body or soul progression needs a fresh design pass before any
+implementation. Do not add cultivation tiers, Nibirium XP, tier-up rituals, or
+Cultivation Master mechanics without a new approved design update.
## Gameplay Architecture
@@ -96,7 +94,7 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci
- Migrate LLM calls to `api.dos.ai` / Go LLM Gateway, models:
- Haiku 4.5 for NPC chat (fast, cheap)
- - Sonnet 4.6 for boss / quest / cultivation master dialog
+ - Sonnet 4.6 for boss / quest-critical dialog
- RAG memory: Supabase pgvector or Qdrant
- Voice: OpenAI Realtime API via ephemeral token (NOT API key in client) OR ElevenLabs
- Client AI: Unity Sentis for small perception (optional, phase 3)
@@ -126,7 +124,7 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci
- Agent operates within Fusion server tick (server-authoritative)
- Agent decision loop: pull state from Fusion -> reason via LLM gateway -> emit action intent -> server validates -> apply
- Anti-abuse: agent inherits player's rate limit + capability cap
-- Agent persona: derived from player history + character cultivation tier
+- Agent persona: derived from player history, current body stats, and player profile
- Agent death = body death = reincarnation triggered (same as player death)
### NFT / Blockchain
@@ -233,7 +231,7 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci
- Guild / social (phase 2)
- Reincarnation mechanic
- AI agent for offline players
-- Cultivation tier progression
+- Advanced body progression beyond level/stats is deferred until redesigned
### Recommended Reading List
@@ -305,7 +303,6 @@ Scope:
- Reincarnation MVP (die -> SECOND token -> respawn with reset)
- Time-as-currency MVP (body time meter, earn/spend loop, zero time triggers reincarnation placeholder)
- AI agent control (simple: agent farms one designated area when player offline)
-- 2 cultivation tiers playable (Awakening + Enhancement)
- NFT Hunter skin equip + escrow
- Multiplayer 4-20 players per zone
- Basic chat (Nakama channels first, Supabase sidecar only if useful)
@@ -316,7 +313,7 @@ OUT of scope for vertical slice:
- Marketplace
- Pet breeding
- Multiple zones
-- Tier 3-6 cultivation
+- Advanced body progression
- Voice NPC
- Full quest system
@@ -336,6 +333,7 @@ OUT of scope for vertical slice:
- Final game name (SECOND SPAWN is codename, may rename after vertical slice playable)
- SECOND token economy design (cost per reincarnation, source, sink)
- BodyTime tuning (where time drains, how it is earned, how it can be spent, and whether it can convert to/from SECOND token)
+- Advanced body or soul progression replacing the deferred concept
- Hunter NFT integration approach: Option 1 (preset hero) vs Hybrid 1+3 (modular pieces)
- Phase 2 LLM model split (when to use Haiku vs Sonnet)
- Voice NPC vendor (OpenAI Realtime vs ElevenLabs vs self-host)
diff --git a/AGENTS.md b/AGENTS.md
index 9fa54f2..9e5343a 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -10,14 +10,14 @@ This file is the primary context for any AI coding agent working on this reposit
- **Genre:** Hybrid MMO + Top-down ARPG (NOT full open-world MMORPG)
- **References:** Diablo IV, Path of Exile 2, Lost Ark
- **Setting:** Near-future ~2050, post-apocalyptic, MetaDOS universe
-- **Tone:** Dark sci-fi, cyberpunk, cultivation-progression, AI NPC society
+- **Tone:** Dark sci-fi, cyberpunk, body/soul survival, AI NPC society
## Four Signature Features (DO NOT LOSE TRACK)
1. **AI Agent 24/7** - When the player is offline, an LLM-driven AI agent fully controls their character (farms, quests, socializes with NPCs and other players' agents). When the player returns, they take over control. This is a near-unique feature in MMO/ARPG space.
-2. **Reincarnation with progression reset** - Death is permanent for the body. Consciousness transfers to a new body via SECOND token or special item. Progression resets (roguelike-MMO hybrid). Cultivation tier may carry over partial.
+2. **Reincarnation with progression reset** - Death is permanent for the body. Consciousness transfers to a new body via SECOND token or special item. Current-body progression resets in a roguelike-MMO hybrid loop. Durable soul/profile carryover rules are deferred until the reincarnation design is sharper.
3. **Time-as-Currency** - Time is both the current body's survival resource and a spendable economy resource, adapted from MetaDOS and the `In Time` inspiration. Running out of body time triggers death/reincarnation; spending time creates hard tactical tradeoffs.
-4. **Consciousness transfer to NPC/synthetic bodies** - Sci-fi explanation (mind upload, synthetic bodies, Nibirium-enhanced cloning). NOT spiritual reincarnation.
+4. **Consciousness transfer to NPC/synthetic bodies** - Sci-fi explanation (mind upload, synthetic bodies, cloning, and body imprinting). NOT spiritual reincarnation.
## Actor and Body Model (CORE)
@@ -27,18 +27,16 @@ This file is the primary context for any AI coding agent working on this reposit
- Each important actor body should eventually resolve to a bundle: `BodyProfile`, `CharacterStats`, `CharacterTraits`, `SoulProfile`, `MemoryRecord`, `AgentPolicy` or NPC policy, `AgentRuntime`, and `AgentActivity`.
- Reincarnation destroys or retires the current body. The durable player consciousness transfers into a new body, with only explicitly designed layers carrying over.
-## Cultivation System (sci-fi, not Chinese-style)
+## Advanced Body Progression (DEFERRED)
-6 tiers:
+The previous cultivation / Nibirium XP concept is explicitly deferred and must
+not be implemented in the current vertical slice. It felt too close to a
+traditional XP bar. The slice uses level and character stats as the progression
+baseline.
-1. Awakening - Activate Nibirium absorption
-2. Enhancement - Body strengthening
-3. Core Formation - Energy core formation
-4. Evolution - DNA / special ability evolution
-5. Transcendence - Beyond human limits
-6. Ascension - Near-divine
-
-International-friendly framing. Explained via science (Nibirium, biotech, consciousness transfer).
+Future advanced body or soul progression needs a fresh design pass before any
+implementation. Do not add cultivation tiers, Nibirium XP, tier-up rituals, or
+Cultivation Master mechanics without a new approved design update.
## Gameplay Architecture
@@ -96,7 +94,7 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci
- Migrate LLM calls to `api.dos.ai` / Go LLM Gateway, models:
- Haiku 4.5 for NPC chat (fast, cheap)
- - Sonnet 4.6 for boss / quest / cultivation master dialog
+ - Sonnet 4.6 for boss / quest-critical dialog
- RAG memory: Supabase pgvector or Qdrant
- Voice: OpenAI Realtime API via ephemeral token (NOT API key in client) OR ElevenLabs
- Client AI: Unity Sentis for small perception (optional, phase 3)
@@ -126,7 +124,7 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci
- Agent operates within Fusion server tick (server-authoritative)
- Agent decision loop: pull state from Fusion -> reason via LLM gateway -> emit action intent -> server validates -> apply
- Anti-abuse: agent inherits player's rate limit + capability cap
-- Agent persona: derived from player history + character cultivation tier
+- Agent persona: derived from player history, current body stats, and player profile
- Agent death = body death = reincarnation triggered (same as player death)
### NFT / Blockchain
@@ -233,7 +231,7 @@ International-friendly framing. Explained via science (Nibirium, biotech, consci
- Guild / social (phase 2)
- Reincarnation mechanic
- AI agent for offline players
-- Cultivation tier progression
+- Advanced body progression beyond level/stats is deferred until redesigned
### Recommended Reading List
@@ -305,7 +303,6 @@ Scope:
- Reincarnation MVP (die -> SECOND token -> respawn with reset)
- Time-as-currency MVP (body time meter, earn/spend loop, zero time triggers reincarnation placeholder)
- AI agent control (simple: agent farms one designated area when player offline)
-- 2 cultivation tiers playable (Awakening + Enhancement)
- NFT Hunter skin equip + escrow
- Multiplayer 4-20 players per zone
- Basic chat (Nakama channels first, Supabase sidecar only if useful)
@@ -316,7 +313,7 @@ OUT of scope for vertical slice:
- Marketplace
- Pet breeding
- Multiple zones
-- Tier 3-6 cultivation
+- Advanced body progression
- Voice NPC
- Full quest system
@@ -336,6 +333,7 @@ OUT of scope for vertical slice:
- Final game name (SECOND SPAWN is codename, may rename after vertical slice playable)
- SECOND token economy design (cost per reincarnation, source, sink)
- BodyTime tuning (where time drains, how it is earned, how it can be spent, and whether it can convert to/from SECOND token)
+- Advanced body or soul progression replacing the deferred concept
- Hunter NFT integration approach: Option 1 (preset hero) vs Hybrid 1+3 (modular pieces)
- Phase 2 LLM model split (when to use Haiku vs Sonnet)
- Voice NPC vendor (OpenAI Realtime vs ElevenLabs vs self-host)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c83fe55..6aa6afb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -69,7 +69,7 @@ versioned release tag yet, so entries are organized as pre-alpha snapshots.
- Nakama OSS backend base with TypeScript runtime modules, local config, custom
Supabase-auth bridge, profile bootstrap, soul update, memory write, and agent
decision RPC.
-- Agent context, soul, character trait, BodyTime, cultivation, policy, and memory
+- Agent context, soul, character trait, BodyTime, level/stats, policy, and memory
contracts.
- Unity gateway client with Nakama fallback, local memory seeding, NPC chat,
speech bubble, and prototype voice cue.
diff --git a/ROADMAP.md b/ROADMAP.md
index e8734dc..45855cd 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -24,7 +24,7 @@ especially `docs/design/02-vertical-slice-spec.md` and
- [x] Go LLM gateway scaffold with health/readiness, character context, memory,
soul update, NPC chat, voice-session contract, and agent decision routes.
- [x] Agent context contract covering player profile, body state, soul,
- traits, cultivation, BodyTime, agent policy, and compact memory.
+ traits, level/stats, BodyTime, agent policy, and compact memory.
- [x] Prototype Unity gateway client with Nakama fallback, profile/memory sync,
NPC chat, local voice cue, and speech bubble.
- [x] Local player agent prototype toggle for bounded movement intent.
@@ -70,7 +70,6 @@ MVP, and a visible offline-agent prototype.
- [ ] Add BodyTime meter MVP with one earn source and one spend sink.
- [ ] Add reincarnation placeholder flow: death -> SECOND token check ->
respawn with current-body reset.
-- [ ] Add cultivation tiers 1-2: Awakening and Enhancement.
- [ ] Add one dungeon instance with one boss and grounded dialogue.
- [ ] Add one Hunter NFT skin equip placeholder with DOS Chain escrow design
still server-authoritative.
@@ -84,7 +83,6 @@ MVP, and a visible offline-agent prototype.
- [ ] Add RAG memory for NPCs with Supabase pgvector or Qdrant.
- [ ] Expand quest system beyond the first vertical slice questline.
- [ ] Add multiple zones with travel.
-- [ ] Add cultivation tiers 3-4.
- [ ] Add marketplace and NFT trade.
- [ ] Add guild system before PvP.
- [ ] Add voice NPC if ephemeral-token cost and reliability are acceptable.
@@ -93,7 +91,6 @@ MVP, and a visible offline-agent prototype.
- [ ] Guild PvP up to 50v50.
- [ ] Pet breeding system.
-- [ ] Cultivation tiers 5-6.
- [ ] Movement-only mount system.
- [ ] Economy balancing.
- [ ] Live ops infrastructure.
@@ -104,7 +101,7 @@ MVP, and a visible offline-agent prototype.
- [ ] Seasons and content updates.
- [ ] Modding support.
- [ ] Sentis on-device AI for client perception.
-- [ ] More cultivation paths.
+- [ ] Redesign advanced body or soul progression after the vertical slice.
## Deliberately Out of Scope
diff --git a/Unity/Assets/_SecondSpawn/Scripts/AI/AgentContextDto.cs b/Unity/Assets/_SecondSpawn/Scripts/AI/AgentContextDto.cs
index 89220f4..2e37634 100644
--- a/Unity/Assets/_SecondSpawn/Scripts/AI/AgentContextDto.cs
+++ b/Unity/Assets/_SecondSpawn/Scripts/AI/AgentContextDto.cs
@@ -41,7 +41,6 @@ public sealed class BodyProfileDto
public CharacterStatsDto stats;
public CharacterTraitsDto characteristics;
public BodyTimeDto time;
- public CultivationDto cultivation;
public string lifecycle = "alive";
public AgentPolicyDto agent_policy;
public SoulProfileDto soul;
@@ -101,13 +100,6 @@ public sealed class BodyTimeEventRequestDto
public string note;
}
- [Serializable]
- public sealed class CultivationDto
- {
- public string tier;
- public long progress_xp;
- }
-
[Serializable]
public sealed class AgentPolicyDto
{
@@ -202,7 +194,6 @@ public sealed class ActorProfileRequestDto
public CharacterStatsDto stats;
public CharacterTraitsDto characteristics;
public BodyTimeDto time;
- public CultivationDto cultivation;
public SoulProfileDto soul;
public AgentPolicyDto agent_policy;
}
diff --git a/Unity/Assets/_SecondSpawn/Scripts/AI/SecondSpawnGatewayClient.cs b/Unity/Assets/_SecondSpawn/Scripts/AI/SecondSpawnGatewayClient.cs
index 6fcb9b7..6e05a0f 100644
--- a/Unity/Assets/_SecondSpawn/Scripts/AI/SecondSpawnGatewayClient.cs
+++ b/Unity/Assets/_SecondSpawn/Scripts/AI/SecondSpawnGatewayClient.cs
@@ -567,7 +567,6 @@ private sealed class GatewayBodyProfileDto
public CharacterStatsDto stats;
public CharacterTraitsDto characteristics;
public BodyTimeDto time;
- public CultivationDto cultivation;
public AgentPolicyDto agent_policy;
public SoulProfileDto soul;
public MemoryRecordDto[] memory;
@@ -588,7 +587,6 @@ public static GatewayBodyProfileDto From(BodyProfileDto body)
stats = body.stats,
characteristics = body.characteristics,
time = body.time,
- cultivation = body.cultivation,
agent_policy = body.agent_policy,
soul = body.soul,
memory = body.memory
diff --git a/Unity/Assets/_SecondSpawn/Scripts/Networking/NetworkPlayer.cs b/Unity/Assets/_SecondSpawn/Scripts/Networking/NetworkPlayer.cs
index 92d0b32..f130d0f 100644
--- a/Unity/Assets/_SecondSpawn/Scripts/Networking/NetworkPlayer.cs
+++ b/Unity/Assets/_SecondSpawn/Scripts/Networking/NetworkPlayer.cs
@@ -12,8 +12,8 @@ namespace SecondSpawn.Networking
/// owns every [Networked] property. Per Pillar 4 (Server-authoritative
/// gameplay) and Hard Rule #2 (LLM never mutates state directly).
///
- /// Vertical slice scope: position + rotation + cultivation tier +
- /// HP + agent flag. Inventory, quest progress, NFT lock state are
+ /// Vertical slice scope: position, rotation, level, combat stats,
+ /// BodyTime, HP, and agent flag. Inventory, quest progress, NFT lock state are
/// persisted in Supabase (durable layer), not held in
/// [Networked] properties (session layer).
///
@@ -21,7 +21,6 @@ namespace SecondSpawn.Networking
[RequireComponent(typeof(SimpleKCC))]
public sealed class NetworkPlayer : NetworkBehaviour
{
- [Networked] public int CultivationTier { get; set; }
[Networked] public float Hp { get; set; }
[Networked] public float Stamina { get; set; }
[Networked] public int Level { get; set; }
@@ -68,7 +67,6 @@ public override void Spawned()
if (HasStateAuthority)
{
- CultivationTier = 1; // Awakening - starting tier per docs/design/04-cultivation-system.md
ApplyDefaultStats();
if (EquipmentVisualId == EquipmentVisualCatalog.None)
{
diff --git a/Unity/Assets/_SecondSpawn/Scripts/UI/HUDController.cs b/Unity/Assets/_SecondSpawn/Scripts/UI/HUDController.cs
index ac2d6a9..4655851 100644
--- a/Unity/Assets/_SecondSpawn/Scripts/UI/HUDController.cs
+++ b/Unity/Assets/_SecondSpawn/Scripts/UI/HUDController.cs
@@ -47,7 +47,7 @@ private void OnGUI()
var rect = new Rect(_panelPosition.x, _panelPosition.y, _panelSize.x, _panelSize.y);
GUI.Box(rect, "SECOND SPAWN");
GUILayout.BeginArea(new Rect(rect.x + 12f, rect.y + 24f, rect.width - 24f, rect.height - 32f));
- GUILayout.Label($"Level {player.Level} | Tier {player.CultivationTier}", _labelStyle);
+ GUILayout.Label($"Level {player.Level}", _labelStyle);
GUILayout.Label($"HP {player.Hp:0}/{player.MaxHealth} | Energy {player.Stamina:0}/{player.MaxEnergy}", _labelStyle);
GUILayout.Label($"ATK {player.AttackPower} | DEF {player.DefensePower} | AGI {player.Agility}", _labelStyle);
GUILayout.Label($"BodyTime {FormatSeconds(player.BodyTimeRemainingSeconds)} / {FormatSeconds(player.BodyTimeMaxSeconds)}", _labelStyle);
diff --git a/backend/gateway/README.md b/backend/gateway/README.md
index 6b3e836..1139930 100644
--- a/backend/gateway/README.md
+++ b/backend/gateway/README.md
@@ -10,7 +10,7 @@ following boundaries; the prototype has not wired every item yet:
- Per-player rate limits + daily token budget (Redis)
- Server-side intent validation (no LLM-driven state mutation)
- Prompt injection defense (reuses DOSafe patterns)
-- Provider routing (Anthropic for boss / cultivation master dialogue,
+- Provider routing (Anthropic for boss / quest-critical dialogue,
Convai for general NPC dialogue in phase 1)
Reuses the operational pattern of `D:\Projects\DOSRouter` (the Go LLM
diff --git a/backend/gateway/internal/character/profile.go b/backend/gateway/internal/character/profile.go
index c256fba..7e5fe3e 100644
--- a/backend/gateway/internal/character/profile.go
+++ b/backend/gateway/internal/character/profile.go
@@ -25,7 +25,6 @@ type BodyProfile struct {
Stats CharacterStats `json:"stats"`
Characteristics CharacterTraits `json:"characteristics"`
Time BodyTimeState `json:"time"`
- Cultivation Cultivation `json:"cultivation"`
Lifecycle BodyLifecycle `json:"lifecycle"`
AgentPolicy AgentPolicy `json:"agent_policy"`
Soul SoulProfile `json:"soul"`
@@ -71,11 +70,6 @@ type BodyTimeState struct {
DangerDrainRate int64 `json:"danger_drain_rate"`
}
-type Cultivation struct {
- Tier string `json:"tier"`
- ProgressXP int64 `json:"progress_xp"`
-}
-
type BodyLifecycle string
const (
@@ -207,7 +201,6 @@ func BuildAgentContextPrompt(ctx AgentContext, maxMemories int) string {
ctx.Body.Stats.DefensePower,
))
writeKV(&b, "body_lifecycle", string(ctx.Body.Lifecycle))
- writeKV(&b, "cultivation_tier", ctx.Body.Cultivation.Tier)
writeKV(&b, "body_time_seconds", fmt.Sprintf("%d/%d", ctx.Body.Time.RemainingSeconds, ctx.Body.Time.MaxSeconds))
writeKV(&b, "traits", fmt.Sprintf("curiosity=%d courage=%d empathy=%d discipline=%d aggression=%d sociability=%d",
ctx.Body.Characteristics.Curiosity,
diff --git a/backend/gateway/internal/character/profile_test.go b/backend/gateway/internal/character/profile_test.go
index d3d52fd..923ea55 100644
--- a/backend/gateway/internal/character/profile_test.go
+++ b/backend/gateway/internal/character/profile_test.go
@@ -38,7 +38,6 @@ func TestBuildAgentContextPromptSortsAndBoundsMemories(t *testing.T) {
RemainingSeconds: 3600,
MaxSeconds: 7200,
},
- Cultivation: Cultivation{Tier: "Awakening"},
AgentPolicy: AgentPolicy{
Enabled: true,
Mode: "farm_safe_area",
@@ -50,7 +49,7 @@ func TestBuildAgentContextPromptSortsAndBoundsMemories(t *testing.T) {
Temperament: "cautious",
CombatStyle: "kite enemies",
SocialStyle: "brief and practical",
- LongTermGoals: []string{"reach Enhancement"},
+ LongTermGoals: []string{"survive the next expedition"},
MoralBoundaries: []string{"do not betray allies"},
PlayerNotes: "avoid unnecessary risk",
},
diff --git a/backend/gateway/internal/character/store.go b/backend/gateway/internal/character/store.go
index a0a1141..75e4bb5 100644
--- a/backend/gateway/internal/character/store.go
+++ b/backend/gateway/internal/character/store.go
@@ -195,10 +195,6 @@ func NewDefaultAgentContext(playerID string, now time.Time) AgentContext {
MaxSeconds: 24 * 60 * 60,
DangerDrainRate: 1,
},
- Cultivation: Cultivation{
- Tier: "Awakening",
- ProgressXP: 0,
- },
Lifecycle: BodyLifecycleAlive,
AgentPolicy: AgentPolicy{
Enabled: true,
@@ -217,7 +213,7 @@ func NewDefaultAgentContext(playerID string, now time.Time) AgentContext {
CombatStyle: "avoid risky fights, kite when threatened",
SocialStyle: "brief, grounded, and helpful",
MoralBoundaries: []string{"do not betray allies", "do not spend scarce resources without permission"},
- LongTermGoals: []string{"reach Enhancement", "build trusted relationships with NPCs"},
+ LongTermGoals: []string{"survive the next expedition", "build trusted relationships with NPCs"},
PlayerNotes: "prototype default soul",
ReincarnationLore: "a synthetic body carrying a persistent consciousness imprint",
},
diff --git a/backend/gateway/internal/intent/intent.go b/backend/gateway/internal/intent/intent.go
index e6b8b0d..e20084d 100644
--- a/backend/gateway/internal/intent/intent.go
+++ b/backend/gateway/internal/intent/intent.go
@@ -38,7 +38,7 @@ const (
// IntentNPCOfferQuest proposes that an NPC offers a quest to a player.
// Validated against: NPC has authority for this quest; player meets
- // prerequisites (cultivation tier, prior quests done, faction standing).
+ // prerequisites (level, prior quests done, faction standing).
IntentNPCOfferQuest IntentType = "npc_offer_quest"
// IntentNPCGrantItem proposes that an NPC grants an item.
diff --git a/backend/gateway/internal/llm/provider.go b/backend/gateway/internal/llm/provider.go
index fdd0302..050b4da 100644
--- a/backend/gateway/internal/llm/provider.go
+++ b/backend/gateway/internal/llm/provider.go
@@ -24,7 +24,7 @@ type Model string
const (
ModelHaikuFast Model = "claude-haiku-4-5" // NPC chat (fast, cheap) - phase 2
- ModelSonnetSmart Model = "claude-sonnet-4-6" // boss / cultivation master dialog - phase 2
+ ModelSonnetSmart Model = "claude-sonnet-4-6" // boss / quest-critical dialog - phase 2
ModelOpenAIVoice Model = "gpt-realtime" // voice NPC via ephemeral token - phase 2
ModelConvaiPhase1 Model = "convai-default" // phase 1 NPC dialogue
)
diff --git a/backend/gateway/internal/server/server_test.go b/backend/gateway/internal/server/server_test.go
index 1a1c81c..271f2a6 100644
--- a/backend/gateway/internal/server/server_test.go
+++ b/backend/gateway/internal/server/server_test.go
@@ -68,7 +68,7 @@ func TestCharacterContextLifecycle(t *testing.T) {
"combat_style": "avoid fights",
"social_style": "plain",
"moral_boundaries": ["do not spend body time"],
- "long_term_goals": ["reach Enhancement"],
+ "long_term_goals": ["survive the next expedition"],
"player_notes": "test note",
"reincarnation_lore": "synthetic continuity"
},
@@ -155,10 +155,6 @@ func TestAgentDecidePrototype(t *testing.T) {
"max_seconds": 86400,
"danger_drain_rate": 1
},
- "cultivation": {
- "tier": "Awakening",
- "progress_xp": 0
- },
"lifecycle": "alive",
"agent_policy": {
"enabled": true,
@@ -177,7 +173,7 @@ func TestAgentDecidePrototype(t *testing.T) {
"combat_style": "avoid risky fights",
"social_style": "brief",
"moral_boundaries": ["do not betray allies"],
- "long_term_goals": ["reach Enhancement"],
+ "long_term_goals": ["survive the next expedition"],
"player_notes": "prototype",
"reincarnation_lore": "synthetic continuity"
},
diff --git a/backend/nakama/README.md b/backend/nakama/README.md
index c078030..0854363 100644
--- a/backend/nakama/README.md
+++ b/backend/nakama/README.md
@@ -76,7 +76,7 @@ The current prototype module registers:
- `secondspawn_health` - unauthenticated smoke check through `runtime.http_key`
- `secondspawn_profile_get` - get or create the authenticated player's profile,
- current body, soul, policy, BodyTime, cultivation, memory context, runtime
+ current body, soul, policy, BodyTime, level/stats, memory context, runtime
stats, and bounded agent activity log
- `secondspawn_memory_add` - add or deduplicate compact memory records
- `secondspawn_soul_update` - update soul, characteristics, and agent policy
diff --git a/backend/nakama/modules/index.ts b/backend/nakama/modules/index.ts
index 8bd3093..9486dc4 100644
--- a/backend/nakama/modules/index.ts
+++ b/backend/nakama/modules/index.ts
@@ -453,7 +453,6 @@ function actorProfileNeedsNormalization(profile: any): boolean {
!profile.body.stats ||
!profile.body.characteristics ||
!profile.body.time ||
- !profile.body.cultivation ||
!profile.body.lifecycle ||
!profile.body.agent_policy ||
!profile.body.soul ||
@@ -514,7 +513,6 @@ function defaultActorProfile(ownerId: string, actorId: string, request: any): an
stats: normalizeStats(request.stats || {}),
characteristics: normalizeTraits(request.characteristics || {}),
time: normalizeBodyTime(request.time || {}),
- cultivation: normalizeCultivation(request.cultivation || {}),
lifecycle: "alive",
agent_policy: normalizePolicy(request.agent_policy || {}),
soul: normalizeSoul(request.soul || { name: displayName }, displayName)
@@ -552,7 +550,6 @@ function ensureActorProfile(profile: any, ownerId: string, actorId: string): any
profile.body.stats = normalizeStats(profile.body.stats || {});
profile.body.characteristics = normalizeTraits(profile.body.characteristics || {});
profile.body.time = normalizeBodyTime(profile.body.time || {});
- profile.body.cultivation = normalizeCultivation(profile.body.cultivation || {});
profile.body.lifecycle = trimString(profile.body.lifecycle) || "alive";
profile.body.agent_policy = normalizePolicy(profile.body.agent_policy || {});
profile.body.soul = normalizeSoul(profile.body.soul || { name: profile.display_name }, profile.display_name);
@@ -586,10 +583,6 @@ function defaultAgentContext(playerId: string): any {
max_seconds: 86400,
danger_drain_rate: 1
},
- cultivation: {
- tier: "Awakening",
- progress_xp: 0
- },
lifecycle: "alive",
agent_policy: normalizePolicy({}),
soul: normalizeSoul({}, displayName),
@@ -626,7 +619,6 @@ function ensureAgentContext(context: any, playerId: string): any {
context.body.stats = normalizeStats(context.body.stats || {});
context.body.characteristics = normalizeTraits(context.body.characteristics || {});
context.body.time = normalizeBodyTime(context.body.time || {});
- context.body.cultivation = normalizeCultivation(context.body.cultivation || {});
context.body.lifecycle = trimString(context.body.lifecycle) || "alive";
context.body.agent_policy = normalizePolicy(context.body.agent_policy || {});
context.body.soul = normalizeSoul(context.body.soul || {}, context.player.display_name);
@@ -733,13 +725,6 @@ function normalizeBodyTime(time: any): any {
};
}
-function normalizeCultivation(cultivation: any): any {
- return {
- tier: trimString(cultivation.tier) || "Awakening",
- progress_xp: clampNumber(numberOrDefault(cultivation.progress_xp, 0), 0, agentRuntimeMetricMax)
- };
-}
-
function ensureBodyTime(context: any): void {
if (!context.body) {
context.body = {};
@@ -1095,7 +1080,7 @@ function normalizeSoul(soul: any, fallbackName: string): any {
"do not spend scarce resources without permission"
]),
long_term_goals: normalizeStringArray(soul.long_term_goals, [
- "reach Enhancement",
+ "survive the next expedition",
"build trusted relationships with NPCs"
]),
player_notes: trimString(soul.player_notes) || "prototype default soul",
diff --git a/backend/nakama/tests/supabase_custom_auth.test.mjs b/backend/nakama/tests/supabase_custom_auth.test.mjs
index 9f1df5f..f744494 100644
--- a/backend/nakama/tests/supabase_custom_auth.test.mjs
+++ b/backend/nakama/tests/supabase_custom_auth.test.mjs
@@ -280,7 +280,6 @@ const npcProfile = JSON.parse(harness.registeredRpcs.get("secondspawn_actor_prof
stats: { level: 0, max_health: 0, max_energy: 0, attack_power: 0 },
characteristics: { curiosity: 8, sociability: 9 },
time: { remaining_seconds: 0, max_seconds: 0, danger_drain_rate: 0 },
- cultivation: { tier: "", progress_xp: 0 },
soul: { core_drive: "help new bodies survive the hub" }
})
));
@@ -298,8 +297,6 @@ assert.equal(npcProfile.body.characteristics.sociability, 9);
assert.equal(npcProfile.body.time.remaining_seconds, 0);
assert.equal(npcProfile.body.time.max_seconds, 1);
assert.equal(npcProfile.body.time.danger_drain_rate, 0);
-assert.equal(npcProfile.body.cultivation.tier, "Awakening");
-assert.equal(npcProfile.body.cultivation.progress_xp, 0);
assert.equal(npcProfile.memory.length, 1);
assert.throws(
diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md
index fe8ff69..a9c8ae3 100644
--- a/docs/ARCHITECTURE.md
+++ b/docs/ARCHITECTURE.md
@@ -66,7 +66,7 @@ High-level architecture overview. For detailed component design see `docs/design
- Subscribes to Fusion server state for offline characters
- Decision loop: read state -> reason via LLM -> emit action intent
- Subject to same server validation as a real player
-- Inherits player's character cultivation tier + persona + history
+- Inherits player's current body stats, persona, and history
### OpenClaw-Connected NPC
@@ -137,5 +137,5 @@ High-level architecture overview. For detailed component design see `docs/design
- AI agent scheduling: 1 process per agent vs pooled worker?
- Fusion server sharding: 1 process per zone vs multiple zones per process?
- LLM cost cap per player per day (need to design)
-- Hot reload for cultivation balance changes (config in Postgres vs git)
+- Hot reload for progression balance changes (config in Postgres vs git)
- Replay system for cheat investigation (record Fusion ticks)
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index f633a38..a090bed 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -12,7 +12,7 @@
- [Game Pillars](design/01-pillars.md)
- [Vertical Slice Spec](design/02-vertical-slice-spec.md)
- [Systems Index](design/03-systems-index.md)
-- [Cultivation System](design/04-cultivation-system.md)
+- [Deferred Advanced Body Progression](design/04-cultivation-system.md)
- [Networking Architecture](design/05-networking-architecture.md)
- [Overview Design](design/06-overview-design.md)
- [Networked Player Controller Prototype](design/07-player-controller-prototype.md)
diff --git a/docs/adr/0004-ai-agent-offline-control.md b/docs/adr/0004-ai-agent-offline-control.md
index d29407b..3c80e7f 100644
--- a/docs/adr/0004-ai-agent-offline-control.md
+++ b/docs/adr/0004-ai-agent-offline-control.md
@@ -13,7 +13,7 @@ Core USP: when a player is offline, an LLM-driven AI agent controls their charac
1. **AI agent runs server-side**, not on player's client.
2. **Agent operates within Fusion server tick** - it emits intents identical to player input.
3. **Server validates agent intents the same as player intents** - no privilege escalation.
-4. **Agent persona derived from player history** (cultivation tier, quest progress, social graph) and configurable preferences.
+4. **Agent persona derived from player history** (level/stats, quest progress, social graph) and configurable preferences.
5. **Agent death = body death = reincarnation triggered.** Player returns to find a reincarnated character if their old body died.
6. **Anti-abuse:** agent inherits player rate limits + capability caps. Agent cannot farm more efficiently than the player.
diff --git a/docs/design/00-game-concept.md b/docs/design/00-game-concept.md
index f8e0ef8..83bea83 100644
--- a/docs/design/00-game-concept.md
+++ b/docs/design/00-game-concept.md
@@ -28,7 +28,7 @@
## Core Fantasy
-You are a Hunter in a 2050 post-apocalyptic world where consciousness can be transferred to synthetic bodies via Nibirium-enhanced biotech. You explore, fight, and progress through a 6-tier cultivation system. When you log off, you don't disappear from the world - your character keeps playing through an AI agent shaped by your history. Death is meaningful (the body dies) but not final (you reincarnate, partially carrying cultivation tier across bodies).
+You are a Hunter in a 2050 post-apocalyptic world where consciousness can be transferred to synthetic bodies. You explore, fight, level up the current body, and manage a finite body-time budget. When you log off, you don't disappear from the world - your character keeps playing through an AI agent shaped by your history. Death is meaningful (the body dies) but not final (you reincarnate into a new body).
The fantasy is "your character has a life that does not pause when yours does."
@@ -53,8 +53,8 @@ Ecosystem extension: a user's OpenClaw agent can also connect into SECOND SPAWN
| Rank | Aesthetic | How We Deliver It |
| ---- | ---- | ---- |
-| 1 | **Challenge** | Cultivation tier-up gates, dungeon bosses with LLM-driven dialogue + adaptive behavior, permanent body death |
-| 2 | **Discovery** | Layered MetaDOS lore (Nibirium, consciousness transfer, faction history); LLM NPCs reveal world state through dialogue; emergent stories from agent behaviors |
+| 1 | **Challenge** | Level/stat growth, dungeon bosses with LLM-driven dialogue + adaptive behavior, permanent body death |
+| 2 | **Discovery** | Layered MetaDOS lore (consciousness transfer, faction history); LLM NPCs reveal world state through dialogue; emergent stories from agent behaviors |
| 3 | **Fellowship** | 4-20 player zones, guild PvP 50v50, party invites via Nakama channels, agent-to-agent socialization across timezones |
| N/A | Sensation | Stylized low-poly art (Synty / Quaternius); not a sensory-pleasure-first game |
| N/A | Submission | Active play is intentionally engaging; relaxed offline progress is delegated to the AI agent rather than the player |
@@ -64,7 +64,7 @@ Ecosystem extension: a user's OpenClaw agent can also connect into SECOND SPAWN
1. Top-down ARPG action combat (minimal Fusion controller first; Opsive Ultimate Character Controller is an evaluation candidate)
2. LLM-driven NPC dialogue with server-validated intent (Convai phase 1, `api.dos.ai` / Go LLM Gateway phase 2)
3. AI agent autonomous control of player character when offline (server-authoritative, capability-capped)
-4. Reincarnation via SECOND token cost (consciousness transfer, partial cultivation tier carryover)
+4. Reincarnation via SECOND token cost (consciousness transfer and current-body reset)
5. Time-as-currency body lifespan economy (earn/spend body time; zero time triggers body death)
---
@@ -73,13 +73,13 @@ Ecosystem extension: a user's OpenClaw agent can also connect into SECOND SPAWN
| Need | How This Game Satisfies It | Strength |
| ---- | ---- | ---- |
-| **Autonomy** | Choose how to spend time online vs delegate to AI agent; choose reincarnation timing; choose cultivation path | Core |
-| **Competence** | Cultivation tier-up is the explicit mastery ladder; combat skill ceiling comes from the final movement/combat controller after prototype validation | Core |
+| **Autonomy** | Choose how to spend time online vs delegate to AI agent; choose reincarnation timing and risk | Core |
+| **Competence** | Level/stat growth gives a clear early ladder; combat skill ceiling comes from the final movement/combat controller after prototype validation | Core |
| **Relatedness** | LLM NPCs remember you across sessions; guild + zone fellowship; agent-to-agent socialization | Supporting |
### Player Type Appeal (Bartle)
-- [x] **Achievers** - cultivation tier ladder + AI agent farming offline = constant progression
+- [x] **Achievers** - level/stat growth + AI agent activity = constant progression
- [x] **Explorers** - MetaDOS lore depth + emergent NPC interactions to discover
- [x] **Socializers** - guild + multi-instance zones + LLM NPCs as social actors
- [ ] **Killers / Competitors** - 50v50 guild PvP exists but NOT primary loop in vertical slice
@@ -95,19 +95,19 @@ ARPG action combat: dodge, attack, ability, kite, kill. Top-down camera. Hunter
Quest segment or dungeon room: clear group of enemies, loot, advance to next encounter. LLM-driven NPC dialogue at quest checkpoints.
### Session-Level (30-120 min)
-Complete a quest line or dungeon clear; converse with hub-town NPCs (LLM-driven); cultivate (consume Nibirium / advance tier progress); plan offline agent behavior before logout.
+Complete a quest line or dungeon clear; converse with hub-town NPCs (LLM-driven); level the current body; plan offline agent behavior before logout.
### Long-Term Progression
-- Cultivation tier 1 -> 6 (Awakening, Enhancement, Core Formation, Evolution, Transcendence, Ascension)
+- Current-body level and stat growth
- NFT Hunter skin collection
- Guild + faction reputation
-- Reincarnation cycles - each death keeps partial cultivation but resets equipment / quest state
+- Reincarnation cycles - each death replaces the body and resets selected body-bound state
### Retention Hooks
- **Curiosity**: AI agent activity log (what did your character do while you slept?)
-- **Investment**: cultivation tier progress + NFT-locked equipment
+- **Investment**: level/stat progress + NFT-locked equipment
- **Social**: guild obligations, zone friend agent encounters
-- **Mastery**: tier-up gates that test combat + crafting
+- **Mastery**: combat, dungeon clears, BodyTime tradeoffs, and build choices
---
@@ -156,8 +156,8 @@ Complete a quest line or dungeon clear; converse with hub-town NPCs (LLM-driven)
| ---- | ---- |
| **Engine** | Unity 6.5 beta (currently `6000.5.0b7`) + URP. JOY chose beta for newest features. |
| **Networking** | Photon Fusion 2 (Server Mode dedicated for production; Host Mode + Photon Cloud free 20 CCU for dev) |
-| **Persistence** | Nakama OSS + Postgres (profile, inventory, quest, NFT lock state, cultivation tier) |
-| **LLM** | Convai phase 1 (NPC dialogue) -> `api.dos.ai` / Go LLM Gateway phase 2 (Haiku 4.5 for NPC chat, Sonnet 4.6 for boss / cultivation master). Server-side intent validation only. |
+| **Persistence** | Nakama OSS + Postgres (profile, inventory, quest, NFT lock state, level/stats) |
+| **LLM** | Convai phase 1 (NPC dialogue) -> `api.dos.ai` / Go LLM Gateway phase 2 (Haiku 4.5 for NPC chat, Sonnet 4.6 for boss / quest-critical NPCs). Server-side intent validation only. |
| **NFT** | DOS Chain via thirdweb-api MCP. Wallet auth, escrow contracts, Hunter skin / weapon / pet inventory. |
| **Art** | Synty / Quaternius stylized low-poly + reused MetaDOS Hunter skins |
| **Key technical risks** | LLM intent validation at scale; AI agent server tick load; NFT-Unity inventory sync latency |
@@ -170,7 +170,7 @@ See [docs/ARCHITECTURE.md](../ARCHITECTURE.md) for system diagram + critical inv
### Design Risks
- AI agent offline play may feel either invisible (player doesn't notice progress) or invasive (agent does things player wouldn't choose)
-- Cultivation tier pacing: too slow = grind; too fast = no mastery feeling
+- Level/stat progression may feel generic if combat and reincarnation do not create meaningful decisions
- Time-as-currency may feel oppressive if time drain is constant, or invisible if it only appears at death
- LLM NPCs may feel chatbot-like if they don't ground in world state (location, quest progress, faction)
@@ -200,7 +200,7 @@ See [docs/ARCHITECTURE.md](../ARCHITECTURE.md) for system diagram + critical inv
See [02-vertical-slice-spec.md](02-vertical-slice-spec.md).
-**Core hypothesis**: A solo player can experience the signature hooks (AI agent autoplay, reincarnation, time-as-currency, cultivation tier-up) inside a single zone within 30 minutes of first play, without requiring out-of-game tutorials.
+**Core hypothesis**: A solo player can experience the signature hooks (AI agent autoplay, reincarnation, and time-as-currency) plus basic level/stat progression inside a single zone within 30 minutes of first play, without requiring out-of-game tutorials.
---
@@ -209,4 +209,4 @@ See [02-vertical-slice-spec.md](02-vertical-slice-spec.md).
- [ ] JOY review and refine this concept doc (especially monetization line + open questions)
- [ ] Finalize [01-pillars.md](01-pillars.md) (preview pillars listed above need design tests added)
- [ ] Build vertical slice per [02-vertical-slice-spec.md](02-vertical-slice-spec.md)
-- [ ] Per-system GDDs as systems are designed (cultivation started in [04-cultivation-system.md](04-cultivation-system.md); time-as-currency started in [08-time-as-currency.md](08-time-as-currency.md); combat, AI agent, reincarnation, NFT escrow, LLM NPC pending)
+- [ ] Per-system GDDs as systems are designed (advanced body progression deferred in [04-cultivation-system.md](04-cultivation-system.md); time-as-currency started in [08-time-as-currency.md](08-time-as-currency.md); combat, AI agent, reincarnation, NFT escrow, LLM NPC pending)
diff --git a/docs/design/01-pillars.md b/docs/design/01-pillars.md
index a0d992d..98eeede 100644
--- a/docs/design/01-pillars.md
+++ b/docs/design/01-pillars.md
@@ -7,7 +7,7 @@
## Core Fantasy
-You are a Hunter in a 2050 post-apocalyptic world where consciousness can be transferred to synthetic bodies. Your character has a life that does not pause when yours does, advances through a 6-tier cultivation ladder, spends time as a real resource, and meets death as a transition rather than an end.
+You are a Hunter in a 2050 post-apocalyptic world where consciousness can be transferred to synthetic bodies. Your character has a life that does not pause when yours does, grows through current-body level and stats, spends time as a real resource, and meets death as a transition rather than an end.
---
@@ -15,7 +15,7 @@ You are a Hunter in a 2050 post-apocalyptic world where consciousness can be tra
| Rank | Aesthetic | How Our Game Delivers It |
| ---- | ---- | ---- |
-| 1 | **Challenge** | Cultivation tier-up gates, time pressure, LLM-adaptive dungeon bosses, permanent body death |
+| 1 | **Challenge** | Level/stat growth, time pressure, LLM-adaptive dungeon bosses, permanent body death |
| 2 | **Discovery** | MetaDOS lore depth + LLM NPCs revealing world state + emergent agent stories |
| 3 | **Fellowship** | 4-20 player zones, guild PvP, agent-to-agent socialization across timezones |
@@ -54,7 +54,7 @@ You are a Hunter in a 2050 post-apocalyptic world where consciousness can be tra
### Pillar 2: Reincarnation, not respawn
-**One-Sentence Definition**: Death is permanent for the body; players transfer consciousness to a new synthetic body via SECOND token cost, with progression partially preserved (cultivation tier carries over) and partially reset (equipment, quest state, location).
+**One-Sentence Definition**: Death is permanent for the body; players transfer consciousness to a new synthetic body via SECOND token cost, with durable identity partially preserved and current-body progression reset.
**Target Aesthetics Served**: Challenge (death has weight), Discovery (each new body sees a new starting state), Narrative (consciousness transfer is the world's central conceit)
@@ -65,13 +65,13 @@ You are a Hunter in a 2050 post-apocalyptic world where consciousness can be tra
| Department | This Pillar Says... | Example |
| ---- | ---- | ---- |
| **Game Design** | No corpse-run, no equipment-loss, no XP-debt - those are the OLD MMO patterns | Death triggers reincarnation flow (in-game UI), not corpse retrieval. |
-| **Engineering** | Cultivation tier is on-chain or DB-persisted; equipment is escrow on death | NFT escrow contract releases on reincarnation per token rules. |
+| **Engineering** | Reincarnation state is DB-persisted; equipment is escrow on death | NFT escrow contract releases on reincarnation per token rules. |
| **Narrative** | Every reincarnation is a story beat - new body, fragmented memory, lore reveal | Boss dialogue adapts: "Ah, you came back. Different face this time." |
| **Economy** | SECOND token is a sink; reincarnation cost calibrates death frequency | Initial cost target: 1 average dungeon clear's worth of token income. |
#### Serving This Pillar
- Permanent body death triggers SECOND-token reincarnation flow
-- Cultivation tier carries forward (partial) across bodies
+- Durable soul/profile layers can carry forward across bodies
- Equipment escrow + release is part of death flow
#### Violating This Pillar
@@ -131,7 +131,7 @@ You are a Hunter in a 2050 post-apocalyptic world where consciousness can be tra
#### Serving This Pillar
- Convai phase 1 NPC dialogue grounded in player state
-- Phase 2 `api.dos.ai` / Go LLM Gateway with Haiku 4.5 (NPC chat) + Sonnet 4.6 (boss / cultivation master)
+- Phase 2 `api.dos.ai` / Go LLM Gateway with Haiku 4.5 (NPC chat) + Sonnet 4.6 (boss / quest-critical NPCs)
- Per-NPC memory in Supabase pgvector
- LLM intent validation server-side, never trust raw output
@@ -175,9 +175,9 @@ You are a Hunter in a 2050 post-apocalyptic world where consciousness can be tra
## Anti-Pillars (What This Game Is NOT)
- **NOT a full open-world MMORPG** - we have instance-based zones (~20 players), not seamless single-shard. WoW/FFXIV-scale would blow scope and cost.
-- **NOT a Chinese cultivation novel game** - cultivation framing is sci-fi (Nibirium, biotech, consciousness transfer). International-friendly. No qi, no immortals, no sect politics as primary loop.
+- **NOT a Chinese cultivation novel game** - no qi, immortals, sect politics, or tier-up grind as the primary loop.
- **NOT pay-to-win** - SECOND token gates reincarnation cost; `BodyTime` is a gameplay economy and must not become direct power-for-cash.
-- **NOT a passive countdown survival game** - time pressure supports ARPG decisions; it does not replace combat, cultivation, or AI agent play.
+- **NOT a passive countdown survival game** - time pressure supports ARPG decisions; it does not replace combat, level/stat progression, or AI agent play.
- **NOT a chatbot game** - LLM NPCs are world citizens with grounded memory + rate limits. Dialogue is constrained by quest / faction / location, not free-form roleplay.
- **NOT mobile-first** - PC Steam audience first. Mobile companion app is a possible future, not core.
- **NOT host-mode multiplayer in production** - Photon Server Mode dedicated only. Host Mode is dev-only.
@@ -210,7 +210,7 @@ When pillars conflict, use this priority order. Higher-priority pillars win when
| Need | Which Pillar Serves It | How |
| ---- | ---- | ---- |
| **Autonomy** | AI agent 24/7 | Player chooses what to delegate to agent vs play actively |
-| **Competence** | Reincarnation + Time-as-currency + Server-authoritative | Cultivation tier ladder is the explicit mastery measure; time tradeoffs and server-validated combat make skill-based wins real |
+| **Competence** | Reincarnation + Time-as-currency + Server-authoritative | Level/stat progression is the early mastery measure; time tradeoffs and server-validated combat make skill-based wins real |
| **Relatedness** | LLM as world citizen + AI agent | NPCs remember player; agents bridge social distance across timezones |
All three SDT needs covered.
diff --git a/docs/design/02-vertical-slice-spec.md b/docs/design/02-vertical-slice-spec.md
index 160b8ba..f8dac94 100644
--- a/docs/design/02-vertical-slice-spec.md
+++ b/docs/design/02-vertical-slice-spec.md
@@ -10,7 +10,7 @@
## Validation Question
-Can a solo player, in their first 30 minutes of unguided play in a single zone, experience the signature hooks (AI agent autoplay, reincarnation, time-as-currency, cultivation tier-up) AND can a 1-person team (JOY + AI agents) build this slice at representative quality in 3-6 months on the chosen tech stack (Unity 6.5 beta + Photon Fusion 2 + Nakama OSS + api.dos.ai / Go LLM Gateway + thirdweb)?
+Can a solo player, in their first 30 minutes of unguided play in a single zone, experience the signature hooks (AI agent autoplay, reincarnation, and time-as-currency) while also feeling basic ARPG level/stat progression AND can a 1-person team (JOY + AI agents) build this slice at representative quality in 3-6 months on the chosen tech stack (Unity 6.5 beta + Photon Fusion 2 + Nakama OSS + api.dos.ai / Go LLM Gateway + thirdweb)?
This is two questions in one: **does the design loop fun?** AND **is the architecture buildable?**
@@ -25,10 +25,10 @@ This is two questions in one: **does the design loop fun?** AND **is the archite
| **Dungeon instance** | 1 (single instance with 1 boss encounter) |
| **Boss with LLM dialogue** | 1 (Convai-driven, grounded in zone state) |
| **Quest line** | 1 (3-5 quests sequential) |
-| **Reincarnation MVP** | Die -> SECOND token (test token, not real DOS Chain) -> respawn with reset equipment, partial cultivation tier carryover |
+| **Reincarnation MVP** | Die -> SECOND token (test token, not real DOS Chain) -> respawn with current-body reset |
| **Time-as-currency MVP** | Body time meter, earn time from a small objective, spend time on one useful service, zero time triggers reincarnation placeholder |
| **AI agent autoplay** | Simple: agent farms one designated area when player offline. Visible activity log on return. |
-| **Cultivation tiers** | 2 of 6 playable (Awakening + Enhancement only) |
+| **Level/stat progression** | Basic current-body level and stat growth only |
| **NFT Hunter skin** | 1 skin equip flow + escrow contract (test net DOS Chain) |
| **Multiplayer** | 4-20 players per zone instance via Photon Fusion 2 |
| **Chat** | Basic global + zone via Nakama channels |
@@ -43,7 +43,7 @@ This is two questions in one: **does the design loop fun?** AND **is the archite
- Pet system (NFT pets deferred to post-slice)
- Mount system (deferred)
- Multiple zones (1 zone only)
-- Cultivation tier 3-6 (only Awakening + Enhancement)
+- Advanced body progression (deferred for redesign)
- Voice NPC (defer)
- Full quest system (linear quest line of 3-5; no branching, no factional choice)
- Crafting (deferred)
@@ -59,7 +59,7 @@ The slice is considered "done" when ALL of the following are true and verified b
### Player experience (qualitative, playtest-verifiable)
- [ ] A first-time player can complete the full quest line in 30-60 minutes without out-of-game tutorials
- [ ] At least one playtester comments unprompted on the AI agent activity log being noticeable / interesting
-- [ ] At least one playtester deliberately dies to test reincarnation, observes that cultivation tier carries over
+- [ ] At least one playtester deliberately dies to test reincarnation and understands that the current body was replaced
- [ ] At least one playtester notices time-as-currency as a meaningful tradeoff, not just a timer
- [ ] LLM boss dialogue does NOT feel chatbot-y - testers believe the boss "knows" current zone state
@@ -69,13 +69,13 @@ The slice is considered "done" when ALL of the following are true and verified b
- [ ] AI agent inherits player rate limit + capability cap. Verified by integration test.
- [ ] NFT escrow on equip; release on unequip. Verified on DOS Chain test net.
- [ ] Photon Fusion 2 dedicated Server Mode build runs on Hetzner VPS, accepts 4-20 player connections in load test.
-- [ ] Nakama/Postgres persists profile, inventory, quest progress, NFT lock state, cultivation tier across reincarnation cycles.
+- [ ] Nakama/Postgres persists profile, inventory, quest progress, NFT lock state, level/stats, and reincarnation state across sessions.
- [ ] Multiplayer 4-20 players per zone holds 60Hz tick under load test (Fusion bots simulating 50 players for stress).
### Process (verifiable in repo state)
- [ ] All slice work merged to `main` via PR with `code-review` skill pass before merge (per JOY hard rule #4).
- [ ] All ADRs that the slice motivated are written in `docs/adr/` (current count: 4; expect 6-10 by slice complete).
-- [ ] Per-system GDDs in `docs/design/` for Combat, AI agent, Reincarnation, Time-as-currency, NFT escrow, LLM NPC. (Cultivation and Time-as-currency are drafted.)
+- [ ] Per-system GDDs in `docs/design/` for Combat, AI agent, Reincarnation, Time-as-currency, NFT escrow, LLM NPC. (Time-as-currency is drafted; advanced body progression is deferred.)
- [ ] Vertical Slice Report (`02-vertical-slice-report.md`) written with build velocity, playtest data, recommendation.
---
@@ -88,7 +88,7 @@ The slice is considered "done" when ALL of the following are true and verified b
| 2. Networked player + zone | T+1 to T+4 | 1 zone Photon Fusion 2 multiplayer, Hunter skin spawn, minimal ARPG controller first, Opsive UCC evaluated after baseline |
| 3. NPC + LLM dialogue | T+4 to T+8 | Convai NPC in hub town, server-validated intent flow |
| 4. Quest + dungeon | T+8 to T+12 | 1 quest line + 1 dungeon + 1 boss (LLM dialogue) |
-| 5. Cultivation + reincarnation | T+12 to T+16 | Tier 1+2 mechanics, death -> SECOND token -> reincarnation flow |
+| 5. Reincarnation + level/stat persistence | T+12 to T+16 | Death -> SECOND token -> reincarnation flow, current-body reset, profile/stat persistence |
| 6. Time-as-currency | T+16 to T+18 | Body time meter, one earn source, one spend sink, zero-time reincarnation trigger |
| 7. NFT integration | T+18 to T+22 | Hunter skin equip + escrow on DOS Chain test net via thirdweb |
| 8. AI agent offline | T+22 to T+25 | Server-side agent that farms designated area for offline player |
diff --git a/docs/design/03-systems-index.md b/docs/design/03-systems-index.md
index efb65b0..f0ab103 100644
--- a/docs/design/03-systems-index.md
+++ b/docs/design/03-systems-index.md
@@ -15,7 +15,7 @@ SECOND SPAWN is a hybrid MMO + top-down ARPG. The mechanical scope spans:
- LLM NPCs (Convai phase 1, api.dos.ai / Go LLM Gateway phase 2)
- AI agent autoplay (server-side, capability-capped)
- OpenClaw-connected NPCs (user-owned agents as server-validated world actors)
-- Cultivation 6-tier progression
+- Level/stat progression
- Reincarnation loop (death -> SECOND token -> new body)
- Time-as-currency body lifespan economy
- NFT integration (DOS Chain via thirdweb)
@@ -41,8 +41,8 @@ This index enumerates every system the game needs, categorizes by Core/Gameplay/
| 10 | Boss LLM dialogue (Convai grounded) | Gameplay | VS | Not started | (TDD pending) | NPC dialogue |
| 11 | AI agent for offline players (server-side) | Gameplay | VS | Drafted | [10-character-profile-agent-memory.md](10-character-profile-agent-memory.md) | NetworkRunner, api.dos.ai / Go LLM Gateway, intent schema |
| 37 | OpenClaw-connected NPC bridge (user-owned agents as NPC actors) | Gameplay / Meta | Alpha | Concept | [10-character-profile-agent-memory.md](10-character-profile-agent-memory.md) | Auth, Nakama, api.dos.ai / Go LLM Gateway, NPC dialogue, LLM safety |
-| 12 | Cultivation 6-tier (slice: tier 1-2) | Progression | MVP | Drafted | [04-cultivation-system.md](04-cultivation-system.md) | Persistence |
-| 13 | Reincarnation flow (death -> SECOND -> new body) | Progression | VS | Not started | (TDD pending) | Cultivation, NFT escrow, Persistence |
+| 12 | Level/stat progression | Progression | MVP | Prototype | (covered by profile/runtime contracts) | Persistence |
+| 13 | Reincarnation flow (death -> SECOND -> new body) | Progression | VS | Not started | (TDD pending) | Level/stats, NFT escrow, Persistence |
| 14 | SECOND token economy | Economy | VS | Not designed | (GDD pending - JOY input) | DOS Chain integration |
| 36 | Time-as-currency (`BodyTime`) | Economy | VS | Drafted | [08-time-as-currency.md](08-time-as-currency.md) | Reincarnation, Combat, Persistence |
| 15 | NFT inventory (Hunter skin slice scope) | Economy | VS | Not started | (TDD pending) | thirdweb-api MCP, Persistence |
@@ -51,9 +51,9 @@ This index enumerates every system the game needs, categorizes by Core/Gameplay/
| 18 | Profile persistence (Nakama OSS + Postgres) | Persistence | MVP | Drafted | [10-character-profile-agent-memory.md](10-character-profile-agent-memory.md) | Auth |
| 19 | Inventory persistence | Persistence | MVP | Not started | (TDD pending) | Profile, NFT inventory |
| 20 | Quest progress persistence | Persistence | MVP | Not started | (TDD pending) | Profile, Quest system |
-| 21 | Cultivation tier persistence (carries through reincarnation) | Persistence | MVP | Not started | (TDD pending) | Profile |
+| 21 | Level/stat persistence | Persistence | MVP | Prototype | (covered by profile/runtime contracts) | Profile |
| 22 | Auth (Nakama + DOS Chain wallet, Supabase sidecar if useful) | Persistence | MVP | Not started | (TDD pending - reuse DOS.Me pattern as identity bridge reference) | Nakama, thirdweb |
-| 23 | HUD (combat, cultivation tier, currency) | UI | VS | Not started | (deferred template `_deferred/hud-design.md`) | Combat, Cultivation |
+| 23 | HUD (combat, level/stats, BodyTime) | UI | VS | Prototype | (deferred template `_deferred/hud-design.md`) | Combat, Profile |
| 24 | Inventory UI | UI | VS | Not started | (deferred template `_deferred/ux-spec.md`) | Inventory persistence |
| 25 | NPC dialogue UI | UI | VS | Not started | (deferred) | NPC dialogue |
| 26 | Quest tracker UI | UI | VS | Not started | (deferred) | Quest system |
@@ -77,9 +77,9 @@ This index enumerates every system the game needs, categorizes by Core/Gameplay/
| ---- | ---- | ---- |
| **Core** | Foundation systems everything depends on | 5 (NetworkRunner, Controller, Camera, Input, Zone management) |
| **Gameplay** | The systems that make the game fun | 7 (Combat, NPC dialogue, Quest, Dungeon, Boss LLM, AI agent, OpenClaw-connected NPC bridge) |
-| **Progression** | How the player grows over time | 2 (Cultivation, Reincarnation) |
+| **Progression** | How the player grows over time | 2 (Level/stats, Reincarnation) |
| **Economy** | Resource creation and consumption | 5 (SECOND token, Time-as-currency, NFT inventory, NFT escrow, Loot) |
-| **Persistence** | Save state and continuity | 5 (Profile, Inventory, Quest, Cultivation, Auth) |
+| **Persistence** | Save state and continuity | 5 (Profile, Inventory, Quest, Level/stats, Auth) |
| **UI** | Player-facing information displays | 6 (HUD, Inventory UI, NPC dialogue UI, Quest tracker, Reincarnation UI, Agent log) |
| **Audio** | Sound and music systems | 1 (placeholder for slice) |
| **Narrative** | Story / dialogue delivery | 1 (Chat - dialogue system already in Gameplay row 7) |
@@ -104,14 +104,14 @@ This index enumerates every system the game needs, categorizes by Core/Gameplay/
8. Input system (#4) - depends on: Player Controller
9. Zone scene management (#5) - depends on: NetworkRunner
10. Inventory persistence (#19) - depends on: Profile
-11. Cultivation tier persistence (#21) - depends on: Profile
+11. Level/stat persistence (#21) - depends on: Profile
### Feature Layer (depends on core)
12. Combat (#6) - depends on: Player Controller, networked state
13. NPC dialogue (Convai + intent validation) (#7) - depends on: api.dos.ai / Go LLM Gateway
14. OpenClaw-connected NPC bridge (#37) - depends on: Auth, Nakama, api.dos.ai / Go LLM Gateway, NPC dialogue, LLM safety
-15. Cultivation system (#12) - depends on: Cultivation persistence, Combat
+15. Level/stat progression (#12) - depends on: Profile persistence, Combat
16. NFT inventory (#15) - depends on: Auth, thirdweb-api MCP
17. Chat (Nakama channel first, Supabase Realtime sidecar only if useful) (#30) - depends on: Auth, Nakama
18. Quest system (#8) - depends on: NPC dialogue, persistence
@@ -122,10 +122,10 @@ This index enumerates every system the game needs, categorizes by Core/Gameplay/
20. Boss LLM dialogue (#10) - depends on: NPC dialogue, Dungeon
21. NFT escrow (#16) - depends on: NFT inventory, DOS Chain
22. Loot / drop tables (#17) - depends on: Combat, Persistence
-23. Reincarnation flow (#13) - depends on: Cultivation, NFT escrow, Persistence
+23. Reincarnation flow (#13) - depends on: Level/stats, NFT escrow, Persistence
24. Time-as-currency (#36) - depends on: Reincarnation, Combat, Persistence
25. SECOND token economy (#14) - depends on: DOS Chain integration, Reincarnation
-26. AI agent for offline players (#11) - depends on: NetworkRunner, api.dos.ai / Go LLM Gateway, intent schema, Cultivation, Combat, Time-as-currency
+26. AI agent for offline players (#11) - depends on: NetworkRunner, api.dos.ai / Go LLM Gateway, intent schema, Combat, Time-as-currency
### Presentation Layer (depends on features)
@@ -154,7 +154,7 @@ This index enumerates every system the game needs, categorizes by Core/Gameplay/
| OpenClaw-connected NPC bridge (#37) | Product + Security | User-owned agents can create moderation, spam, prompt injection, and trust-boundary risk | Treat connected agents as untrusted external actors; require consent, identity binding, rate limit, moderation, and server validation |
| LLM intent validation (#31) + safety (#32) | Security | Open-source codebase + LLM = injection / abuse vector | Reuse DOSafe patterns; per-NPC memory cap; per-player rate limit |
| NFT escrow (#16) | Technical | Latency between Unity equip action and DOS Chain confirmation | Optimistic UI + reconcile-on-failure; cache lock state in Supabase |
-| Reincarnation flow (#13) | Design | Cultivation carryover too generous = no death weight; too punitive = grind | Tune cost during slice playtests |
+| Reincarnation flow (#13) | Design | Carryover too generous = no death weight; too punitive = grind | Tune cost during slice playtests |
| Time-as-currency (#36) | Design + Economy | Constant drain can feel oppressive; weak drain can feel invisible | Start with danger-zone drain, one earn source, one spend sink |
| Photon Fusion 2 dedicated server (#1) | Technical | Solo dev capacity to run dedicated infra | Slice uses Photon Cloud free 20 CCU; production migration is post-slice |
| Convai SDK in Unity (#7) | Technical | 3rd-party SDK may not test against Unity 6.5 beta | Have phase 2 fallback (`api.dos.ai` / Go LLM Gateway + custom LLM) ready in design |
@@ -180,16 +180,15 @@ Aligned with [02-vertical-slice-spec.md](02-vertical-slice-spec.md) build phases
| 11 | Quest system (#8) | Phase 4 | L | |
| 12 | Dungeon instance (#9) | Phase 4 | L | |
| 13 | Boss LLM dialogue (#10) | Phase 4 | M | Layered on NPC dialogue |
-| 14 | Cultivation system (#12) | Phase 5 | L | GDD already drafted at `04-cultivation-system.md` |
-| 15 | Reincarnation flow (#13) | Phase 5 | L | |
-| 16 | Time-as-currency (#36) | Phase 6 | M | BodyTime meter, one earn source, one spend sink |
-| 17 | NFT inventory (#15) + escrow (#16) | Phase 7 | L | DOS Chain test net |
-| 18 | SECOND token economy (#14) | Phase 7 | M | JOY input required first |
-| 19 | AI agent for offline players (#11) | Phase 8 | XL | Highest-risk system |
-| 20 | UI cluster (#23-#28) | Throughout phases 2-8 | XL | Build incrementally |
-| 21 | Audio placeholder (#29) | Phase 9 | S | Slice-quality only |
-| 22 | Chat (#30) | Phase 9 | M | Nakama channel first, Supabase sidecar only if useful |
-| 23 | Polish + playtest | Phase 9 | XL | |
+| 14 | Reincarnation flow (#13) | Phase 5 | L | |
+| 15 | Time-as-currency (#36) | Phase 6 | M | BodyTime meter, one earn source, one spend sink |
+| 16 | NFT inventory (#15) + escrow (#16) | Phase 7 | L | DOS Chain test net |
+| 17 | SECOND token economy (#14) | Phase 7 | M | JOY input required first |
+| 18 | AI agent for offline players (#11) | Phase 8 | XL | Highest-risk system |
+| 19 | UI cluster (#23-#28) | Throughout phases 2-8 | XL | Build incrementally |
+| 20 | Audio placeholder (#29) | Phase 9 | S | Slice-quality only |
+| 21 | Chat (#30) | Phase 9 | M | Nakama channel first, Supabase sidecar only if useful |
+| 22 | Polish + playtest | Phase 9 | XL | |
Effort estimate: S = 1-3 days, M = 4-7 days, L = 1-2 weeks, XL = 2-4 weeks (solo dev + AI agent).
@@ -200,7 +199,7 @@ Effort estimate: S = 1-3 days, M = 4-7 days, L = 1-2 weeks, XL = 2-4 weeks (solo
| Metric | Count |
| ---- | ---- |
| Total systems identified | 36 |
-| Design docs started | 6 (cultivation, overview design, player controller prototype, time-as-currency, Pirate Adventure reference review, character profile / agent memory) |
+| Design docs started | 6 (deferred advanced body progression, overview design, player controller prototype, time-as-currency, Pirate Adventure reference review, character profile / agent memory) |
| Design docs reviewed | 0 |
| Design docs approved | 0 |
| MVP systems with TDD started | 0 |
diff --git a/docs/design/04-cultivation-system.md b/docs/design/04-cultivation-system.md
index db38a15..b56722c 100644
--- a/docs/design/04-cultivation-system.md
+++ b/docs/design/04-cultivation-system.md
@@ -1,202 +1,94 @@
-# Cultivation System
+# Deferred Advanced Body Progression
-*Status: Draft (bootstrapped from CLAUDE.md sections "Cultivation System")*
-*Created: 2026-05-14*
-*Implements Pillar*: AI agent 24/7 + Reincarnation, not respawn
+*Status: Deferred*
+*Updated: 2026-05-17*
-> **Quick reference** - Layer: `Feature` (depends on Combat, Persistence) - Priority: `MVP` (tier 1-2 for vertical slice) - Key deps: `Cultivation persistence, Combat, Reincarnation flow`
+> This document replaces the old cultivation / Nibirium XP draft. That mechanic
+> is no longer part of the vertical slice because it behaved too much like a
+> traditional XP bar with sci-fi naming.
---
-## Summary
+## Decision
-The cultivation system is the central long-term progression mechanic of SECOND SPAWN. Players advance through 6 tiers (Awakening -> Ascension), each unlocking new combat capabilities, social standing, and gameplay zones. Cultivation is sci-fi-framed (Nibirium absorption, biotech, consciousness science) - international-friendly, NOT Chinese-cultivation-novel framing.
+SECOND SPAWN will not implement cultivation tiers, Nibirium XP, tier-up rituals,
+or Cultivation Master progression in the current vertical slice.
-Cultivation tier carries forward across reincarnation (partial), making it the durable identity of the player even as bodies, equipment, and locations change.
+The slice uses:
----
-
-## Player Fantasy
-
-You are a Hunter slowly mastering the absorption and integration of Nibirium - a substance that lets the body and consciousness exceed normal human limits. Each tier-up is earned, not bought. By Ascension, you are near-divine in this post-apocalyptic world.
+- `CharacterStats.level` as the baseline progression value.
+- Body-bound stats such as vitality, force, agility, focus, resilience,
+ max health, max energy, attack power, and defense power.
+- `BodyTime` and reincarnation as the signature systemic loop.
-The fantasy is **earned mastery in a world where most cannot advance past tier 1**.
+Advanced body or soul progression remains a future design space, but it needs a
+fresh brainstorm and a stronger mechanic before implementation.
---
-## Detailed Design
-
-### The 6 Tiers
-
-| Tier | Name | What It Means | Slice Scope |
-| --- | ---- | ---- | ---- |
-| 1 | **Awakening** | Activate Nibirium absorption. Body recognizes the substance. Combat: baseline human capabilities. | ✓ Slice |
-| 2 | **Enhancement** | Body strengthening. Physical attributes amplified (speed, strength, resilience). Combat: 1-2 amplified abilities. | ✓ Slice |
-| 3 | Core Formation | Energy core formation. Player has internal Nibirium core that powers active abilities (cooldown-based). | Defer post-slice |
-| 4 | Evolution | DNA / special ability evolution. Unique mutations (player chooses path). Combat: 1 unique mutation ability. | Defer post-slice |
-| 5 | Transcendence | Beyond human limits. Fly, brief invulnerability windows, perception expansion. | Defer post-slice |
-| 6 | Ascension | Near-divine. End-game. Acts as gameplay equivalent of "raid tier" character. | Defer post-slice |
-
-### Sci-fi Framing (NOT Chinese cultivation)
-
-The cultivation framing must remain sci-fi-grounded:
-- Tier-up is **biotech / consciousness science**, not spiritual enlightenment
-- Source of advancement: **Nibirium** (the world's central scarce resource)
-- Body changes are **observable physical transformations**, not auras
-- No qi, dao, sect politics, immortal cultivation tropes
-- Reference: Altered Carbon, Westworld, Ghost in the Shell
-
-This is critical for international audience reach and to avoid cultivation-novel niche framing.
-
-### Tier-Up Mechanic
-
-Each tier transition requires:
-
-1. **Nibirium accumulation** - earned via combat kills, quest rewards, dungeon clears (server-tracked, not client-side)
-2. **Tier challenge** - a specific encounter that tests player's mastery at current tier (defined per-tier)
-3. **Tier-up ritual** - player triggers transition at a Cultivation Master NPC (LLM-driven, dialogue grounded in player history)
+## Why This Was Cut
-The Cultivation Master NPC is one of the **boss-tier LLM NPCs** (Sonnet 4.6 in phase 2 architecture, Convai-driven in slice phase 1).
+The previous draft centered on:
-### Reincarnation Carryover Rule
+1. earning Nibirium from combat,
+2. filling a progress counter,
+3. completing a tier-up ritual,
+4. carrying some tier state across reincarnation.
-When player dies and reincarnates via SECOND token:
-- **Cultivation tier**: carries over partially (TODO: JOY decide exact rule - candidates: full tier carries; one tier lost; tier kept but Nibirium accumulation toward next tier resets)
-- **Equipment**: reset (escrow released, must re-acquire)
-- **Quest progress**: reset
-- **Location**: respawn at hub town
-- **Faction reputation**: TODO JOY decide
-
-The partial carryover is the **identity** of cultivation in this game: bodies are temporary, your cultivated consciousness is durable.
-
----
-
-## Interactions with Other Systems
-
-| System | Interface |
-| ---- | ---- |
-| **Combat (#6)** | Tier 2+ unlocks amplified abilities. Combat damage / health / movement scale per tier. |
-| **NPC dialogue (#7)** | NPCs react to player tier (e.g., Tier 1 NPC: "You're new to Nibirium." Tier 5 NPC: "I felt your presence from across the zone.") |
-| **Reincarnation (#13)** | Cultivation tier is the carryover variable. |
-| **Cultivation persistence (#21)** | Tier + accumulation amount persisted in Supabase. Source of truth for ALL tier checks. |
-| **AI agent (#11)** | Agent inherits player's current tier capabilities. Cannot tier-up while player offline (requires player-active tier-up ritual). |
-| **NFT inventory (#15)** | Some Hunter skin equips may require minimum tier (TODO design rule). |
-| **Quest system (#8)** | Quests gated by tier (e.g., "Cultivate to Enhancement" is itself a quest). |
+That loop was too familiar and did not add enough unique value on top of a
+standard level system. It also risked distracting from the stronger pillars:
+offline AI agents, reincarnation, BodyTime, and many NPC-like actors with
+separate profiles.
---
-## Formulas (TBD - tune during slice)
-
-### Nibirium Accumulation Per Combat Kill
-
-```
-nibirium_gain = base_nibirium_per_enemy * (1 + tier_difficulty_modifier) * cultivation_bonus
-```
-
-| Variable | Type | Range | Source | Description |
-| ---- | ---- | ---- | ---- | ---- |
-| base_nibirium_per_enemy | int | 1-50 | enemy data file | Defined per enemy type |
-| tier_difficulty_modifier | float | 0.5-3.0 | calculated | Higher when enemy tier > player tier |
-| cultivation_bonus | float | 1.0-1.5 | persisted | Per-tier bonus from current tier |
-
-**Expected output range**: 1-200 Nibirium per kill
-**Edge case**: If player tier > enemy tier + 2, set to 0 (no easy farming high-tier from low-tier zones)
+## Current Progression Baseline
-### Tier-Up Threshold
+For the vertical slice, progression is intentionally simpler:
-```
-nibirium_required_for_next_tier = tier_base[current_tier] * (1 + slow_progression_factor)
-```
-
-Initial values (tune in slice):
-- Tier 1 -> 2 (Awakening -> Enhancement): 500 Nibirium
-- Tier 2 -> 3 (Enhancement -> Core Formation): 5,000 Nibirium (defer post-slice)
-- Tier 3 -> 4: 50,000
-- Tier 4 -> 5: 500,000
-- Tier 5 -> 6: 5,000,000
-
-**slow_progression_factor**: 0 in vertical slice; tunable later as economy mechanic.
-
----
-
-## Edge Cases
-
-| Scenario | Expected Behavior | Rationale |
-| ---- | ---- | ---- |
-| Player dies during tier-up ritual | Ritual reverts; Nibirium still accumulated; player must restart ritual after reincarnation | Tier-up is a player-active commitment, not a passive process. |
-| AI agent attempts tier-up while player offline | Agent is blocked from triggering ritual; can accumulate Nibirium | Tier-up is an identity moment - player must be present. |
-| Player attempts to skip tier (e.g., 1 -> 3 directly) | Blocked. Must complete tier-up ritual sequentially. | Cultivation is earned mastery. |
-| Equipment requires higher tier than player has | Equip blocked; UI explains tier requirement | NFT escrow + tier check at server. |
-| Player at Tier 6 (Ascension) - what's next? | End-game state. Reincarnation cycles continue but tier capped. | Tier 6 = horizontal end-game. |
-
----
-
-## Tuning Knobs
-
-| Parameter | Current Value | Safe Range | Effect of Increase | Effect of Decrease |
-| ---- | ---- | ---- | ---- | ---- |
-| Tier 1 -> 2 Nibirium threshold | 500 | 100-2000 | Slower early tier-up, more dungeon farming | Faster tier-up, less time at Awakening |
-| Cultivation bonus per tier | 1.05 (5%) | 1.0-1.2 | Each tier feels more significant | Less differentiation between tiers |
-| Reincarnation carryover ratio | TBD JOY | 0% (full reset) - 100% (full keep) | Death has less weight | Death has more weight |
-| AI agent Nibirium gain rate | TBD | 0% - 100% of player rate | Agent farming more rewarding | Agent farming token-only, not progression |
-
----
-
-## Visual / Audio Requirements (slice scope)
+| Layer | Scope |
+| ---- | ---- |
+| Level | Main player-facing progression value for the current body |
+| Stats | Body-specific combat tuning and profile identity |
+| BodyTime | Current body's operating life and spendable tactical resource |
+| Reincarnation | Body replacement and current-body reset |
+| Soul/profile | Durable identity layer, exact carryover rules still open |
-| Event | Visual Feedback | Audio Feedback | Priority |
-| ---- | ---- | ---- | ---- |
-| Nibirium absorbed (combat kill) | Subtle pulse on player + small floating "+N Nibirium" text | Soft pickup chime | Slice |
-| Tier-up ritual start | Player kneels at Cultivation Master; visual aura forms | Master's LLM dialogue audio | Slice (placeholder) |
-| Tier-up complete | Body transformation cinematic (~5 sec) | Tier-up music sting | Slice (placeholder) |
-| AI agent gained Nibirium offline | Activity log entry visible on player return | - (UI only) | Slice |
-| NPC reacts to player tier | NPC dialogue line acknowledges tier | LLM-generated speech | Slice |
+Level and stats are enough until combat, reincarnation, and BodyTime feel good.
---
-## Game Feel
+## Future Redesign Direction
-### Feel Reference
-
-Tier-up should feel like the **Mass Effect renegade / paragon meter filling and unlocking** - a slow, observable accumulation that explodes into a clear narrative moment. NOT like grinding XP bars in WoW. The tier transition itself should feel like a **death-and-rebirth moment** within the same body (tonal sibling to reincarnation, but smaller).
-
-### Feel Acceptance Criteria
-
-- [ ] Players notice Nibirium accumulation without HUD glance (visual / audio cue is enough)
-- [ ] Tier-up moment lands as story beat (NOT background notification)
-- [ ] Cultivation Master dialogue feels grounded in player history (NOT generic congratulation)
-- [ ] Tier 2 capabilities feel meaningfully different from Tier 1 (not just stat increase)
-
----
+When this system returns, it should avoid "kill enemies to fill a named XP bar."
+Candidate directions to explore later:
-## Cross-References
+- body compatibility and instability,
+- risky mutation choices,
+- body scars or defects after failed breakthroughs,
+- soul imprints that survive reincarnation,
+- NPC or faction consequences tied to body experiments,
+- offline-agent risk stories that alter the body without granting direct power.
-| This Document References | Target GDD | Specific Element | Nature |
-| ---- | ---- | ---- | ---- |
-| "Combat damage scales per tier" | (TDD pending - Combat) | Damage formula | Data dependency |
-| "Reincarnation carries cultivation tier" | (TDD pending - Reincarnation) | Carryover rule | State trigger |
-| "AI agent inherits tier capabilities" | (TDD pending - AI agent) | Capability cap | Rule dependency |
-| "Cultivation Master is boss-tier LLM NPC" | (TDD pending - NPC dialogue) | Boss-tier model selection | Architecture choice |
+None of these are approved for implementation yet.
---
-## Acceptance Criteria (slice scope)
+## Implementation Rules
-- [ ] Player can advance from Tier 1 (Awakening) to Tier 2 (Enhancement) within first 30-60 min of play
-- [ ] Tier-up ritual triggered at Cultivation Master NPC works end-to-end
-- [ ] Nibirium accumulation persists across reincarnation cycles per JOY-decided carryover rule
-- [ ] AI agent can accumulate Nibirium offline at the configured rate
-- [ ] Server-authoritative invariant: tier check happens server-side, never client-trusted
-- [ ] At least one playtester comments unprompted that the cultivation framing feels sci-fi (not Chinese-cultivation-novel)
+- Do not add `cultivation`, `progress_xp`, Nibirium XP, tier names, or tier-up
+ RPCs to the runtime model.
+- Do not show cultivation tier in UI or HUD.
+- Do not let LLMs grant level, stats, BodyTime, inventory, quest progress,
+ token rewards, or any future body progression directly.
+- Keep advanced body progression behind a future design review.
---
-## Open Questions (need JOY input)
+## Open Questions
-| Question | Owner | Deadline |
+| Question | Owner | Timing |
| ---- | ---- | ---- |
-| Reincarnation carryover ratio: 0% / partial / 100%? | JOY | Before phase 5 |
-| AI agent Nibirium gain rate (% of player rate)? | JOY | Before phase 7 |
-| Faction reputation carry across reincarnation? | JOY | Before phase 5 |
-| Tier 3-6 detailed mechanics (defer to post-slice GDDs) | JOY | Post-slice |
-| NFT Hunter skin tier requirements? | JOY | Before phase 6 |
+| What makes advanced body progression unique enough to return? | JOY + design agents | Post-slice brainstorm |
+| Which identity layer survives reincarnation besides account profile? | JOY | Reincarnation MVP |
+| Should body defects, scars, or mutation risks exist? | JOY | Post-slice brainstorm |
diff --git a/docs/design/05-networking-architecture.md b/docs/design/05-networking-architecture.md
index 91fca71..4584594 100644
--- a/docs/design/05-networking-architecture.md
+++ b/docs/design/05-networking-architecture.md
@@ -92,10 +92,10 @@ The actual implementations land in `Assets/_SecondSpawn/Scripts/Networking/` (as
### `NetworkPlayer` (NetworkBehaviour)
-- Holds `[Networked]` properties: position, rotation, cultivation tier, HP, stamina, current zone.
+- Holds `[Networked]` properties: position, rotation, level, combat stats, HP, stamina, current zone.
- Server-authoritative: client predicts visually, server overrides on next tick.
- Spawned on player join (server-side spawn flow), despawned on disconnect.
-- Reincarnation flow keeps `cultivationTier` (partial) - see [04-cultivation-system.md](04-cultivation-system.md).
+- Reincarnation flow resets or carries selected level/stat values according to the future reincarnation rule.
### `NetworkInputProvider` (MonoBehaviour)
@@ -120,7 +120,7 @@ The actual implementations land in `Assets/_SecondSpawn/Scripts/Networking/` (as
- Per offline player whose character is still in a zone, runs a server-side decision loop:
pull state -> call `api.dos.ai` / Go LLM Gateway with capability-cap + rate-limit headers -> receive intent -> validate -> apply.
- Inherits the player's rate limit + LLM token budget (no double-charging).
-- Death of agent = body death = reincarnation flow same as player (see [04-cultivation-system.md](04-cultivation-system.md)).
+- Death of agent = body death = reincarnation flow same as player.
---
@@ -136,7 +136,7 @@ The actual implementations land in `Assets/_SecondSpawn/Scripts/Networking/` (as
## Persistence boundary
Photon Fusion 2 manages **session state** (in-zone networked properties).
-Nakama OSS + Postgres manages **durable state** (profile, inventory snapshot, quest progress, NFT lock state, cultivation tier).
+Nakama OSS + Postgres manages **durable state** (profile, inventory snapshot, quest progress, NFT lock state, level/stats).
The dedicated server flushes Nakama/Postgres on:
diff --git a/docs/design/06-overview-design.md b/docs/design/06-overview-design.md
index f6364ce..db01e08 100644
--- a/docs/design/06-overview-design.md
+++ b/docs/design/06-overview-design.md
@@ -45,7 +45,7 @@ The 3-6 month vertical slice must let a solo player experience the identity-defi
| Hook | Slice Expression |
| ---- | ---- |
| AI agent 24/7 | The offline agent farms one designated area and produces an activity log visible when the player returns. |
-| Reincarnation | Death consumes a test SECOND token and transfers consciousness to a new body with partial cultivation carryover. |
+| Reincarnation | Death consumes a test SECOND token and transfers consciousness to a new body with selected profile carryover. |
| Time-as-currency | The current body has a time budget that can be earned, spent, and depleted to trigger death pressure. |
| Consciousness transfer | The death and respawn flow is framed as synthetic-body transfer, not spiritual resurrection. |
diff --git a/docs/design/07-player-controller-prototype.md b/docs/design/07-player-controller-prototype.md
index 0e7596e..9adcb16 100644
--- a/docs/design/07-player-controller-prototype.md
+++ b/docs/design/07-player-controller-prototype.md
@@ -13,7 +13,7 @@
This prototype proves the smallest useful SECOND SPAWN gameplay foundation: a network-spawned player can move in a top-down ARPG scene under Fusion authority, with a readable camera and no Unity console errors.
-This is not the combat system. This is the movement and authority contract that combat, cultivation, reincarnation, AI agent control, and future asset-controller integrations must respect.
+This is not the combat system. This is the movement and authority contract that combat, reincarnation, AI agent control, and future asset-controller integrations must respect.
---
diff --git a/docs/design/08-time-as-currency.md b/docs/design/08-time-as-currency.md
index 37c958b..1830009 100644
--- a/docs/design/08-time-as-currency.md
+++ b/docs/design/08-time-as-currency.md
@@ -6,7 +6,7 @@
*Last Verified: 2026-05-14 against MetaDOS wiki and SECOND SPAWN concept docs*
*Implements Pillar: Time is life, time is money*
-> **Quick reference** - Layer: `Core Economy` - Priority: `Vertical Slice` - Key deps: `Reincarnation`, `Cultivation`, `Loot`, `Supabase persistence`, `Server-authoritative gameplay`
+> **Quick reference** - Layer: `Core Economy` - Priority: `Vertical Slice` - Key deps: `Reincarnation`, `Loot`, `Profile persistence`, `Server-authoritative gameplay`
---
@@ -33,7 +33,7 @@ Every major decision should quietly ask:
## Player Fantasy
-Your body is a rented vessel with a countdown built into its biology. You can earn more time by fighting, looting, completing objectives, or extracting Nibirium energy. You can spend time to buy supplies, stabilize allies, power certain systems, or delay body failure.
+Your body is a rented vessel with a countdown built into its biology. You can earn more time by fighting, looting, or completing objectives. You can spend time to buy supplies, stabilize allies, power certain systems, or delay body failure.
The fantasy is not "gold with another name." It is "your life is liquid."
@@ -57,7 +57,7 @@ The fantasy is not "gold with another name." It is "your life is liquid."
| MetaDOS Battle Royale Concept | SECOND SPAWN Adaptation |
| ---- | ---- |
| Time is a match survival timer | Time is synthetic-body lifespan and combat pressure. |
-| Loot time from knocked-down enemies | Earn time from enemies, Nibirium nodes, quests, dungeon objectives, or cultivation events. |
+| Loot time from knocked-down enemies | Earn time from enemies, quests, or dungeon objectives. |
| Spend time on weapons, ammo, armor, supplies | Spend time on field services, emergency stabilization, dungeon shortcuts, body repairs, or agent automation policies. |
| Give time to knocked-down teammates | Transfer time to party members or stabilize a dying body. |
| Running out of time means death | Running out of time triggers body death and reincarnation. |
@@ -87,7 +87,7 @@ No marketplace, tokenomics, or complex exchange rate is required for the first p
| ---- | ---- | ---- | ---- |
| `BodyTime` | Remaining operating life of the current body | Moment-to-moment gameplay | Dies with the body unless converted by a rule |
| `SECOND token` | Reincarnation and economy token | Account / wallet economy | Persists across bodies |
-| Cultivation tier | Durable consciousness progression | Character identity | Partially carries across reincarnation |
+| Level and stats | Current-body progression | Body power | Reset or partially carry only if a future rule says so |
Design rule: `BodyTime` creates tactical pressure. `SECOND token` gates reincarnation economy. Do not merge them unless a future ADR explicitly changes the economy.
@@ -112,7 +112,6 @@ Design rule: `BodyTime` creates tactical pressure. `SECOND token` gates reincarn
| ---- | ---- | ---- |
| Enemy kill | Yes | Keep value small and server-owned. |
| Objective completion | Yes | Clear reward moment. |
-| Nibirium node | Later | Connects to cultivation economy. |
| Quest reward | Later | Needs quest persistence. |
| Party assist | Later | Needs party and contribution rules. |
| Offline agent farming | Later | Needs abuse limits and activity log. |
@@ -184,7 +183,7 @@ Design constraints:
| Pillar rules | `01-pillars.md` | Time-as-currency, server-authoritative gameplay | Rule dependency |
| Slice scope | `02-vertical-slice-spec.md` | Reincarnation and AI agent acceptance | Scope dependency |
| Systems map | `03-systems-index.md` | Economy and reincarnation systems | Build dependency |
-| Cultivation | `04-cultivation-system.md` | Durable progression across reincarnation | Data dependency |
+| Level/stat progression | `10-character-profile-agent-memory.md` | Current body profile state | Data dependency |
## External References
diff --git a/docs/design/09-pirate-adventure-reference-review.md b/docs/design/09-pirate-adventure-reference-review.md
index 29b495e..9946bfb 100644
--- a/docs/design/09-pirate-adventure-reference-review.md
+++ b/docs/design/09-pirate-adventure-reference-review.md
@@ -80,7 +80,7 @@ Player and enemy behavior are separated into small states:
- `EnemyChaseState`
- `EnemyAttackState`
-This is useful for SECOND SPAWN because cultivation, reincarnation, AI-agent control, and combat can plug into state transitions without one large controller script.
+This is useful for SECOND SPAWN because reincarnation, AI-agent control, BodyTime, and combat can plug into state transitions without one large controller script.
### 4. Runner Physics Scene Queries
@@ -127,7 +127,7 @@ Pirate Adventure uses money and level as sample progression. SECOND SPAWN uses:
- `BodyTime`
- `SECOND token`
-- cultivation tier
+- level and stats
- reincarnation state
- durable inventory and quest state in Supabase
diff --git a/docs/design/10-character-profile-agent-memory.md b/docs/design/10-character-profile-agent-memory.md
index 4d51482..555a7c9 100644
--- a/docs/design/10-character-profile-agent-memory.md
+++ b/docs/design/10-character-profile-agent-memory.md
@@ -53,7 +53,7 @@ This preserves:
| `AgentPolicy` | Yes | Player | What the offline agent is allowed to do while player is away |
| `BodyProfile` | No | Game server | Current synthetic body, visual archetype, BodyTime, lifecycle |
| `CharacterStats` | Mostly no | Game server | Combat and movement-affecting numbers for current body |
-| `Cultivation` | Partially | Game server | Consciousness progression that can carry over |
+| `CharacterStats` | Mostly no | Game server | Current-body level and combat stats |
| `MemoryRecord` | Yes, with decay | Backend | Small curated memory facts for LLM context |
| `AgentRuntime` | Yes, across bodies until reset policy exists | Backend | Counters for profile bootstrap, activity, decisions, fallback decisions, and offline time |
| `AgentActivity` | Yes, bounded recent history | Backend | Compact audit trail for offline-agent sessions and Unity/Nakama bootstrap events |
@@ -107,7 +107,7 @@ Required fields:
| `visual_prefab_key` | Local Unity visual prefab key, used for random spawn visuals later |
| `stats` | Current body combat stats |
| `body_time` | Current BodyTime state |
-| `cultivation` | Current tier and progress |
+| `stats` | Current level and combat stats |
| `lifecycle` | `alive`, `dying`, `reincarnating`, or `dead` |
| `created_at` | Body creation timestamp |
@@ -228,7 +228,7 @@ Minimum data contract:
Safety rules:
- OpenClaw agents are untrusted external actors from the game server's point of view.
-- They never mutate inventory, currency, quest, BodyTime, cultivation, combat, or world state directly.
+- They never mutate inventory, currency, quest, BodyTime, level/stats, combat, or world state directly.
- They may produce dialogue, social memory, and structured intent.
- Nakama owns identity binding, consent, moderation, rate limit, and activity logging.
- `api.dos.ai` / Go LLM Gateway owns prompt safety and model routing.
@@ -262,7 +262,7 @@ Vertical slice rule: the LLM receives only the top N memories by importance and
`AgentRuntime` is the compact operational counter block for the offline-agent
prototype. It is not authoritative gameplay state and must not be used to grant
-items, XP, currency, BodyTime, or cultivation progress without a separate
+items, XP, currency, BodyTime, or level/stat progress without a separate
server-side rule.
Tracked counters:
@@ -310,7 +310,7 @@ The context includes:
- current body identity
- visual/archetype key
- lifecycle
-- cultivation tier
+- level and stats
- BodyTime budget
- agent policy
- soul fields
@@ -360,7 +360,7 @@ This does not replace authoritative game-server validation. It is only the first
Implemented surfaces:
- `backend/nakama/modules/index.ts` is the current game-backend source for
- player profile, current body, soul, agent policy, BodyTime, cultivation, and
+ player profile, current body, soul, agent policy, BodyTime, level/stats, and
compact memories. It also stores `agent_runtime` counters and a bounded
`agent_activity` log. It exposes `secondspawn_profile_get`,
`secondspawn_memory_add`, `secondspawn_soul_update`,
@@ -372,7 +372,7 @@ Implemented surfaces:
when Supabase anonymous auth is not configured yet. Production account binding
must use Supabase custom auth or a later approved identity ADR.
- `backend/gateway/internal/character` stores prototype `AgentContext` with
- profile, body, stats, characteristics, soul, policy, BodyTime, cultivation,
+ profile, body, stats, characteristics, soul, policy, BodyTime,
and compact memories for LLM-gateway fallback and standalone cloud smoke
tests.
- Prototype memory writes deduplicate by memory kind and summary. Repeated
diff --git a/docs/design/12-game-design-document.md b/docs/design/12-game-design-document.md
index 59ff113..95cb1e1 100644
--- a/docs/design/12-game-design-document.md
+++ b/docs/design/12-game-design-document.md
@@ -28,7 +28,7 @@ The core promise is:
> Your character has a life that does not pause when yours does.
-When the player is offline, a bounded AI agent can continue controlling the character under server authority. Death permanently destroys the current body, but consciousness can transfer to a new body through the reincarnation flow. Time is both the body's remaining operating life and a spendable resource. Cultivation is the long-term progression layer, framed through Nibirium, biotechnology, and consciousness science rather than spiritual fantasy.
+When the player is offline, a bounded AI agent can continue controlling the character under server authority. Death permanently destroys the current body, but consciousness can transfer to a new body through the reincarnation flow. Time is both the body's remaining operating life and a spendable resource. Current-body level and stats are the vertical-slice progression baseline.
### Product Shape
@@ -55,7 +55,7 @@ The player should feel:
- Their character continues to matter even when they log off.
- Death has weight because the body is gone, not because the account is erased.
-- Cultivation is earned mastery over Nibirium-enhanced bodies and consciousness.
+- Level and stats give readable ARPG growth while deeper body progression is redesigned later.
- Time is not just a timer. It is life, pressure, and a resource.
- NPCs and agents are world citizens, not detached chatbots.
- The world is dangerous because all gameplay state is server-authoritative and consequences persist.
@@ -109,22 +109,20 @@ SECOND SPAWN is not:
## 6. Setting and Tone
-The setting is a near-future post-apocalyptic MetaDOS universe around 2050. Human survival is shaped by synthetic bodies, Nibirium-enhanced biotech, consciousness transfer, AI societies, and resource scarcity.
+The setting is a near-future post-apocalyptic MetaDOS universe around 2050. Human survival is shaped by synthetic bodies, biotech, consciousness transfer, AI societies, and resource scarcity.
Tone requirements:
- Dark sci-fi and cyberpunk.
- Biotech and consciousness science instead of magic.
-- Cultivation language must be internationally readable and science-framed.
- Death and reincarnation should feel clinical, costly, and narratively charged.
- AI NPC society should feel socially alive, but still bounded by game systems.
Key lore anchors:
-- `Nibirium`: The substance that enables body enhancement, cultivation progression, and advanced biotech.
- Synthetic bodies: Replaceable vessels with finite operating life.
- Consciousness transfer: The sci-fi basis of reincarnation.
-- Hunters: Player-controlled or agent-controlled characters who fight, cultivate, and survive.
+- Hunters: Player-controlled or agent-controlled characters who fight and survive.
- SECOND token: Account-level time reserve denominated in seconds. The token is used for reincarnation costs and must stay distinct from current-body `BodyTime` unless a future ADR explicitly merges them.
---
@@ -136,20 +134,20 @@ Key lore anchors:
1. Move through a top-down ARPG space.
2. Read enemy threats and positioning.
3. Attack, dodge, reposition, and use abilities.
-4. Earn combat rewards such as loot, Nibirium progress, BodyTime, or quest progress.
+4. Earn combat rewards such as loot, level/stat progress, BodyTime, or quest progress.
5. Make tactical spend decisions around health, BodyTime, supplies, and objectives.
### Session Loop
1. Enter a hub, zone, or dungeon.
-2. Pick a goal: quest step, dungeon room, cultivation progress, BodyTime recovery, NPC interaction, or agent policy adjustment.
+2. Pick a goal: quest step, dungeon room, level/stat progress, BodyTime recovery, NPC interaction, or agent policy adjustment.
3. Fight and interact inside a server-authoritative zone.
-4. Return to the hub, upgrade, cultivate, adjust policy, or reincarnate if needed.
+4. Return to the hub, upgrade, adjust policy, or reincarnate if needed.
5. Log out with an offline-agent policy that controls what the AI may attempt.
### Long-Term Loop
-1. Advance through cultivation tiers.
+1. Advance level and body-specific stats.
2. Reincarnate across bodies while keeping selected durable identity and memories.
3. Improve player skill and build knowledge.
4. Collect or equip approved NFT-linked skins, weapons, or pets where applicable.
@@ -191,13 +189,12 @@ The character is split into durable identity and current-body state.
| Agent policy | Player-approved offline behavior limits | Yes |
| Memory records | Compact curated memories for LLM context | Yes, with decay rules later |
| Agent runtime | Bounded operational counters, recent activity, fallback tracking | Yes, bounded |
-| Cultivation | Durable consciousness progression | Partially, exact carryover is undecided |
| Body profile | Current synthetic body, visual archetype, BodyTime, lifecycle | No |
| Body characteristics | Current-body tendencies such as curiosity, courage, discipline, aggression, and sociability | Mostly no |
| Character stats | Current body combat and movement stats | Mostly no |
| Equipment and local inventory | Body-bound owned or equipped state | Reset or reconciled through escrow rules |
-The gameplay design should preserve the idea that a body is temporary, but the player's cultivated consciousness and authored identity persist.
+The gameplay design should preserve the idea that a body is temporary, but the player's authored identity and selected durable profile layers persist.
### Actor Profile Bundle
@@ -242,7 +239,6 @@ Death can be caused by combat failure, BodyTime reaching zero, or offline-agent
- Body death must be server-authoritative.
- LLMs and clients cannot trigger successful reincarnation directly.
-- Cultivation carries over partially, but the exact rule is [TODO: JOY input].
- Equipment, quest state, location, and current body stats reset or reconcile according to future system rules.
- SECOND token is denominated in seconds and is distinct from current-body `BodyTime` unless a future ADR explicitly merges them.
- Reincarnation should consume enough SECOND to create a new playable body-time package.
@@ -253,7 +249,6 @@ Death can be caused by combat failure, BodyTime reaching zero, or offline-agent
- Default reincarnation package: 5 days or 7 days: [TODO: JOY input]
- Whether the SECOND cost directly seeds the new body's `BodyTime`, or only gates body creation while `BodyTime` is assigned separately: [TODO: JOY input]
- SECOND token source and sink design beyond reincarnation: [TODO: JOY input]
-- Cultivation carryover ratio or rule: [TODO: JOY input]
- Faction reputation carryover: [TODO: JOY input]
- Body selection and candidate reroll rules: [TODO: JOY input]
- Memory decay across bodies: [TODO: JOY input]
@@ -293,35 +288,28 @@ Open BodyTime decisions:
---
-## 11. Cultivation
+## 11. Level and Stats Progression
-Cultivation is the durable long-term progression system. It is sci-fi-framed through Nibirium absorption, body enhancement, DNA evolution, and consciousness transfer.
-
-The six tiers are:
-
-| Tier | Name | Meaning | Vertical Slice |
-| ---- | ---- | ---- | ---- |
-| 1 | Awakening | Activate Nibirium absorption | In scope |
-| 2 | Enhancement | Strengthen body capabilities | In scope |
-| 3 | Core Formation | Form an internal Nibirium energy core | Out of scope |
-| 4 | Evolution | Unlock DNA or special ability evolution | Out of scope |
-| 5 | Transcendence | Move beyond normal human limits | Out of scope |
-| 6 | Ascension | Near-divine end-game state | Out of scope |
+Level and current-body stats are the only approved progression layer for the
+vertical slice.
Design rules:
-- Cultivation is not spiritual enlightenment, qi, dao, immortal sect politics, or fantasy magic.
-- Tier-up should be an earned mastery moment, not a background stat notification.
-- Tier-up should require Nibirium progress, a mastery test, and a Cultivation Master interaction.
-- Offline agents may accumulate permitted progress, but tier-up rituals should require player presence unless explicitly changed later.
-- All tier checks and progression mutations are server-owned.
+- Level and stat mutations are server-owned.
+- Level is body-bound unless a future reincarnation design explicitly carries a
+ portion forward.
+- Stats should support readable ARPG combat first: health, energy, attack,
+ defense, speed, and survivability.
+- Advanced body or soul progression is deferred until a fresh design pass.
+- Do not implement cultivation tiers, Nibirium XP, tier-up rituals, or
+ Cultivation Master progression in the current slice.
-Open cultivation decisions:
+Open progression decisions:
-- Exact carryover on reincarnation: [TODO: JOY input]
-- Offline-agent Nibirium gain rate: [TODO: JOY input]
-- Tier 3-6 mechanics: [TODO: JOY input]
-- Whether NFT Hunter skins have tier requirements: [TODO: JOY input]
+- Level curve and stat scaling: [TODO: prototype]
+- Which stat values reset on reincarnation: [TODO: reincarnation MVP]
+- Whether any level-derived account milestone survives body death: [TODO: JOY input]
+- Future advanced body progression direction: [TODO: post-slice brainstorm]
---
@@ -333,7 +321,7 @@ Combat goals:
- Clear top-down movement and positioning.
- Fast, readable attacks and dodges.
-- Abilities that scale with cultivation tier.
+- Abilities that scale with level and stats.
- Server-side damage, hit validation, cooldowns, and combat state.
- Enemy behavior that can start simple and later move into Behavior Designer execution trees.
- Boss encounters that can include LLM dialogue, but never LLM-owned state changes.
@@ -408,7 +396,6 @@ Design constraints:
- The agent inherits the player's capability cap and rate limits.
- The agent cannot spend BodyTime on irreversible actions unless policy allows it.
-- The agent cannot tier-up without player presence in the current design.
- Agent death is body death and triggers reincarnation like player death.
- The return activity log is essential. If the player cannot understand what happened offline, the feature will feel invisible or unsafe.
@@ -428,7 +415,7 @@ LLM-driven NPCs are world citizens with memory and intent, not authority.
Hard boundaries:
- LLM output is intent, not state.
-- LLMs cannot grant items, gold, XP, BodyTime, cultivation progress, quest completion, or token rewards directly.
+- LLMs cannot grant items, gold, XP, BodyTime, level/stat progress, quest completion, or token rewards directly.
- Unity client never stores provider API keys.
- All provider calls go through server-owned paths.
- Prompt injection defense, rate limits, memory budget caps, and moderation checks are required.
@@ -439,7 +426,7 @@ Phase direction:
- Phase 1 uses Convai for MVP NPC dialogue.
- Phase 2 moves deeper LLM behavior to `api.dos.ai` / Go LLM Gateway.
- Haiku-class models are candidates for fast NPC chat.
-- Sonnet-class models are candidates for bosses, quest-critical NPCs, and cultivation masters.
+- Sonnet-class models are candidates for bosses and quest-critical NPCs.
- Voice remains deferred and must use server-minted ephemeral tokens or a server-side provider path.
The intended brain pattern is:
@@ -492,7 +479,6 @@ SECOND SPAWN progression is split across body-bound and consciousness-bound laye
Durable progression:
-- Cultivation tier and selected cultivation progress.
- Soul profile and player-authored goals.
- Compact memories.
- Account identity and wallet linkage.
@@ -500,7 +486,7 @@ Durable progression:
Body-bound progression:
-- Current body stats.
+- Current body level and stats.
- Current BodyTime.
- Current local equipment state.
- Current zone and dungeon run.
@@ -509,7 +495,7 @@ Body-bound progression:
Progression should serve three player motivations:
- Autonomy: choose active play, delegation, risk, and reincarnation timing.
-- Competence: master combat, cultivation, and BodyTime tradeoffs.
+- Competence: master combat, level/stat growth, and BodyTime tradeoffs.
- Relatedness: build relationships with players, NPCs, and agents.
---
@@ -522,7 +508,6 @@ The economy is not fully designed. This GDD only defines resource roles and boun
| ---- | ---- | ---- |
| `BodyTime` | Current body's remaining operating life and spendable tactical resource | Body-bound, lost on body death unless future rules say otherwise |
| SECOND token | Account-level time reserve denominated in seconds, used for reincarnation | Account or wallet-level, exact source and sink design undecided |
-| Nibirium | Cultivation progress material | Earned through gameplay, exact rates undecided |
| Loot and supplies | Tactical power and run support | Server-owned, no client-granted drops |
| NFT assets | Ownership-linked skins, weapons, pets | Bound through DOS Chain and escrow rules |
@@ -550,7 +535,6 @@ Open economy decisions:
- Whether SECOND directly seeds BodyTime or only gates body creation: [TODO: JOY input]
- SECOND token earning and sink design beyond reincarnation: [TODO: JOY input]
- BodyTime earn and spend values: [TODO: JOY input]
-- Nibirium thresholds and tuning beyond prototype values: [TODO: JOY input]
- Marketplace design: [TODO: JOY input]
### Loot, Items, and Cosmetics
@@ -618,7 +602,7 @@ Accessibility requirements for future passes:
Current direction:
- Visual style: dark sci-fi, cyberpunk, post-apocalyptic, stylized enough for production speed.
-- Environment: ruined high-tech zones, synthetic-body facilities, Nibirium corruption, hub town contrast.
+- Environment: ruined high-tech zones, synthetic-body facilities, biotech decay, hub town contrast.
- Character readability: silhouettes and ability effects must stay readable from top-down camera distance.
- Audio: tense biotech/sci-fi ambience, clear combat hits, distinct BodyTime warning sounds, restrained AI/NPC voice use.
@@ -690,7 +674,7 @@ In scope:
- Reincarnation MVP: die, spend test SECOND token, new body, reset selected state.
- BodyTime MVP: meter, one earn loop, one spend loop, zero-time death.
- Offline AI agent MVP: farm one designated area and show activity log.
-- Cultivation tiers 1 and 2: Awakening and Enhancement.
+- Basic level and stat progression for the current body.
- NFT Hunter skin equip plus escrow on test net.
- Multiplayer zone with 4-20 players.
- Basic chat through Nakama channels first.
@@ -709,7 +693,7 @@ Out of scope for the vertical slice:
- Marketplace and player trading.
- Pet breeding.
- Mount system.
-- Cultivation tiers 3-6.
+- Advanced body progression.
- Voice NPC.
- Full branching quest system.
- Full faction system.
@@ -735,7 +719,7 @@ Before designing or implementing a feature, contributors should ask:
1. Does this preserve server authority?
2. Can the offline AI agent interact with it through bounded validated intent?
-3. Does it strengthen reincarnation, BodyTime, cultivation, or meaningful ARPG combat?
+3. Does it strengthen reincarnation, BodyTime, level/stat progression, or meaningful ARPG combat?
4. Does it avoid pay-to-win and direct LLM authority?
5. Does it fit the one-zone vertical slice before generalizing?
6. Is the unknown a real design decision that needs `[TODO: JOY input]` instead of invented numbers?
@@ -746,7 +730,7 @@ Useful source documents:
- [01-pillars.md](01-pillars.md)
- [02-vertical-slice-spec.md](02-vertical-slice-spec.md)
- [03-systems-index.md](03-systems-index.md)
-- [04-cultivation-system.md](04-cultivation-system.md)
+- [04-cultivation-system.md](04-cultivation-system.md) - deferred advanced body progression
- [05-networking-architecture.md](05-networking-architecture.md)
- [08-time-as-currency.md](08-time-as-currency.md)
- [10-character-profile-agent-memory.md](10-character-profile-agent-memory.md)
@@ -763,7 +747,7 @@ Useful source documents:
- Reincarnation may feel too punitive if carryover is too low.
- Reincarnation may feel weightless if carryover is too high.
- BodyTime may become a nuisance timer if it drains everywhere without interesting spend decisions.
-- Cultivation may feel generic if tier-up is only stat scaling.
+- Level/stat progression may feel generic if combat and reincarnation do not create meaningful decisions.
- LLM NPCs may feel like chatbots if they ignore world state, quest state, or memory.
### Technical Risks
@@ -789,7 +773,7 @@ Useful source documents:
| Whether SECOND directly seeds BodyTime or only gates body creation | Reincarnation MVP |
| SECOND token sources and sinks beyond reincarnation | Reincarnation MVP |
| BodyTime drain, earn, spend, transfer, and conversion rules | BodyTime MVP |
-| Cultivation carryover rule after reincarnation | Reincarnation MVP |
+| Future advanced body progression direction | Post-slice brainstorm |
| Offline-agent default policy and risk threshold | Offline-agent MVP |
| Hunter NFT integration approach | NFT equip MVP |
| First OpenClaw-connected NPC role | OpenClaw bridge prototype |
diff --git a/docs/setup/unity-conventions.md b/docs/setup/unity-conventions.md
index cec4f33..2c84ebf 100644
--- a/docs/setup/unity-conventions.md
+++ b/docs/setup/unity-conventions.md
@@ -72,13 +72,13 @@ Migration note (2026-05-14): all custom assets that previously lived flat at `As
| C# script file | `PascalCase` matching the class name | `NetworkRunnerSetup.cs` | Unity requires file = class for `MonoBehaviour` |
| Class | `PascalCase` | `NetworkRunnerSetup` | C# .NET Framework Design Guidelines |
| Field (private + serialized) | `_camelCase` | `_moveSpeed`, `_runner` | Distinguishes from local variable; community standard |
-| Field (public) | `PascalCase` | `CultivationTier`, `Hp` | C# property convention |
+| Field (public) | `PascalCase` | `Level`, `Hp` | C# property convention |
| Method | `PascalCase` | `FixedUpdateNetwork()` | C# convention |
| Interface | `IPascalCase` | `INetworkRunnerCallbacks` | C# convention |
| Asmdef | `Company.Feature` | `SecondSpawn.Networking` | Unity package guidance: no `_` prefix, broad domain term |
| Namespace | matches asmdef | `SecondSpawn.Networking` | RootNamespace field on asmdef auto-applies |
-| Scene | `PascalCase`, descriptive scope | `ZoneTest_Hub.unity` (TBD), `Boss_Awakening.unity` | Underscore separates scope from variant |
-| Prefab | `PascalCase`, descriptive | `Player_Hunter.prefab`, `NPC_CultivationMaster.prefab` | Underscore separates type from variant |
+| Scene | `PascalCase`, descriptive scope | `ZoneTest_Hub.unity` (TBD), `Boss_Lab.unity` | Underscore separates scope from variant |
+| Prefab | `PascalCase`, descriptive | `Player_Hunter.prefab`, `NPC_FieldGuide.prefab` | Underscore separates type from variant |
| ScriptableObject `.asset` | `PascalCase`, matching the class | `SecondSpawnConfig.asset` | Inspector readability |
| Material / Texture | `PascalCase`, suffix variant | `HunterArmor_Diffuse`, `HunterArmor_Normal` | Type at end per Unity guidance |
| Audio clip | `PascalCase`, descriptive | `Combat_HitImpact_01.wav` | Sequential variants use 2-digit numbers |
@@ -115,7 +115,7 @@ When a module needs Tests:
Use ScriptableObject for:
- Per-environment config (`SecondSpawnConfig.asset` - already designed)
-- Static gameplay data (cultivation tier definitions, NPC dialogue tables, item definitions)
+- Static gameplay data (level/stat tables, NPC dialogue tables, item definitions)
- Per-zone settings (when slice phase 2 zones materialize)
Pattern:
@@ -191,7 +191,7 @@ Items below are KNOWN deviations to address as work lands; not blockers for curr
|---|---|---|
| Adopt wrapper folder convention? | **YES, `_SecondSpawn/`** (chose project-name over generic `_Game` or `_Project`) | Migrated 2026-05-14. JOY rationale: "chỉ có Photon mới là cost thấp đó. Đợi 100 cái plugin, asset folder rồi làm thì sao?" - migrate now while only 1 SDK exists |
| Adopt `_Scripts/` underscore prefix INSIDE `_SecondSpawn/`? | **NO** | Redundant; `_SecondSpawn/` already pinned to top. PascalCase sub-folders (`Scripts/`, `Scenes/`, `Settings/`). |
-| Per-zone scene naming | **`Zone_.unity`** | Group-by-type then name (e.g., `Zone_DesertHub.unity`, `Zone_DungeonAwakening.unity`) |
+| Per-zone scene naming | **`Zone_.unity`** | Group-by-type then name (e.g., `Zone_DesertHub.unity`, `Zone_DungeonLab.unity`) |
| Boss scene naming | **`Boss_.unity`** as separate file, additive load | Slice phase 4 wires this when first dungeon ships |
| Photon FusionDemos + FusionMenu cleanup | **Keep as-is** | JOY: "thêm 1 thư mục thôi, để như hiện tại có sao đâu". Revisit if ship build size becomes concern |
| Fusion runtime object parent bucket | **Do not force-parent spawned NetworkObjects under `_DynamicObjects` for Phase B** | Root-level spawned NetworkObjects match Fusion runner-scene ownership. Revisit when a networked parent strategy is needed. |