# tggamesyt/redstone-launcher architecture

> Architecture diagram of the GitHub repository tggamesyt/redstone-launcher, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tggamesyt/redstone-launcher
- Repository: https://github.com/tggamesyt/redstone-launcher

## Overview

Redstone Launcher is an Electron Minecraft launcher. Its user-facing workflow is launching Minecraft, with adjacent capabilities for managing instances, mods, server processes, files, and visual customization; it also includes an e4mc hosting path. The excerpts support several internal calls and the sidecar’s relay-host role, but do not expose the main-process IPC wiring, so UI-to-backend relationships are omitted. Unread modules are represented by their exact paths, without asserting unverified calls.

Main entry points: [`frontend/three.module.js`](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/three.module.js) (Three.js), [`backend/launcher-worker.js`](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/launcher-worker.js) (Game launch worker), [`backend/remod-worker.js`](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/remod-worker.js) (Mod archive worker), [`backend/serverManager.js`](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/serverManager.js) (Server processes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Launcher interface"]
  node_launcher["Launcher app<br/>[main.js]"]
  node_home["Home and instances<br/>[home.js]"]
  node_onboarding["Onboarding<br/>[onboarding.js]"]
  node_filebrowser["File browser<br/>[filebrowser.js]"]
  node_filemanager["File access<br/>[fileManager.js]"]
end

subgraph group_launch["Minecraft launch"]
  node_newinstance["Instance creation<br/>[newinstance.js]"]
  node_loader["Loader versions<br/>[loader-versions.js]"]
  node_launchworker["Game launch worker<br/>[launcher-worker.js]"]
  node_modpack["Modpack install<br/>[modpack-install.js]"]
  node_modeditor["Mod metadata editor<br/>[remod.js]"]
  node_modworker["Mod archive worker<br/>[remod-worker.js]"]
end

subgraph group_servers["Server management"]
  node_serverui["Server interface<br/>[eventservers.js]"]
  node_servermanager["Server processes<br/>[serverManager.js]"]
  node_rcon["RCON control<br/>[rcon.js]"]
  node_join["Server join<br/>[join.js]"]
end

subgraph group_customize["Customization"]
  node_iconpicker["Icon picker<br/>[iconpicker.js]"]
  node_modelrender["Block and item rendering<br/>[blockrender.js]"]
  node_three["Three.js<br/>[three.module.js]"]
  node_skinmodels["Skin and entity models<br/>[skin-model.js]"]
end

subgraph group_sharing["World sharing"]
  node_e4mc["e4mc host integration<br/>[e4mc.js]"]
  node_quiclime["QUIC host sidecar<br/>[main.rs]"]
  node_relay["Relay server<br/>[relay.js]"]
end

node_user(("Player"))

node_user -->|"uses"| node_launcher
node_launchworker -->|"resolves config"| node_loader
node_servermanager -->|"uses RCON"| node_rcon
node_modworker -->|"calls unpack/repack"| node_modeditor
node_modelrender -->|"renders with"| node_three
node_iconpicker -->|"renders models with"| node_three
node_quiclime -.->|"dials relay"| node_relay

click node_launcher "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/main.js"
click node_home "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/home.js"
click node_onboarding "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/onboarding.js"
click node_filebrowser "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/filebrowser.js"
click node_filemanager "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/fileManager.js"
click node_newinstance "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/newinstance.js"
click node_loader "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/loader-versions.js"
click node_launchworker "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/launcher-worker.js"
click node_modpack "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/modpack-install.js"
click node_modeditor "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/remod.js"
click node_modworker "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/remod-worker.js"
click node_serverui "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/eventservers.js"
click node_servermanager "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/serverManager.js"
click node_rcon "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/rcon.js"
click node_join "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/join.js"
click node_iconpicker "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/iconpicker.js"
click node_modelrender "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/blockrender.js"
click node_three "https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/three.module.js"
click node_skinmodels "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/skin-model.js"
click node_e4mc "https://github.com/tggamesyt/redstone-launcher/blob/main/backend/e4mc.js"
click node_quiclime "https://github.com/tggamesyt/redstone-launcher/blob/main/sidecar/quiclime/src/main.rs"
click node_relay "https://github.com/tggamesyt/redstone-launcher/blob/main/relay-server/relay.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_launcher,node_home,node_onboarding,node_filebrowser,node_filemanager toneBlue
class node_newinstance,node_loader,node_launchworker,node_modpack,node_modeditor,node_modworker toneAmber
class node_serverui,node_servermanager,node_rcon,node_join toneMint
class node_iconpicker,node_modelrender,node_three,node_skinmodels toneRose
class node_e4mc,node_quiclime,node_relay,node_user toneIndigo
```

## Components

### Launcher interface

- [Launcher app](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/main.js): `backend/main.js`
- [Home and instances](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/home.js): `frontend/home.js`
- [Onboarding](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/onboarding.js): `frontend/onboarding.js`
- [File browser](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/filebrowser.js): `frontend/filebrowser.js`
- [File access](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/fileManager.js): `backend/fileManager.js`

### Minecraft launch

- [Instance creation](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/newinstance.js): `frontend/newinstance.js`
- [Loader versions](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/loader-versions.js): `backend/loader-versions.js`
- [Game launch worker](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/launcher-worker.js): `backend/launcher-worker.js`
- [Modpack install](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/modpack-install.js): `frontend/modpack-install.js`
- [Mod metadata editor](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/remod.js): `backend/remod.js`
- [Mod archive worker](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/remod-worker.js): `backend/remod-worker.js`

### Server management

- [Server interface](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/eventservers.js): `frontend/eventservers.js`
- [Server processes](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/serverManager.js): `backend/serverManager.js`
- [RCON control](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/rcon.js): `backend/rcon.js`
- [Server join](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/join.js): `frontend/join.js`

### Customization

- [Icon picker](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/iconpicker.js): `frontend/iconpicker.js`
- [Block and item rendering](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/blockrender.js): `frontend/blockrender.js`
- [Three.js](https://github.com/tggamesyt/redstone-launcher/blob/main/frontend/three.module.js): `frontend/three.module.js`
- [Skin and entity models](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/skin-model.js): `backend/skin-model.js`

### World sharing

- [e4mc host integration](https://github.com/tggamesyt/redstone-launcher/blob/main/backend/e4mc.js): `backend/e4mc.js`
- [QUIC host sidecar](https://github.com/tggamesyt/redstone-launcher/blob/main/sidecar/quiclime/src/main.rs): `sidecar/quiclime/src/main.rs`
- [Relay server](https://github.com/tggamesyt/redstone-launcher/blob/main/relay-server/relay.js): `relay-server/relay.js`

### Other components

- **Player**

## Connections

- Player → Launcher app: uses
- Game launch worker → Loader versions: resolves config (evidence: `backend/launcher-worker.js`)
- Server processes → RCON control: uses RCON (evidence: `backend/serverManager.js`)
- Mod archive worker → Mod metadata editor: calls unpack/repack (evidence: `backend/remod-worker.js`)
- Block and item rendering → Three.js: renders with (evidence: `frontend/blockrender.js`)
- Icon picker → Three.js: renders models with (evidence: `frontend/iconpicker.js`)
- QUIC host sidecar → Relay server: dials relay (evidence: `sidecar/quiclime/src/main.rs`)
