---
title: "Build leaderboards and level systems"
description: "Track activity in persistent per-server storage and show it however you like: levels, points, streaks, custom scoreboards."
canonical_url: "https://www.bondbot.gg/use-cases/leaderboards-and-levels"
last_updated: "2026-10-05"
---

# Build leaderboards and level systems

Track activity in persistent per-server storage and show it however you like: levels, points, streaks, custom scoreboards.

Categories: Data & storage, Automations & flows, Custom slash commands.

## The request

"@Bond Track message counts and make a /leaderboard command showing the top 10"

## What Bond does after the first message

- Read one document from this server's data store by collection and ID. (`get_document`)
- Create a document in this server's data store, or replace one whole. (`set_document`)
- Merge fields into a document (shallow), keeping the fields you do not mention; creates it if missing. (`merge_document`)
- Delete a document from this server's data store. (`delete_document`)
- Browse a collection: its documents with their IDs and data, paged, optionally narrowed by one field comparison. (`list_documents`)
- Get one field of a document by dot path. (`get_field`)
- Create an automation that runs on an event or a schedule, saved only after a dry run passes. (`create_flow`)
- Update an existing automation flow: replace its code, or change its description or enabled state. (`update_flow`)
- List every automation in this server with its trigger, status, summary and how its last run went. (`list_flows`)
- Get one automation in full: what it does, what it is allowed to touch, and how its last few runs went. (`get_flow`)
- Delete an automation flow from this Discord server permanently; it stops running immediately and there is no undo. (`delete_flow`)
- Enable or disable an automation flow, keeping its configuration. (`toggle_flow`)
- Create a custom slash command for this server, such as /rank, /daily or /profile. (`create_custom_command`)
- List every custom slash command this server has, with its kind, enabled state, Discord registration status and usage counts. (`list_custom_commands`)
- Get the full definition of one custom slash command: what it runs, its options, who may use it, whether Discord has it registered, and its last few runs. (`get_custom_command`)
- Update an existing custom slash command's description, body, options, access restrictions, ephemeral setting, confirmation step or enabled state. (`update_custom_command`)
- Delete a custom slash command from this server and unregister it from Discord. (`delete_custom_command`)
- Dry-run a custom slash command before it is saved, so a broken one is caught first. (`test_custom_command`)

See also: [all data & storage tools](https://www.bondbot.gg/tools/data-store), [all automations & flows tools](https://www.bondbot.gg/tools/automation), [all custom slash commands tools](https://www.bondbot.gg/tools/custom-commands).

## More in progression and data

- [Build an economy or currency system](https://www.bondbot.gg/use-cases/economy-system): Coins, daily payouts, a shop, a balance command, all stored per server so the numbers survive restarts.
- [Track member activity and stats](https://www.bondbot.gg/use-cases/member-activity-stats): Count messages, joins and voice time per member, and pull the numbers back out whenever you want to see who is actually around.
