Mind Invaders Games logoMIND INVADERSGAME STUDIO

Documentation overview / Configuration

Configuration

On this page

One master ScriptableObject — PlayFabHubSettings (in a Resources/ folder) — holds everything. Edit it from the Hub window's Client tab (a page per feature) or the Inspector; both write to the same asset.

Environments

environments[] lets you keep dev / staging / production Title IDs side by side; activeEnvironmentIndex picks the live one. An empty Title ID falls back to the SDK's shared PlayFabSettings.TitleId.

Cross-cutting policy

  • Network — reads and explicitly idempotent writes retry with exponential backoff + jitter for transient errors only (HTTP 429 / 5xx / connection); honors Retry-After. Deterministic errors (wrong price, name taken, profanity) are surfaced immediately for clean UI messages. verboseLogging traces every call.
  • Entity token — the v2 auth artifact is captured at login and refreshed before expiry (refreshLeadTimeSeconds), on demand and by a 30-second timer when auto refresh is enabled.

Title-side prerequisites

Use the per-feature setup guide alongside these settings. Unity feature switches do not change your title permissions or deploy content.

Feature roster + per-feature blocks

features.* toggles which managers exist at runtime (a disabled feature's accessor is null). Each feature's knobs live in its own block (auth, economy, leaderboards, …) — see each Hub page's tooltips for every field.

Key blocks: - EconomyConfig.version — V2 (default, recommended) or V1 (legacy catalog). Shop samples demonstrate v2; legacy v1 APIs are available to game code. Receipt helpers use legacy v1 endpoints. - LeaderboardConfig.writeAuthority — CloudScript (default, recommended): competitive scores must be written server-side; ClientDirect is for prototyping only and requires the title setting "Allow client to post player statistics" (AllowClientToPostPlayerStatistics) under Game Manager > Settings > API Features > Enable API features; save the change. This is unnecessary for reads/server writes. The default CloudScript mode refuses SubmitScore; call your own validated handler explicitly, as explained in feature setup. - CloudScriptConfig.backend — LegacyCloudScript (default, PlayFab-hosted) or AzureFunctions (opt-in; requires your Azure subscription and incurs cost). - CloudScriptConfig.errorField / okField — the result-envelope field names ExecuteChecked<T> inspects (default error / ok). Clear them to opt out; rename them to match a handler contract you already ship. - LeaderboardConfig.versionResetFunctionKey — empty by default. Statistic versions (seasons) roll server-side; name a CloudScript/Azure handler here to let IncrementStatisticVersion trigger one. See Seasons, Group Data, Scheduled Events & Matchmaking Polling. - LiveOpsConfig.eventsTitleDataKey / eventWindowGraceSeconds — which Title Data key holds your scheduled-event document (default LiveEvents) and how much clock-skew grace to apply to each window (default 0 = exact UTC). - SocialConfig.groupEntityType / defaultGroupDataObject — the entity type used for group entities (group) and the default document name for Get/UpdateGroupData. - MultiplayerConfig.ticketPollIntervalSeconds / cancelTicketOnStop — the matchmaking poll cadence (clamped to PlayFab's 10-polls-per-minute ticket limit) and whether an abandoned search cancels its ticket server-side.

Secrets — what ships where

  • Hub runtime configuration stores the public Title ID, never the developer key. Keep developer keys out of the SDK settings resource and any other assets included in player builds. Runtime authentication tokens are sensitive session credentials.
  • The admin tooling (editor-only) needs the developer secret key for Health-Check probes / catalog pushes. It is resolved from the PLAYFAB_DEV_SECRET environment variable or a git-ignored .secret file — never stored in an asset. The package auto-adds the .gitignore rule and raises a security error if .secret is ever tracked by git.

Mind Invaders Games · PlayFab Hub 1.0.0 · Updated 14 September 2026