# zero-ideas/relativity architecture

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

- Interactive diagram: https://gitdiagram.com/zero-ideas/relativity
- Repository: https://github.com/zero-ideas/relativity

## Overview

This appears to be a Roblox action game with shooting, time-dilation abilities, projectile simulation, and procedural maps. The likely player workflow is to control a character and weapons on the client, with server-side weapon and projectile systems handling game effects. The tree also shows shared gameplay utilities and map generation. No README or substantive source excerpts were provided, so component wiring beyond the entry point is uncertain; the graph shows capabilities without assuming calls between them.

Main entry points: [`src/client/init.client.luau`](https://github.com/zero-ideas/relativity/blob/master/src/client/init.client.luau) (Client entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client gameplay"]
  node_client_entry["Client entry<br/>[init.client.luau]"]
  node_shooter_client["Shooter controls"]
  node_tool_manager["Tool manager<br/>[ToolManager.luau]"]
  node_tool_controllers["Weapon abilities"]
  node_movement["Movement"]
  node_viewmodel["Weapon viewmodel"]
  node_client_effects["Weapon effects<br/>[WeaponEffects.luau]"]
end

subgraph group_server["Server simulation"]
  node_shooter_server["Shooter handling"]
  node_weapons_server["Weapon logic"]
  node_projectile_server["Projectile simulation"]
  node_status_server["Status effects"]
  node_ragdoll["Ragdoll<br/>[init.luau]"]
  node_player_manager["Player management"]
end

subgraph group_shared["Shared systems"]
  node_chunks["Chunk management<br/>[ChunkManager.luau]"]
  node_gravity["Gravity<br/>[Gravity.luau]"]
  node_hitbox["Hitboxes<br/>[Hitbox.luau]"]
  node_projectile_client["Projectile visuals"]
end

subgraph group_maps["World generation"]
  node_map_builder["Map builder<br/>[Builder.luau]"]
  node_map_generation["Map generation"]
  node_map_visualizer["Map visualizer<br/>[Visualizer.luau]"]
end

node_player(("Player"))

node_player -->|"starts play"| node_client_entry

click node_client_entry "https://github.com/zero-ideas/relativity/blob/master/src/client/init.client.luau"
click node_shooter_client "https://github.com/zero-ideas/relativity/blob/master/src/client/ShooterController.luau"
click node_tool_manager "https://github.com/zero-ideas/relativity/blob/master/src/client/ToolManager.luau"
click node_tool_controllers "https://github.com/zero-ideas/relativity/tree/master/src/client/ToolControllers"
click node_movement "https://github.com/zero-ideas/relativity/blob/master/src/client/MovementController.luau"
click node_viewmodel "https://github.com/zero-ideas/relativity/tree/master/src/client/Viewmodel"
click node_client_effects "https://github.com/zero-ideas/relativity/blob/master/src/client/WeaponEffects.luau"
click node_shooter_server "https://github.com/zero-ideas/relativity/blob/master/src/server/Shooter.server.luau"
click node_weapons_server "https://github.com/zero-ideas/relativity/tree/master/src/server/Weapons"
click node_projectile_server "https://github.com/zero-ideas/relativity/tree/master/src/server/Projectile"
click node_status_server "https://github.com/zero-ideas/relativity/blob/master/src/server/StatusEffects.server.luau"
click node_ragdoll "https://github.com/zero-ideas/relativity/blob/master/src/server/Ragdoll/init.luau"
click node_player_manager "https://github.com/zero-ideas/relativity/blob/master/src/server/PlayerManager.server.luau"
click node_chunks "https://github.com/zero-ideas/relativity/blob/master/src/shared/ChunkManager.luau"
click node_gravity "https://github.com/zero-ideas/relativity/blob/master/src/shared/Gravity.luau"
click node_hitbox "https://github.com/zero-ideas/relativity/blob/master/src/shared/Hitbox.luau"
click node_projectile_client "https://github.com/zero-ideas/relativity/tree/master/src/shared/ProjectileClient"
click node_map_builder "https://github.com/zero-ideas/relativity/blob/master/src/shared/MapGen/Builder.luau"
click node_map_generation "https://github.com/zero-ideas/relativity/tree/master/src/shared/MapGen"
click node_map_visualizer "https://github.com/zero-ideas/relativity/blob/master/src/shared/MapGen/Visualizer.luau"

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_client_entry,node_shooter_client,node_tool_manager,node_tool_controllers,node_movement,node_viewmodel,node_client_effects toneBlue
class node_shooter_server,node_weapons_server,node_projectile_server,node_status_server,node_ragdoll,node_player_manager toneAmber
class node_chunks,node_gravity,node_hitbox,node_projectile_client toneMint
class node_map_builder,node_map_generation,node_map_visualizer toneRose
class node_player toneIndigo
```

## Components

### Client gameplay

- [Client entry](https://github.com/zero-ideas/relativity/blob/master/src/client/init.client.luau): `src/client/init.client.luau`
- [Shooter controls](https://github.com/zero-ideas/relativity/blob/master/src/client/ShooterController.luau): `src/client/ShooterController.luau`
- [Tool manager](https://github.com/zero-ideas/relativity/blob/master/src/client/ToolManager.luau): `src/client/ToolManager.luau`
- [Weapon abilities](https://github.com/zero-ideas/relativity/tree/master/src/client/ToolControllers): `src/client/ToolControllers`
- [Movement](https://github.com/zero-ideas/relativity/blob/master/src/client/MovementController.luau): `src/client/MovementController.luau`
- [Weapon viewmodel](https://github.com/zero-ideas/relativity/tree/master/src/client/Viewmodel): `src/client/Viewmodel`
- [Weapon effects](https://github.com/zero-ideas/relativity/blob/master/src/client/WeaponEffects.luau): `src/client/WeaponEffects.luau`

### Server simulation

- [Shooter handling](https://github.com/zero-ideas/relativity/blob/master/src/server/Shooter.server.luau): `src/server/Shooter.server.luau`
- [Weapon logic](https://github.com/zero-ideas/relativity/tree/master/src/server/Weapons): `src/server/Weapons`
- [Projectile simulation](https://github.com/zero-ideas/relativity/tree/master/src/server/Projectile): `src/server/Projectile`
- [Status effects](https://github.com/zero-ideas/relativity/blob/master/src/server/StatusEffects.server.luau): `src/server/StatusEffects.server.luau`
- [Ragdoll](https://github.com/zero-ideas/relativity/blob/master/src/server/Ragdoll/init.luau): `src/server/Ragdoll/init.luau`
- [Player management](https://github.com/zero-ideas/relativity/blob/master/src/server/PlayerManager.server.luau): `src/server/PlayerManager.server.luau`

### Shared systems

- [Chunk management](https://github.com/zero-ideas/relativity/blob/master/src/shared/ChunkManager.luau): `src/shared/ChunkManager.luau`
- [Gravity](https://github.com/zero-ideas/relativity/blob/master/src/shared/Gravity.luau): `src/shared/Gravity.luau`
- [Hitboxes](https://github.com/zero-ideas/relativity/blob/master/src/shared/Hitbox.luau): `src/shared/Hitbox.luau`
- [Projectile visuals](https://github.com/zero-ideas/relativity/tree/master/src/shared/ProjectileClient): `src/shared/ProjectileClient`

### World generation

- [Map builder](https://github.com/zero-ideas/relativity/blob/master/src/shared/MapGen/Builder.luau): `src/shared/MapGen/Builder.luau`
- [Map generation](https://github.com/zero-ideas/relativity/tree/master/src/shared/MapGen): `src/shared/MapGen`
- [Map visualizer](https://github.com/zero-ideas/relativity/blob/master/src/shared/MapGen/Visualizer.luau): `src/shared/MapGen/Visualizer.luau`

### Other components

- **Player**

## Connections

- Player → Client entry: starts play
