Noxie’s economy is the connective tissue between hunting, donating, and showing off. Every user has two currency balances — Glow Shards and Vibe Coins — that are fully scoped to the Discord server they’re earned in. Alongside the balances, the system tracks total hunt counts, the current hunt streak, and a set of achievement badges. All data persists in a local SQLite database atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/developer51709/Noxie/llms.txt
Use this file to discover all available pages before exploring further.
db/noxie.db, which is created automatically on first run.
Currencies
Glow Shards ✨
The primary currency of the economy. Earned on every successful hunt and from crypto donations. Used as the general measure of activity and generosity within a server.
Vibe Coins 🪙
The rarer of the two currencies. Earned in smaller quantities from hunts and from donations, at a more premium rate. Future shop and fusion features draw on Vibe Coins.
Hunt Rewards
Each successful hunt credits both currencies immediately viaeconomy.record_hunt(). The amounts are randomized within a range that scales with the rarity rolled. Base ranges are configured in config.json under economy.glow_shards_per_hunt and economy.vibe_coins_per_hunt; the table below reflects the default configuration.
| Rarity | Glow Shards | Vibe Coins |
|---|---|---|
| Common | 5–25 | 1–5 |
| Uncommon | 10–50 | 2–8 |
| Rare | 20–100 | 4–15 |
| Epic | 40–200 | 8–30 |
| Legendary | 100–500 | 20–75 |
| Mythic | 250–1,250 | 50–200 |
cogs/hunt.py:
Hunt Cooldown
By default there is a 30-second cooldown between hunts per user per guild. The cooldown duration is read fromconfig.json:
last_hunt in the economy table.
Hunt Streak
hunt_streak increments by 1 on every successful hunt and is stored in the economy table. Streaks are never automatically reset — they persist until a future mechanic (such as a failed hunt variant) resets them. The streak feeds directly into the personality engine to bias Noxie’s tone:
- streak ≥ 15 → chaotic tone
- high luck (derived from streak) → cozy tone
- low luck / streak = 0 → sarcastic or deadpan tone
/vibe command surfaces the streak to users alongside their current vibe status.
Donation Rewards
Donations go through the OxaPay crypto flow. Once a payment is confirmed, the economy module credits rewards at a flat rate:| Reward | Rate |
|---|---|
| Glow Shards ✨ | 500 per $1 USD |
| Vibe Coins 🪙 | 50 per $1 USD |
| Donor Badge 💎 | Awarded once on first successful donation |
Badges
Badges are permanent achievements stored in thebadges table. Each badge can only be awarded once per user — award_badge() uses an INSERT OR IGNORE pattern backed by a UNIQUE(user_id, badge_name) constraint.
| Badge ID | Display Name | Requirement |
|---|---|---|
donor | 💎 Donor | First successful donation |
hunter_10 | 🏹 Hunter I | 10 total hunts |
hunter_50 | 🏹 Hunter II | 50 total hunts |
hunter_100 | 🏹 Hunter III | 100 total hunts |
legendary | 🌟 Legendary Finder | Catch a legendary creature |
mythic | 🌌 Mythic Witness | Catch a mythic creature |
streak_25 | 🔥 Hot Streak | 25-hunt streak |
utils/economy.py in the BADGE_DISPLAY dict and can be extended there without any schema changes.
SQLite Tables
All economy data lives indb/noxie.db. The schema is initialized on startup by economy.init_db().
economy
Stores balances, hunt counters, and the last-hunt timestamp. One row per (user_id, guild_id) pair.
badges
One row per awarded badge. The UNIQUE(user_id, badge_name) constraint prevents duplicates.
donations
Log of every confirmed donation transaction.
inventory
One row per creature catch. The fused column is reserved for future fusion mechanics.
All timestamp columns (
last_hunt, awarded_at, caught_at) store Unix epoch seconds as REAL values, compatible with Python’s time.time().