forge/docs/README.md
2026-05-31 17:14:47 -05:00

103 lines
4.5 KiB
Markdown

# 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)