2026-05-07 21:59:56 +01:00
2026-05-07 21:58:24 +01:00
2026-05-07 21:59:08 +01:00
2026-05-07 21:59:56 +01:00

Rust Wipe Countdown Discord Webhook Buy Me a Coffee at ko-fi.com

A lightweight Python script that automatically posts or updates a Discord embed showing the next Rust monthly wipe, including:

  • A DSTsafe UK timestamp (autoadjusts GMT/BST)
  • A relative timestamp (in 3 weeks, in 2 days, etc.)
  • A dynamic colour indicator (green/yellow/red)
  • A 10segment emoji progress bar
  • A “Last updated” footer timestamp
  • Automatic create/edit mode for Discord webhooks

Perfect for Rust community servers that want a clean, automated countdown updated via cron.


How It Works

The script calculates the first Thursday of next month — the official Rust wipe day — and sets the wipe time to 19:00 UK time.

DSTSafe Date Handling

The script uses:

  • pytz.timezone("Europe/London")
  • tz.localize(...)
  • UTC conversion only when generating the UNIX timestamp

This ensures the embed always shows 19:00 UK time, even when the UK switches between GMT and BST.

Dynamic Colour Logic

The embed colour changes based on how many days remain:

Days Left Colour Meaning
> 7 Green Plenty of time
37 Yellow Getting close
< 3 Red Imminent wipe

Emoji Progress Bar

The script calculates the time between:

  • Last wipe (previous first Thursday @ 19:00)
  • Next wipe

Then fills a 10segment bar with:

  • 🟩 (green)
  • 🟨 (yellow)
  • 🟥 (red)

depending on how close the wipe is.

Example: 🟩🟩🟩 30%

Webhook Create/Edit

The script supports two modes:

  • "create" — posts a new message
  • "edit" — updates an existing message using its ID

This allows you to run the script via cron without spamming your channel.


Configuration

Before running the script, update the following fields:

WEBHOOK_URL = ""
MODE = "create"
MESSAGE_ID = ""

1. WEBHOOK_URL

Paste your Discord webhook URL: WEBHOOK_URL = "https://discord.com/api/webhooks/XXXX/XXXX"

2. MODE

  • First run: MODE = "create"
  • After the message is created, copy its ID and switch to: MODE = "edit"

3. MESSAGE_ID

Only required in edit mode.

Rightclick the message → Copy Message Link → extract the ID at the end.

Example: https://discord.com/channels/.../1555000080555554444

So: MESSAGE_ID = "1555000080555554444"

Installation

Install dependencies: pip install requests pytz

Running the Script

Manual Run: python updater.py

Cron Automation (Recommended) Example: update every hour 0 * * * * /usr/bin/python3 /home/pi/discord-bot/updater.py

File Overview

Function Purpose
next_first_thursday() Calculates next Rust wipe date/time (DSTsafe)
get_dynamic_color() Chooses embed colour based on days remaining
build_progress_bar() Generates emoji progress bar
create_message() Sends a new webhook message
edit_message() Updates an existing webhook message
Main block Chooses create/edit mode and sends the embed

Example Output

Next server wipe:
Thursday, 4 June 2026 19:00
Relative: in a month

🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20%
Last updated: 2026-05-07 20:47:27
S
Description
A bot that updates an embed with RUST server wipe countdown.
Readme GPL-3.0 43 KiB
Languages
Python 100%