How celasha/toolasha works
Toolasha is a modular Milky Way Idle userscript that adds configurable game-interface enhancements, market and crafting analysis, and combat tracking and simulation. The primary workflow begins when the script starts in the game: it initializes shared storage and settings, observes game data and DOM changes, then enables feature modules that present overlays, calculations, trackers, and controls. Market pricing and combat tools are substantial parallel capabilities. The graph emphasizes documented feature areas; several feature-to-feature runtime links are not established by the sampled excerpts, so they are omitted.
Main entry points: main.js Startup orchestration · storage.js IndexedDB storage · config.js Settings and features · data-manager.js Game data manager
Components 29
Runtime foundation
- Startup orchestration
src/main.js - Settings and features
src/core/config.js - Settings persistence
src/core/settings-storage.js - IndexedDB storage
src/core/storage.js - Game data manager
src/core/data-manager.js - WebSocket hook
src/core/websocket.js - DOM observer
src/core/dom-observer.js - Feature registry
src/core/feature-registry.js
Market and economy
- Marketplace API
src/api/marketplace.js - Market values API
src/api/market-values.js - Market analysis tools
src/features/market/expected-value-calculator.js - Net worth valuation
src/features/networth/networth-calculator.js - Inventory badges
src/features/inventory/inventory-badge-manager.js
Combat and dungeons
- Combat statistics
src/features/combat-stats/combat-stats-calculator.js - Dungeon tracking
src/features/combat/dungeon-tracker.js - Live combat tracking
src/features/combat-live/combat-live.js - Combat simulation
src/features/combat-sim/combat-sim.js - Simulation engine
src/features/combat-sim/engine/combat-simulator.js
Gameplay features
- Alchemy history and profit
src/features/alchemy/alchemy-profit.js - Crafting plans
src/features/crafting-plan/crafting-plan-calculator.js - Action enhancements
src/features/actions/production-profit.js - Task tools
src/features/tasks/task-profit-calculator.js - Enhancement tools
src/features/enhancement/enhancement-feature.js
Interface and activity
- Settings interface
src/features/settings/settings-ui.js - Character activity display
src/features/character-activity/character-select-renderer.js - Chat enhancements
src/features/chat/pop-out-chat.js - UI enhancements
src/features/ui/draggable-modals.js
Other components
- Player
- Milky Way Idle
Connections 24
- Player → Milky Way Idle: uses
- Milky Way Idle → Startup orchestration: loads
- Startup orchestration → WebSocket hook: installs
src/main.js - Startup orchestration → DOM observer: starts
src/main.js - Startup orchestration → IndexedDB storage: initializes
src/main.js - Startup orchestration → Settings and features: initializes
src/main.js - Startup orchestration → Marketplace API: starts refresh
src/main.js - Startup orchestration → Market values API: fetches and refreshes
src/main.js - Startup orchestration → Character activity display: starts watching
src/main.js - Settings and features → Settings persistence: loads and saves
src/core/config.js - Settings persistence → IndexedDB storage: persists settings
src/core/settings-storage.js - Settings and features → Game data manager: gets character ID
src/core/config.js - Startup orchestration → Feature registry: initializes features
src/main.js - Marketplace API → IndexedDB storage: reads and writes cache
src/api/marketplace.js - Game data manager → IndexedDB storage: reads action progress
src/core/data-manager.js - Game data manager → WebSocket hook: receives updates
src/core/data-manager.js - Inventory badges → DOM observer: observes DOM
src/features/inventory/inventory-badge-manager.js - Combat statistics → Marketplace API: uses market data
src/features/combat-stats/combat-stats-calculator.js - Combat statistics → Game data manager: uses game data
src/features/combat-stats/combat-stats-calculator.js - Combat simulation → Simulation engine: runs simulations
- Character activity display → DOM observer: watches DOM
src/features/character-activity/character-select-renderer.js - Character activity display → IndexedDB storage: loads activity data
- Settings interface → Settings and features: configures features
- Player → Settings interface: configures