Verification
How Plany confirms a game is end of life — the evidence, the signals it could not read, and the person who decides when it cannot.
Players can fund an Encore only once it is verified: Plany has confirmed the game really is ending. Everything else — linking, transferring, creating offers, building the store into the game — can happen while it is still being checked.
Encore → Declare a game end of life → choose the game, the publisher link and the Steam app → choose what players may see → Declare end of lifeThe Encore is created at once in STATE_VERIFYING. The evidence is gathered in
the background, usually within a minute, and the Encore moves on its own.
gamemust be one of your account's own games in the Game Registry.listingmust be one of the link's listings.funding_visibilityis required. See Funding.
The Encore carries its encore_key — the handle your game ships, printed by
plany encore key example-arena. See Offers and purchases.
Two outcomes, never three
Verification ends in STATE_VERIFIED or STATE_NEEDS_REVIEW. It cannot
decline. Only a person at Plany declines, and their reason is shown to you word
for word.
What is checked
Three signals.
| Signal | Read from | Counts as end of life when |
|---|---|---|
| Ownership | Your link's key, against Steam's partner app list | The key can still act for the app. |
| Store | The public Steam store page, US storefront | Steam has no store page for the app, or the page exists and sells nothing — not free, no price, no packages. |
| Announcements | Your own Steam community announcements from the last year | One of them says the game is ending, in a sentence Plany can quote. |
A game is verified automatically when ownership is confirmed and at least one of the other two says it is ending:
| Ownership | Store no longer sells it | Your announcement says it is ending | Outcome |
|---|---|---|---|
| Yes | Yes | — | Verified |
| Yes | — | Yes | Verified |
| No | any | any | Needs review |
| Could not be read | any | any | Needs review |
| Yes | No | No | Needs review |
Ownership is required because without it nothing else found is about you: a stranger could name a delisted game they do not own and collect its players' money.
A game listed as coming soon reads as on sale. Not released is not end of life.
Announcements, and the quote
Only posts in your app's steam_community_announcements feed are read — never news
sites syndicated into it. "A journalist wrote that it is shutting down" is not the
studio saying so.
Plany reads up to twenty of your most recent posts, looking for one that says the game's online service is ending: official servers shutting down, support ending, the game being retired or delisted with its servers going offline. A sale ending, a season ending, a maintenance window or a sequel announcement do not count.
Only your own words count. A finding must quote one sentence from the post, and that sentence is checked against the post — ignoring case, whitespace, markup and curly quotes, and nothing else. A paraphrase is not evidence, so the evidence you see is always a sentence you actually published.
When the store alone already verifies an owned game, your announcements are not read at all.
If your game is still purchasable on Steam — because you are keeping it on sale while the servers wind down, say — post the announcement on Steam first, and say it plainly in one sentence: "The official servers for Example Arena will shut down on 30 November." That sentence is what verifies it.
The evidence
A verified or reviewed Encore carries what was found:
"verification": { "summary": "The developer has announced the end of the game, and the linked publisher owns it.", "evidence": [ { "kind": "KIND_OWNERSHIP", "detail": "the linked publisher key can act for this game" }, { "kind": "KIND_ANNOUNCEMENT", "url": "https://steamstore-a.akamaihd.net/news/externalpost/steam_community_announcements/…", "quote": "The official servers for Example Arena will shut down on 30 November.", "detail": "the developer's own announcement, giving 30 November" } ], "unknown_signals": [], "decided_by": "encore.plany.cloud", "decide_time": "2026-09-15T12:00:00Z"}Evidence kind | Meaning |
|---|---|
KIND_OWNERSHIP | The linked key can act for the app. |
KIND_STORE_UNAVAILABLE | The store no longer sells it. detail is what the store said; url is the store page. |
KIND_ANNOUNCEMENT | Your own post says it is ending. quote is verbatim; url is the post. |
KIND_OPERATOR | A person at Plany approved it. |
decided_by is encore.plany.cloud for an automatic decision, or the operator who
made it.
A signal that could not be read is not a signal that fell short
Steam rate-limits the store, or the news feed times out. Each of those is unknown, and an unknown is never evidence in either direction — it cannot verify a game, and it does not count against one.
Unknown signals are listed by name in unknown_signals — ownership, store,
announcements — and in the summary, so the person reviewing knows the difference
between "the store says it is on sale" and "we could not ask the store".
An Encore waiting on review because something could not be read is checked again on its own a day later, and again each day after that for up to a week. It may verify itself without anybody touching it; a person can decide sooner.
Review
STATE_NEEDS_REVIEW puts the Encore in a queue at Plany. A person reads the summary
and the evidence and decides:
- Approve — the Encore becomes
STATE_VERIFIED, with aKIND_OPERATORevidence entry. - Decline — the Encore becomes
STATE_DECLINED, andverification.reasonholds the reviewer's own sentence, shown to you as written.
Nothing about a game in review is blocked except players buying: transfer it, price it and ship the store while you wait. A game's store can list its offers before launch; they are simply not purchasable yet.
Trying again
plany encore retry-verification example-arenaFor an Encore in STATE_NEEDS_REVIEW or STATE_DECLINED. It returns to
STATE_VERIFYING, the evidence is gathered again from scratch, and the same rules
apply. Anything else is refused with NOT_RETRYABLE.
An Encore a person has declined always goes back to a person when retried, with the fresh evidence in front of them — it cannot verify itself past an earlier decision.
The usual reasons to retry: you have now posted the announcement, you have delisted the game, or you rotated a key that had lost access to the app.
Revoked
A verified Encore can be withdrawn by Plany — a game that turned out not to be ending
after all — and becomes STATE_REVOKED, with the reason in verification.reason.
- Player purchases stop at once. Games see
ENCORE_NOT_VERIFIED. - Credit already bought stays in the project and keeps paying for its servers.
States
state | Players can buy | Meaning |
|---|---|---|
STATE_VERIFYING | No | Evidence is being gathered. |
STATE_NEEDS_REVIEW | No | Plany could not decide on its own, and a person will. |
STATE_VERIFIED | Yes, once transferred | Confirmed end of life. |
STATE_DECLINED | No | A person at Plany declined, with a reason. |
STATE_REVOKED | No | Verified once and withdrawn by a person. |