DPC Zettelkasten Open in the explorer

Faction Permission

The individually grantable capabilities inside a faction, each with a default and a type.

A permission is one capability a faction can grant or withhold — claiming land, inviting members, editing Law, and so on. Permissions are the leaves of the governance model; Faction Role bundles them.

Parameterised by role

Some permissions are not a single capability but a family: the ability to modify a particular role. MfFactionPermissions.permissionsFor(factionId, roles) builds the permission set for a specific faction from its specific roles, which means the available permissions differ between factions.

This is why permissions are stored and resolved by name rather than by reference — the object graph is per-faction and rebuilt at load, so only the string is stable enough to persist.

Defaults are per-permission

Each permission declares its own default, consulted last in the three-level resolution described in Faction Role. A faction can shift the middle level by setting defaultPermissionsByName on the Faction record, and a role can shift the top level. The permission's own default is the backstop that guarantees every lookup terminates in a boolean.

Serialization

Dedicated serializers exist for a permission and for a map of permissions, keeping the encoding of permission state in one place rather than scattered through the repositories that persist roles.

Permissions govern members. Non-members are governed by Faction Flag settings and by their Faction Relationship to the landowner — two separate systems that meet at the block-interaction check on a Claimed Chunk.

Sources

Linked from