# Forge Documentation

Forge is split into Arma client addons, Arma server addons, a Rust server
extension, shared Rust domain crates, and web UI build tooling. This directory
collects framework-level documentation for those pieces.

## Launch Prerequisites

Before starting a Forge-enabled dedicated server or local multiplayer test,
server owners and developers must:

1. Start SurrealDB.
2. Place `config.toml` beside `forge_server_x64.dll`.
3. Keep the `config.toml` SurrealDB endpoint, namespace, database, username,
   and password aligned with the running database.

Mission designers and players do not need to run SurrealDB unless they are
hosting locally, but the server they join must have these prerequisites ready.
See [SurrealDB Setup](./surrealdb-setup.md) for the full setup path.

## Start Here

- [Framework Architecture](./FRAMEWORK_ARCHITECTURE.md): how SQF, web UIs,
  Rust services, repositories, and SurrealDB fit together.
- [Module Reference](./MODULE_REFERENCE.md): module inventory for gameplay
  domains, extension command groups, client addons, server addons, and Rust
  crates.
- [Development Guide](./DEVELOPMENT_GUIDE.md): how to add or change a module
  without breaking the framework boundaries.
- [Mission Designer Guide](./MISSION_DESIGNER_GUIDE.md): how to place Eden
  objects, garage markers, and CAD-compatible task modules for playable
  missions.
- [SurrealDB Setup](./surrealdb-setup.md): where to get SurrealDB or
  Surrealist and how to connect Forge to it for local or live use.

## Server and Extension Usage Guides

- [Actor Usage Guide](./ACTOR_USAGE_GUIDE.md)
- [Bank Usage Guide](./BANK_USAGE_GUIDE.md)
- [CAD Usage Guide](./CAD_USAGE_GUIDE.md)
- [Economy Usage Guide](./ECONOMY_USAGE_GUIDE.md)
- [Garage Usage Guide](./GARAGE_USAGE_GUIDE.md)
- [ICOM Usage Guide](./ICOM_USAGE_GUIDE.md)
- [Locker Usage Guide](./LOCKER_USAGE_GUIDE.md)
- [Organization Usage Guide](./ORG_USAGE_GUIDE.md)
- [Owned Storage Usage Guide](./OWNED_STORAGE_USAGE_GUIDE.md)
- [Phone Usage Guide](./PHONE_USAGE_GUIDE.md)
- [Store Usage Guide](./STORE_USAGE_GUIDE.md)
- [Task Usage Guide](./TASK_USAGE_GUIDE.md)

## Client Usage Guides

- [Client Usage Guide](./CLIENT_USAGE_GUIDE.md)
- [Client Main Usage Guide](./CLIENT_MAIN_USAGE_GUIDE.md)
- [Client Common Usage Guide](./CLIENT_COMMON_USAGE_GUIDE.md)
- [Client Actor Usage Guide](./CLIENT_ACTOR_USAGE_GUIDE.md)
- [Client Bank Usage Guide](./CLIENT_BANK_USAGE_GUIDE.md)
- [Client CAD Usage Guide](./CLIENT_CAD_USAGE_GUIDE.md)
- [Client Garage Usage Guide](./CLIENT_GARAGE_USAGE_GUIDE.md)
- [Client Locker Usage Guide](./CLIENT_LOCKER_USAGE_GUIDE.md)
- [Client Notifications Usage Guide](./CLIENT_NOTIFICATIONS_USAGE_GUIDE.md)
- [Client Organization Usage Guide](./CLIENT_ORG_USAGE_GUIDE.md)
- [Client Phone Usage Guide](./CLIENT_PHONE_USAGE_GUIDE.md)
- [Client Store Usage Guide](./CLIENT_STORE_USAGE_GUIDE.md)

## Related Documentation

- [Server Extension Docs](../arma/server/docs/README.md)
- [Server Extension API Reference](../arma/server/docs/api-reference.md)
- [Server Extension Usage Examples](../arma/server/docs/usage-examples.md)
- [Client Addon Docs](../arma/client/docs/README.md)
- [Shared Rust Libraries](../lib/README.md)
- [Repository Crate](../lib/repositories/README.md)
- [Service Crate](../lib/services/README.md)
- [Model Crate](../lib/models/README.md)
