Skip to content
Windows only · Invite only. To get the SDK, DM @snailyt on Telegram.

Tiers and variables

After sign-in, the SDK keeps a snapshot of the user’s active subscriptions. Reading it never touches the network, so it is safe in paint handlers.

if (eonauth::HasTier("Pro")) { /* … */ }
if (auto pro = eonauth::FindTier("Pro")) {
// pro->expiresAt is unix seconds; 0 means lifetime
statusBar.SetText(eonauth::ToWide("Pro until " + eonauth::FormatTime(pro->expiresAt)));
}
if (eonauth::HighestLevel() >= 2) { /* level 2 or above */ } // -1 with no subscriptions
for (const eonauth::Subscription& s : eonauth::Subscriptions()) { /* highest level first */ }

The snapshot is refreshed by every heartbeat and redeem. When it changes, the SDK raises Event::SubscriptionsChanged, so re-run your tier checks there.

A variable is fetched one at a time, by ID. Copy the ID (var_…) from the panel’s Variables page.

eonauth::FetchVariableAsync("var_0123456789abcdef0123456789abcdef",
[](const eonauth::Result& r, const std::string& value) {
if (r) UseValue(value);
else if (r.status == eonauth::Status::VariableNotFound) ShowUpgradePrompt();
else ShowError(eonauth::UserMessage(r), eonauth::UserHint(r));
});
// Later, without the network: the last value fetched in this session.
if (auto v = eonauth::Variable("var_0123456789abcdef0123456789abcdef")) { /* *v */ }
  • There is deliberately no way to list variables. A client can only read the IDs you compiled in.
  • An unknown ID and an ID locked to tiers the user doesn’t have both give VariableNotFound.
  • Values are text up to 128 KB. Binary content belongs in files.
  • Free mode sessions can read only variables marked Free users.
  • The cached value is cleared when the session ends.

Anything a cracked copy shouldn’t have just by skipping a check: a download link for the Pro build, the configuration a premium feature needs, a key for your own backend, rule tables. If the feature can’t work without the value, skipping the check doesn’t help.