How frzyc/genshin-optimizer works
Gacha Optimizer is a monorepo for game-specific optimizer websites and a Discord bot. Players enter through a game frontend, navigate its inventory, team, and optimization features, and receive build or calculation results. The Genshin app has both a legacy Waverider frontend and a newer Pando-based frontend; Star Rail uses Pando, while Zenless has a basic optimizer. The README documents these capabilities, but many page implementations are unsampled, so their internal links are not expanded here.
Main entry points: app/App.tsx Genshin Pando app · app/App.tsx Star Rail app · app/App.tsx Zenless app · main.ts Somnia bot
Components 23
Game frontends
- Genshin frontend
apps/frontend/src/app/App.tsx - Genshin Pando app
apps/gi-frontend/src/app/App.tsx - Star Rail app
apps/sr-frontend/src/app/App.tsx - Zenless app
apps/zzz-frontend/src/app/App.tsx
Game data and UI
- Genshin database
libs/gi/db/src/Database/ArtCharDatabase.ts - Artifact manager
libs/gi/db/src/Database/DataManagers/ArtifactDataManager.ts - Genshin formula UI
libs/gi/formula-ui/src - Star Rail database
libs/sr/db/src/Database/Database.ts - Relic manager
libs/sr/db/src/Database/DataManagers/RelicDataManager.ts - Zenless database
libs/zzz/db/src/Database/Database.ts - W-engine manager
libs/zzz/db/src/Database/DataManagers/WengineDataManager.ts - W-engine UI
libs/zzz/ui/src/Wengine/WengineSwapModal.tsx
Calculation engines
- Pando engine
libs/pando/engine/src - Genshin formulas
libs/gi/formula - Star Rail formulas
libs/sr/formula - Zenless formulas
libs/zzz/formula
Discord bot
- Somnia bot
apps/somnia/src/main.ts - Archive commands
apps/somnia/src/commands/archive.ts - Databank commands
apps/somnia/src/commands/databank.ts - Interaction events
apps/somnia/src/lib/events.ts - Message helpers
apps/somnia/src/lib/message.ts - Permission helpers
apps/somnia/src/lib/permissions.ts
Other components
- Player
Connections 23
- Player → Genshin frontend: uses
README.md - Player → Genshin Pando app: uses
README.md - Player → Star Rail app: uses
README.md - Player → Zenless app: uses
README.md - Genshin frontend → Genshin database: provides context
apps/frontend/src/app/App.tsx - Genshin frontend → Artifact manager: routes to features
- Genshin Pando app → Genshin database: provides context
apps/gi-frontend/src/app/App.tsx - Genshin Pando app → Pando engine: enables debug
apps/gi-frontend/src/app/App.tsx - Genshin Pando app → Genshin formulas: loads optimizer
- Star Rail app → Pando engine: enables debug
apps/sr-frontend/src/app/App.tsx - Star Rail app → Star Rail database: provides context
apps/sr-frontend/src/app/App.tsx - Star Rail app → Star Rail formulas: loads optimizer
- Zenless app → Pando engine: enables debug
apps/zzz-frontend/src/app/App.tsx - Zenless app → Zenless database: provides context
apps/zzz-frontend/src/app/App.tsx - Zenless app → Zenless formulas: loads optimizer
- W-engine manager → Zenless database: updates equipment
libs/zzz/db/src/Database/DataManagers/WengineDataManager.ts - W-engine UI → W-engine manager: selects equipment
- Somnia bot → Archive commands: registers command
apps/somnia/src/main.ts - Somnia bot → Databank commands: imports command
apps/somnia/src/main.ts - Somnia bot → Interaction events: registers events
apps/somnia/src/main.ts - Archive commands → Message helpers: uses helpers
apps/somnia/src/commands/archive.ts - Archive commands → Permission helpers: uses helpers
apps/somnia/src/commands/archive.ts - Databank commands → Message helpers: uses helpers
apps/somnia/src/commands/databank.ts