How shuabritze/mushroom-launcher works
Mushroom Launcher is an Electron desktop launcher for a MapleStory 2 client. The main workflow is selecting or downloading client files, configuring a server, running pre-launch checks and patching, then starting the game with server and mod arguments. The README also documents mod creation and hash-checked updates. Sampled excerpts establish the launch and download details; some UI-to-IPC handler wiring and unsampled subsystem behavior are represented only where the tree or README supports them.
Main entry points: preload.ts Preload bridge · App.tsx Launcher home · config.ts Config persistence · download-client.ts Client downloader
Components 25
Desktop runtime
- Electron entry
src/main.ts - App initialization
src/app/app.ts - Preload bridge
src/app/preload.ts
Launcher interface
- Renderer entry
src/web/renderer.tsx - Launcher home
src/web/src/App.tsx - Shared UI state
src/web/src/AppState.tsx - Install controls
src/web/src/download/DownloadSheet.tsx - Download progress
src/web/src/download/DownloadProgress.tsx - Server management
src/web/src/serverlist/ServerList.tsx - Server editor
src/web/src/serverlist/ServerSheet.tsx - Launch controls
src/web/src/client/LaunchClient.tsx - Mod management
src/web/src/mods/ModsSheet.tsx - Settings panel
src/web/src/SettingsSheet.tsx
Client management
- Client downloader
src/app/download-client.ts - Checks and launch
src/app/launch-client.ts - Mod services
src/app/mods.ts
Launcher configuration
- Server services
src/app/server-list.ts - Config persistence
src/app/config.ts - App events
src/app/events.ts
Other components
- Launcher user
- Game installation
- Game process
- Client sources
- Mod file hosts
- Discord community
Connections 33
- Launcher user → Launcher home: uses
- Electron entry → App initialization: initializes
- Electron entry → Preload bridge: loads
- Renderer entry → Launcher home: renders
- Launcher home → Shared UI state: reads state
- Launcher home → Install controls: presents
- Launcher home → Server management: presents
- Launcher home → Mod management: presents
- Launcher home → Settings panel: presents
- Launcher home → Discord community: embeds
- Install controls → Preload bridge: requests install
- Preload bridge → Client downloader: dispatches IPC
- Client downloader → Client sources: downloads from
- Client downloader → Game installation: writes client files
- Client downloader → Download progress: sends progress
- Server management → Server editor: opens editor
- Server editor → Preload bridge: saves server
- Preload bridge → Server services: dispatches IPC
- Server services → Config persistence: updates
- Launch controls → Preload bridge: requests launch
- Preload bridge → Checks and launch: dispatches IPC
- Checks and launch → Config persistence: reads settings
- Checks and launch → Game installation: checks and patches
- Checks and launch → Game process: spawns
- Mod management → Preload bridge: manages mods
- Preload bridge → Mod services: dispatches IPC
- Mod services → Mod file hosts: fetches mod files
- Mod services → Game installation: updates mod files
- Settings panel → Preload bridge: updates settings
- Preload bridge → App events: dispatches IPC
- App events → Config persistence: persists settings
- App initialization → Config persistence: initializes
- Electron entry → Config persistence: saves on quit