PlanyDocs
Account and platform

Accounts and projects

Who you are, who pays, and where things run.

Everything on Plany belongs to an account, and everything that runs lives in a project inside one.

Accounts

accounts/{account}

An account is your studio, your team or just you. It holds the balance and the plan, its members and their roles, API keys and service accounts, uploaded game builds and the activity record.

An account's account_id — northstar-games, say — is unique across Plany and can be used in place of the generated id in a resource name, so links read well.

If Plany ever suspends an account, its state is STATE_SUSPENDED_ADMIN and state_reason says why. Only Plany can lift that suspension; open a support case.

Getting an account

Plany is currently invitation-only. An invitation emails you a one-time password; sign in with it and you are asked to choose your own before you can do anything else. If you lose it before you do, Forgot your password? on the sign-in page emails a link to choose one — see Authentication.

When registration opens, a new account is sent a confirmation link and can do nothing until it is followed.

Members

Invite somebody by email, with the account roles they should hold. If nobody on Plany has that address yet, the invitation waits for them to sign up.

Team & access → Invite → enter their email and choose a role → Send invitation

A membership carries account roles — owner, admin, billing, viewer. Roles on a single project are granted on that project; see Access control.

The account owner cannot be removed. Ownership has to be transferred first, so an account always has somebody in charge.

Belonging to several accounts

A user can be a member of more than one account. A session belongs to exactly one: it is chosen automatically when you hold a role on only one account, and named when you hold roles on several.

If you belong to several accounts, sign-in fails until you name one — plany auth login --account, or account on IssueToken. Plany does not guess, because a wrong guess would quietly point your session at the wrong account.

Projects

projects/{project}

A project is where things run. Access is granted per project, quota is counted per project and region, and every regional resource — a game server, a sandbox, a network, a secret, a repository — lives in one.

Projects → New project → name it → Create project

In Terraform, every other resource can take the project by name — for example project = plany_project.prod.name.

Set project_id rather than letting one be derived from the display name. A derived id picks up a suffix whenever the name is taken, so the same configuration applied in two places would name two different projects. The id appears in resource names and in image references, and cannot be changed.

A project's labels are copied onto every usage record it produces, which is how a studio splits one bill across games, environments or customers.

One project per environment

my-game-prod, my-game-staging. Quota is per project and region, so a runaway staging fleet cannot exhaust production's limits.

One project per title

A studio with several games. Access is granted per project, so a contractor on one title reaches nothing on another.

Every project gets its own private network in each region, named default. See Private networks.

Deleting a project

DeleteProject moves a project into STATE_PENDING_DELETION. While it is pending, UndeleteProject — or Restore on the console's Projects page — brings it back, for up to 30 days. Its project_id stays taken in the meantime, so creating a new project with the same id fails with ALREADY_EXISTS.

Set disallow_non_empty to have the delete refused while the project still holds resources — a safe default for scripts.

An Encore project is funded by its game's players and cannot be deleted by its owner. Open a support case if you need one closed.

Deleting an account

Only the account's owner can delete it or restore it. Anybody else who tries is refused, and in the console the controls are shown to the owner alone.

Settings → Danger zone → Delete account → type the account ID → Delete account

Deleting an account does not remove it straight away. It enters STATE_PENDING_DELETION, and its purge_time is set 90 days ahead. From that moment:

  • Everything running stops — game servers, sandboxes and everything else in every project.
  • Nothing new can be created. Every create is refused with FAILED_PRECONDITION and a precondition violation of type ACCOUNT_PENDING_DELETION.
  • Credit purchases and plan changes are refused, and no charges accrue.
  • A Pro subscription is cancelled at the end of its current period. It is not renewed, and the period already paid for is not refunded.

Your worlds, builds, schematics, container images, secrets and everything else are kept untouched until purge_time. On that date everything the account holds is permanently deleted and cannot be recovered. Billing history is kept.

DeleteAccount returns a long-running operation that stays open for the whole 90 days, so there is nothing to wait for: read the account instead, whose state and purge_time say where it stands. Deleting an account that is already pending returns the same operation.

While an account is pending deletion every page of the console says so, with the date.

Restoring an account

Until purge_time, the owner can bring the account back — the deletion emails link straight to it.

Settings → Danger zone → Restore account

A restored account can create things and be charged again straight away.

A restore does not restart anything. Servers that were stopped when the account was deleted stay stopped: start them when you want them, or let players wake them by connecting.

After purge_time the account can no longer be restored, and UndeleteAccount is refused with FAILED_PRECONDITION and the reason NOT_RESTORABLE.

Limits

MetricScopeHobbyPro
project.plany.cloud/projectsaccount350
iam.plany.cloud/api_keysaccount5100
game.plany.cloud/build_storage_bytesaccount20 GiB500 GiB

See Quotas and limits to ask for more.