# retrivedmods/wclient architecture

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

- Interactive diagram: https://gitdiagram.com/retrivedmods/wclient
- Repository: https://github.com/retrivedmods/wclient

## Overview

WClient is an Android Minecraft Bedrock utility client: users configure accounts, realms, and module settings, then run a game session with packet-level enhancements and overlays. Its runtime includes a WRelay forwarding layer and bundled Bedrock/RakNet networking and protocol code. The README documents combat, motion, visual, and miscellaneous modules; the source index confirms module registration and several service relationships. Unsampled UI and relay internals are represented at directory level, and uncertain connections are omitted.

Main entry points: [`app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt`](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt) (Relay Service), [`relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt`](https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt) (Connection Manager), [`app/src/main/java/com/retrivedmods/wclient/router/main`](https://github.com/retrivedmods/wclient/tree/main/app/src/main/java/com/retrivedmods/wclient/router/main) (App Screens), [`relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt`](https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt) (Relay Session)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_android["Android App"]
  node_app["App Context<br/>[AppContext.kt]"]
  node_screens["App Screens"]
  node_accounts["Accounts<br/>[AccountManager.kt]"]
  node_realms["Realms<br/>[RealmsManager.kt]"]
  node_service["Relay Service<br/>[RelayService.kt]"]
  node_overlays["Overlay UI<br/>[OverlayManager.kt]"]
end

subgraph group_game["Game Features"]
  node_modules["Gameplay Modules"]
  node_modulemgr["Module Manager<br/>[ModuleManager.kt]"]
  node_commands["Commands<br/>[CommandManager.kt]"]
  node_session["Game Session<br/>[GameSession.kt]"]
end

subgraph group_relay["Relay Runtime"]
  node_wrelay["WRelay<br/>[WRelay.kt]"]
  node_connections["Connection Manager"]
  node_relay_session["Relay Session<br/>[WRelaySession.kt]"]
  node_packet_handlers["Packet Listeners"]
end

subgraph group_protocol["Bedrock Protocol"]
  node_bedrock["Bedrock Protocol"]
  node_peer["Bedrock Peer<br/>[BedrockPeer.java]"]
end

subgraph group_transport["Network Transport"]
  node_raknet["RakNet Transport"]
  node_query["Query Protocol"]
end

node_user(("Player"))

node_user -.->|"uses"| node_screens
node_screens -.->|"manages"| node_accounts
node_screens -.->|"manages"| node_realms
node_user -.->|"configures"| node_modules
node_service -->|"reads context"| node_app
node_service -->|"loads config"| node_modulemgr
node_service -->|"shows"| node_overlays
node_service -.->|"starts relay"| node_wrelay
node_modulemgr -->|"registers"| node_modules
node_overlays -->|"reads modules"| node_modulemgr
node_wrelay -.->|"uses"| node_connections
node_connections -->|"creates"| node_relay_session
node_relay_session -->|"dispatches"| node_packet_handlers
node_relay_session -->|"cleans up"| node_connections
node_connections -->|"connects"| node_peer
node_peer -.->|"handles packets"| node_bedrock
node_peer -.->|"uses transport"| node_raknet
node_user -.->|"starts session"| node_service

click node_app "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/application/AppContext.kt"
click node_screens "https://github.com/retrivedmods/wclient/tree/main/app/src/main/java/com/retrivedmods/wclient/router/main"
click node_accounts "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/AccountManager.kt"
click node_realms "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/service/RealmsManager.kt"
click node_service "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt"
click node_overlays "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/overlay/OverlayManager.kt"
click node_modules "https://github.com/retrivedmods/wclient/tree/main/app/src/main/java/com/retrivedmods/wclient/game/module"
click node_modulemgr "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/ModuleManager.kt"
click node_commands "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/command/manager/CommandManager.kt"
click node_session "https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/GameSession.kt"
click node_wrelay "https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/WRelay.kt"
click node_connections "https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt"
click node_relay_session "https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt"
click node_packet_handlers "https://github.com/retrivedmods/wclient/tree/main/relay/src/main/kotlin/com/retrivedmods/wrelay/listener"
click node_bedrock "https://github.com/retrivedmods/wclient/blob/main/relay/Protocol/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/BedrockPacketHandler.java"
click node_peer "https://github.com/retrivedmods/wclient/blob/main/relay/Protocol/bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockPeer.java"
click node_raknet "https://github.com/retrivedmods/wclient/tree/main/relay/Network/transport-raknet/src/main/java/org/cloudburstmc/netty/channel/raknet"
click node_query "https://github.com/retrivedmods/wclient/blob/main/relay/Network/codec-query/src/main/java/org/cloudburstmc/netty/handler/codec/query/handler/QueryPacketHandler.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_app,node_screens,node_accounts,node_realms,node_service,node_overlays toneBlue
class node_modules,node_modulemgr,node_commands,node_session toneAmber
class node_wrelay,node_connections,node_relay_session,node_packet_handlers toneMint
class node_bedrock,node_peer toneRose
class node_raknet,node_query,node_user toneIndigo
```

## Components

### Android App

- [App Context](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/application/AppContext.kt): `app/src/main/java/com/retrivedmods/wclient/application/AppContext.kt`
- [App Screens](https://github.com/retrivedmods/wclient/tree/main/app/src/main/java/com/retrivedmods/wclient/router/main): `app/src/main/java/com/retrivedmods/wclient/router/main`
- [Accounts](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/AccountManager.kt): `app/src/main/java/com/retrivedmods/wclient/game/AccountManager.kt`
- [Realms](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/service/RealmsManager.kt): `app/src/main/java/com/retrivedmods/wclient/service/RealmsManager.kt`
- [Relay Service](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt): `app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt`
- [Overlay UI](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/overlay/OverlayManager.kt): `app/src/main/java/com/retrivedmods/wclient/overlay/OverlayManager.kt`

### Game Features

- [Gameplay Modules](https://github.com/retrivedmods/wclient/tree/main/app/src/main/java/com/retrivedmods/wclient/game/module): `app/src/main/java/com/retrivedmods/wclient/game/module`
- [Module Manager](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/ModuleManager.kt): `app/src/main/java/com/retrivedmods/wclient/game/ModuleManager.kt`
- [Commands](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/command/manager/CommandManager.kt): `app/src/main/java/com/retrivedmods/wclient/game/command/manager/CommandManager.kt`
- [Game Session](https://github.com/retrivedmods/wclient/blob/main/app/src/main/java/com/retrivedmods/wclient/game/GameSession.kt): `app/src/main/java/com/retrivedmods/wclient/game/GameSession.kt`

### Relay Runtime

- [WRelay](https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/WRelay.kt): `relay/src/main/kotlin/com/retrivedmods/wrelay/WRelay.kt`
- [Connection Manager](https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt): `relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt`
- [Relay Session](https://github.com/retrivedmods/wclient/blob/main/relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt): `relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt`
- [Packet Listeners](https://github.com/retrivedmods/wclient/tree/main/relay/src/main/kotlin/com/retrivedmods/wrelay/listener): `relay/src/main/kotlin/com/retrivedmods/wrelay/listener`

### Bedrock Protocol

- [Bedrock Protocol](https://github.com/retrivedmods/wclient/blob/main/relay/Protocol/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/BedrockPacketHandler.java): `relay/Protocol/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/BedrockPacketHandler.java`
- [Bedrock Peer](https://github.com/retrivedmods/wclient/blob/main/relay/Protocol/bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockPeer.java): `relay/Protocol/bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockPeer.java`

### Network Transport

- [RakNet Transport](https://github.com/retrivedmods/wclient/tree/main/relay/Network/transport-raknet/src/main/java/org/cloudburstmc/netty/channel/raknet): `relay/Network/transport-raknet/src/main/java/org/cloudburstmc/netty/channel/raknet`
- [Query Protocol](https://github.com/retrivedmods/wclient/blob/main/relay/Network/codec-query/src/main/java/org/cloudburstmc/netty/handler/codec/query/handler/QueryPacketHandler.java): `relay/Network/codec-query/src/main/java/org/cloudburstmc/netty/handler/codec/query/handler/QueryPacketHandler.java`

### Other components

- **Player**

## Connections

- Player → App Screens: uses
- App Screens → Accounts: manages
- App Screens → Realms: manages
- Player → Gameplay Modules: configures
- Relay Service → App Context: reads context (evidence: `app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt`)
- Relay Service → Module Manager: loads config (evidence: `app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt`)
- Relay Service → Overlay UI: shows (evidence: `app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt`)
- Relay Service → WRelay: starts relay (evidence: `app/src/main/java/com/retrivedmods/wclient/service/RelayService.kt`)
- Module Manager → Gameplay Modules: registers (evidence: `app/src/main/java/com/retrivedmods/wclient/game/ModuleManager.kt`)
- Overlay UI → Module Manager: reads modules (evidence: `app/src/main/java/com/retrivedmods/wclient/overlay/OverlayManager.kt`)
- WRelay → Connection Manager: uses
- Connection Manager → Relay Session: creates (evidence: `relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt`)
- Relay Session → Packet Listeners: dispatches (evidence: `relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt`)
- Relay Session → Connection Manager: cleans up (evidence: `relay/src/main/kotlin/com/retrivedmods/wrelay/WRelaySession.kt`)
- Connection Manager → Bedrock Peer: connects (evidence: `relay/src/main/kotlin/com/retrivedmods/wrelay/connection/ConnectionManager.kt`)
- Bedrock Peer → Bedrock Protocol: handles packets
- Bedrock Peer → RakNet Transport: uses transport (evidence: `relay/Protocol/bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockPeer.java`)
- Player → Relay Service: starts session
