# acf-team/acf-3 architecture

> Architecture diagram of the GitHub repository acf-team/acf-3, 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/acf-team/acf-3
- Repository: https://github.com/acf-team/acf-3
- Video tour (about a minute): https://gitdiagram.com/acf-team/acf-3/video

## Overview

ACF is a Garry’s Mod addon for building armored combat contraptions and simulating damage. The principal workflow is that a player uses ACF’s menu to select vehicle components and ammunition, builds a contraption, and engages in combat where ballistics and armor affect damage. The tree identifies the relevant modules, but no source excerpts were available, so internal call ownership and detailed runtime wiring cannot be confirmed; edges reflect only the documented product workflow and capabilities.

Main entry points: [`lua/acf/menu`](https://github.com/acf-team/acf-3/tree/master/lua/acf/menu) (Build Menu), [`lua/acf/ballistics`](https://github.com/acf-team/acf-3/tree/master/lua/acf/ballistics) (Ballistics), [`lua/acf/contraption`](https://github.com/acf-team/acf-3/tree/master/lua/acf/contraption) (Contraptions), [`lua/acf/entities/guns`](https://github.com/acf-team/acf-3/tree/master/lua/acf/entities/guns) (Guns and Missiles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_building["Building and Configuration"]
  node_menu["Build Menu"]
  node_components["Vehicle Components"]
  node_weapons["Guns and Missiles"]
  node_ammo["Ammo Types"]
  node_contraption["Contraptions"]
end

subgraph group_simulation["Combat Simulation"]
  node_ballistics["Ballistics"]
  node_damage["Damage System"]
  node_armor["Armor Hitboxes<br/>[hitboxes.lua]"]
  node_combat["Combat Rules"]
  node_missiles["Missile Systems"]
end

subgraph group_runtime["Runtime Foundation"]
  node_core["Core Services"]
  node_entities["Entity Integration"]
  node_networking["Networking"]
end

subgraph group_content["Saved Content"]
  node_dupes["Public Duplicates"]
end

node_player(("Player"))

node_player -->|"configures"| node_menu
node_menu -->|"selects"| node_components
node_menu -->|"selects"| node_weapons
node_menu -->|"selects"| node_ammo
node_player -->|"builds"| node_contraption
node_contraption -->|"uses"| node_components
node_contraption -->|"uses"| node_weapons
node_weapons -->|"fires"| node_ammo
node_ammo -->|"defines performance"| node_ballistics
node_ballistics -->|"tests penetration"| node_armor
node_ballistics -->|"applies effects"| node_damage
node_damage -->|"subject to rules"| node_combat
node_missiles -->|"models threats"| node_ballistics
node_dupes -.->|"provides builds"| node_player
node_core -->|"supports"| node_entities
node_networking -->|"supports interaction"| node_menu

click node_menu "https://github.com/acf-team/acf-3/tree/master/lua/acf/menu"
click node_components "https://github.com/acf-team/acf-3/tree/master/lua/acf/entities"
click node_weapons "https://github.com/acf-team/acf-3/tree/master/lua/acf/entities/guns"
click node_ammo "https://github.com/acf-team/acf-3/tree/master/lua/acf/entities/ammo_types"
click node_contraption "https://github.com/acf-team/acf-3/tree/master/lua/acf/contraption"
click node_ballistics "https://github.com/acf-team/acf-3/tree/master/lua/acf/ballistics"
click node_damage "https://github.com/acf-team/acf-3/tree/master/lua/acf/damage"
click node_armor "https://github.com/acf-team/acf-3/blob/master/lua/acf/ballistics/hitboxes.lua"
click node_combat "https://github.com/acf-team/acf-3/tree/master/lua/acf/combat"
click node_missiles "https://github.com/acf-team/acf-3/tree/master/lua/acf/missiles"
click node_core "https://github.com/acf-team/acf-3/tree/master/lua/acf/core"
click node_entities "https://github.com/acf-team/acf-3/tree/master/lua/entities"
click node_networking "https://github.com/acf-team/acf-3/tree/master/lua/acf/core/networking"
click node_dupes "https://github.com/acf-team/acf-3/tree/master/data_static/acf_public_dupes"

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_menu,node_components,node_weapons,node_ammo,node_contraption toneBlue
class node_ballistics,node_damage,node_armor,node_combat,node_missiles toneAmber
class node_core,node_entities,node_networking toneMint
class node_dupes toneRose
class node_player toneIndigo
```

## Components

### Building and Configuration

- [Build Menu](https://github.com/acf-team/acf-3/tree/master/lua/acf/menu): `lua/acf/menu`
- [Vehicle Components](https://github.com/acf-team/acf-3/tree/master/lua/acf/entities): `lua/acf/entities`
- [Guns and Missiles](https://github.com/acf-team/acf-3/tree/master/lua/acf/entities/guns): `lua/acf/entities/guns`
- [Ammo Types](https://github.com/acf-team/acf-3/tree/master/lua/acf/entities/ammo_types): `lua/acf/entities/ammo_types`
- [Contraptions](https://github.com/acf-team/acf-3/tree/master/lua/acf/contraption): `lua/acf/contraption`

### Combat Simulation

- [Ballistics](https://github.com/acf-team/acf-3/tree/master/lua/acf/ballistics): `lua/acf/ballistics`
- [Damage System](https://github.com/acf-team/acf-3/tree/master/lua/acf/damage): `lua/acf/damage`
- [Armor Hitboxes](https://github.com/acf-team/acf-3/blob/master/lua/acf/ballistics/hitboxes.lua): `lua/acf/ballistics/hitboxes.lua`
- [Combat Rules](https://github.com/acf-team/acf-3/tree/master/lua/acf/combat): `lua/acf/combat`
- [Missile Systems](https://github.com/acf-team/acf-3/tree/master/lua/acf/missiles): `lua/acf/missiles`

### Runtime Foundation

- [Core Services](https://github.com/acf-team/acf-3/tree/master/lua/acf/core): `lua/acf/core`
- [Entity Integration](https://github.com/acf-team/acf-3/tree/master/lua/entities): `lua/entities`
- [Networking](https://github.com/acf-team/acf-3/tree/master/lua/acf/core/networking): `lua/acf/core/networking`

### Saved Content

- [Public Duplicates](https://github.com/acf-team/acf-3/tree/master/data_static/acf_public_dupes): `data_static/acf_public_dupes`

### Other components

- **Player**

## Connections

- Player → Build Menu: configures
- Build Menu → Vehicle Components: selects
- Build Menu → Guns and Missiles: selects
- Build Menu → Ammo Types: selects
- Player → Contraptions: builds
- Contraptions → Vehicle Components: uses
- Contraptions → Guns and Missiles: uses
- Guns and Missiles → Ammo Types: fires
- Ammo Types → Ballistics: defines performance
- Ballistics → Armor Hitboxes: tests penetration
- Ballistics → Damage System: applies effects
- Damage System → Combat Rules: subject to rules
- Missile Systems → Ballistics: models threats
- Public Duplicates → Player: provides builds
- Core Services → Entity Integration: supports
- Networking → Build Menu: supports interaction
