> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rbxweb.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Bot Updates

> A changelog feed in your dashboard — see what's new in RBX ToolBot, with an unread badge and thumbs up/down on each post.

Bot Updates is a blog-style changelog built into the dashboard. New posts appear at the top, styled exactly like the Discord embeds the bot sends, so you can catch up on new features at a glance.

Open **Dashboard → General → Bot Updates**.

<Info>
  This view is available to **every** logged-in user — it is not tied to a server or a tier.
</Info>

## The unread badge

The **Bot Updates** sidebar link shows a red badge with the number of posts you haven't seen yet. Opening the view clears the badge.

Unread state is tracked **in your browser** (localStorage) — there is no account-level read state, so the badge is per-device. Reading the feed on your laptop won't clear it on your phone. Nothing is stored server-side for unread tracking, and no cookies are used.

## Reactions

Each post has a **thumbs up** and **thumbs down** button with a running count. Click one to react; click the same one again to remove your reaction; click the other to switch. Your reaction is saved to your account, so it persists across devices and sessions.

## Posting an update (bot owner)

Updates are authored from the admin panel, reusing the existing embed editor.

<Steps>
  <Step title="Open Admin → Post Updates">
    Compose a message or embed with the live preview, exactly as before.
  </Step>

  <Step title="Pick where it goes">
    Two checkboxes at the top-right of the compose card control the destinations:

    | Destination           | What it does                                                                              |
    | --------------------- | ----------------------------------------------------------------------------------------- |
    | **Post to Discord**   | Broadcasts to every guild that has an update channel configured (the original behaviour). |
    | **Post to Dashboard** | Adds the post to the **Bot Updates** feed in the dashboard.                               |

    Tick either or both. At least one must be selected.
  </Step>

  <Step title="Send now or schedule">
    Sending immediately writes the dashboard post straight away; the Discord broadcast (if selected) runs through the bot and reports its result. Scheduled posts fire at the set time and honour the same two checkboxes.
  </Step>
</Steps>

### Managing posted updates

The **Posted Updates** card at the top of the panel lists what you've already sent — title, date, and where it went (Discord / Dashboard). Choose how many to show (5 / 25 / 50) and page through them.

Each row has a **delete** button. Deleting an update:

* removes it from the **dashboard feed** immediately, and
* tells the bot to **delete the messages it posted in Discord** update channels (across every guild it broadcast to).

<Info>
  Delete works on **both** destinations automatically based on where the update was originally posted — a Discord-only update cleans up its Discord messages, a dashboard-only update just disappears from the feed, and a "both" update does both.
</Info>

### Uploading an image

The compose card has an **Upload image** field. Pick a PNG/JPG/GIF (max 5 MB) and it's uploaded to private storage, giving you a URL you can **Copy** or apply straight to the embed with **Set as Image** / **Set as Thumbnail**. These uploads are kept separate from the server Image Library — they don't appear there or to other users.

### Linking to a feature with `{site}`

Inside the message you can use the relative token **`{site}`** anywhere a URL goes — most usefully inside a markdown link in the description:

```
[Open Codes Drop Portals →]({site}/index.html)
```

`{site}` is expanded to the full website address when the post is shown:

* **In Discord**, it becomes the bot's public site URL (so links are absolute, as Discord requires).
* **In the dashboard feed**, it resolves to the site you're currently on (local or production).

This lets one post link correctly from both places without hard-coding a domain.
