Bans #
You can restrict players from logging into your game by issuing a temporary or permanent ban on their account. Depending on the ban type, players are prevented from receiving game and social authentication tokens. Players can be sent a ban notification to let them know why and how long they’ve been banned for.
Pragma Engine offers the following ban features:
- Account ban: Restrict players from logging into all your games and the Player Portal.
- Game ban: Restrict players from logging into a specific game.
- Ban reasons: Customize ban reasons to align with your game requirements covering anything from terms of service violations to cheating.
- Ban history: View players’ ban history including previously revoked and currently active bans.
- Revoke a ban: Remove the ban’s effects on players.
- Steam Family Sharing enforcement: Stop banned players from evading a ban by lending their Steam license to another account.
Bans can be managed within our Social Operator Portal. In addition, using our Player Data system you can add any game-specific feature bans.
Steam Family Sharing #
Steam Family Sharing lets a player play on a license owned by another Steam account. Without enforcement, a banned player can lend their license to a fresh account and keep playing. Pragma Engine records the license owner whenever a player logs in through Steam on a borrowed license, and uses it to close this path in two ways:
- Owner ban check: game logins are refused when the account that owns the license is banned.
- Ban propagation: banning a player also bans the owner of the license they most recently played on.
Both are on by default.
A propagated ban has the same duration as the source ban, and takes its scope and reason from config rather than from the source ban. It’s marked with propagatedFromBanId and a comment naming the source ban, and it never propagates further. Owners who have never logged in have no Pragma account, so no ban is propagated to them.
If propagation fails, the operator’s ban request returns an error. The original ban still applies; only the owner’s ban is missing.
Configure Steam Family Sharing enforcement #
Set entitlementOwnerBanReason to one of your own ExtBanReason values so propagated bans are distinguishable from the original offense in the portal and in player-facing messaging:
social:
serviceConfigs:
AccountServiceConfig:
entitlementOwnerBanReason: 100 # number of your ExtBanReason value
| Setting | Default | Description |
|---|---|---|
restrictByEntitlementOwnerBan | true | Refuse game logins on a license whose owner is banned. |
propagateBansToEntitlementOwner | true | When a player is banned, also ban the owner of the license they most recently played on. |
entitlementOwnerBanScope | BAN_SCOPE_ALL_GAME_SHARDS | Scope of a propagated ban. Defaults to all game shards because a ban scoped to one shard can be evaded by switching shards. |
entitlementOwnerBanReason | EXT_BAN_REASON_UNSPECIFIED | ExtBanReason number recorded on a propagated ban. |
To opt out, set either flag to false.
To get started, refer to our Ban Accounts guide. For more detailed information, check out the Bans Reference.