Home Overview Architecture Core Systems Gameplay Social Economy Content UI/UX Roadmap

§4 — Gameplay

PvE dungeon combat, skill system, PvP challenges, ranked PvP, raids, idle rewards, and the XP/level progression system.

100%
Complete

Dungeon System (GDD §9)

Dungeon Difficulties (6)

  • Tutorial — training drone combat, no deaths
  • Easy — Pirate Lair (lvl 1), Asteroid Mine (lvl 2)
  • Medium — Alien Ruins (lvl 3)
  • Hard — Corrupted Vault (lvl 5), Nebula Anomaly (lvl 7)
  • Extreme — Void Rift (lvl 12, endgame)
  • Legendary — Not yet assigned; reserved for raids

Dungeon Definitions (8)

pirate_lair, asteroid_mine, alien_ruins, corrupted_vault, nebula_anomaly, void_rift + 2 additional. Each has enemyPool, lootTable, energyCost, rewardMultiplier, and optional bossId.

Room Types

  • Combat encounter — fight enemy template
  • Loot room — guaranteed item drop
  • Merchant — spend credits mid-run
  • Boss — high HP, rare loot

Enemies (15 templates)

  • Space Pirate, Pirate Captain, Mining Drone, Rock Creature
  • Alien Guardian, Ancient Drone, Crystal Golem
  • Corrupted AI, Security Drone, Virus Program
  • Energy Being, Phase Shifter, Quantum Entity
  • Training Drone, Defense Turret

Combat Log (GDD §9.5)

Every dungeon run appended to persistent combat log. Accessible via get_combat_log. Stored in PlayerData.

DungeonSystem.js100%
8 dungeons, 15 enemy templates (v3.4 datapack)
start_dungeon / process_encounter100%
Room-by-room state machine
complete_dungeon / exit_dungeon100%
Rewards, XP, loot distribution
Combat log persistence100%
Stored in playerData.combatLog
Retreat mechanic UI100%
Retreat button + confirmation modal + 50% partial rewards (v3.9)
Raid system100%
v3.5: RaidSystem.js — 2 weekly + 1 monthly world boss; party queue; phase HP; loot distribution; Raids tab

PvP Challenge System (GDD §9.4)

Flow

  1. Player A sends pvp_challenge to online player B
  2. Player B receives modal — Accept / Decline
  3. Challenge auto-expires after 30 seconds
  4. On accept — server runs battle simulation
  5. Winner receives credits + XP; result shown to both

Battle Simulation

Up to 20 rounds. Each round: attacker and defender both deal damage = ship.attack × (0.85–1.15). Ship HP and level scale both sides.

Rewards

credits_won = 100 + loser.level × 20
xp_won = 50 + loser.level × 10

Client UI

  • GSO_PvP module handles all modals
  • Challenge button on Social tab
  • Incoming challenge modal with countdown
  • Victory / defeat result modal
pvp_challenge / pvp_accept / pvp_decline100%
All 3 handlers + 30s expiry
Battle simulation100%
_simulatePvpBattle() server-side
Credit/XP rewards100%
Applied on win, saved to DB
Client modals100%
Challenge + result modals
PvP history / stats0%
Win/loss stored but no dedicated history UI
PvP matchmaking / ranking100%
v3.5: ELO rating, tiers, pvp_ranked_* handlers, PvP Rankings tab

Skill System (GDD §10)

Skill Categories

  • Combat — damage, crit, defence, speed
  • Crafting — speed, quality, yield
  • Science — research speed, XP gain, alien tech

Data Files

15 skill JSON files across 3 subdirectories. Skills have level requirements and passive multiplier effects.

Skill Points

Earned by levelling up (stats.skillPoints). Spent via the Skills tab. Effects applied server-side.

Visual Tree

Skills tab renders a category-filtered tree. Active/locked states driven by get_skills response.

SkillSystem.js100%
Server-side skill data + player tracking
get_skills socket handler100%
Returns grouped skill tree
Skill data files (15)80%
Combat + science complete; crafting partial
Client Skills tab UI100%
Allocate skill points, locked state, tooltips, real-time update (v3.9)
Skill effects in combat60%
Damage/crit multipliers applied; others partial

XP & Level Progression (GDD §3)

Level Formula

XP_required(L) = 500 × L^1.65

This is the simplified server formula. The config/xp-progression.js file contains an extended multi-curve formula used in early prototyping — the server now uses the GDD §3.2 version.

Max Level

Level cap: 50. XP continues to accumulate beyond cap but yields no new level-ups.

Level-Up Events

  • Server emits player_stat_update with new level
  • Client detects old vs new level → showNotification()
  • XP bar fills in real-time on dashboard

XP Sources

  • Dungeon completion (50–5,000 XP by difficulty)
  • Quest completion (25–3,000 XP)
  • Fleet mission return (scaled by type)
  • PvP win (50 + loser_level × 10)
  • Crafting (10 XP per craft default)
XP / Levelling100%
Formula implemented; bar on dashboard; level-up notification

Idle & Offline System (GDD §19)

Offline Accumulation

When a player logs out, their resources continue accumulating based on building levels. On next login, IdleSystem.calculateOfflineRewards() computes elapsed time × production rates.

Online Idle Ticks

Background ticks every 60 seconds send resource_update to connected clients without requiring any player action.

Offline Cap

Offline accumulation is capped at 8 hours to prevent extreme catch-up. Cap can be extended by upgrading Storage Depot.

claimOfflineRewards

Client emits on login. Server computes, saves to DB, emits offlineRewardsClaimed with a breakdown shown in a modal.

Idle / Offline System100%
Storage depot extends cap; per-resource breakdown; buffer bar (v3.9)