Ability
Abilities you own for the run (not consumed when used), defined under configuration.abilities. One id is selected at a time; UseAbility / UseSelectedAbility run that definition’s invocations on demand.
State (Ephemeral)
| Path | Purpose |
|---|---|
Ephemeral.selectedAbilityId | Active ability id; normalized when the list changes (may be empty) |
Ephemeral.abilities | list of owned abilities, capacity flags, and denormalized counters (see below) |
Storage lives under Ephemeral.abilities. Each list element is an object with id (the ability id) plus fields copied from configuration.abilities[id] (see GnosisAbilityService — keys like id, currentCount, quantity, data are reserved and not overwritten from config).
How it looks in ephemeral.json
Shape matches the Gnosis Engine default template; list entries gain extra fields at runtime from configuration.
{
"Ephemeral": {
"selectedAbilityId": "",
"abilities": {
"list": [],
"listCount": 0,
"filledSlotsCount": 0,
"emptySlotsCount": 1,
"maxSize": 1,
"allowDuplicates": false,
"stackable": false,
"maxStackSize": 1
}
}
}Example one owned ability (minimal): "list": [ { "id": "yourAbilityId" } ] — the service may hydrate more keys from configuration.abilities.
Events
String ids are in GnosisAbilityEvents (Runtime/GnosisEngine/Source/Services/Ephemeral/Services/AbilityService/).
| Event id | Kind |
|---|---|
REQUEST_ABILITY_ADD | Request |
FACT_ABILITY_ADD | Fact |
FACT_ABILITY_ADDED | Fact |
REQUEST_ABILITY_REMOVE | Request |
FACT_ABILITY_REMOVE | Fact |
FACT_ABILITY_REMOVED | Fact |
REQUEST_ABILITY_USE | Request |
FACT_ABILITY_USED | Fact |
Optional payload: playerId (PAYLOAD_PLAYER_ID).
Functions
| Function | Parameters |
|---|---|
GetList | — |
GetCount | — |
AddAbility | abilityId |
RemoveAbility | abilityId |
ClearAbilities | — |
SetSelectedAbility | abilityId |
GetSelectedAbility | — |
UseSelectedAbility | optional playerId |
UseAbility | abilityId, optional playerId |
Statistics
None in the excerpted API; check partials.