# Forge Documentation Forge is split into a shared Arma addon, 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. ## Arma Addon Layout Forge now ships three Arma addon packages: - `@forge_mod`: shared client/server config classes required by Forge missions. It owns shared definitions such as Forge task Eden modules and the custom body bag vehicle config. - `@forge_client`: client-side UX, browser UIs, keybinds, and local player integrations. It depends on `@forge_mod`. - `@forge_server`: server-only runtime systems, extension bridge code, and authoritative mission/task execution. It depends on `@forge_mod` but should not be required by clients. Mission `requiredAddons` should reference shared mission-facing classes through `forge_mod_*` addons, not `forge_server_*`, so clients can load and edit missions without installing the server-only mod. ## 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. 4. Load `@forge_mod` with the server's normal mod list and `@forge_server` as a server-only mod. Mission designers and players do not need to run SurrealDB unless they are hosting locally, but they do need `@forge_mod` for Forge mission config classes. Players also load `@forge_client` for player-facing UI. 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. - [Custom Mission Generators](./CUSTOM_MISSION_GENERATORS.md): how communities and mission developers can create CAD-visible custom generated missions on top of Forge. - [Player Guide](./PLAYER_GUIDE.md): how players use CAD, phone, bank, store, locker, garage, and economy services during 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) - [Custom Mission Generators](./CUSTOM_MISSION_GENERATORS.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)