All posts

Save each customer's settings on the server, with no backend of your own

User variables let your program keep small values per customer on the PWF Auth server: settings that follow them to a new PC, counters, flags and values you set for one customer in the panel. With C#, VB.NET and Python code

2 min read

Your program remembers things: the theme a customer picked, how many exports they ran, whether they've seen the intro. Keep those in a local file and they're gone on a new PC, and you can't see or change them. Build your own server for them and you have a backend to run. User variables sit in between: small values your program keeps on the PWF Auth server for each customer, with nothing to host

What they're good for

  • Settings that follow the customer: theme = dark, language = de, a whole JSON config. A new PC starts the way the old one was set
  • Progress and counters: runs = 150, level = 3, last_export = 2026-10-13
  • Flags: agreed_terms = 1, seen_intro = 1, so your program shows something only once
  • Values you set for one customer: type tier = vip or max_threads = 8 in the panel, and the program reads it on its next start

A variable belongs to one customer of one app, a licence key or a customer account, and nobody else's program can read it. For a value every copy should read, use remote texts instead

In your program

After the customer signs in, with the .NET package:

await client.SetVariableAsync("runs", (runs + 1).ToString());
string? tier = await client.GetVariableAsync("tier");   // null when never set
var all = await client.GetVariablesAsync();             // every variable at once
await client.DeleteVariableAsync("seen_intro");

The same in VB.NET:

Await client.SetVariableAsync("theme", "dark")
Dim theme = Await client.GetVariableAsync("theme")      ' Nothing when never set
If theme Is Nothing Then theme = "light"

In Python it's set_variable, get_variable, get_variables and delete_variable

In the panel

Open a key in Licences, or an account in Users: the side panel has a Variables section with every name and value, when it last changed and who changed it, the app or you. Change a value, remove one, or add a new one. Support gets easier too: a customer's settings are right there when they write to you

From your own scripts

The Developer API reads and writes a key's variables too, with GET /keys/{key}/vars and PUT /keys/{key}/vars/{name}. So your store or bot can set tier when an order is paid, and the program reads it on its next start

The limits

  • Up to 50 variables per customer, and 4 KB per value
  • A name is up to 64 letters, digits or underscores
  • Only a live session can read or write them: a banned, paused or expired key gets nothing

The full guide is in Variables

Protect your app for free

Licence keys, customer accounts and the kill switch, in every language. Make an account and sign in with your first key in a few minutes

Create a free account