Demo
The whole process step by step, with the bot's real answers. The screens below are mock-ups drawn with the exact wording the bot uses; the names are made up.
1. Verify your character
A player proves the character is theirs: the bot gives a code, the player pastes it into the character's comment on tibia.com and confirms. The Discord nickname must match the character name. Verification gives the right to reserve.
Verification code: UTV-4F7K2QX9M3AB
Paste it into the "Comment" field of character Player One on tibia.com (Account, Characters, Edit Character), then use /register verify. The code is valid for 1 hour. Tibia character data may only refresh after about 5 minutes.
Character Player One verified. You can now reserve spots.
2. Reserve a spot
Typed in the spot's channel. The bot answers privately and the day post in the channel refreshes itself within moments.
Reserved Rotten Blood: 19:00-21:00 (Tibia server time, Europe/Berlin), which is 19:00-21:00 for you.
The post in the channel after the booking:
3. Change, cancel, find a free spot
Shorten or move your own booking, check which spots are free for a whole range, or cancel.
Reservation changed: Rotten Blood, 19:00-20:30 (Tibia server time, Europe/Berlin), which is 19:00-20:30 for you.
Cancelled the reservation on Rotten Blood: 19:00-20:30.
4. When the bot says no
A refusal always says why and what to do: a taken range, the daily limit, or a range outside the booking window. Nothing is saved, and the check and the write are one operation, so two people never get the same time.
This range collides with a reservation on Rotten Blood: 19:00-20:30 (Player One). Pick another time.
You would exceed the daily limit on Rotten Blood (07.10): limit 3 h 30 min, used 3 h, left 30 min.
This range is outside the booking window: you can reserve until 08.10 19:00 at the latest (08.10, 19:00). The whole range must fit in it.
5. Daily, standing bookings
Set once, booked by the bot every day (or on chosen weekdays) when the day enters the booking window. A daily has no priority: if someone was quicker, that day is skipped and you see it on your list. Dailies are off until an administrator turns them on.
🔁 Daily added: Rotten Blood, 21:30-24:00 (Tibia server time, Europe/Berlin), Mon, Tue, Wed, Thu, Fri. Next one for you: Tuesday, 21:30. A reservation for each day is made once the range enters the 24 hour window (right away if it is already in it).
6. Conflicts, if the admin allows them
By default overlapping bookings are impossible. An administrator can allow them: then the bot accepts the booking, marks the overlap and numbers the entries in the order they were placed. It does not pick a winner; the players settle it.
Reserved Rotten Blood: 20:00-22:00 (Tibia server time, Europe/Berlin), which is 20:00-22:00 for you. ⚔️ Conflict with: Player One 19:00-21:00. You are number 2 in the order of placement, sort it out between you.
The post shows the order and the clash:
7. Configuration
An administrator sets the rules in Discord, with no files and no restarts. For example the window ends at the server save:
Booking window: until the nearest server save (10:00 server time). A reservation must end by the server save, and the daily limit and "one block per day" count from server save to server save. It applies to later reservations, existing ones stay as they are.