Docs/Information/Changelog
Changelog
What changed, when - starting with everything the rewrite changed from classic HepBoat.
This page starts with the complete launch delta between classic HepBoat (the Python bot that served servers since around 2018) and the TypeScript bot that replaced it in production on August 10, 2026. That launch baseline is current through August 13, 2026. Later updates appear as dated entries above it, newest first.
August 26, 2026
One checkout page for every payment
- Payments now go through one hosted checkout page instead of separate PayPal and card flows. You pick card or PayPal on that page, so the shop shows a single Buy button rather than one button per payment method.
- Prices, 30-day blocks, stacking, and what a purchase unlocks are all unchanged. Existing purchases keep their remaining time exactly as it was.
- Add 30 days now opens a checkout for everyone. Card details are no longer kept on file for one-click top-ups, so every charge is one you make at the moment you make it. The new block still stacks onto whatever time you have left, and nothing recurs.
- Past purchases have been imported into the billing portal, so your receipts and history are in one place.
Custom ban messages render their shortcodes
- Shortcodes in the custom ban DM message now actually render:
{reason},{actor},{guild},{user}, and{appeal_opens_at}all work. Before this, the message was sent exactly as typed, so a banned member saw the literal shortcode instead of why they were banned or by who. - Your custom message now appears at the top of the ban DM, above the standard notice and the appeal link, instead of replacing them - so your own wording never costs the banned member the information they need. The notify emoji you configured for bans applies to these DMs too.
Self-serve appeal and application links work everywhere
- The self-serve appeal page and public application pages now load for everyone you share the link with. They previously showed a 404 to visitors of some servers even though the page worked for the staff member who set it up.
- The share link the Appeals page hands you is now always the right one for your server, wherever you copy it from.
Fewer false RSS feed failures
- Feeds that are up no longer get reported as "took too long to respond" when the real delay was on our side looking up the feed's address. Address lookups get their own time budget, are retried once before a feed is called failed, and a lookup problem now says so instead of blaming the feed.
August 25, 2026
Protected species
- Fishing has a third optional hazard: protected species. Pick which fish are protected on the Fishing page, and landing one costs a fine and sells for a single coin no matter how big, shiny, or prestiged it is. No trophy bonus, no boss bounty, no prestige bounty on one either. It still goes in your aquarium, still scores tournament points, and still climbs its prestige stars, so it counts as a catch everywhere that is not money.
- The fine is a share of what the fish would normally sell for, 25 percent by default, and your own custom species can name their own fine instead. Junk fish can never be protected. Off unless you turn it on, like the other two hazards.
Appeals for imported bans
- If you brought another server's ban list over, those bans had no appeal link, because a link is only created at the moment we ban someone. There is now an optional self-serve appeal page: banned members sign in, see the bans we hold for them in your server, pick one, and start a normal appeal.
- It only ever offers bans that have no appeal link yet, so it cannot be used to skip your reappeal waits or reopen an appeal you already denied for good. Turn it on from the Appeals page and share the link it gives you.
- Importing a ban list and want it to work with this? Import those records with
activeset to true. Imported records count as history and are inactive by default, and an inactive ban is not appealable.
August 24, 2026
A new coin
- The default currency emote is new art, and it spins. Wins, payouts, and balances show the animated coin; list-heavy surfaces like the richest leaderboard and shop listings use a matching still version so a page of coins does not flicker at you. If your server set its own currency emote, nothing changes, your emote still shows everywhere.
Aquarium picker
- The aquarium slot picker now pages through your whole collection instead of stopping at your 25 rarest species. Same order as before, rarest down to most common, with Prev and Next buttons once you hold more than one page worth, and the empty option stays on every page of a filled slot.
Fishing board fixes
- Raiders boarding your deck now show up on a black board. The colour they used was the exact same red as an exotic catch, so a raid looked like the rarest fish in the game right up until you read it.
- The rarity buff list no longer prints a line for every source that has decayed to nothing. Anything worth under one percent after the stack is applied gets added up into a single entry, and disappears entirely when even the total rounds to zero. The sea state is always listed whatever it is worth, so you can still tell it is active.
The fishing pity chase
- Fishing has an optional pity system. Turn it on from the Fishing page and the cast board grows a 🎯 button: members pick one specific fish to chase, a rarity tier first and then the exact fish by name, and every cast without landing it builds pity. At the threshold, the next cast lands that very fish, guaranteed.
- One chase at a time. Switching fish starts the count over, picking the same fish again never does, and catching it naturally ends the chase too, so pity can never be banked. The picker prices every option before you commit and shows how many of that fish you have caught, and the cast board shows how many casts remain.
- The casts required scale with the rarity of the chosen fish and are yours to tune per tier on the Fishing page: 75 for a rare up to 3,000 for an exotic by default. It ships off - a guaranteed catch is a real economy lever, so turning it on is your call.
Timers read correctly on both sides of the clock
- Wording around live countdowns no longer breaks once the moment passes or while it approaches. "Runs until in 2 hours" on vessel upgrade announcements now reads "Expires in 2 hours", the raider prompt says "before they board (in 8 seconds)", and the same fix covers arrest and lie-low notices, fitted upgrade listings, and purchase receipts.
- A quirk this closed along the way: on servers with very short cast cooldowns, clicking Cast again in the instant raiders boarded could slip the cast past them and cancel the raid without a defence. The raid now holds the board until you cut a line or the clock runs out, as intended.
August 23, 2026
Instance status is honest, and Restart bot actually restarts
- "My Instance" now reports online only when your bot has really connected to Discord. It used to go green as soon as the bot process was alive, which meant a bot Discord was refusing could look perfectly healthy while being absent from your server. The same fix applies to the setup wizard after a purchase.
- When Discord refuses the connection, the page now shows you the reason Discord gave and what to do about it, instead of leaving you to guess. For the common case, privileged intents not being enabled on a new application, it names the two switches you need and tells you that restarting alone will not fix it.
- Restart bot now restarts your bot. It previously only asked the control plane to make sure your instance was running, which did nothing when the process was already up, which is exactly when you press it. If you enabled your intents or pasted a new token and nothing seemed to happen, that was why.
Fishing cast timers explain themselves
- The cast that opens The Deep now gets the faster recovery immediately. It used to keep the slower pre-Deep wait while the board announced that casts had sped up, so the first cast of every event did not benefit. Only the wait is shortened, because that cast's rarity roll had already happened.
- The buff panel now names what the sea state is doing to your cast speed, in both directions, and says so when your wait is longer than the server's normal cooldown. That case used to appear with no explanation at all.
- Worth knowing if you run a very fast cooldown: the sea state is applied before The Deep halves the wait, so a server on a five second cooldown with upgraded rods sits at two seconds during The Deep in fair weather and three in rough, and it rerolls twice a day. The buff panel prints the real interval, and that is the number to trust. Discord's own countdowns carry whole seconds and get rounded, which at a two second cooldown is half the wait. Investigated after a report from false_mariot.
Removed the two branding boxes from the Levels tab
- The Levels tab had a branding name and logo URL that were greyed out with a note saying nothing read them, which was true: rank cards have never drawn a brand mark and the public leaderboard uses the bot's own branding. They are gone rather than sitting there looking like settings. No server had ever set them, so nothing was lost.
Deleted message dates read correctly in every log format
- When a deleted message has no stored copy but we do know who wrote it, the
date in that entry is now written out plainly. If your server uses a custom
mod log format that puts the message in a code block, the old date could not
render there and showed as raw text. Custom formats that want the timestamp in
your own time zone can place
{sent}outside the code block.
Deleted messages we have no copy of get their own one-line event
- When a deleted message is not in the archive, HepBoat only knows the channel, the message id, and when it was posted. Those deletions used to post a full Message deleted entry with the author, the content and the id all reading "unknown", which took six lines to say nothing. They now post as their own event, Message deleted (no stored copy), on a single line with the three facts we actually have. Reported by pantherprime.
- The date in that line is a real Discord timestamp now, so it shows in your own time zone. In plain-text logs it used to be printed inside a code block, which meant it never rendered.
- The new event is yours to switch: keep it on for a complete record including bot cleanup, or leave it out of your event list if you only want deletions you can act on. Normal Message deleted entries are unaffected. This is also the answer to filtering these, because ignoring a user cannot hide a deletion that has no author attached to it.
- Two events that shipped earlier were missing from the dashboard's event picker, so they could not be selected: Member arrested (economy lockout) and Member pardoned. Both are pickable now.
Infraction reasons are not being cut short any more
- Reason lists used to stop at a fixed width with nothing to show they had cut,
so a long reason read as missing text.
infractions searchand the listings now show the reason in full whenever it fits, and end it with an ellipsis when it genuinely had to be shortened.infractions infohas always had the whole text, and nothing was ever lost from storage. Reported by spiderman_r_m_. - The Details view behind a search used to show LESS of the reason than the summary it expands. Both draw from the same width now.
- A reason written across several lines is shown on one line, so it stays inside its own row instead of pushing into the next entry.
infractions recent 50on a busy server used to fail with nothing at all, because the message was too long for Discord to accept. It now shows as many entries as fit and tells you how many it left out.
Set the market index yourself
- The Games page has a Market index card. It shows the live index, its last move, when the next move lands, and how much your members are holding, and it lets you set the index to any value you like. Handy for running the market as part of a server event instead of waiting on drift. Suggested by pantherprime.
- Setting it does not stop the market. The next tick moves your value by the same amount as always, and the clock restarts so your number holds for a full tick. Members see the change in the invest panel's recent moves like any other move.
- Read the line under the box before you commit. A set revalues everything your members are already holding, so the card spells out the percent move and what their holdings go from and to in currency first.
- Every set lands in the mod log with who did it and the size of the move.
August 21, 2026
Your aquarium is safe from a surplus sale
- Selling surplus now keeps every copy you have on display, not just one of
each species. Showing three of a fish used to mean a surplus sale took two
of them and left ghost slots in your tank.
fish sell allstill sells everything, because that one is you asking. Reported by false_mariot.
Optional: fishing can bite back
- Two new hazards for server owners who feel fishing prints too much money. Both are off unless you turn them on from the Fishing page, so nothing changes on a server that ignores them.
- Rogue waves lose a share of casts outright. The cast is spent, nothing is caught, and no coins are lost.
- Deck raiders board after a catch and give you a few seconds to cut the right line on the cast board. Repel them and nothing happens; miss, press wrong, or walk away and they take a capped share of your wallet. It can never take you below zero or past the cap the server sets. Suggested by pantherprime.
The caper panel got its space back
- Each caper is two lines now instead of four, so a full risk ladder fits in a message instead of filling the channel. Odds and payout on the first line, fine and lie-low time and lore on the second.
- A caper that loses money over the long run still says so, but only when it is actually true rather than as a line on every entry.
The default job and caper are fully editable
- The default job and default caper now have their own cards under Jobs and Capers, carrying everything that defines them: name, emoji, lore, pay range, cooldown, and for the caper its odds and fine range. The fine range had no control on the page at all before this.
- Those numbers moved out of the Work, crime and rob section, so each setting has one home instead of being split across two places.
Saving the Games page works again
- Removing the old ready-made job list left servers that had used it unable to save any part of their settings, with nothing on screen to say why. Fixed, and retired settings are now dropped quietly instead of blocking a save.
- A rejected save now tells you at the button and scrolls to the reason, instead of putting it below a very long form where nobody would see it.
Ready-made jobs and capers are priced off your server
- Adding one of the ready-made jobs or capers now prices it off your own default job or caper, at the moment you add it. Before this they all landed on the same pay range, which made the whole ladder pointless.
- The card shows what it will pay before you press Add, so you can see the ladder rather than guess at it.
- Adding one writes a normal job or caper you can rename, reprice, or delete. Remove it and add it again to re-price it against your current numbers.
Retired commands point where they went
invest portfolioandinvest sellwere answering with "that bet doesn't parse" instead of doing anything useful, because folding them into the market panel left the old words being read as an amount. They now open the panel and say where the thing went.invest sellnever sells on its own - it points at the Sell button, because a command typed out of habit should not move your money.- The market also stopped calling an investment a bet when an amount really is unreadable.
tag edit,tag remove,tag info,tag owner, andtag listnow add a line pointing attag manageandtagswhen there is no tag by that name.
More panels: the market, quests, and profiles
investis now the whole market on one message: the live index, a trend sparkline, recent moves, your position and its profit or loss, and your wallet. Buy and Sell ask for an amount, Sell all cashes out in a click, Refresh re-ticks the index.invest sellandinvest portfolioare gone - they were this panel split across three commands.invest {amount}still buys straight away.questsrefreshes itself when you claim, so a collected quest stops offering a button without re-running anything, and a Claim all button appears when more than one is finished.profileis pageable. It opens on General - name, level and rank, wallet, a fishing headline, and your badges - with buttons for Leveling, Wallet, and Fishing.robnow tells you when you can try again on every refusal, not just after an attempt.
Work and crime are panels now
workopens a panel instead of printing a payout: the job you hold, what it pays, when your next shift lands, and a Work button that runs the shift right there.crimedoes the same with a button per caper.- Servers can build a job ladder. There is a default job everyone starts on (called Fisherman until you rename it), ten ready-made jobs from Dishwasher to Surgeon whose pay scales off your own numbers, and room for 24 of your own with their own pay, cooldown, lore, and role gates.
- Switching jobs happens inside the panel - Change job opens a private menu of everything open to you, and picking one takes effect immediately. Nobody else sees it, and it costs no typing.
- Capers work the same way: a default caper (Petty Nonsense), a ready-made risk ladder from Five-Finger Discount up to The Vault Job, and 24 of your own with their own odds, fines, and cooldowns. Each button wears its real success chance, and each caper burns its own cooldown.
- All of it ships empty. A server that changes nothing keeps exactly the work and crime it had, now with a button and a clock.
Size pays when you sell
- A fish's size now multiplies its sale price - a 2.5x sturgeon sells for 2.5x a sturgeon, and a boss-sized tank copy sells at its full size. Your existing tank starts at a neutral 1x average, so nothing you already hold re-priced; every fish you catch from now on carries its size to the register.
- Surplus sales keep your BIGGEST copy of each species and sell the small ones, so keep-one selling never ships your trophy.
The Founder Fishery
- HepBoat costs real money to run and a lot of free time to keep fixing, so there is now a way to chip in: the Founder Fishery on the dashboard takes donations, with no promised perks - it is a donation. Any donation of $3 or more earns the supporter badge.
- Donations of $5, $7, or $12 let you add ONE fish of your own to the global ponds - $5 puts it in the abyss, $7 in the expanded pond and deeper, $12 in every pond down to the starter one. You pick the name, the emoji, and the rarity; sale values are fixed by rarity so a founder fish is never an economy lever. Existing supporters get one fish on the house.
- Everyone can see the Founder Fishery gallery: every founder fish, its creator, pond, and rarity. Founder fish are catchable, collectable, and prestigeable in every server; servers with the founder fish control feature can opt their ponds out on the Fishing page.
Fishing quality of life, round two
fish profileshows any member's fishing standing - mastery title, lifetime catches, species seen, tank totals, and their gear. Collection logs stay private.profileis a real profile now instead of a second name for the rank card: one embed with a member's HepBoat badges, level and rank, wallet balance, and full fishing standing. No moderation history - profiles are for play.rankandlevelkeep the card.- Shop menus support multibuy: buying something no longer closes the picker. It re-arms with a fresh list (things you just bought drop off), so you can kit out in one sitting - it retires when nothing is left to buy or after two quiet minutes.
- Public angler profiles are a real showcase now: the whole collection - every species landed with lifetime catches, prestige stars, tank counts, shinies, and record sizes - plus your level and mastery title, not just the biggest-catches table.
- The
profilecommand reads likeinfonow: clean sections for badges, leveling, wallet, and fishing instead of one run of text. - The four per-exotic global badges retired - the HepTrout keeps its badge as the chase fish, and Master Angler stays, with its description now quoting the real species total, founder fish included.
- Mythic catches now glow ruby so the color ladder always climbs with the tier: gold, hot pink, ruby, deep red.
- Casting is a little snappier - the board now gathers your rods, bait, vessel, and the Deep's state in one round trip instead of four.
- The public fish leaderboard colors species by rarity and gains a Species view listing every fish in the server's pond, founder fish included.
- Opt-in public angler profiles: a new switch on the Fishing page publishes each member's fishing profile on the web, and the cast board and collection log link to it when it is on.
Names that show your standing
- Global admins now show up the way the dashboard shows them: their name in staff red with their flair chip beside it, on every public leaderboard, the fishing boards, and angler profiles. The red now catches the light as it passes.
- Supporter badge holders get the same treatment in gold. Hold any supporter badge and your name shines on every public page that lists it. Staff red wins for anyone who is both.
- Your badges now ride along beside your name on the public leaderboards, the fishing boards, and your angler profile - the same icons the rank cards draw, up to six of them, with the global admin badge leading. Hover any one of them for its name.
The aquarium
- Every fisher gets a display tank:
fish aquariumopens your tank as a board where each slot is a button - tap one and pick what swims there from your rarest catches. Three slots to start; mastery prestige stars 1, 3, and 5 open three more, so the endless star ladder finally unlocks something. - Your tank shows off everywhere: a strip on
fish profileandprofile, and on your public web angler profile it is a real aquarium - your fish swim, shinies glow, bubbles rise, and the light shifts with the water. - The tank is pure showcase. Nothing in it changes odds, prices, or protection - it is the trophy shelf.
Fishing notes
- Founder fish now show how many times they have been caught, everywhere, by everyone: on the gallery card in the Founder Fishery and next to the fish on the public All species view. The figure covers every server that carries the global school and refreshes every five minutes.
fish aquariumon someone else now shows their tank to you alone, and the receipt for posting your own is invoker-only. Your own tank still posts to the channel, because that is the point of a trophy shelf.- Sale receipts say
new balanceinstead offor a total of, because the old wording read like the total you had earned from selling rather than what is in your wallet now. Reported by false_mariot. - Server-defined species are now capped by your pond: 10 in the standard pond, 20 in the expanded, 30 in the abyss. Fish meant for every server swim in through the Founder Fishery - that is what it is for.
- The Founder Fishery gallery got roomier cards, so every fish shows its creator, rarity, pond, and date at a glance.
August 20, 2026
The Deep is a reward again
- The Deep no longer forces every cast down to a single fish. Hauls cap at 4 fish per cast while it runs, which on the halved cooldown means nobody lands slower during the event than outside it - multi-catch rods, vessel extras, and weather bonuses all keep working. The old rule quietly punished exactly the fishers who had invested the most.
- Your chance to hook a tier higher now caps at 75% normally (it was 50%, which one strong vessel boost could fill on its own, wasting every buff stacked on top). While the Deep is open the doubling runs under its own 95% ceiling, so the event always adds something no matter how loaded your stack is.
- Fish per cast has a hard ceiling of 10 across every source combined, and a sale never pays more than 50x the haul's raw value however your rod, vessel, and prestige bonuses multiply - the receipt says so if that ceiling ever trims a payout. Rods themselves still stack freely; pricing and balancing them stays your call.
Fishing quality of life
- The cast board's status line now carries a progress bar for your account prestige: how far you are into the next mastery title, or into the next star once you hold the top one.
- Selling fish now tells you your new wallet total: sold for this much, for a total of that much.
- The fish shop and the shield shop now show your coin balance, the same way the item shop and flair shop already did.
- The top rarity tiers got their own embed colors: relic catches glow hot pink and exotics land in deep red, so the color alone tells you how big the catch is.
- A new fish swims in every pond: the ForeverFifi Fish, a rare, catchable from the standard pond up through the abyss. The full collection is now 201 species.
Heists are worth pulling off now
- Winning a heist can never lose you money again. A clean getaway returns every stake, pays a small bonus on it, and splits the vault on top by stake share. The old design kept your stakes even on a win, so a crew staking past the fixed pot lost money on success - that is gone.
- Everyone picks their own stake now. Joining opens a form where you type your amount, with the setup fee spelled out before any money moves. The fee is the house's cut and is spent win or lose.
- The vault grows with the crew's combined stakes, and big money on the table nudges the odds up (capped - never a sure thing).
- The lobby board shows the live vault and each member's exact payout on a clean getaway before anyone goes in - the split is never a surprise.
- All of it is tunable on the dashboard: setup fee, pot scaling, stake bonus, and the odds cap.
Custom mastery titles are earned, not assumed
- On servers with a custom mastery ladder that starts above zero, every fisher wore the lowest title from their very first cast - a ladder whose first rung sat at 10,000 catches crowned a 3,000-catch member with it anyway. You now carry no title until you actually reach your server's first rung; the cast board shows the progress bar toward it instead.
Modlog role entries always name the actor
- Role changes granted by autolevel rewards (and the role commands) could render a custom modlog format's actor and reason as literal placeholder text. Every role entry now carries a real actor and reason, so custom formats fill in cleanly.
Public leaderboards work for everyone now
- Sharing a public leaderboard link (XP, games, or fishing) with someone who was not logged in to the dashboard could tell them the board was not enabled even though your server had turned it on. Public links now work for everyone, logged in or not, exactly as a public page should. Boards you have not enabled stay private as before.
Passing a deck check pays now
- The cast a passed deck check releases carries a luck bonus toward a rarer catch (15% by default) plus one extra fish, both tunable on the Fishing page. The check was always aimed past honest fishers, so honest fishers now get something for tapping through it.
- The check's pace also scales with your server's cast cooldown. On a server with five-second casts, the sharp-clicking and routine checks are measured in hours of play just like on a five-minute server, so heavy fishers on fast ponds stop meeting the deckhand every few minutes while scripted clickers still cannot fish a day without one.
Species prestige
- Every fish species now has its own star ladder, your server's custom fish included. Catch enough of one species over your lifetime and it prestiges: the star shows next to that fish on your catch lines and in your collection log, and it permanently sells for more from your tank (10% per star by default).
- Each star also pays a one-time bounty: the species value, times the server's multiplier (20 by default), times the star number. Thresholds grow steeply - 50 catches for the first star and about 2.5 times more for each after - so the deep stars are the true endgame grind.
- Pond mastery's prestige stars pay too: each star past the top title now lands with a coin reward, 10,000 by default and your server's to tune. Nothing about either ladder ever resets or takes anything away.
- Prestige pay is settled up, the way collection milestones always were: stars you earned before this update, or before your server defined its bounty, pay on your very next cast - the board announces what prestiged and exactly how many coins you just made. Every star pays exactly once.
- Everything is configurable on the dashboard's Fishing page, which also previews the exact prestige ladder your numbers produce.
August 19, 2026
Deck check buttons are just the symbols now
- The fishing deck check's buttons carry only their symbol. The colour word that used to sit beside each one is gone - it was there to confuse scripts, which it never really did, and it only made the buttons busier for you.
- The red lantern and red flag could also land on a red button, which made them hard to make out. Button colours are now dealt so no symbol ever sits on a background that hides it.
The sea has moods now
- Every fishing half-day your server rolls a sea state on its own fishing clock: glassy calm speeds recasts, storms trade slower lines for rarer pulls, sea fog doubles shinies, moonlit water runs heavy, and a rare feeding frenzy lands an extra fish per cast. The state is named on the cast board's buff panel like any bait or rod.
Boss fish
- Any species can now surface as a colossal boss of itself - your server's custom fish included. The cast turns into a short fight: press REEL and hold your nerve. Landing one records a size far past the normal 3x cap, pays a bounty of the species value times 30 by default (servers can tune it), and yes, a boss can be shiny.
- Bosses bite more often than shinies, and storms and moonlit water stir them up further. The biggest ones sit at the top of the trophy board by right.
A title next to your name
- Fishing now carries pond mastery: a title on the cast board earned from your lifetime catches, Deckhand up to Master Angler by default, and servers can rewrite the whole ladder with their own names.
- Past the final title, every 5,000 further catches adds a prestige star. The ladder never ends.
The deckhand is watching
- Fishing now notices automated clicking. Casting with relentlessly perfect button timing, over and over, gets your next cast stopped by a deck check: the board names one of the ship's objects and you tap its symbol. One tap, cast goes out, record wiped clean.
- Heavy fishers meet a routine check once in a while too, so seeing one is normal. Casual fishing rarely runs into one at all.
- Pressing the wrong object is a failed check: the standard games arrest for a few minutes (servers can tune it, default 5), and the check is still there when you get back. Auto clickers make no progress at all.
- Servers can turn the whole thing off from the Fishing page.
Your mod log channel can ignore itself now
- Adding your mod log channel to the guild-wide ignored channels list used to silence the entire log: nothing posted to it at all. Listing it now does what you meant - staff cleanup happening inside the log channel stays out of the log, and every other channel's events keep posting there as normal.
Icebreaker keeps its secrets
- The board no longer shows the odds of the next floe holding. What a jump pays is still right there; whether the ice holds is the surprise.
- The default run is less gracious: the ice starts thinner, thins out further, and the house keeps a little more. Doubling your bet used to come through better than a third of runs at the defaults; the far shore now pays around 274x instead of 119x to match the harsher swim. Servers that tuned their own numbers keep them.
Selling surplus takes a confirm
- The Sell surplus button on the cast board now takes two presses: the first turns it into a red Confirm sell. The embed can shift under your finger on mobile, and a mis-tap aimed at Cast again should never sell your fish.
Heists can start early
- The member who opened a heist can press Go in now to send the crew in before the lobby closes, for the daring and the greedy. Whatever odds more hands would have brought go with it.
More for quests to watch
- Quests can now count casts: a new "line cast" event fires once per cast no matter how many fish a multi-catch rod lands, so "cast 20 times today" counts casts, not fish.
- Icebreaker results now carry the floes cleared, so "clear 5 floes in one run" is buildable as a quest.
- The quest builder's examples grew to match: daily cast counts, weekly blackjack win counts, and floe-clearing runs are all in the docs. Wins, streaks, multiplier thresholds, and per-game outcomes were already supported - if your server only ever had one quest, the Quests page is where new ones are authored.
August 18, 2026
Tournament results show the top ten
- The tournament results embed now lists the top ten finishers so everyone can see how far they got. The podium keeps its medals, and prizes still go to the top three.
- New tournament option: show members their own running score on the cast
board while the window is open. Off by default, and placement stays a
surprise until the results either way. Turn it on from the dashboard's
Fishing page or with
fishing.tournament.show_points.
Expired mutes name the member again
- When a tempmute, tempban, or timeout expired, the mod log entry could show the member's ID where their name belongs, so the ID appeared twice. The bot now looks the member up properly when it is not in the gateway cache, and only falls back to the ID when the member is unknown entirely.
- Infraction IDs in the built-in mod log formats and on the dashboard now
always render as
#12345, never as a bare number.
Fishing gets its own web leaderboard
- Turn it on from the dashboard's Fishing page and your server gets a
shareable page at
/leaderboard/<server id>/fish. It ranks your anglers four ways: lifetime fish caught, fish in the tank right now, shiny copies held, and species collected. - The same page carries the server's totals and most-caught species up top, the biggest-catches trophy book, and the latest tournament standings - including live standings while a window is running, which the bot never showed anywhere before.
- Web only and off by default, like the other public boards.
The public leaderboard pages caught up with their commands
- The richest-members web page now has the same All time / This week / This
month views as the
richestcommand; the weekly and monthly views rank coins earned in the window. - Both the XP and coin pages open with a row of server totals. The XP board shows ranked members, total XP, the top level, and who earned XP this week; the coin board shows members holding, coins in circulation, the top balance, and the median.
- Public leaderboard pages now refresh their numbers at most every five minutes, and every public board your server shares links to the others.
Duplicate messages fixed
- After an update landed, the bot could briefly run more than one connection at once, and every public message it posted went out two or three times - one copy from each. Ephemeral replies were unaffected. The window that allowed the duplicate connections is closed, and updates now roll out in an order that cannot reopen it.
August 17, 2026
The market shows its history
invest portfolionow carries the market's recent moves: a little trend line plus the last ten ticks, each with its percent swing, the index value it landed on, and when it happened - so you can read the market before you buy instead of guessing off one number.- History starts recording from this update forward, so the list fills in as the market ticks.
First cast of the day
- Your first successful cast of each fishing day pays a bonus, and casting on consecutive days grows a streak on top of it, up to a cap. The default pays 100 plus 10 per extra streak day.
- The fishing day does not reset at midnight UTC. It rolls over at a reset hour your server picks, in your server's timezone - by default 8pm Eastern - so an evening community gets its fresh day in the evening. Admins tune the bonus, streak, and clock on the new Fishing page.
Community cast goal
- A new opt-in goal for the whole server: every member's casts count toward one shared target per day or week. Every cast board shows the running progress.
- When the server hits the target, The Deep opens for everyone for a length you configure, with an announcement in the channel you pick (or wherever the goal-crossing cast happened). It works even if you keep random Deep events switched off, and it opens once per period.
- The goal follows the same fishing-day clock as the first-cast bonus, so the day and the week both roll over at your chosen reset hour.
Fishing has its own dashboard page
- Fishing outgrew its box on the Games page. Setup now has a dedicated Fishing tab: the pond and cast cooldown, the new daily bonus and community goal, rods, bait, your own species, collection milestones, the SS HepBoat, The Deep, and the weekly tournament - each in its own card with room to breathe.
- The Games page links straight to it, and both pages edit the same config without stepping on each other.
A games reliability pass, end to end
We audited the whole games plugin - fishing, the casino games, heists, investing, bets, and the arrest system - and fixed everything the audit turned up in one wave. The changes you can feel:
- A sale that would pay 0 no longer happens at all. If your surplus is only
retired species,
fish selland the Sell surplus button refuse up front and nothing leaves your collection. The Sell button also stops lighting up when there is nothing it could actually pay you for. - The catch log's footer now quotes what a sale would REALLY pay, with your rod and vessel sale bonuses applied, and its species count no longer counts retired species it does not show.
- Icebreaker no longer ends your run for you. The 5-minute timer was meant to catch abandoned games but it ran from the moment the board opened, so long careful runs were cashed out mid-game. Every jump or cash-out decision now resets it, and a slow run can no longer be mistaken for an abandoned one behind the scenes either.
- Arrests now mean what they say. A permanent arrest could silently fail (or even free the member) after the bot had been running a while, and an arrested member with a fishing board or a slots board already open could keep playing from it. Both are fixed: permanent arrests stick, and every cast, sale, and replay spin re-checks the lockout.
- Collection milestone rewards and weekly tournament prizes can no longer be lost to a momentary database hiccup - anything that could not be paid at that instant is paid on a later catch instead of being marked done, and a tournament announcement now says "prize pending" rather than pretending.
- The slots jackpot pot is protected the same way: if the payout cannot land, the pot goes back instead of vanishing.
- A permanent bait stays permanent. Re-buying it after the server changed its definition used to convert it into a limited-use one that ran out.
- Placing or topping up a server-bet wager at the exact moment the bet resolves now returns your stake instead of losing it, blackjack refuses a double it could not record instead of putting the extra half at risk, a duel acceptance that could not be recorded returns the stake and keeps the challenge open, and a heist lobby that fails to post returns every stake immediately.
invest sell allcan no longer get stuck refusing on very large positions, and the per-member investment cap and rob-shield cap hold even under simultaneous purchases.- In a pond that replaces the built-in fish and stocks no common species, casts now spread fairly across your fish instead of funneling almost every catch onto whichever species was listed first.
- The Deep's minimum gap between events is now measured from when one closes, so a long event cannot chain straight into the next, and an event that failed to open is no longer announced.
eco resetnow says what it always did: it resets a member back to the starting balance, not to zero.
Custom fish lost to that bug have been put back
- Every member who had a custom species taken by one of those unpaid sales has one of each back in their collection. Your catch log stores the species you have caught even at zero copies, so nobody had to be identified by hand.
- One copy per species is the honest limit. How many copies you lost was not
recorded anywhere, and a normal
fish sellkeeps one behind, so a lost duplicate looks exactly like a fish you never sold. Rather than invent a number, we put back one of each and left it there. Shiny status could not be recovered either, so restored fish are plain. - Because of that, everyone holding custom fish got one extra on top, as an apology for the trouble. That also covers anyone who had already re-caught their fish before we put things right, and anyone whose spare copies went missing without leaving a trace.
Your server's own fish now pay out when sold
- Selling priced only the built-in fish. Your server's custom species were not paid for, and worse, they were removed from the collection anyway - so a custom fish could disappear for nothing. If your haul was nothing but custom fish, the sale even reported that you had nothing to sell.
- Custom species now sell for the
valueyou set, onfish sell,fish sell all, and the Sell surplus button. The value the catch log quotes in its footer is the value you actually receive. - A fish whose species you have since deleted from your config cannot be priced, so it is now handed back instead of being sold for nothing. The catch log lists these under Retired.
- The biggest-catches board (
fish trophies) shows custom fish by name and emoji instead of their internal id.
Bank heists actually run now
bank-heistused to answer "Could not take {amount} coins for the job" no matter how many coins you had or how the game was configured. It was failing to file the paperwork that holds each crew member's stake safely, so it refused the job rather than risk your coins. Nothing was ever taken from anyone, and no heist had ever started.- Heists now assemble, take stakes, roll, and pay out as documented. If you tried one and gave up, it is worth another go.
August 16, 2026
Your server's own fish come first in the catch log
- A server's own custom species are listed first within their rarity, instead of sitting behind two hundred built-in fish. Species you have not caught yet stay hidden behind a question mark, as before.
See what your whole collection is worth
- The catch log footer already priced your sellable surplus. It now also prices the collection in full, so you can judge a complete sell-off without adding up rarities by hand.
Give items without minting currency
- New admin command
eco item {member} {kind} {item} [amount]hands a member a fish, bait, a rod, a flair, or a rob shield directly. Handy for giveaways and event prizes, and it keeps your money supply and market stats clean the way handing out coins does not. - The item has to exist on your server, so a typo is refused instead of stored, and every grant lands in the mod log.
August 15, 2026
Tags got a full rework
- Tag commands went from seven to four without losing anything.
tag {name}still sends a tag,tag createstill makes one, and everything else - editing, removing, inspecting, transferring ownership - now lives intag manage {name}as buttons, with forms that come pre filled so editing never means retyping. tagsis now a proper list built for servers with hundreds of tags: 15 per page, each with its description, and a picker that jumps straight into managing any tag on the page.- Tags can carry a description. Staff see it in the tag list instead of a wall of content.
- Tags can render as embeds, with a title, color, image, and footer, saved on
the tag itself. An embed tag arrives as an embed everywhere, including the
bare
!nameform and channel sends. - The
/tagslash command autocompletes tag names as you type and has real channel and member options, so no more typing-cand-uinto a slash box. The prefix flags still work exactly as before. - Editing other people's tags works like classic HepBoat again: it goes by
level, not by who made the tag. The wrong "you can only edit your own tags"
refusal is gone. Removal still respects
min_level_remove_others, and a new optionalaccessblock in the config can raise the bar for creating, editing, removing, or transferring. - Your muscle memory still works. The old
tags edit,tags info,tags list,tags owner, andtags removeforms land you in the new places, and!tags {name}still sends the tag. - The dashboard's Tags page shows descriptions, marks embed tags, and edits all of the new fields.
The heist Join button works for your whole crew
- Starting a bank heist posted a lobby with a Join button that quietly ignored everyone except the person who started it, so no crew could ever form.
- Anyone eligible can now join. The usual checks still apply: enough coins for the stake, not already in, not under arrest, and the crew cap.
Delete and Warn on reports now actually warns
- The Delete and Warn button on a message report deleted the message, skipped the warning, and still stamped the report "Deleted + warned". No infraction was recorded and nothing reached your mod log.
- It now files the warning like the warn command does, and the stamp is honest.
Claiming an unfinished quest says so
- Clicking Claim on a quest you had not finished said "You have already claimed this", which was wrong on both counts.
- It now tells you the quest is not finished yet.
Rod sale multipliers accept decimals in the editor
- The fishing rod editor's Sale x field suggested values like 1.1 in its own hint, then refused to save anything that was not a whole number.
- Fractional multipliers save now.
Rejected wagers no longer count toward quests
- Placing a wager that came straight back (the bet closed as you clicked, or you had already backed a different option) still advanced any place-a-wager quest. Only wagers that actually stand count now.
Messages your moderation removes stop earning XP
- A message deleted by the censor or punished by anti-spam still paid the author message XP. It no longer does.
Nicknames in Arabic are not "zalgo"
- The nickname filter's idea of zalgo included ordinary Arabic letters, so members with Arabic names could be flagged for having a name. The filter now matches actual stacked combining marks only, the same set the message censor uses.
The alevel commands moved to xp
- The legacy
alevelcommand group is retired.xp give,xp takeandxp resetalready did the same jobs.alevel showis nowxp show, the level cost calculator isxp level, and the operator importer isxp import.alevel rank resetdid nothing and is gone.
Applications pages match their tab colour
- The Applications pages in the dashboard now carry the same amber accent as their tab in the Advanced group, instead of falling back to the default blue.
Multi catch hauls are coloured by your best fish
- If your rod lands more than one fish, the message used to take its colour from whichever surfaced first. Landing junk and then a legendary painted the whole cast grey.
- The colour now follows the best fish in the haul.
Cast again on cooldown keeps your catches on screen
- Clicking Cast again before your cooldown was up replaced the whole message with "the fish aren't biting yet", wiping the record of what you had just caught. Double clicking made it worse.
- Your catches now stay put. The message just notes that it is not time yet, and clicking again does nothing further, since the countdown on the message is already live.
See exactly what your fishing buffs are doing
- Every cast now lists the buffs in play by name - each bait, each rod, your vessel, and the Deep - instead of quietly folding them into one number.
- Rarity boosts diminish as you stack more of them, so each cast shows both a buff's face value and what it actually counts for once the stack is applied, then your total chance to hook a tier higher. If your fourth bait barely moves the number, you can now see why.
- The list now covers everything affecting a cast, not just rarity: a faster cooldown shows the real before and after, along with fish per cast, your sale bonus, and any deeper pond a rod unlocked. Only what is actually in effect appears, so you will no longer see a rarity total of 0.0% when you have no rarity buffs.
- While the Deep is open it gets its own line, including the part that is easy to miss: it halves your cooldown and boosts rarity, but every cast lands a single fish. A multi-catch rod is no longer listed as active during it, because it is not.
- Thanks to @pantherprime for the suggestion.
Selling everything asks first
fish sell allsells the last of every species, which is the one thing in fishing you cannot undo. It now asks you to confirm. A plainfish sellis unchanged and still keeps one of each.
Sell your haul without leaving the fishing message
- The cast message now has a Sell surplus button next to Cast again. It
sells the same way
fish selldoes, keeping one of every species, and the receipt appears on the same message. - The button waits five minutes between uses. The
fish sellcommand has no cooldown at all, so if you want to sell after every cast you still can. - The button never sells your collection copies. Only
fish sell alldoes that.
Editing from a list no longer loses your place
- Picking something to edit used to reveal the form somewhere else on the page, either far above or far below the row you clicked. On a server with hundreds of tags that meant scrolling a long way and losing your spot.
- The form now opens in a panel beside the list. The list stays exactly where it was, so you can edit one item, close, and go straight to the next.
- Esc or clicking away closes it, and you are asked first if you have unsaved changes. Keyboard focus stays inside the panel and returns to the row you came from.
- This covers tags, AutoMod rules, forum posts, and application questions.
Feature granting puts the server first
- On the feature granting page the server box was last, below the whole flag catalogue and the bundle list. It now comes first, with the lists under it.
Collapsing the config editor puts everything back
- Collapsing could leave the editor stuck at the expanded width, pushing the page sideways past the edge of the screen. It now returns to its normal size every time.
- Expanding also used to render the editor narrower than the space it filled. It now uses the full width.
- The editor also loads from HepBoat itself now rather than an outside service, so it works on locked down networks and offline.
Expand fills the screen properly now
- Expanding the config editor left a dark strip along the bottom on larger monitors. The editor now reaches the bottom edge, and only makes room for the save bar while you actually have unsaved changes.
- Collapsing used to drop you somewhere else on the page, sometimes with the editor scrolled off screen entirely. It now puts you back exactly where you were, whether you collapse with the button or with Esc.
August 14, 2026
Room to actually read your config
- The config editor has an Expand button next to Check Config. It fills the window with the editor, which helps a lot on a laptop or with a long file.
- Check Config, its results, and saving all still work while expanded, and Esc brings you back.
Built-in fishing rods actually do their thing again
- If you put one of the built-in rods in your shop by id and did not restate its effects, it was being sold with no effect at all. A Twin Rod landed one fish instead of two, the Swift Rod had no cooldown bonus, the Golden Hook paid no extra, and the Lucky Rod gave no upgrade chance.
- Those rods now inherit their effects as described. If you did set an effect yourself, yours still wins, so you can still deliberately tone one down.
Level tracks follow your XP rate
- A category or custom level track was ignoring the XP rate set at the top of your autolevel config and always using the default of one point per 60 seconds. If you had set a slower or faster rate, those tracks did not follow it.
- Tracks now inherit the rate you configured, and a rate set on the track itself still takes priority.
Custom modlog formats stopped eating embed fields
- If you customized an event but only changed the plain one-liner, pretty mode was dropping every field off the embed. Message edits lost the before and after text, message deletes lost the message itself, and anything with a Reason field lost the reason.
- Parts you do not fill in now keep the shipped default, which is how it always should have read. Nothing to change on your end, your existing overrides just render properly again.
The shops sell things now
- Every shop is now a private message with a menu of what you can buy.
shopcovers roles and rank-card flair,fish shopcovers bait, rods, and vessel upgrades, andshieldsells shields. Picking an item buys it in the same message. shop buy,flair buy,fish buy, andshield buyare all gone. There is no separate command for buying anything any more, and no public message when you do.- Each menu only lists what you can actually get. Roles you already have or that HepBoat cannot assign, flair and rods you own, and permanent bait you already hold are left out instead of being offered and then refused.
Role commands are one family now
- Everything role related now starts with
role.rolesbecamerole search,roleinfobecamerole info,roles lockedbecamerole locked,noroles showbecamerole none, andnoroles purgebecamerole kick-none. role add,role remove,role list,role spray,role nuke, androle cancelare unchanged.- The old names no longer work.
role kick-nonewas renamed rather than folded underrole noneon purpose, because it kicks members and the name should say so.
Staff can arrest and pardon
- New
arrest,pardon, andarrestedcommands for your moderators. An arrest bars a member from every game, the faucets, the shops, fishing, transfers, and investing. - Leave the duration off for a permanent arrest, or set one like
2hor3d. Arresting someone who is already arrested extends it rather than shortening it, andpardonreleases them early. - They can still check their balance and the leaderboards while arrested, so they can see what they are missing, and it never blocks staff economy commands.
- Both actions are recorded in your mod log. Neither creates an infraction, so an economy timeout does not clutter the moderation history you read when judging a member.
- A failed bank heist applies the same lockout, and
pardonclears either.
Bank heist
- New game:
bank-heist. Stake coins to open a lobby, and up to three others join with a button before the window closes. One roll then decides it for the whole crew. - A bigger crew has better odds, but the vault is a fixed pot split by what each member put in, so a smaller crew takes a bigger share of the same money. Going alone is the longest odds and the biggest payday, deliberately.
- Failing can cost your stake, a further share of your balance, and can get the crew arrested: locked out of every game for a set time, not just heists. All three are off or adjustable per server.
- Setup - Games shows the odds, each member's share, and the expected value at every crew size from your own numbers, so you can see what you have configured before members do.
Fixes
fish collectionis private again. Today's pagination update accidentally made it post publicly, filling channels with people's full collections. It is back to being visible only to you, with the pages intact.
Stock bait
- The fishing editor can now add a ready-made bait ladder, one at a time or the whole pool at once, instead of typing six baits by hand. Bait stays off until you stock at least one, so adding one is what switches it on.
Upgrade the SS HepBoat
- The tackle shop now sells vessel upgrades: timed improvements fitted to the boat itself. They can raise sale prices, improve your odds of a rarer pull, and add extra fish per cast, and they stack with your bait and rods.
- A crew upgrade applies to everyone in the server for its duration, and is announced in a channel your admins choose. One member can stand a round for the whole crew.
fish shopshows what is currently fitted and when it lapses. Buying an upgrade you already have extends it rather than wasting the coins.- Admins can also schedule free events on a weekly timetable, so a double fish weekend is a setting rather than a manual job.
- Casting is now quieter in chat: the "line's in the water" acknowledgement is only visible to you, exactly like every other game, while the catch itself still posts publicly.
Fishing and faucets
- The collection log paginates. Servers with a big pond were losing their
lowest rarities off the bottom of the embed. Use the arrows, or
fish collection 3to jump straight to a page. - Collection milestones settle up. If your server was fishing before you set milestone rewards, or you add a rung later, members who already qualify are credited on their next catch, once, and the log tells them it was a catch-up. Milestones added after that only pay members who cross them afterwards, so adding a rung to an established server will not pay out to everyone already past it.
- Hundreds of new
workandcrimeresults. There were 16 outcomes in total, which is why you saw repeats within a few commands. There are now nearly 600, in the same voice. - The cast board now reads Fishing aboard the SS HepBoat, which it should have from the beginning.
Dashboard number boxes behave
- Number fields let you type. Previously you could not clear the last digit
(the box snapped back to its minimum), could not type a decimal like
1.5because the dot was swallowed, and on a field limited to 1 to 3 you could only ever land on 1 or 3. - Values are now checked when you save, not while you type. An out-of-range value is highlighted on the box itself with the allowed range, and the save bar tells you how many fields need fixing.
- Timezone fields are now a searchable picker showing the current time in each zone, so a typo cannot silently fail the save any more.
Icebreaker
- New game:
icebreaker. A penguin hops a row of ice floes, and every floe is thinner than the one before it. Jump to go further, or cash out between any two jumps and keep what you have. - The board shows the odds on the next floe and exactly what it pays before you commit, and the penguin walks across the ice as you go. Fall through and the floe turns to open water.
- The early hops are nearly safe and pay very little. Reaching the far shore pays enormously, precisely because almost nobody does: at the default eight floes a full crossing pays 119 times the bet and happens on under 1% of runs.
- Payouts are worked out from the real odds, so the server's house edge is identical wherever you stop. No stopping rule beats another.
- Walk away mid-run and HepBoat cashes you out at whatever you had already cleared, so a closed tab never costs you progress.
- Servers set the number of floes (4 to 12, default 8), the house edge, and how safe the first and last floes are. Setup - Games previews the exact payout ladder those numbers produce.
Nickname rules stop warning people they cannot apply to
- The nickname filter no longer warns a member it cannot actually rename. Discord refuses a nickname change on the server owner, and on anyone whose top role sits at or above HepBoat's, so those members were being warned for a name that was never going to change.
- If HepBoat cannot rename someone, it now does nothing at all: no warning, no infraction, and no mod-log line claiming a rename that did not happen.
- A warning is now issued only when the rename actually succeeds, so a missing permission can no longer produce a punishment on its own.
Joke punishments stop running
- A space after a symbol prefix now means the message is not a command.
!banruns;! bandoes nothing at all - no infraction, no log, no reply. - Moderators mime punishing each other with
! banand! slowmodeall the time, and until now the bot quietly ran them, leaving a real infraction on a real member from a message that was obviously a joke in context. - This covers custom commands too, so a spaced-out message cannot trigger one of those either.
- If your prefix ends in a letter or a digit, nothing changes: the space is
your separator there, so
hep banstill works exactly as before.
Honeypot keeps the evidence
- The message that trips a honeypot is now forwarded into your log channel before the action runs, so the text and the images survive. Previously the notification carried a link to the original, and a honeypot ban deletes that message, so by the time a moderator looked the image no longer loaded.
- This is the difference between guessing and knowing: with the message in front of you it is obvious whether a trip was a scambot or a member who wandered into the wrong channel and can simply be unbanned.
- The notification follows the forwarded copy and still carries the one-click Unban button. If the forward could not be made, it says so rather than showing a link that will not load.
- Needs a
log_channelon the trap, and the bot needs to be able to read the trap channel and post in the log channel.
Fishing is yours now
- Multi-catch rods: a rod can land 2 or 3 fish on a single cast and a single cooldown, each one a real catch with its own species, rarity, and shiny or trophy roll. Owning both a 2x and a 3x rod lands 3, not 5, and while The Deep is open a multi-catch rod lands one fish, since that window already halves cooldowns and boosts rarity.
- Rods are now your own. A rod is a name, emoji, price, and any mix of effects: fish per cast, faster casts, a tier-upgrade chance, a bigger sale multiplier, and unlocking a deeper pond for whoever owns it. The five built-in rods are just defaults you can rename, reprice, rebalance, or drop entirely, and you can invent as many of your own as you like.
- Your own fish. Add species with their own name, emoji, rarity, and value, either alongside the built-in pond or replacing it completely so your server has an entirely themed catalog.
- Your own collection ladder and tournament scoring. Set the milestone thresholds and rewards, and what each rarity scores in the weekly tournament. Only the first catch of a cast scores, so multi-catch rods do not take over the leaderboard.
- All of it on the dashboard. Setup - Games now has a full fishing editor covering rods, bait, your own fish, milestones, The Deep, and the tournament. None of it needs the config editor any more, and existing configs keep working untouched.
Server quests
- New Quests plugin: build your own quests over games, the economy, and everyday activity, and pay members coins, XP, or a role.
- Quests can count actions, require a streak, require a value such as a 30x crash cash out, or require an exact outcome such as a natural blackjack, and a single quest can have several steps in any order or in a fixed order.
- Reset one time only, daily, weekly, monthly, or across a season window.
- Rewards are claimed, not paid automatically: members run
queststo see progress and press a claim button. A finished quest stays claimable until its period resets. - Message and voice progress uses the same anti-spam rule leveling uses, so spamming does not earn quest progress faster.
- Built entirely on the dashboard's Setup - Quests page, where the condition builder writes a plain English sentence of exactly what you configured.
- Needs the Quests feature. Quests Pro raises the limit from 5 to 25 quests and unlocks XP and role rewards; coin rewards need the Games feature.
Locked roles are actually locked
locked_rolesnow means a full lock, not just a block on the bot's own role commands. While a role is locked nobody can grant it, remove it, or edit its name, colour, or permissions - any change is reverted automatically and recorded in the mod log.- HepBoat will not hand a locked role out either: join roles, role persistence, autolevel rewards, streak milestones, the games role shop, custom-command scripts, and the role commands all refuse while it is locked.
- Moderation still works. Mutes, mute expiry, infraction reversal, and the antiraid role can use a locked role, so locking your mute role cannot leave you unable to moderate.
- New commands:
unlock {role} [duration]suspends a lock for everyone (the default window is 10 minutes, set bylocked_roles_unlock_minutes),relock {role}ends it early, androles lockedlists what is locked. - Two honest limits, both announced in the mod log: HepBoat must be ranked above a role to enforce its lock, and a deleted role cannot be restored.
- Diagnostics now warns when a locked role is also set to be handed out by join roles, the role shop, or an autolevel reward.
Command listings show their arguments
- Every command table in these docs now lists a command with its arguments,
for example
/tempban {user} {duration} [reason]. Arguments in{curly braces}are required and arguments in[square brackets]are optional. - The lists are generated from the bot itself, so they cannot drift from what the commands actually accept, and the names match the option names Discord shows on the slash form.
- Some option names were made clearer in the process. If you used the slash
form of
/announce,/archive channel,/nuke channel,/mbanand the other multi-user commands,/antiraid,/starsmessage options,/bet create,/r clear, thealevelXP commands, or/infractions delete,/infractions reasonand/infractions duration, the option is named more plainly now. What you type is unchanged.
RSS feeds
- New RSS Feeds plugin: post new items from RSS, Atom, or RDF feeds to your channels. Up to 25 feeds per server, checked every 5 minutes, each with its own message template or embed, keyword include and exclude filters, and an optional role ping.
- Managed entirely from the dashboard's Setup - RSS Feeds page, including a Test feed button that previews a feed's newest items exactly as they would post. There are no Discord commands for this plugin.
- Adding a feed never floods a channel: existing items are marked read at the start, bursts post at most 5 items per check, and items post oldest first.
- A feed that keeps failing for about a day is disabled automatically, with the reason shown on the dashboard and recorded in the mod log.
- The retired Reddit and Twitch pages are gone: subreddit and YouTube channel feeds are covered on the RSS page with worked examples.
August 13, 2026
Plugin setup documentation
- Every active plugin page now includes a practical setup checklist, a safe first test, required dependencies, and troubleshooting steps.
- A new Plugin Setup Checklist covers the shared permission, role hierarchy, Diagnostics, rollout, and verification workflow.
- The docs validator now enforces the no-em-dash rule across hand-written pages and the generated command and feature tables.
The rewrite, in full
HepBoat was rebuilt from the ground up - a complete rewrite of the bot and the dashboard on a modern stack. The ground rule for the port: your configuration and your muscle memory keep working. Every plugin, command, and config option was re-verified against the original bot, and existing server configs load unchanged. Everything below is what changed on top of that.
New ways to run commands
- Slash commands, per server - pick exactly which commands appear as
/commandsin your server from the dashboard's Slash Commands page. Prefix commands stay primary and unchanged. - Right-click moderation - Timeout, Kick, Ban, Warn, and Delete and Warn straight from a message or member's context menu, with a reason form.
- Confirm buttons - destructive commands (bans on absent users, nuke, role spray, purchases) ask for a button confirmation instead of firing immediately.
- Personal replies are private - slash commands meant for one person (games, balances, rank-card settings, todo lists, help links) reply only to you instead of filling the channel.
- Mentioning the bot as a prefix (
@HepBoat ban ...) is no longer supported - use your text prefix or slash commands. A server with an empty prefix falls back to!.
New moderation tools
- Native timeouts -
timeoutuses Discord's own communication timeout, tracked as a real infraction with the usual search/edit/expiry tooling, anduntimeoutremoves one early with a logged reason. - The mobile mod panel -
minfoposts a user summary with one-tap Warn / Timeout / Mute / Kick / Ban / Tempban / Softban / Untimeout / Unmute / Clean buttons, each opening a small reason form. Buttons only appear if you could run the matching command, and theapps mod-panelright-click menu gives you a fully private version - nothing shows in chat. - Manual raid lockdown -
raid on [duration]starts the antiraid lockdown by hand (andraid offreports honestly when nothing was active); both directions are logged with the acting moderator. - Unbans are logged - every unban the bot performs (command, appeal, dashboard) now writes a mod log entry with the moderator and reason; manual unbans still log via the gateway event.
- Level-ups can reply to the message that did it - each track's announcement block has a new reply option: when announcing in the channel where the XP was earned, the bot replies to the leveling message itself instead of posting a loose line.
- XP is harder to farm - message XP cooldowns are randomized (like the
old bot's), and rank cards, rank text, and leaderboards refresh on a
short randomized delay instead of live, so members can't measure the
exact award per message. Level-ups still show instantly, and servers
can set
display_delay_seconds: 0for live numbers. - The coin leaderboard is findable again - the public richest-members
page now links from the XP leaderboard (and back), and the Games page on
the dashboard links straight to it. In Discord it has always been
richest/baltop. - Auto-clean can zap bot messages too - a new "Also delete bot messages" toggle per auto-clean channel (off by default) makes the timer delete bot output as well, including the bot's own replies. An active sticky message is never deleted either way.
- Per-command cooldowns - command overrides can now set a per-user
cooldown in seconds (on the Access page or in the YAML), perfect for
opening
rankup in a general chat without the spam. Moderators are exempt, and members still on cooldown are told how long is left. - Command levels sort themselves - the Access page lists level entries highest first instead of the order they were added.
- Flair buying is one tidy message - the
flair buy/flair setpickers now resolve inside the picker itself (picking from the menu IS the confirmation), and on slash the whole flow is private to you. - The dashboard got its identity back - a full visual refresh: deep blue-black surfaces instead of flat gray, the brand blurple on every button and focus ring, and each section of the guild nav now carries its own color so you always know where you are - Setup is violet, Config is sky, Moderation is red, Community is green, Advanced is amber, Premium is gold.
- Quarantine controls -
cease/unceaselock and unlock send permissions on a channel or the whole server;shut/unshutdo the same for voice. muterole- one command sets up a Muted role and applies the deny overwrites across every channel.- Manual bans show up - bans placed by hand in Discord's UI appear in
infractions searchasnativeentries with Discord's stored reason. - Faster raid response -
mbanuses Discord's bulk-ban endpoint, and antiraid can raise a raid shield that pauses invites and DMs at the Discord level during a lockdown. - Purges leave a paper trail -
cleanandnukearchive what they delete, andnukehas a real cancel. - Nuke cleans out the whole channel again - a bare
!nukedeletes up to 10,000 messages per run like the old bot (re-run for the next 10,000), with a confirmation showing the exact count first. - Everyone has a profile page - "My Profile" in the dashboard's user menu shows your HepBoat badges and lets you hide servers from your server list: the eye button on any server row hides it from your view only, and your profile is where you bring them back.
- The log format preview renders like Discord - the custom-format builder's live preview now shows real bold/italic text, mention chips with your server's channel and role names, localized timestamps, and emojis - instead of the raw markup.
- Fishing got a whole new ocean, then an abyss - servers can opt into
an expanded catalog about five times the size, or go all the way down:
the abyss pond holds 200 species across nine rarity tiers, including
relics and the ultra rare exotics - one cast in about fifty thousand -
crowned by Lord Jawbus. Every cast rolls a size (the top one percent are
trophy catches with an instant bonus and a
fish trophiesserver board) and can rarely come up shiny for five times the sale price.fish shopsells bait (stacks with diminishing returns) and three permanent rods, collections pay milestone rewards on the way to the global Master Angler badge, The Deep can rip open for a frenzy window, and servers can run a weekly points tournament with automatic payouts. Selling keeps one of every species so your collection means something (fish sell allstill cashes out completely), casting is now a button on the catch message instead of retyping the command, and somewhere out there swims the HepTrout Prime - catch it and you earn the global golden-fish HepTrout badge. Exotics carry their own global badges too. - Reports can attach the message - paste a message link or ID into
!report/ themessageoption on/reportand staff see the reported message highlighted in context, with the author's profile and one-click actions to delete it, softban, delete + ban, delete + kick, or delete + warn. Servers can require every report to attach a message. - Applications - build application forms for your server: staff apps, whitelists, signups, anything with questions and a decision. Members apply in Discord DMs (progress is saved, restarts never eat a half-finished application) or on the web, public applications get a shareable page plus a per-server directory, and staff review from Discord cards with one-click decisions or the dashboard queue. Decisions take optional reasons, DM (and optionally text) the applicant, and can automatically grant roles, kick, or post announcements. Blacklists, reapply cooldowns with staff overrides, per-application staff roles, and a full modlog trail included. Coming from AppBot? The Applications page imports your applications, questions, blacklists, and full submission history in one click, shows you exactly what will move first, and clears your data out of AppBot so you can kick it right away.
- Crash and the market - two new ways to lose money confidently:
crashrides a climbing multiplier you cash out of before it explodes, andinvest(when your server enables its market) buys into a shared index that drifts up and down on a schedule staff can tune. !invites prunetalks to you - it now confirms it started right away and reports how many invites it pruned when it finishes, instead of sitting silent until the end.- Owners can wipe their config - the server owner (and only the owner) can reset the entire configuration back to the fresh-install template from the Config page. It is config-only (infractions, tags, and XP stay), and the old config lands in Config History so it can be restored.
- Log lines lead with the person - the member an entry is about renders in bold in every default log format, so you can scan a busy log channel at a glance. Slowmode changes made through Discord's own channel settings now name who made them (when the audit log allows), and config-update entries use the same username style as every other line.
- Per-server bot blacklist -
blacklist add/remove/list(and a dashboard page) makes the bot fully ignore a user in your server while moderation systems still act on them. /report- members report a message or user to your staff channel, with an optional role ping.- Modlog hush -
hush/unhushtemporarily silence the mod log without touching your config.
New plugins and features
- Native AutoMod - Discord AutoMod rules managed from the dashboard, with executions and rule changes in your mod log.
- Honeypot - trap channels that auto-action scambots the moment they post; the ban notice carries a one-click Unban for false positives. The action can be a ban, tempban (your own length, lifted automatically), softban, or kick, and bans and tempbans both purge recent messages.
- Image scam scanning - teach the bot a scam image once and every recompressed or lightly-cropped copy is caught; optional OCR reads the text inside images against your existing filters. Ships with a shadow mode so you can watch before you trust it.
- Leveling, rebuilt - MEE6-compatible XP curve, multiple tracks, role rewards, generated rank cards (with per-user customization and buyable flair), importers for MEE6/Lurkr/Polaris/Amari, and an opt-in public web leaderboard. Rank cards prefer your server nickname.
- Games - a full per-server economy: daily streaks, work/crime/rob (with shields, protected roles, and an optional grave-robbing rule that guarantees heists against members who left or were banned), fishing, slots with a progressive jackpot, blackjack, coinflip duels, higher/lower, roulette, dice, horse racing, rock-paper-scissors, crash, an investable server market, parimutuel server bets, member payments, a role shop, and rank-card flair (catalog frames, your own custom gradient frames, and an opt-in rainbow Pride frame). Every game individually tunable; bets survive crashes. Game activity plays out publicly in the channel; errors, receipts, and personal browsing answer privately.
- Music - queue-based playback with a DJ role, search picker, and volume control.
- Server networks - opt-in cross-server ban syncing and infraction search with member/submitter roles per server.
- Ban appeals - public appeal forms bound to a ban, links delivered in the pre-ban DM, a staff review queue, an optional holding server for decision DMs, and escalating reappeal chains (for example 2 weeks, then 1 month, then 3 months, then permanent) with a per-denial "no further appeals" option. An approved appeal unbans first, then DMs the user with a single-use rejoin invite (pick the invite channel on the Appeals page, or let the bot use your vanity URL or system channel).
- Forum posts - bot-authored forum threads created and edited from the dashboard, so shared documents survive staff turnover.
- Todo lists -
/todokeeps a private per-server list. - External Web API - scoped bearer keys for reading infractions, stats, tags, and levels, importing/exporting infractions, and issuing real moderation actions from your own tooling.
- Feature flags and Premium - premium features are visible per server on a Premium page, purchasable through the shop along with self-serve white-label instances. Paid time is sold in 30-day blocks - top up any time from the shop and the new block stacks on the time you have left; nothing ever auto-renews on any payment method. Remaining time shows on the shop page, your server's overview page, and My Instance.
- Platform badges - a fleet-wide badge catalog; badges show on
!infoand as an icon strip on rank cards. - First-party docs - this documentation site, with full-text search.
The dashboard, rewritten
The dashboard is a from-scratch rebuild. The headline: your server's whole configuration is one YAML document with an editor, server-side validation, a Check button that lints against your real channels and roles, full change history with one-click restore, and live reload - the bot picks up every save without a restart. Around it:
- A guided Setup section (moderation, welcome, starboard, filters, channel rules, access, reports, honeypot, music, games) plus a Quick Setup wizard - every form edits only the keys you touch, so comments and hand-written config survive.
- A command permission studio that edits overrides/lockdown rules structurally and answers "would this command run here, for this member?" with the exact rule that decided.
- A message simulator that shows which censor rule or spam counter a message would trip, down to the config key that fired - including whether a reply ping would be caught.
- Blocked mentions now cover reply pings. Replying to a protected member
with the @ left on counts as mentioning them; replies with the ping turned
off still ping nobody and are left alone. The docs now explain the
u/r/cprefixes thatblocked_mentionsentries need, and a mention pasted straight from Discord is converted to the right form for you. - A custom-command workbench with a drag-and-drop builder that composes down to the exact DSL the bot runs.
- A mod-log builder with per-channel event pickers and a visual per-event format builder: edit the plain line and the full embed (author, thumbnail, color, reorderable fields) starting from the current format, with a live Discord-style preview and an event list you can scope to one of your log channels.
- Managers for infractions (edit, expire now, delete with optional punishment reversal), notes, tags, AutoMod, image scanning, appeals, networks, forum posts, API keys, and per-server access roles (admin/editor/mod/viewer).
Behavior changes worth knowing
- The mod log only lists real events - every event in the picker has a live emitter, and plain and pretty modes carry the same information.
- Deleted-message logs stay useful even without a stored copy - when a deleted message is older than the bot's records, the entry shows exactly when it was sent, and a moderator deletion still names both the author and who deleted it.
- Threads and forum posts are moderated like their channel - all the filters run inside them, and channel exemptions follow: whitelisting or ignoring a channel covers its threads, and games allowed in a channel can be played in its threads. Channel lockdown lists are the one exception - they do not recognize threads (see the Commands page).
- Command errors answer privately - slash command errors, cooldown notes, and usage nudges reply only to you instead of cluttering the channel.
- Rank-card backgrounds are static images -
rankcard backgroundtakes png, jpg, or webp. Animated cards are reserved for the bot's own staff. - Uploaded rank-card backgrounds no longer expire - backgrounds set by uploading an image used to silently disappear about a day later (Discord's file links expire); the bot now renews the link automatically every time your card renders.
- Rank-card customizations are per server - the background, accent
color, bio, title, and level-up message you set with the
rankcardcommands now apply only in the server you set them in, so each community sees the card you built for it. Your existing look was carried over to every server you had XP in. - Lockdown lists combine sensibly - "only in channels" and "only in categories" now work as a union: a command runs in any listed channel and anywhere under any listed category.
mutewithout a duration is a permanent mute instead of an error.r clearrequires an explicitallto wipe every reminder - a bare number clears just that one.- Starboards can run several boards off different emojis at once.
- Custom commands use a documented, consistent DSL; commands written for the old bot keep working through a compatibility layer and show a deprecation note when edited.
- Imported tags render their mentions again - the old bot stored tag
text with channel/user/role mentions defused, so carried-over tags showed
dead text; imports now restore them to working links (deliberately
excluding
@everyone/@here, which stay inert). User and role mentions in tags also ping for real now -@everyone/@herenever ping from a tag, no matter who wrote it. - Self-mutes are tracked as their own infraction type with
timeleftto check the remainder.
Removed
- Reddit and Twitch feeds - the APIs they relied on no longer exist in usable form; dedicated feed bots do this better.
temprole- retired; a dedicated role-toggle bot owns that flow. Old temprole infractions still display.hardmute/temphardmute- native timeouts plus the regular mute role cover the use case. Legacy hardmutes still display and still lift on expiry.- Presence-based filters - Discord gated the presence intent, so nickname filtering hooks member updates instead.
- A set of legacy joke commands and internal helpers (
lacking,rat,MEE6, the "Nope" trio, mobile-modding helpers,staff,notseen, and standaloneuptime- it lives insideaboutnow). The animal pictures survived.
That's the rewrite baseline. New releases after the public launch get dated entries above it, newest first.