# Vetox Leveling, XP and rank rewards — capability reference

> Vetox Leveling — three XP tracks, a 101-step curve, unlimited free rank rewards, scheduled resets, double-XP events, daily streaks and battle passes.

- Canonical: https://discordtools.blog/blog/vetox-leveling-reference
- Published: 2026-09-09
- Author: The Index desk
- Facts checked: 2026-08-30
- Sources:
  - docs.vetox.io — Leveling (https://docs.vetox.io/en/engagement/leveling) — checked 2026-08-30
  - docs.vetox.io — XP Events (https://docs.vetox.io/en/engagement/xp-events) — checked 2026-08-30
  - docs.vetox.io — Streaks (https://docs.vetox.io/en/engagement/streaks) — checked 2026-08-30
  - docs.vetox.io — Battle Pass (https://docs.vetox.io/en/engagement/battle-pass) — checked 2026-08-30
  - Arcane documentation (https://docs.arcane.bot) — checked 2026-08-30
  - Amari documentation (https://litochee.gitbook.io/amaribot) — checked 2026-08-30
  - Tatsu — features and pricing (https://tatsu.gg) — checked 2026-08-30
  - Lurkr documentation (https://lurkr.gg/docs) — checked 2026-08-30
  - ActivityRank — FAQ (https://activityrank.me/faq) — checked 2026-08-30
  - Cakey Bot — premium (https://cakey.bot/premium) — checked 2026-08-30
  - Kiai — features and API (https://www.kiai.app/) — checked 2026-08-30
- Publication: The Index, an independent site not affiliated with Discord Inc.

---
## What it is

XP awarded for messages, voice time and reactions, mapped onto a fixed 101-step level curve. Text
and voice are **two separate tracks** with their own totals, levels and leaderboards. Levels grant
roles automatically. Around that core sit three timing systems — scheduled double-XP events, daily
streaks, and a seasonal battle pass with quests.

## The problem it solves

An active member and someone who joined yesterday look identical in a Discord member list.

Operators want a visible, automatic record of participation that survives staff turnover, cannot be
faked by one burst of messages, and can gate role access without a moderator approving each
promotion.

There is a second problem underneath, and it is the one most levelling bots do not address. A single
accumulating counter eventually stops motivating anyone: a member at level 60 has nothing left to
chase, and the curve rewards volume rather than habit. Streaks measure whether someone keeps showing
up. A season is a bounded contest with a finish line and a fresh start.

## How it works

**Text XP** on each message: eligibility check, then cooldown, then a uniform random amount between
the configured minimum and maximum, then multipliers.

Eligibility skips bots, blacklisted users, excluded roles, excluded channels including threads whose
parent is excluded, messages beginning with `#`, and messages that are purely numeric.

**Multipliers resolve by the highest single value, never by stacking.** Role multipliers, channel
multipliers and an active XP event all pass through one maximum. This is deliberate: stacking
multipliers make an XP economy impossible to reason about, and impossible to tune once someone finds
the combination.

**Voice XP** runs on its own cycle, awarding minutes multiplied by a random per-minute rate. It has
its own totals and its own leaderboard.

**Level lookup** is a binary search over a fixed cumulative threshold table. Level 1 sits at 70
total XP. Level 100 sits at 950,000. XP past level 100 is tracked as overflow while the level stays
capped.

**Rank rewards** are evaluated on every text award — not only on level-up. When a member does not
level up, the same function runs as a reconciliation pass. A member who was offline when they
crossed a threshold, or who lost a role, gets it back the next time they earn XP.

## What is configurable

### XP sources and rates

| Setting             | Range                        | Default |
| ------------------- | ---------------------------- | ------- |
| Text XP enabled     | on/off                       | on      |
| Voice XP enabled    | on/off                       | on      |
| Reaction XP enabled | on/off                       | **off** |
| Text XP per message | 1–100 minimum, 1–500 maximum | 5–45    |
| Voice XP per cycle  | 1–100 minimum, 1–500 maximum | 2–5     |
| Reaction XP         | 1–100 minimum, 1–500 maximum | 5–15    |
| Text cooldown       | 0–3,600 seconds              | 240     |
| Voice award cycle   | 1–60 minutes                 | 4       |
| Reaction cooldown   | 0–3,600 seconds              | 300     |

### Exclusions and blocking

Excluded roles, excluded text channels and excluded voice channels, each unbounded. Plus five
behavioural switches, all off by default: block muted users, block deafened users, ignore members
alone in a voice channel, reset XP when a member leaves, reset XP on ban.

The muted and deafened switches are the ones that decide whether an AFK member farms voice XP
overnight.

### Multipliers

Per-role and per-channel multipliers from **0.25× to 5.0×**. Values below 1 are accepted, so a
low-value channel can be worth less rather than being excluded outright.

Validation rejects duplicate roles, duplicate channels, and anything appearing in both the exclusion
list and the multiplier list — a contradiction that silently produces the wrong answer in most
systems that allow it.

### Scheduled resets

Daily, weekly and monthly reset times, each configurable to the hour and minute, with a weekday for
weekly and a day-of-month for monthly that auto-clamps to the month's end.

Reset boundaries use **the server's own timezone** from Server Setup, not UTC and not the
administrator's browser. A weekly reset at midnight means midnight where the community actually
lives.

### Level-up announcements

Four independent announcements — text level-ups, voice level-ups, reaction level-ups, and a DM. Each
has its own switch, its own type (plain text or embed), its own channel and its own body up to 2,000
characters.

### Rank rewards

Each reward row carries a **text-level threshold, a voice-level threshold, and an AND/OR operator**.
An unused axis is stored as zero and is trivially satisfied, so a single-axis reward works exactly as
expected; the operator only matters when both thresholds are set.

Per row: whether to strip lower reward roles when a higher one is earned, whether to DM the member,
and whether the role appears on the leaderboard. Stack-or-replace is **per row, not global** — a
server can run a stacking cosmetic ladder alongside a replacing rank ladder in the same
configuration.

### XP Events

| Setting    | Range                                     | Default  |
| ---------- | ----------------------------------------- | -------- |
| Multiplier | Exactly one of 1.5×, 2×, 2.5×, 3×, 4×, 5× | 2×       |
| Scope      | Text, voice, or both                      | Both     |
| Duration   | 1 minute to 7 days                        | Required |

One event runs at a time. While it runs the dashboard shows live totals — XP, text XP, voice XP,
messages, participants and top contributors — and when it ends those numbers freeze into a permanent
history entry. That history is the part that matters: it answers whether the boost actually produced
turnout, which is otherwise a matter of opinion.

The event multiplier folds into the same maximum as role and channel multipliers, and it applies
after every eligibility check, so it can never bypass an exclusion.

### Streaks

Consecutive days on which a member met a server-defined activity bar — a message count, a voice-minute
count, either, or both. Day boundaries are computed in the server's timezone, with a configurable
grace window after midnight so a message at 00:10 still counts for the previous day.

Freezes absorb a missed day. Milestones can announce, grant a role, and append the current streak to
the member's nickname. Anti-farm checks cover per-user cooldowns, identical-message deduplication,
excluded roles and channels, and a minimum account age.

### Battle Pass

Time-boxed seasons: quests pay Battle Pass XP, XP fills numbered tiers, tiers hold claimable
rewards. Up to **50 tiers per season** and **25 rewards per tier** on every tier that has access.
Battle Pass XP is stored entirely separately from levelling XP and never touches it.

Quests can target voice time, channel breadth, reactions, ticket help and suggestions — behaviours
an operator actually wants, rather than message volume alone.

## Tier availability

| Capability                                                                       | Starter       | Basic     | Max       | Black     |
| -------------------------------------------------------------------------------- | ------------- | --------- | --------- | --------- |
| Text, voice and reaction XP; levels; exclusions; level-up messages; public board | Yes           | Yes       | Yes       | Yes       |
| **Rank reward roles**                                                            | **Unlimited** | Unlimited | Unlimited | Unlimited |
| Role and channel XP multipliers                                                  | —             | Yes       | Yes       | Yes       |
| Custom XP rates, cooldowns and blocking rules                                    | —             | Yes       | Yes       | Yes       |
| Custom scheduled-reset times                                                     | —             | —         | Yes       | Yes       |
| **XP Events — all six multipliers, up to 7 days**                                | **Yes**       | Yes       | Yes       | Yes       |
| **Streaks — accrual, decay, milestones, nickname display, reminders**            | **Yes**       | Yes       | Yes       | Yes       |
| Monthly streak freezes                                                           | 0             | 2         | 4         | 8         |
| Streak milestone roles                                                           | 1             | 5         | 15        | Unlimited |
| Custom streak emoji                                                              | —             | Yes       | Yes       | Yes       |
| Battle Pass access                                                               | Preview only  | Yes       | Yes       | Yes       |
| Custom quests per season                                                         | 0             | 10        | Unlimited | Unlimited |
| Seasons per server                                                               | 0             | 1         | 3         | Unlimited |

Two lines are worth reading twice. **Rank reward roles have no cap in the code at any tier**, which
is the capability most often metered in this category. And **XP Events and the streak system are
free in full** — the free tier gets every multiplier value, the full seven-day duration, the whole
streak mechanism and its milestones.

Starting freezes, set per server from 0 to 10, are free on every tier. The monthly grant is the part
that scales.

## Commands

| Command     | Options                                                     | Who           | Cooldown |
| ----------- | ----------------------------------------------------------- | ------------- | -------- |
| `/rank`     | user, theme (dark or light)                                 | Anyone        | 10 s     |
| `/top`      | duration (global, day, week, month), role                   | Anyone        | 15 s     |
| `/setlevel` | user, type (text or voice), level — accepts `N`, `+N`, `-N` | Manage Server | 5 s      |
| `/setxp`    | user, type, xp — same relative syntax                       | Manage Server | 5 s      |
| `/reset`    | type, user — omit the user to reset everyone                | Manage Server | 5 s      |

The relative syntax on `/setlevel` and `/setxp` is the difference between correcting a member's
total and recalculating it by hand.

## Dashboard surface

`/server/:id/leveling`, four tabs:

| Tab                  | Covers                                                                           |
| -------------------- | -------------------------------------------------------------------------------- |
| Main Settings        | XP rates, cooldowns, exclusions, multipliers, blocking, resets, board visibility |
| XP Event             | Start, stop, live statistics, event history                                      |
| Leveling Up Messages | The four announcements                                                           |
| Reward Roles         | The level-to-role ladder                                                         |

The public board is served at `/leaderboard/:serverId`, and its visibility is a per-server toggle
defaulting to private.

Streaks and Battle Pass have their own pages.

## Permissions required

| Purpose                 | Bot permission                                                |
| ----------------------- | ------------------------------------------------------------- |
| `/rank` cards           | Attach Files                                                  |
| Level-up announcements  | View Channel, Send Messages in the target channel             |
| Rank reward roles       | Manage Roles, **and a role position above every reward role** |
| Streak nickname display | Manage Nicknames                                              |

The role-position requirement is the single most common cause of "the reward is configured but
nothing happens" — see the [permissions reference](/blog/discord-bot-permissions-reference).

Leaderboard visibility and the XP reset endpoints require server ownership or Administrator, above
the ordinary dashboard permission layer.

## What it connects to

- **Rank rewards live in the same document** as levelling and save through the same endpoint. They
  are not a separate system.
- **XP Events** write into the same multiplier resolution.
- **Streaks** feed member profiles and the logging timeline.
- **Battle Pass** draws quest progress from levelling, streaks, games and
  [tickets](/blog/vetox-tickets-reference) — support work counts toward a season.
- **Giveaways** can gate entry on a minimum level.
- **[Membership](/blog/vetox-membership-reference)** applies a personal XP multiplier, on the
  **global** track only. A member's paid multiplier never inflates a server's own leaderboard.
- **Leaderboards** read the XP store; the bot is its only writer.

The chain: `Leveling → Rank Rewards → Leaderboards`, with
`XP Events → Leveling` and `Streaks + Games + Tickets → Battle Pass`.

## Who it is for

Servers with a role ladder to gate — verified, regular, veteran channels earned rather than granted.

Gaming and study communities where voice hours matter as much as messages, and where a text-only XP
system measures the wrong thing entirely.

Servers running seasonal competition through periodic resets, where the point is the current period
rather than the all-time total.

A server whose activity is a handful of people talking in one channel gets very little from any of
this, and should say so rather than installing a levelling bot and wondering why nobody cares.

## Practical use cases

**A voice community that stops rewarding AFK.** Voice XP on, block muted and block deafened both on,
ignore-alone on, a 4-minute award cycle. Voice hours count and an idle connection does not.

**A stacking cosmetic ladder next to a replacing rank ladder.** Colour roles at levels 5, 10, 20 with
strip-lower off, so they accumulate. Access roles at levels 15, 40, 70 with strip-lower on, so a
member holds exactly one. Both in the same list, distinguished per row.

**A double-XP weekend you can actually evaluate.** Start a 2× event scoped to both tracks for 60
hours before a game launch. When it ends, the frozen history entry shows participants, messages and
XP awarded — evidence for whether to run the next one.

**Habit over volume.** Streaks with a 3-message daily bar, milestone roles at 7, 30 and 100 days, and
the streak count appended to nicknames. The member who writes three good messages a day for a hundred
days becomes visibly more established than the one who dumped a thousand messages in a week.

**A season with a finish line.** A 50-tier battle pass with quests covering voice time, channel
breadth and ticket help, so progress rewards the behaviours the server wants rather than the ones
that are easiest to spam.

## How it compares

Criteria first: what a levelling bot is judged on is whether voice XP costs money, how many role
rewards the free tier allows, whether the XP economy is tunable without paying, and whether anything
exists beyond a single accumulating counter. Not install count. On those four, the most complete
free levelling in the table below is Vetox's, and the strongest on configurability and portability
is Lurkr's.

| Capability              | **Vetox**      | Arcane                                  | Amari                                      | Tatsu                        | Lurkr                                              | ActivityRank                                          | Cakey Bot           |
| ----------------------- | -------------- | --------------------------------------- | ------------------------------------------ | ---------------------------- | -------------------------------------------------- | ----------------------------------------------------- | ------------------- |
| Message XP              | Free           | Free                                    | Free                                       | Free                         | Free                                               | Free                                                  | Free                |
| **Voice XP**            | **Free**       | **Paid**, needs a separate bot invited  | **Paid**, off by default even when paid    | **Not offered at any price** | **Not offered**                                    | **Free**                                              | Free                |
| Role rewards, free cap  | **No cap**     | **15 total, 1 per level**               | No published cap                           | **10**                       | **50 total, 3 per level**                          | No published cap                                      | **10** (20 paid)    |
| Custom XP rates         | Basic          | **Paid**                                | **Paid**                                   | Free                         | Free                                               | Free                                                  | Free                |
| Custom XP curve         | Fixed 101-step | Not offered                             | Not offered                                | Not offered                  | **Free — polynomial, 2–5 coefficients**            | **Free, published formula**                           | Not published       |
| Multipliers             | Basic          | 1 role + 1 channel free, unlimited paid | **Zero on free**                           | Not offered                  | **5 free, multiplicative, values below 1 allowed** | Not published                                         | **5 free**, 10 paid |
| **Scheduled double-XP** | **Free**       | Not offered                             | Not offered                                | Not offered                  | Not offered                                        | Not offered                                           | Not published       |
| **Daily streak**        | **Free**       | Not offered                             | Not offered                                | Not offered                  | Not offered                                        | Not offered                                           | **Yes**             |
| **Seasonal pass**       | Basic          | Not offered                             | Not offered                                | Not offered                  | Not offered                                        | Not offered                                           | Not offered         |
| Web dashboard           | Free           | Free                                    | **Not offered** — `/dashboard` returns 404 | Free                         | Free                                               | **Not offered** — "planned, but we can't give an ETA" | Free                |
| Import from another bot | Not offered    | Not offered                             | Not offered                                | Not offered                  | **Free — from MEE6**                               | Not offered                                           | Not offered         |
| Price                   | $0 / $4.99     | **$7/mo, $75/yr** per server            | ~$6.99 one-time per user                   | $4.99 / $8.99 per server     | **$5/mo** per server                               | Not published                                         | $4.99/mo per server |

Beyond these, levelling is **paid** at MEE6, Dyno and Carl-bot, and free at ProBot, Koya, Atlas,
Maki, Loritta, Miki, NadekoBot and Pancake.

**Lurkr leads on configurability and data portability**, clearly and by a distance. Fifty free role
rewards at three per level, a polynomial custom XP curve, five free multiplicative multipliers that
accept values below 1, free custom rank-card backgrounds, free import from MEE6 and free instant
export of your own data. If the ability to leave is part of your criteria, Lurkr is the only one of
the five that treats it as a feature.

**ActivityRank gives voice XP away**, with mute, deafen and solo exclusions, and publishes its XP
formula. It has no dashboard, which is the trade.

**Arcane is the one product selling unlimited role rewards and voice XP together**, at $7 a month.
Nothing else in the category sells both.

Three things separate the Vetox shape from the field, and the third is the structural one.

**Voice XP is free.** It is the most reliably paywalled capability in the category — Arcane and Amari
charge for it, Tatsu and Lurkr do not sell it at any price, and only ActivityRank and Cakey Bot give
it away.

**Rank rewards have no cap.** Against Arcane's 15, Tatsu's 10, Cakey Bot's 10 and Lurkr's 50, an
uncapped free ladder is a different shape of offer.

**The design space above a single counter is thinly occupied**, and the scope of that statement
matters more than the statement. Scheduled XP events, daily streaks, streak freezes and a seasonal
track are absent from all five levelling specialists in the table above and from the sixteen
all-in-one bots examined.

**It is not true of the wider market, and several products prove it.** **Kiai** ships a deep XP
streak system — consecutive-day tracking, milestone announcements, bonus XP per streak day and a
streak leaderboard — alongside a well-designed API authorisation model.
**Cakey Bot** ships activity streaks. **StreakBot** is a dedicated streaks specialist listed in
Discord's own directory, and it keeps a streak alive with photos, videos, GIFs, stickers and voice
rather than messages, which is a different mechanic rather than a worse one. **ScopliDrop** uses
daily streaks as a giveaway entry condition. And on the seasonal side, **NextPanel** — Discord-verified
— advertises a battle pass with tier rewards and a season leaderboard. Anyone writing that nobody
else has streaks or a season is wrong.

Of the three mechanisms, the one that survived every check as genuinely uncontested is narrower and
duller than the headline: **a scheduled, server-wide, time-boxed XP multiplier with frozen
post-event statistics.** Not a vote boost, not a permanent purchased multiplier, not a rolling
weekly leaderboard — a window an operator opens deliberately and can afterwards evaluate.