# clareow/external_pubg architecture

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

- Interactive diagram: https://gitdiagram.com/clareow/external_pubg
- Repository: https://github.com/clareow/external_pubg

## Overview

This is an external PUBG memory-reading and aiming/overlay tool, described only as an educational project. Its visible workflow reads game state through a Windows device-I/O driver, resolves encrypted pointers and actor data, transforms camera and bone coordinates, then draws skeleton lines or sends mouse movement. The README documents no broader feature set, and Main.cpp is unsampled, so its orchestration and any additional UI or actor-selection stages cannot be confirmed; edges below follow only visible calls.

Main entry points: [`SDK.h`](https://github.com/clareow/external_pubg/blob/main/SDK.h) (State and rendering SDK), [`driver.h`](https://github.com/clareow/external_pubg/blob/main/driver.h) (Memory I/O API), [`Aimbot.h`](https://github.com/clareow/external_pubg/blob/main/Aimbot.h) (Mouse aiming), [`GNames.h`](https://github.com/clareow/external_pubg/blob/main/GNames.h) (Name lookup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_memory["Game memory access"]
  node_driver_client["Driver client<br/>[driver.cpp]"]
  node_driver_api["Memory I/O API<br/>[driver.h]"]
end

subgraph group_state["Game state decoding"]
  node_sdk["State and rendering SDK<br/>[SDK.h]"]
  node_names["Name lookup<br/>[GNames.h]"]
  node_offsets["Game offsets<br/>[Address.h]"]
  node_decrypt["Pointer decryption<br/>[XeDecrypt.h]"]
end

subgraph group_presentation["Aim and overlay"]
  node_geometry["3D projection<br/>[Vector.h]"]
  node_aim["Mouse aiming<br/>[Aimbot.h]"]
  node_display["Direct3D output<br/>[SDK.h]"]
end

node_user(("Operator"))
node_pubg["PUBG process"]
node_device["NMH1313 device"]
node_input["Windows input"]

node_driver_client -->|"opens device"| node_device
node_driver_api -->|"issues I/O"| node_device
node_device -->|"reads process memory"| node_pubg
node_sdk -->|"reads game state"| node_driver_api
node_sdk -->|"decrypts pointers"| node_decrypt
node_sdk -->|"projects world positions"| node_geometry
node_sdk -->|"draws skeleton lines"| node_display
node_sdk -->|"reads bone and camera data"| node_driver_api
node_names -->|"reads name table"| node_driver_api
node_names -->|"decrypts name pointers"| node_decrypt
node_sdk -.->|"not shown"| node_aim
node_aim -->|"sends mouse movement"| node_input
node_user -.->|"initiates"| node_aim

click node_driver_client "https://github.com/clareow/external_pubg/blob/main/driver.cpp"
click node_driver_api "https://github.com/clareow/external_pubg/blob/main/driver.h"
click node_sdk "https://github.com/clareow/external_pubg/blob/main/SDK.h"
click node_names "https://github.com/clareow/external_pubg/blob/main/GNames.h"
click node_offsets "https://github.com/clareow/external_pubg/blob/main/Address.h"
click node_decrypt "https://github.com/clareow/external_pubg/blob/main/XeDecrypt.h"
click node_geometry "https://github.com/clareow/external_pubg/blob/main/Vector.h"
click node_aim "https://github.com/clareow/external_pubg/blob/main/Aimbot.h"
click node_display "https://github.com/clareow/external_pubg/blob/main/SDK.h"

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_driver_client,node_driver_api toneBlue
class node_sdk,node_names,node_offsets,node_decrypt toneAmber
class node_geometry,node_aim,node_display toneMint
class node_user,node_pubg,node_device,node_input toneIndigo
```

## Components

### Game memory access

- [Driver client](https://github.com/clareow/external_pubg/blob/main/driver.cpp): `driver.cpp`
- [Memory I/O API](https://github.com/clareow/external_pubg/blob/main/driver.h): `driver.h`

### Game state decoding

- [State and rendering SDK](https://github.com/clareow/external_pubg/blob/main/SDK.h): `SDK.h`
- [Name lookup](https://github.com/clareow/external_pubg/blob/main/GNames.h): `GNames.h`
- [Game offsets](https://github.com/clareow/external_pubg/blob/main/Address.h): `Address.h`
- [Pointer decryption](https://github.com/clareow/external_pubg/blob/main/XeDecrypt.h): `XeDecrypt.h`

### Aim and overlay

- [3D projection](https://github.com/clareow/external_pubg/blob/main/Vector.h): `Vector.h`
- [Mouse aiming](https://github.com/clareow/external_pubg/blob/main/Aimbot.h): `Aimbot.h`
- [Direct3D output](https://github.com/clareow/external_pubg/blob/main/SDK.h): `SDK.h`

### Other components

- **Operator**
- **PUBG process**
- **NMH1313 device**
- **Windows input**

## Connections

- Driver client → NMH1313 device: opens device
- Memory I/O API → NMH1313 device: issues I/O
- NMH1313 device → PUBG process: reads process memory
- State and rendering SDK → Memory I/O API: reads game state
- State and rendering SDK → Pointer decryption: decrypts pointers
- State and rendering SDK → 3D projection: projects world positions
- State and rendering SDK → Direct3D output: draws skeleton lines
- State and rendering SDK → Memory I/O API: reads bone and camera data
- Name lookup → Memory I/O API: reads name table
- Name lookup → Pointer decryption: decrypts name pointers
- State and rendering SDK → Mouse aiming: not shown
- Mouse aiming → Windows input: sends mouse movement
- Operator → Mouse aiming: initiates
