# root-s7/foldcraftlauncher architecture

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

- Interactive diagram: https://gitdiagram.com/root-s7/foldcraftlauncher
- Repository: https://github.com/root-s7/foldcraftlauncher

## Overview

Fold Craft Launcher is an Android Minecraft launcher, with this branch focused on distributing ready-to-install modpacks. Its core workflow is choosing/installing game resources and launching a configured Minecraft version. The repository also includes account sign-in, version and mod management, custom touch/gamepad controls, launcher customization, and Terracotta multiplayer. The tree and README establish these capabilities; sampled source confirms selected behavior, but many subsystem links are omitted where their call wiring was not sampled.

Main entry points: [`FCL/src/main/java/com/tungsten/fcl/game/FCLGameLauncher.java`](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/game/FCLGameLauncher.java) (Game launcher), [`FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt`](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt) (Launcher home), [`FCL/src/main/java/com/tungsten/fcl/ui/account/AccountUI.java`](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/account/AccountUI.java) (Account screens), [`FCL/src/main/java/com/tungsten/fcl/ui/version/VersionUI.java`](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/version/VersionUI.java) (Versions and profiles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Launcher app"]
  node_main["Launcher home<br/>[MainActivity.kt]"]
  node_versions["Versions and profiles<br/>[VersionUI.java]"]
end

subgraph group_install["Install and manage"]
  node_downloads["Downloads<br/>[DownloadUI.java]"]
  node_modpacks["Modpack install"]
  node_game_repo["Game repository"]
  node_manage["Installed content<br/>[ManageUI.java]"]
  node_favorites["Download favorites<br/>[FavoriteManager.kt]"]
  node_favorite_db[("Favorites database")]
end

subgraph group_launch["Game runtime"]
  node_launcher["Game launcher"]
  node_runtime["JVM activity<br/>[JVMActivity.java]"]
  node_java["Java runtimes<br/>[JavaManager.kt]"]
  node_renderer["Renderer plugins<br/>[RendererManager.kt]"]
end

subgraph group_accounts["Accounts and play"]
  node_accounts_ui["Account screens<br/>[AccountUI.java]"]
  node_microsoft["Microsoft auth"]
  node_yggdrasil["Yggdrasil auth"]
  node_terracotta["Terracotta multiplayer<br/>[Terracotta.java]"]
  node_vpn["Terracotta VPN"]
end

subgraph group_customize["Customization"]
  node_controls["Touch controls<br/>[ViewManager.java]"]
  node_controller_repo["Controller library"]
  node_theme["Theme engine<br/>[ThemeEngine.kt]"]
  node_settings["Launcher settings<br/>[Settings.java]"]
end

node_user(("Player"))
node_game_services{{"Minecraft services"}}

node_user -->|"opens"| node_main
node_main -->|"selects version"| node_versions
node_versions -->|"opens downloads"| node_downloads
node_downloads -->|"installs pack"| node_modpacks
node_modpacks -->|"installs resources"| node_game_repo
node_main -->|"starts game"| node_launcher
node_launcher -->|"uses game files"| node_game_repo
node_launcher -->|"starts runtime"| node_runtime
node_launcher -->|"selects Java"| node_java
node_launcher -->|"selects renderer"| node_renderer
node_user -->|"manages account"| node_accounts_ui
node_accounts_ui -->|"authenticates"| node_microsoft
node_accounts_ui -->|"authenticates"| node_yggdrasil
node_microsoft -.->|"requests profile"| node_game_services
node_yggdrasil -.->|"provider requests"| node_game_services
node_user -->|"manages content"| node_manage
node_user -->|"organizes downloads"| node_favorites
node_favorites -->|"stores favorites"| node_favorite_db
node_user -->|"gets controls"| node_controller_repo
node_user -->|"configures input"| node_controls
node_user -->|"customizes appearance"| node_theme
node_user -->|"configures launcher"| node_settings
node_user -->|"starts multiplayer"| node_terracotta
node_terracotta -->|"requests VPN service"| node_vpn

click node_main "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt"
click node_versions "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/version/VersionUI.java"
click node_downloads "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/download/DownloadUI.java"
click node_modpacks "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/download/modpack/ModpackInstaller.java"
click node_game_repo "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/game/FCLGameRepository.java"
click node_manage "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/manage/ManageUI.java"
click node_favorites "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/data/FavoriteManager.kt"
click node_favorite_db "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/data/favorite/FavoriteDatabase.kt"
click node_accounts_ui "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/account/AccountUI.java"
click node_microsoft "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fclcore/auth/microsoft/MicrosoftService.java"
click node_yggdrasil "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fclcore/auth/yggdrasil/YggdrasilService.java"
click node_launcher "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/game/FCLGameLauncher.java"
click node_runtime "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java"
click node_java "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/manager/JavaManager.kt"
click node_renderer "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/manager/RendererManager.kt"
click node_controls "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/control/view/ViewManager.java"
click node_controller_repo "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/controller/ControllerRepoPage.java"
click node_theme "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcllibrary/component/theme/ThemeEngine.kt"
click node_settings "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/setting/Settings.java"
click node_terracotta "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/terracotta/Terracotta.java"
click node_vpn "https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/terracotta/TerracottaVPNService.java"

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_main,node_versions toneBlue
class node_downloads,node_modpacks,node_game_repo,node_manage,node_favorites,node_favorite_db toneAmber
class node_launcher,node_runtime,node_java,node_renderer toneMint
class node_accounts_ui,node_microsoft,node_yggdrasil,node_terracotta,node_vpn toneRose
class node_controls,node_controller_repo,node_theme,node_settings,node_user,node_game_services toneIndigo
```

## Components

### Launcher app

- [Launcher home](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt): `FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt`
- [Versions and profiles](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/version/VersionUI.java): `FCL/src/main/java/com/tungsten/fcl/ui/version/VersionUI.java`

### Install and manage

- [Downloads](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/download/DownloadUI.java): `FCL/src/main/java/com/tungsten/fcl/ui/download/DownloadUI.java`
- [Modpack install](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/download/modpack/ModpackInstaller.java): `FCL/src/main/java/com/tungsten/fcl/ui/download/modpack/ModpackInstaller.java`
- [Game repository](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/game/FCLGameRepository.java): `FCL/src/main/java/com/tungsten/fcl/game/FCLGameRepository.java`
- [Installed content](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/manage/ManageUI.java): `FCL/src/main/java/com/tungsten/fcl/ui/manage/ManageUI.java`
- [Download favorites](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/data/FavoriteManager.kt): `FCL/src/main/java/com/mio/data/FavoriteManager.kt`
- [Favorites database](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/data/favorite/FavoriteDatabase.kt): `FCL/src/main/java/com/mio/data/favorite/FavoriteDatabase.kt`

### Game runtime

- [Game launcher](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/game/FCLGameLauncher.java): `FCL/src/main/java/com/tungsten/fcl/game/FCLGameLauncher.java`
- [JVM activity](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java): `FCL/src/main/java/com/tungsten/fcl/activity/JVMActivity.java`
- [Java runtimes](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/manager/JavaManager.kt): `FCL/src/main/java/com/mio/manager/JavaManager.kt`
- [Renderer plugins](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/mio/manager/RendererManager.kt): `FCL/src/main/java/com/mio/manager/RendererManager.kt`

### Accounts and play

- [Account screens](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/account/AccountUI.java): `FCL/src/main/java/com/tungsten/fcl/ui/account/AccountUI.java`
- [Microsoft auth](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fclcore/auth/microsoft/MicrosoftService.java): `FCL/src/main/java/com/tungsten/fclcore/auth/microsoft/MicrosoftService.java`
- [Yggdrasil auth](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fclcore/auth/yggdrasil/YggdrasilService.java): `FCL/src/main/java/com/tungsten/fclcore/auth/yggdrasil/YggdrasilService.java`
- [Terracotta multiplayer](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/terracotta/Terracotta.java): `FCL/src/main/java/com/tungsten/fcl/terracotta/Terracotta.java`
- [Terracotta VPN](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/terracotta/TerracottaVPNService.java): `FCL/src/main/java/com/tungsten/fcl/terracotta/TerracottaVPNService.java`

### Customization

- [Touch controls](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/control/view/ViewManager.java): `FCL/src/main/java/com/tungsten/fcl/control/view/ViewManager.java`
- [Controller library](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/ui/controller/ControllerRepoPage.java): `FCL/src/main/java/com/tungsten/fcl/ui/controller/ControllerRepoPage.java`
- [Theme engine](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcllibrary/component/theme/ThemeEngine.kt): `FCL/src/main/java/com/tungsten/fcllibrary/component/theme/ThemeEngine.kt`
- [Launcher settings](https://github.com/root-s7/foldcraftlauncher/blob/main/FCL/src/main/java/com/tungsten/fcl/setting/Settings.java): `FCL/src/main/java/com/tungsten/fcl/setting/Settings.java`

### Other components

- **Player**
- **Minecraft services**

## Connections

- Player → Launcher home: opens
- Launcher home → Versions and profiles: selects version
- Versions and profiles → Downloads: opens downloads
- Downloads → Modpack install: installs pack
- Modpack install → Game repository: installs resources
- Launcher home → Game launcher: starts game
- Game launcher → Game repository: uses game files
- Game launcher → JVM activity: starts runtime
- Game launcher → Java runtimes: selects Java
- Game launcher → Renderer plugins: selects renderer
- Player → Account screens: manages account
- Account screens → Microsoft auth: authenticates
- Account screens → Yggdrasil auth: authenticates
- Microsoft auth → Minecraft services: requests profile
- Yggdrasil auth → Minecraft services: provider requests
- Player → Installed content: manages content
- Player → Download favorites: organizes downloads
- Download favorites → Favorites database: stores favorites
- Player → Controller library: gets controls
- Player → Touch controls: configures input
- Player → Theme engine: customizes appearance
- Player → Launcher settings: configures launcher
- Player → Terracotta multiplayer: starts multiplayer
- Terracotta multiplayer → Terracotta VPN: requests VPN service
