Reward Graph

The Reward Graph is a visual editor for building advanced Leveling rewards.

Instead of only assigning one role at one level, you can build reward chains using triggers, conditions, and actions.


🧩 What is a Reward Graph?

A Reward Graph is a set of connected nodes.

Each chain usually follows this structure:

  1. Trigger — when should the reward chain run?
  2. Condition — who is allowed to receive the reward?
  3. Action — what should YAWBDB do?

Example:

When a member reaches level 10, if they do not already have the Booster role, assign the Active Member role and send a congratulations message.


⚡ Trigger nodes

Trigger nodes define when a chain starts.

Examples include:

Cross-feature triggers (shown locked in the palette until the matching feature is enabled):

These let you turn engagement (entering giveaways, posting suggestions) into XP. Add a Cooldown node to prevent farming.


❓ Condition nodes

Condition nodes decide whether the chain should continue.

Examples include:

Conditions help you avoid giving rewards to the wrong members or triggering actions at the wrong time.


🎬 Action nodes

Action nodes define what happens when the chain succeeds.

Examples include:


✏️ Variables you can put in a message

Any action that writes text — Send a direct message, Send a message to a channel — accepts these placeholders. They are replaced with the member's real values at the moment the message is sent.

Variable What it becomes
{user} / {username} A mention of the member
{level} Their level
{xp} Their total XP
{streak} Their current daily streak, in days
{prestige} Their prestige rank (0 if they have never prestiged)
{server} The server name
{event} / {event_name} The name of the XP event, on the two XP-event triggers

After a Trigger prestige action, {prestige} in the messages that follow shows the rank the member has just reached, not the one they left.

A placeholder you spell wrong is printed as-is, so if a message shows {presige} to your members, check the spelling before anything else.


✨ Let the assistant build it

If describing what you want is easier than wiring it, the Graph Assistant proposes a graph from a sentence. It never applies anything on its own — you review the proposal and decide.


ℹ️ The (i) button on every card

Each card in the editor carries a small (i) in its top-right corner. It opens a panel that answers the three questions the card itself cannot show you.

What this card reads. The values it looks at — the member's level, their roles, how long they have been on the server, and so on. On a command graph some of these appear crossed out: a command does not carry them, so a card that depends on one can never fire there. The On XP threshold trigger is the clearest case, because it needs to know the XP the member had before the event, and a command has no "before".

What would make it do nothing. This is the part worth reading. Several cards are skipped in silence when a required field is left empty — an Assign role with no role chosen, a Send a message with an empty message. Nothing is logged and nothing is flagged; the graph simply runs without that card. The panel names the exact field that would cause it.

Two conditions fail in the opposite direction, and the panel says so too: Has role with no role selected never passes, so everything after it is unreachable. Does not have role with no role selected always passes, so it filters nothing at all.

Which variables work here. On the cards that write text, the panel lists the placeholders that are valid on that card, so you never have to guess or come back to this page.

Cards do not pass values to one another. Everything a card reads comes from the event that started the graph, and reads the same in every card of that graph — the first one and the last one alike. That is why a card can use {user} even when it is wired directly to the trigger, and why there is no way to have one card compute something for the next one to use.

The (i) button is part of the full editor, so it appears on desktop. The mobile summary stays a read-only overview.


🧠 Logic nodes

Advanced graphs can use logic nodes to control flow.

Node What it does
AND Passes when every card wired into it passes
OR Passes when at least one card wired into it passes
NOT Passes when the card wired into it does not
Random Follows exactly one of its outgoing paths, picked at random
Delay Waits before continuing down the path
Cooldown Blocks its path for a set number of hours after it runs
Sequence Follows all its outgoing paths in order

⚠️ AND, OR and NOT read backwards. They judge the cards wired into them, not the ones that come after. This is the one place in the editor where the arrows do not mean "then" — they mean "is one of the things being tested". Wire your conditions into the gate, and wire the gate out to the reward.

A gate with nothing wired into it has nothing to test: AND and NOT let everything through, OR blocks everything. Neither shows an error, so an accidentally disconnected condition turns into a reward that fires for everyone — or for no one.

These nodes help you build more complex reward systems while keeping everything visual.


📱 Mobile behavior

The visual editor is best used on desktop.

On smaller screens, the panel may provide a simplified or read-only view depending on the layout.

For major Reward Graph edits, use a desktop browser.


💡 Best practices

🌱 Start small

Create one simple reward first, then test it.

For example:

Once that works, add conditions and extra actions.

🏷️ Use clear node names

Keep your graph readable. If you build many chains, use comments or labels where available.

📈 Avoid duplicate rewards

Use conditions such as “does not have role” to avoid repeatedly assigning the same reward.

⏱️ Use cooldowns carefully

Cooldowns are useful for preventing spam, but long cooldowns can make testing confusing.

📈 Test with a low-level reward first

Before building a complex level 50 reward chain, test the same structure at a low level.


💡 Example reward ideas

The Reward Graph is one of the most powerful parts of YAWBDB's Leveling system. It lets you design progression rules that match your community instead of forcing you into a fixed reward structure.