Saved variables
Values your bot remembers between runs.
Create saved variables on the Variables page. Each has a type (text, number, yes/no, list or object), a default, and a scope that decides how many copies exist:
- Once for the bot: one shared value.
- Per server and per channel.
- Per person: follows a member across servers.
- Per member: separate in each server, ideal for points.
Change them with the Saved variable step. Numbers can be set, added to, subtracted from, multiplied, divided, capped or raised. Text can be set or extended at either end. Lists (up to 500 items) can have items added, removed by text or position, replaced, taken off the end, sorted, shuffled or de-duplicated. Objects can have keys set or removed (use dots for nested keys, like stats.wins) or JSON merged in. Every type can be reset to its default, or forgotten so the default applies again. Changes are atomic, so two members clicking at once never lose an update.
Read them anywhere with {store.name}. Lists also offer {store.name.join}, {store.name.lines}, {store.name.length}, {store.name.first}, {store.name.last}, {store.name.random} and {store.name.0} (the first item is 0). Objects offer {store.name.key} and {store.name.key.nested}.
To read someone else's value, add .for. and an ID or a token without its braces: {store.coins.for.option.member}, {store.coins.for.var.target} or {store.coins.for.123456789012345678}. For channel and server variables, use a channel or server ID. The other parts still work after it, like {store.items.for.option.member.length}.
The Leaderboard step ranks a number kept per member or per person and saves the lines to a workflow variable, along with the member's own rank.
Open a variable on the Variables page to browse, search, edit or delete stored values. Each plan includes a number of stored values per bot; deleting values frees room.
Test runs start every saved variable at its default and never save changes.