Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Genshin Impact DPS simulator: a generic engine where every character is a JSON file
翻訳待ち
Loading the full README.
Read the full README ↗A Genshin Impact damage simulator built on a generic engine. Every character is data: one JSON file that describes the kit (talents, passives, constellations, weapon, artifact set, rotation). The engine knows nothing about any particular character; it only runs blocks. Shared game mechanics such as Energy, Bond of Life or Nightsoul are pluggable system modules that a character turns on in its JSON.
Frames, hitmarks and kit rules are taken from gcsim, so results can be checked against a known reference.
The site is the simulator: / opens a team combat timeline with an editable rotation (the old /genshin-dps-simulator redirects there). The team or character picked is kept in the URL (/?team=solo:mavuika).
Current roster: Arlecchino, Mualani, Varesa, Iansan, Chevreuse, Nicole, Escoffier, Mavuika, Citlali, Bennett, Xilonen, Sucrose.
Preset teams: Varesa with Iansan, Chevreuse and Nicole; Mavuika's Melt teams (with Citlali, Escoffier and Bennett; Citlali, Xilonen and Bennett; Citlali, Xilonen and Iansan, after KQM's guide). The Team button picks any party of up to four.
swap_delay), team buffs (stats and infusions), shared particles, elemental resonance, and Pyro/Electro/Cryo auras with Overloaded and Melt.NaN damage._data/characters/<name>.json
│ registered in CHARACTER_FILES (_lib/characterData.ts)
▼
zod schemas ──────────── characterSchema.ts, actionSchema.ts, engine/schema.ts
│
▼
reference check ──────── engine/validateReferences.ts
│
▼
systems expansion ────── engine/modules/* (energy, bondOfLife, nightsoul → plain blocks)
│
▼
runtime + kit adapter ── engine/runtime.ts state, bonuses, triggers, hits
│ engine/kitAdapter.ts when each action starts, which form it takes
│ engine/queue.ts frame-based event queue
▼
simulateKit.ts (solo) / simulateTeam.ts (team) → results → UI (_components/)
Path (under src/app/genshin-dps-simulator/) | Role |
|---|---|
_data/characters/*.json | One file per character |
_data/weapons/*.json, _data/sets/*.json | The weapon and artifact set catalog (_lib/catalog.ts) |
_data/reactions.json | Reaction formulas (Vaporize, Melt, Overloaded) |
_lib/characterData.ts | CHARACTER_FILES registry, loadCharacterFile() |
_lib/characterSchema.ts, _lib/actionSchema.ts | Character and talent schemas; getCharacterActions() compiles actions |
_lib/engine/schema.ts | Block, condition, trigger and operation schemas |
_lib/engine/runtime.ts | Simulation state, bonuses, triggers and hits |
_lib/engine/kitAdapter.ts | Action timing, cancels, forms |
_lib/engine/modules/ | Shared system modules (MODULES in index.ts) |
_lib/engine/simulateKit.ts | Solo runs, simulateLoadedCharacter() |
_lib/engine/simulateTeam.ts | Team runs, simulateTeam() |
_lib/team.ts | Team presets and screen state |
_components/timeline/ | The timeline UI (CombatTimelinePage.tsx is the entry point) |
__tests__/ | Vitest suite (engine features, invariants, golden cases, teams) |
CLAUDE.md | Full engine and JSON reference |
A character file is mostly talents plus a list of blocks. There are four block types:
This is the beginning of the README. Read the rest at the original. Read the full README ↗