data/gameplay/
The world’s gameplay settings: the default damage formula, faction and relation, which stat is loot luck, PvP, the tick rate durations convert with, and the effect and damage caps. There is exactly one entry, manifold:config, which the engine declares; a game changes it with an .update.ron patch rather than declaring another.
| Registry | manifold:gameplay-config |
| Files | data/gameplay/*.ron, *.update.ron, *.final.ron |
| Sides | both: the server and every client load it, and the handshake’s data hash covers it |
| Reads | nothing |
| Contract | Gameplay framework, data stage |
Entry
A record, written GameplayConfig(..); the name before the parentheses is optional.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes | Always manifold:config. | |
default_formula | string | yes | The formula damage types use unless they name their own (manifold:damage-formula key). | |
default_faction | string or None | no | none | The faction of entities that resolve to none (manifold:faction key). |
default_relation | Relation | no | Neutral | How factions the data does not relate regard each other. |
loot_luck_stat | string or None | no | no luck | The killer’s stat that is loot luck (manifold:stat key). |
pvp | PvpPolicy | no | Off | Whether players may hurt each other. |
ticks_per_second | u32 | no | 40 | Ticks per second, for durations written in seconds. |
effect_cap | u16 | no | 32 | The most effect instances one entity holds. |
damage_events_per_tick | u32 | no | 4096 | The most damage events a world processes per tick; the rest wait. |
drop_despawn_ticks | u64 | no | 6000 | Ticks a shared drop without its own reserve stays reserved for its killer. |
Example
No bundled file declares one yet. An entry the engine declares, which mods may patch:
GameplayConfig(id: "manifold:config", default_formula: "manifold:basic")
Types
Relation
How two sides regard each other.
| Variant | Written | Description |
|---|---|---|
Friendly | Friendly | Allies: no friendly fire. |
Neutral | Neutral | Neither. |
Hostile | Hostile | Enemies. |
PvpPolicy
PvP between players. Parties are always friendly.
| Variant | Written | Description |
|---|---|---|
Off | Off | The faction relations decide (a team game). |
OptIn | OptIn | Two players are hostile when both carry manifold:state.pvp. |
Regions | Regions(TagQuery) | Two players are hostile when both match the query; the game grants a region tag while a player is in an arena. |
TagQuery
A tag query: which tag sets match. Every part written must hold; () matches everything.
A record: TagQuery(..) or (..).
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
all | list of tag-match | no | none | Every one of these tags. |
any | list of tag-match | no | none | At least one of these tags. |
none | list of tag-match | no | none | None of these tags. |
or | list of TagQuery | no | none | At least one of these queries. |
not | TagQuery | no | none | This query must not match. |
Value forms used here: tag-match.