99 lines
4.3 KiB
Markdown
99 lines
4.3 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.
|
|
- [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)
|
|
- [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)
|