Aller au contenu principal

Changelog

All notable changes to this project will be documented in this file. See commit-and-tag-version for commit guidelines.

4.5.6 (2026-07-19)

Bug Fixes

  • roll: bracket roll for custom formula broken (d8790c1)

4.5.5 (2026-07-19)

4.5.4 (2026-07-19)

Bug Fixes

  • roll: semi-direct bracket roll broken if message stats with markdown (0bc2792)

4.5.3 (2026-07-18)

Bug Fixes

  • regex: ReDoS guard (again) (f030389)

4.5.2 (2026-07-18)

Bug Fixes

  • bulk: add a limit for number of bulk & add translation for the generated error (00a0bdd)
  • cpu spike because statName was not escaped during the getStatsRegex that can lead to ReDoS (738935b)

4.5.1 (2026-07-17)

Bug Fixes

  • roll: bracket roll (semi-direct notation) broken (3652451)

4.5.0 (2026-07-12)

Features

  • web: add a sharable web page with all characters + allwo to share only one (1edfc9f)

Bug Fixes

  • bot:calc: ephemeral error when using hide + wrong attributes set to 0 (885fdea)
  • dice: in bulk roll, comments without # was stripped. (a423325)
  • roll:comments: broken parser when using slashcommands with comments in roll + comments options (f73cda8)
  • roll:gm: lost comments when used in dice (acea0f3)

4.4.9 (2026-07-08)

Bug Fixes

  • bot: enhance ignore count handling in comments (10733a2)
  • roll: should not send roll typing error in sentry (084a11f)

4.4.8 (2026-07-03)

Bug Fixes

  • roll: error when a formula use a sign & comparing the result to a sign (d38cbcc)

4.4.7 (2026-07-03)

Bug Fixes

  • bot:register: Cannot read properties of undefined (reading 'trim') (8ae52e1)

4.4.6 (2026-07-03)

4.4.5 (2026-07-02)

Bug Fixes

  • web:playground: wrong url to dashboard in the playground (fa88b98)

4.4.4 (2026-07-02)

Bug Fixes

  • roll: throw an error in invalid comparator (878ab3d)

4.4.3 (2026-07-02)

Bug Fixes

  • bot:direct: resolve {exp|0} with default value (aaf1c26)
  • bot:roll: fallback to normalize the brackets (77d358e)
  • bot:roll: resolve the $stats inside brackets before wrapping (8290c96)
  • bot:snippets: duplicated trailed comments (271a320)
  • web:playground: resolve {exp} (e7e393c)

4.4.2 (2026-06-26)

Bug Fixes

  • handle missing parent channels in thread operations (9a5d99b)

4.4.1 (2026-06-25)

4.4.0 (2026-06-24)

Features

  • add statistics management to Playground component (ef3a297)

4.3.0 (2026-06-23)

Features

  • web:playground: enhance dice rolling logic and UI options (d01a58f)
  • web: render Playground directly on playground.* hostname (f370ec7)

Bug Fixes

  • server: allow Iconify CDN in Content-Security-Policy (025b6fc)

4.2.0 (2026-06-22)

Features

  • web: add playground page (8d9c083)

Bug Fixes

  • web:i18n: not found i18n key, AGAIN (a5c62b8)

4.1.1 (2026-06-21)

Bug Fixes

  • customFormula: stats was not parsed properly (fa10984)

4.1.0 (2026-06-21)

Features

  • custom formula (ce9e108)
  • web:memory: use jwt for caching memory, no disconnecting when bot restart! (8cf12cf)

Bug Fixes

  • result: wrong display with shared rolls (3dc3f9a)
  • web: overlap in dashboard + config fixes (17cd029)

4.0.5 (2026-06-17)

4.0.4 (2026-06-17)

Bug Fixes

  • bot:on_delete: enmap error for key not found when deleting (93b799a)

4.0.3 (2026-06-12)

Bug Fixes

  • comments without # works again in /roll commands (b763fe9)

4.0.2 (2026-06-05)

Bug Fixes

  • core: do not roll bulk dice when the X in X#dY is not a number (for example a#d100 or hello world 1#d100) (67d0c54), closes a#d100 1#d100
  • dep: escapeRegex was added to uniformize (376de7b)
  • dep: remove escapeRegex and use the one in uniformize package (1aa1ba6)

4.0.1 (2026-05-30)

Bug Fixes

  • bot:graph: Cannot read properties of undefined (reading 'statsName') (e73d2a9)

4.0.0 (2026-05-15)

⚠ BREAKING CHANGES

  • the dbd command doesn't exists anymore, user need to use /macro instead of.

Features

  • add "total" rolls to have the number of roll done in the server (9320860)
  • add invert option for some system (85225c1)
  • add karma reset if needed (9774907)
  • add a select/choose in a list commands (6b2a84f)
  • add activities commands for admin only (private server) (5c64805)
  • add aide changelog (33f9bbd)
  • add an "update template" commands to quick update without re-registering the channels. (c808658)
  • add assets (b3141a1)
  • add auto-role (04eae4d)
  • add basic maths function (#15) (8c81b27)
  • add character name support to dice roll processing (c18e06d)
  • add chart generation and attribute selection functionality (ce3b04b)
  • add commands config anchor (8246805)
  • add delete template functionality (dfbeb10)
  • add disableCompare & sortOrder (3d965f9)
  • add edit command (5417182)
  • add editMe command to update bot profile information (8d7f68d)
  • add EMOJI_MATH constant and update return statements to include it (40441e5)
  • add expander functionality to user settings and update related commands (b571387)
  • add ignoreNotfound option to user settings and update related functionality (496d0d9)
  • add more options with statistiques (1fc924c)
  • add mp_roll command for private channel usage and update roll command contexts (3f9638f)
  • add new social media links and icons to constants (2cf58db)
  • add onDebug and onWarn event handlers to logger (770e23c)
  • add replaceUnknown option to user settings and update related functionality (7699eed)
  • add setPity command for managing pity configuration (24b6612)
  • add snippets functionality for creating, deleting, and listing user-defined macros (b721657)
  • add sortOrder parameter to rollCustomCriticalsFromDice function (e02812a)
  • add stats to user settings and refactor snippet display functions (0735246)
  • add strip_ooc option to remove out-of-characters messages, and other improvements (1ccbe33)
  • add support for custom critical in template (80dee14)
  • add support for info stats comments and refactor comment extraction logic (efa8a64)
  • add switching locale & fix locale (4a81dd9)
  • add tests (ec8ec70)
  • add tools function: luck_meter (6bb0b72)
  • add translation (43f203b)
  • add user data integration for dice rolls and character retrieval (7a284d6)
  • add user settings command for creating and displaying the link created by the context menu (5eb6ccb)
  • add web dashboard scaffold with Discord OAuth2 (steps 1 & 2) (#48) (3c02857)
  • adding a role for dbd / dbroll (335d573)
  • adding translation (92b4fe6)
  • adjust displaying result (075e0cc)
  • adjust the display of "simple send dice" (b5ef01a)
  • allow "global" dbd & dbroll if the template allow it (#13) (b3d01d9)
  • allow attributes in snippets (c74cbe6)
  • allow better handling combination of maths and test value (2c7368c)
  • allow bracket command (70a4a02)
  • allow calcultation in <(value) (e7630cb)
  • allow critical success/failure message (f0f233c)
  • allow force distribution of points (085b11e)
  • allow multiple logs for forum (0485125)
  • allow self registration (deda85e)
  • allow simple roll in DM (00451d7)
  • allow threshold in macro & snippets (6a060a3)
  • allow to close scene & return to the "default" thread channel (00958f4)
  • allow to disable thread auto creation (6af503d)
  • allow to edit avatar of embeds (58b5f6b)
  • allow to get the comments from a simple message after dice roll (without comments notation) (499dc15)
  • allow to hide roll result (f4d6c6e)
  • allow to ignore some dice from the karma (1ad2388)
  • allow to post directly in a forum and let the bot create a new post in it (603d26f)
  • allow to set a specific channel/thread for rolling result (f4da2af)
  • allow to set another channel for user (32c5123)
  • allow to set char even if not registered using the [@tag](https://github.com/tag) (9a0a36d)
  • allow to upload avatar instead to use a link outside of discord (2562a92)
  • allow to use normal message in roll (instead of comments only) (45e9690)
  • allow usage of formula (4c03a08)
  • allow using directly message to roll (6e233db)
  • allow using in forum for forum roleplay (e5a21c3)
  • allowSelf: add option where moderator needs to validate the sheet (64fb496)
  • alow to delete char if not delete when message was deleted (517a1ca)
  • attributes: allow formula in attributes (only between attributes) (c0d797d)
  • auth: implement stricter rate limiting and improve error logging (0dc212f)
  • autodelete usersettings when needed (29805f1)
  • avatar: allow using cdn image ! (778b254)
  • base roll should works the same as parsing message content (5fb8c78)
  • better autocompleting (014c464)
  • better commands for temp bubble (244ac6f)
  • better message (045d206)
  • better processing of custom critical and display value (0aab83b)
  • bot🎱 add 8ball command with response handling and integration (0753579)
  • bot:character: checkbox! yipee! (94a1d30)
  • bot:display: add access check for thread visibility and add an url to the sheet in the heading (8addbff)
  • bot:join: add onMemberJoin event handler for new guild members (59fbc8b)
  • bot:join: enhance onMemberJoin with logging and character caching (ec0a183)
  • bot:roll: allow comments + critical_success + critical_failure without using {c[fs]:(sign)(value)} for accessibility. (c32f097)
  • bot:tool: allow to move a sheet to another channel (dc66b95)
  • bot: enhance dice rolling with custom critical values #custom-critical (de2887d)
  • build: automate version synchronization with postrelease script (ecdb694)
  • Bulk_add multiple characters (4a116cb)
  • calc: add "transform" to round, ceil, floor, sqrt or square the result (bbc9cda)
  • calc: add calc commands based on statistics (6260c34)
  • calc: enhance calc sign with allowing >= and ⩾ ascii (37cc9a1)
  • calc: set calc result as other roll, allowing better "forwarding" with anchor and logUrl (499d5dd)
  • capitalize each words instead of the first (77a0ea8)
  • channelName: allow to detect emoji while channel starts with special ascii characters (57e4f44)
  • characters: add force refresh option for character fetching and cache invalidation (a9bb121)
  • choose: add | and weight with *nb (c981679)
  • choose: should allow multi word if using ; or , (590f95b)
  • command to display a chara data (48cc8ff)
  • commands: improve sign handling in roll and calc commands (9c6eb7d)
  • config: disable logs + anchor (026dc9d)
  • config: enhance display command with general and template subcommands (b9cb377)
  • config: update Vite configuration for optimization and build settings (d9efc64)
  • contextMenu: add a command to copy the result (88a6948)
  • copyResult: add possibility to create link using reaction + button (7045224)
  • custom critical per dice roll with {(*)c(sf):(sign)(number)} syntax. (ba55c42)
  • custom-critical: add custom critical in the embeds for user and template (00f88bc)
  • dashboard:character: add the refresh bouton directly on the header (af6ff42)
  • dashboard:favorites: implement favorites functionality for guilds (ea6e5cf)
  • dashboard: add channel access check for members and update character linking logic (7c89e07)
  • dashboard: add proper page when user refuses Discord OAuth (e49a9de)
  • dashboard: add role-based dashboard access restrictions (8aa5672)
  • dashboard: add server characters tab and name search filter (b616412)
  • dashboard: add server characters tab and name search filter for GMs (ea5a43a)
  • dashboard: show Discord owner name on server characters, grid layout for search (2e86b56)
  • dashboard: when editing the template, allow to update sheet with the new template (03f6aeb)
  • dbd: allow using {{exp}} in dice for replace with the expression (719d883)
  • db: enhance embed parsing logic for user and template data (11361f8)
  • dbroll: allow to exclude a statistiques from dbroll (d3e551f)
  • delete message about thread creation if any (13a9da4)
  • delete-char: now add a wall to prevent deleting by error (confirm button) (b428938)
  • description: add command to update guild description (01a67db)
  • dice with parenthesis will be better handled (43194b6)
  • dice: add 'ul' parameter to various functions for improved error handling (684328d)
  • dice: allow comparaison in ; syntax (6962e85)
  • dice: support for dollars values in expression (b2d6b43)
  • disallow channel with self register (09f1cc3)
  • display: display evaluated formula (33e070d)
  • docs: add links to Dashboard for server configuration and settings management (aa9457a)
  • edit will be done by button & modals (809d137)
  • enhance avatar handling by allowing attachment uploads and improving error handling (684baeb)
  • enhance dice roll processing with infoRoll support and refactor user data handling (97f8c8d)
  • enhance interaction handling and button functionality with new moderation options (ed444c9)
  • enhance leaderboard functionality to display all options when none selected (7535426)
  • enhance template functionality with character and original dice support (e4fff64)
  • enhance user data handling and improve comment formatting (666505d)
  • ephemeral for info & global context cmd (3c911dd)
  • error-handling: improve error reporting with detailed messages (08f698a)
  • exit the bot on uncaught error + send a message via webhook for alert (24aabc2)
  • handle by the core too much dice & stats (b58f182)
  • health-check: enhance health check endpoint with detailed status and resource usage (5e13b53)
  • help: add bot stats (859bd1c)
  • help: enhance help message with new configuration options and commands (c8b17b3)
  • if a channel is named with 🎲 send direct result (ec8162d)
  • if the server have a template ⇒ enable by default the commands ID when the bot is ready (73748eb)
  • implement avatar reupload functionality and improve avatar handling in display logic (e001718)
  • implement moderation for dice edits and validations (feb56fb)
  • implement template rendering with improved token replacement and context handling (7829572)
  • implement trivial comparison caching for pity management (20a500d)
  • import csv & hide characters (5089cec)
  • integrate character import, edit, and logs on dashboard (2a19d89)
  • integrate user data into dice roll processing and result formatting (7536b0d)
  • it is now possible to remove template dice value from user (0fa1b67)
  • karma: add sort option (raw/ratio) to leaderboard command (b7f6d7f)
  • leaderboard: add minimal threshold to create the leaderboard. (f575ea1)
  • link to original when rp message (9b9a37c)
  • logger: add sentry logs (cdf49ca)
  • logger: enhance logging configuration and add pretty log styles (a03f23b)
  • logger: improve logging format and add deleteByMessageIds function (513189a)
  • logging: replace console.error and console.warn with logger (468dfda)
  • luckmeter: add ephemeral (c5b4466)
  • math: allow outside of a guild (3d12852)
  • memory-database: use a enmap "memory" database to store all user-characters, speed up a lot the bot in the roll process. (befd6ee)
  • mention user when using the same channel for roll (5d97b18)
  • mj roll to roll any dice for another user (b8e7dc3)
  • mj: allow roll on global dice if exists (ac50687)
  • modals: implement user statistics registration and validation (3d6cbba)
  • onMessageSend: allow moderator to ping someone to "roll for them" (3ec1fd4)
  • opposition roll option in dice (6a49ec2)
  • optimize error message and try/catch (c2fa75d)
  • order: add support for sort order global configuration (9ad6a27)
  • overwrite existing snippets (d51025a)
  • parse-result: enhance compareValue to format originalDice output (238caaa)
  • parse-result: replace roll function with getRoll in custom critical (a75e6da)
  • parser: improve handling of custom critical rolls and comparisons (89e5f78)
  • pity: add pity feature and adjust karma display (07e3be0)
  • pity: trigger pity based on a random value, starting at 75%. (3c5c0a2)
  • prevent quickest moderator to validate until the user mark it as "confirmed" (220abed)
  • private char (7a5a26d)
  • reaction: allow to copy reaction between saved message/interaction + send result to DM if used with 📩 (c97c7cf)
  • refactor custom critical handling in embeds (40da490)
  • register template statistiques (170ecda)
  • register: allow to wipe all characters when registering new template (4fe5939)
  • remove character name parameter from dice roll functions (600b934)
  • remove followup with the commands, as you can copy codeblock in mobile (1c60fed)
  • remove restriction on adding a template & add it when template is deleted (ea61eb2)
  • rename DBD to macro (f02f16e)
  • result: allow to send result > 4000 (extreme case) (1a2b2f8)
  • roll: add exclusion of specific statistics (7fbd036)
  • roll: enhance dice roll logic with dynamic modificators and comparaison (fe93226)
  • roll: enhance mj_roll command with autocomplete for transformations (b90f6eb)
  • scripts: add dashboard release script for improved deployment (14bf01d)
  • selfRegister: enhance validation process with modal support and footer data handling (515868d)
  • set a default tags for forum post (d6cc887)
  • set translation (e65efa0)
  • snippets: allow to import snippets from a JSON file (81043c8)
  • snippets: enhance error handling and validation messages for snippets (85edb0e)
  • stats: add leaderboard, graph, and user bilan functionalities with new types and utility functions (c421594)
  • stripOOC: add thread mode option for OOC deletion configuration (9694448)
  • support sending in another channel (1633f89)
  • support to custom avatar URL in charasheet (3d4fd88)
  • sync-version: add script to synchronize package versions (7af49b6)
  • template assets (14821f1)
  • template: add components for managing templates including AddButton, CheckBox, and CopyButton (61643b2)
  • tests: add test for result within a simple roll (1c2cc33)
  • threshold: allow to use "simple" number to replace the original threshold (if any) (362386b)
  • timer: better displaying time (ec5f4fe)
  • ui: enhance ConfigFormFooter with Snackbar notifications for save and discard actions (febbaf1)
  • ui: enhance ConfigFormFooter with warning icon and style updates for better visibility (0d32312)
  • update comment processing logic and improve test assertions for dice rolls (aaff09a)
  • update dotenv configuration for production environment (d72d6a1)
  • update to node crypto engine for better number generation (5e6a543)
  • use the real name for statistics when found (be239e1)
  • utils: add isNumber utility function for value validation (ad200a2)
  • utils: integrate capitalizeParenthesis for enhanced text formatting (96a1586)
  • validation: update error message for user not found and improve condition for hidden output (a281943)
  • verify combinaison/formula before register (f645449)
  • web: show guild avatar and name as dashboard header (74eb658)

Bug Fixes

  • "D" not recognized (4d82096)
  • a simple dice always comparate to the stats, even when we don't want to (c42abcf)
  • add an error when the file is not a JSON file (a9e5125)
  • add fetchAvatarUrl utility and update avatar handling across modules (8540560)
  • Add lint suppression for Discord customId property names (1cb635a)
  • add MENTION_ID_DETECTION regex and refactor getIdFromMention function (f350b87)
  • add profiler start/stop calls in interaction handling (9375b60)
  • Add proper guard clauses for optional db parameter (5d4447e)
  • add silent option to suppress error messages in getTemplate function when loading the first time (2bf6270)
  • add support for displaying custom critical settings in the embed and diceType (3b4b8cb)
  • Add unused db parameter to Move.start for interface consistency (28e662e)
  • adjust error throw (27d20c4)
  • adjust help (879880e)
  • adjust message when editing avatar (504fed0)
  • adjust pagination logic and update footer for last page in modals (783eb61)
  • allow bracket roll in same message that code blocks (1e95a4f)
  • allow double sign in exploding dice (6f6c598)
  • allow more character in detection (7bd3bf6)
  • allow neg stats & block with force distrib (quickfix) (5443db1)
  • allow negative statistics in template (622e1ce)
  • allow to get cs and cf (00b547c)
  • allow to import/export with channel id (a6e1a6a)
  • appareance of server list (0c8c0e3)
  • async reaction (65d58ed)
  • attributes: should refuse to save any invalid attributes (5019afb)
  • auto-role: inverted the stats/dice role (153f4ca)
  • autocomplete: return empty array + verify existence of stats before autocomplete (61ca025)
  • autorole not added in some condition (0f92687)
  • available tags crashing (efb10dd)
  • avatar & channel are not mandatory (fd0a426)
  • avatar channel (e6cc395)
  • avatar: discord use different domains for media/cdn (e5173e8)
  • avatar: validate avatar URL (2fba310)
  • await in fetchChannel (9d4a9cf)
  • bad env for Math constants (9a01672)
  • better eval and message (26b9439)
  • better name for thread (934ac15)
  • better zod error (prevent crash if too much error) (508c7f5)
  • bot:character: add user_id in character Data to check if the user can have access to it (6dad042)
  • bot:choose: 0 in weight should be treaten as if (like string) and not throwing an error or ignored (8aa44cf)
  • bot:choose: adjust formatting for response content in choose/8ball command (a2cd69d)
  • bot:criticalcount: preserve streaks for no-op messages in addCountLogic (b404f25)
  • bot:guilds: remove guild from user favorites and clean caches on deletion (08064d1)
  • bot:karma: karma is now ephemeral per default (8654383)
  • bot:ready: build PRIVATE_ID set inside the handler to avoid TDZ (760e8ae)
  • bot:roll: enhance bulk roll handling in comparison logic (0e35caa)
  • bot:roll: re-integrate custom critical /critical in roll handling in slashcmds (2dd1efb)
  • bot:status: log status file creation and loading events (196cca2)
  • bot: enhance dice roll with stat replacement (1b82161)
  • bot: ensure public channel creation for template command #custom-critical (201b2cb)
  • bot: remove unnecessary await in downloadTutorialImages call (ac01d07)
  • broken cs/cf in baseRoll (75fac8c)
  • broken indirect roll (329bf6b)
  • broken success, multiple dice values... (429065b)
  • broken type (8c60946)
  • build error (4e9cf15)
  • bulk roll with extra space at the start (64c86ae)
  • bulk: should keep the original comparaison in the header (8d0c857)
  • bulk: shouldn't match critical if the dice type doesn't match in bulk roll (7b399ac)
  • buttons: button disappear when register dice (7cfdf44)
  • cache: duplicate key translation create a cascading issue in french (fe3b227)
  • calc: better result in chained expression (9f65ff8)
  • calc: undefined symbol when calc's result = 0 (8698ada)
  • calc: uniformize when rolling the expression (d91f5a1)
  • can't delete capa when " - " in name; (5b76094)
  • can't display negative result (553ce9f)
  • can't register user dice (df060b5)
  • can't remove result_channel (514417b)
  • cannot convert null to undefined (896a486)
  • cannot read of undefined "statsname" (4047bd3)
  • Cannot read properties of undefined (reading 'toLowerCase') in Object.entries(dices) (88b6c10)
  • capitalization issue on import (18b50b9)
  • capitalize for userEmbed fields name (27e4e8c)
  • case of channel not found (e25a776)
  • catch all error when needed (917ecf2)
  • catch delete error (df75694)
  • Centralized command helpers, autocomplete, and interaction context (0726907)
  • chainedRoll: better take into account the comments on_message_send.ts (ec18748)
  • change console.log to console.info for version update message (f093704)
  • change one line (8712a80)
  • channel where to send character sheet when default channel is not set (e86c701)
  • channels: enhance channel type checks to exclude non-text channels (920f6f3)
  • char is not iterable (8fc36ea)
  • characters 304 (90d2948)
  • characters doesn't appear on non admin ser (ab680d1)
  • choose: prevent random.sample to roll when the list is empty or howMany > list length (cf7988a)
  • choose: use array fill instead of repeat (ea59ff8)
  • clean critical blocks from dice content during processing (b348dba)
  • cmds appear event outside of the bot (f6be554)
  • colorize json has no call signature (21e95f1)
  • commands: correct client parameter in bulkDeleteCharacters call (50e86fb)
  • comment indentation (277ecf9)
  • comments deleted when an user data is send (3fbc339)
  • comments not set when using with stats (3797521)
  • comments with statistics in $ (95be868)
  • configuration: add option to disable thread creation and refactor related functions (a37dc02)
  • configuration: remove unused disabledLogs variable (bbd0a4d)
  • context should not take the bot as it (e4b0266)
  • context-menus: switch results to dice accordingly (19e2c83)
  • contextMenu: improve line matching logic and remove duplicate partial (21b9d19)
  • context: should not add the context link if the option is disabled (97b826a)
  • conversion from json to Enmap (361c468)
  • copyResult: add compare result (failure/success) & adjust aspect with other comments (f337d1a)
  • correct condition for generating stats dice in custom criticals (a25bf6f)
  • Correct duplicate prevention logic in Move feature (ce798f8)
  • correct French translations for graph attribute options (d5651b2)
  • Correct IFeature interface to match actual implementations (9bd5a0f)
  • correct import path for localization module in button functionality (649cda3)
  • correct page number in modal title (52312c5)
  • correct templateID check and update documentation formatting (97e1b52)
  • crash (ee212f7)
  • crash / unhandled error when message not found (33cabc2)
  • crash /multiple error even when skip = true (202fc4c)
  • crash at startup (795c8e3)
  • crash when changing command /delete cmd (a96dd65)
  • crash when config is not found (33d9d48)
  • crash when starting the bot when the template is not found (2fdcf37)
  • crash when the command is used in thread (c7eddcc)
  • crash with private allowed only for moderator (44b5d63)
  • critical message doesn't work (d6e1815)
  • csp: allow data URI fonts and external HTTPS images (ea2cbf8)
  • custom_critical: correct value assignment in custom critical logic (ea7827f)
  • custom-critical: allow dice also in custom critical compared to a dice to be rolled (prevent also errors :clown:) (249146c)
  • custom-critical: fix name trimmed in the database and also the affect skill and onNatural dice that have no effect (5e9c1f2)
  • customCritical: Invalid left hand side of assignment operator when using = instead of == (0e7851b)
  • damage: allow overriding template dice when registering an user (aka fix duplicate) (9d09c94)
  • damage: on duplicate value registered with damage dice, allow to override a existing value (035a9ef)
  • dashboard:character: avatar cache, again (45c494a)
  • dashboard:character: Some text was cut (ebd3485)
  • dashboard:char: user globalName instead of member name (6dd41af)
  • dashboard:snippets: attribute should be passed & allow snippets with it (c1c6799)
  • dashboard:template: fix modal height to prevent resize on tab switch (6b22c68)
  • dashboard:template: remove maxHeight property for improved scroll behavior (0f07245)
  • dashboard:template: restore original reducer actions to fix react-hook-form error (ab03b24)
  • dashboard: fix server characters tab - stats/avatar, refresh button, tab order (6c1fe36)
  • dashboard: perf + add template global config (24776e5)
  • dashboard: role removal, admin chip, strict admin restriction (48017b3)
  • dashboard: show all bot-present guilds in server list (8d0711b)
  • dashboard: slow down refresh spin animation to 1.4s (0e3c9b1)
  • dashboard: spinning refresh feedback and stale Discord CDN avatar fix (4c0b418)
  • dashboard: use local font instead of google for privacy & proxy (1220b46)
  • dbd: missing translation (0d87190)
  • db: move uniformization of user records to correct location (a9f2edc)
  • db: old version of the dashboard can lead to a wrong version for ascending/descending, so it will be fixed in ready (will be removed in future version) (0f4697d)
  • db: remove redundant comment in get_user.ts (99a79c6)
  • dbRoll: accent should be kept in the final roll message (eea8876)
  • dbroll: forgot to remove the detect critical before parsing the comparator (f824942)
  • deferReply to gain time when registering user (bc47ad4)
  • delete semi-direct message (a672928)
  • delete user (9948082)
  • delete: delete message and memory DB (4f435e1)
  • deletion with multiple ID (5e6ac3d)
  • dependencies: update discord.js to latest version (f547642)
  • dice not recognized (a8868ea)
  • dice:records: in first records, embed was not updated (a63b84c)
  • dice: expression should be also converted even used in {exp} (9fec858)
  • diceNotFound: I dunno why but in some condition, the template is not fully fetched on user resulting in cache error. (1dd6be0)
  • dice: preserve parentheses when replacing stats in formulas & allow combinaison of tree stats without error (45b57bd)
  • diceRoll: affectskill should only works if dollarsValue is defined (da22ba1)
  • diceRoll: comments for dice allowing "&" and main comments (c970115)
  • diceRoll: do not trimAll in baseRoll (because it breaks comments!) (02712e5)
  • dice: should use attribute even if no character is found (16e7b1b)
  • dice: use {exp} to prevent colliding with {{exp}} stats name (3732260)
  • disable ping on graph (asked by user) (44b193e)
  • disableCompare: incomplete comment preservation for multiple comments. (1f9d754)
  • disableCompare: message in example (60f4c2d)
  • disableCompare: update parameter names for clarity in processChainedDiceRoll and isRolling functions (9dc8634)
  • displaying of delete after was wrong if default settings is applied (71df774)
  • displaying of the self registration configuration (b1ed88b)
  • display: prevent runtime error if guidSettings is not disable (e21e15b)
  • do not delete user when not found (because cache error) (f283d97)
  • do not mention user in comments (09a8279)
  • do not readonly (0d3a96c)
  • double code d'erreur dans la commande not found character (d8b2274)
  • duplicate commands when adding the bot (27220eb)
  • duplicate message when roll in result_channel (fcb75dc)
  • duplication of charName (af4b15b)
  • edit-template: adjust dialog height and enable scroll buttons for improved usability (3bb9b40)
  • edit: bulk edit memory when editing template (cb15d29)
  • editMe: allow reset to default (84a8fa6)
  • embeds: specify message type as Djs.Message<boolean> (a7f488f)
  • empty comments (b20b96f)
  • empty message (567cd2a)
  • enhance moderation cancellation with user notification and utility functions (f3c0ef8)
  • enhance timer descriptions and error handling in translations (0b4950d)
  • enhance variable matching regex and improve formula processing (cbf2e62)
  • ensure attributes are only retrieved for valid guild interactions (0a062be)
  • ensure chart function is called for luckMeter.graph.title case (2aab076)
  • ensure critical count is only deleted if it exists on user quit (5064633)
  • ensure proper parsing of custom value in natural dice evaluation (b6402eb)
  • ensure user ID is valid and not a webhook in saveCount function (d761a5a)
  • error message (928d847)
  • error should be better to understand (b4ac915)
  • error when calling directly by name (25fb1dd)
  • error when generating formula test (3aa5e5d)
  • error: e.code can be a number or a string, add a conversion (7dec0b6)
  • errors: add missing permission error messages for bot access (e69da26)
  • excel je te hais (e676102)
  • exploding dice wrongly parsed (dfe1b23)
  • export critical count functions and clean up imports (77e303b)
  • export: fetch correctly avatar & channel when asked (e63fee9)
  • export: set default member permission to moderators (2233eea)
  • expr: should not display the +0 or -0 (4887dd2)
  • fallback to Discord embed field names when damageName missing (eef7497)
  • features: should not findLn for stats/macro (788704b)
  • fetch as text (71c68c4)
  • fetch character data from Discord instead of in-memory cache (de6c683)
  • fetch user when not found in cache (e8d345d)
  • field can be more than 25 so we need to separate the embed during registrationt oo (55d705e)
  • field not found (93c8239)
  • filter: crash when filter >=25 (13f2396)
  • filter: crash when filter >=25 (cff1b94)
  • filter: forgot normal returns when values <=25 (7a72ec4)
  • findChara: forgot to return when a char is found (caab5d2)
  • forgot a keys (024d014)
  • forgot opt (74f82e3)
  • forgot some char in dice recognition (828067d)
  • forgot to remove a param in rollWithInteraction (9f3dd4c)
  • forgot to remove console.log for course example (db0a536)
  • forgot to set context for all the commands (acebbb6)
  • forgot translation between things (52e6f0d)
  • format error when pinging user in comments (287baa9)
  • graph generation with minimal value (65f740a)
  • graph path (764d1f1)
  • guarding the fetching of botmember (ddbae15)
  • Handle case when user has no existing characters in Move (9d135d6)
  • handle dice with () and comments (ea8b9ca)
  • handle errors in dice comparison logic gracefully (13995c5)
  • handle JSON parse error when cancellation (21f085a)
  • hard cap for embeds (d0c9b55)
  • help message doesn't send right as they are pretty long (76669e2)
  • i18n: translation not found (44bf1e9)
  • id not found in mp (cd58af5)
  • if a custom channel is set, private char must be ignored (+-) (67c7eaa)
  • if the select menu disappear, make it appear with the button (f69a154)
  • implement parseComparator function and update interaction handling (eb9d6a9)
  • import: allow to delete old char via an option in the cmd (d28da76)
  • import: standardize header with new lib (22f32b7)
  • improve avatar error handling by updating error messages and refining URL validation (3fbfeac)
  • improve avatar file handling and validation in user interactions (3e8c184)
  • improve channel validation and response handling in send function (32e79b8)
  • improve character name handling and filtering in autocomplete functions (a848487)
  • improve critical hit handling and modify import paths (b0b2176)
  • improve error handling and logging in on_error.ts (32cb602)
  • improve error handling for missing pin permissions (6549266)
  • improve reply handling for empty user stats (f431dcf)
  • improve validation for imported stats and macros (f6cb849)
  • in some condition, discord image link can be cdn (0f56296)
  • increase minimum similarity threshold for snippet and dice matching (14990b6)
  • infostat: capitalize on list doesn't work (912a7d9)
  • interaction.guild.id doesn't exists in MP (033c0c2)
  • interaction: make resetButton asynchronous and improve select handling (d407024)
  • InteractionNotReplied: should check before to send the follow up (c266531)
  • interactions: handle expired interactions and add permission checks for modal replies (4dced5a)
  • interpolation (f3c7068)
  • isPrivate not recognized (5e043a9)
  • karma: display emoji when >1 (a053cb5)
  • karma: double counting (3bad446)
  • karma: fix misleading longestStreak display (802cbb1)
  • karma: total key not found (5ac2777)
  • keep bracket message because it a rp reply (188bc05)
  • key doesn't exists (c5c5abc)
  • key not found (7bf758d)
  • lang: update the lang in memory too (7bda09c)
  • logger with wrong config doesn't display logs (589d8a8)
  • logger: update release version to match package.json (77c5613)
  • logging: improve error logging format and add ephemeral replies for user feedback (51f1a10)
  • macro: clean up dice message handling and remove unnecessary comments (c7c9799)
  • Make db parameter optional in Avatar and Rename implementations (eee2eb3)
  • Make db parameter optional in IFeature.start for Move compatibility (5801e69)
  • make the get Embed translation agnostic (de9cbeb)
  • markdown conversion (b0f6651)
  • memory-database: make updateCharactersDb call awaitable in thread message handling (c2e5707)
  • memory-database: prevent fatal error when no message are found for cache completion (54674f9)
  • mention on mjroll (ce3cc6d)
  • message broken (c336a47)
  • message sending logic for chunked replies (6daff3e)
  • messageId is the first in the list ; not the last. (b4ae012)
  • misplaced return (09b42ef)
  • missing await (b365010)
  • mjRoll: default should give the first chara in the user (7cc41ca)
  • mjRoll: incoherence between data in user retrieval (64ee533)
  • modals: use modals from discord 14.23 (cc4d71d)
  • modificator + sign result (b51940f)
  • multiple dice combined not recognized properly (cdd78d0)
  • no data in userEmbed (332f850)
  • no need to check the type of critical as typescript do this for me (0ba0323)
  • no need to verify the template each time user add a new dice skill (0fa5c3f)
  • no permission to send the welcome so fallback to DM (5309d76)
  • no user found when registering skill dice (a6c3031)
  • on_message_send: text cc not recognized (f31014b)
  • on-message: regression with "comments" on normal dice (like 1d20 hello or 1d20 # hello) (410f5c0)
  • only moderator should be allowed to move an user to another (c0a8151)
  • opposition not rolled successfully (15fa28f)
  • optimize translation (114d29c)
  • optimize updating data (53696cc)
  • organization in commands (af43049)
  • parse-result: add custom critical value evaluation in the /dbd (a351c7e)
  • parse-result: do not add the comparator if the symbol for not is here (c83226f)
  • parse-result: enhanced the comments handling of shared rolls (eb90736)
  • parse-result: finally i fixed these too much space in res (dc99507)
  • parse-result: handle undefined statistics in convertNameToValue function (e70edae)
  • parse-result: handle when cc used without $ value & allow them (8fd5b8a)
  • parse-result: message for success should only be used on "exact" result (5f257e8)
  • parse-result: modify the message formatting in result_as_text.ts to ensure successOrFailure is prepended correctly (5dffb86)
  • parse-result: parseEmbed not exported (d8c5e90)
  • parse-result: should keeps the comments between [] as if (69d1ef5)
  • parse-result: trimAll on roll commands (49a8166)
  • parseEmbeds with name (31d37ab)
  • pass attribute in executing snippets for statsDice (1e64adc)
  • permission for edit image (1fce371)
  • pity: curly brace roll should be detected as trivial too (b6063e4)
  • pity: forgot to pass pity in the shared roll (067035a)
  • pity: incorrect operator use (should use ||) (dc82d27)
  • pity: should check pity only in guild context (87d1170)
  • pity: the prevCacheKey was updated to use the channelId (de77392)
  • pity: when adding count, streaks are not updated; when deleting, they must also not be decremented, otherwise the series becomes inconsistent. (e3da8d1)
  • pity: wrong authorid during delete in the cache (06b2334)
  • Potential null reference when accessing guild settings. (104836c)
  • pre-commit: add missing newline at end of file (557f4b2)
  • presentation of message (title case) (ef5f07e)
  • preserve original macro/damage names with accents in export and import (1e550ce)
  • prevent "interaction already replied" when an error is throw (d80b180)
  • prevent roll on simple number (289fff5)
  • private channel should not be allowed if private channel is not set (be08927)
  • random was not good, so check was broken (ec19d29)
  • record: improve avatar fetching logic and channel selection (should be used when the user is a moderator) (f5b7990)
  • record: update avatar verification to return null for empty avatar (a9d6e8f)
  • record: update user and channel input handling in modals (f005670)
  • refactor interaction reply to use reply helper function (5a609a3)
  • regex: ! should not be valid if not followed by != in theses case (42408bf)
  • regex: enhance STAT_MATCHER to support optional parentheses around variable names (04c9026)
  • register dice in first registering (8eab2b0)
  • registering DB (18ee649)
  • registration: duplicate found even if the diceEmbed is empty (f858a2f)
  • regression with parenthesis (d26e94f)
  • remaining value not accurate (c168085)
  • remove debug console logs from base_roll and dice_extractor (424da9a)
  • Remove IFeature implementation from abstract BaseFeature class (ee45662)
  • remove limitation for dice at 25 ; (f8aa815)
  • remove log (045acaf)
  • remove log (bbaeb25)
  • remove logs (f100735)
  • remove redundant cleanUrl option in getUserFromInteraction call (aa2484f)
  • remove unnecessary config object from fetch function return (bb9578a)
  • Remove unnecessary non-null assertions in MoveFeature (ccfe276)
  • remove unused intents (a0d4bb6)
  • rename 'combination' to 'combinaison' in codebase (main) (ed9639d)
  • rename commands (4bed704)
  • rename: allow to remove name with recognizing default (947d022)
  • renaming deleted all chara (1191ecd)
  • replace QUERY_URL_PATTERNS with DICE_COMPILED_PATTERNS in roll and validation logic (226e6a6)
  • reply already replied (231f96a)
  • reply: ensure proper handling of reply options for edited responses (491e1dc)
  • Required options must be placed before non-required options (4bdb3ac)
  • result: sanitize comments to preserve channel mentions and improve formatting (6f86133)
  • return default char when using display/graph with no charName (9f9a54f)
  • roll custom critical if they are dice (702a131)
  • roll detect for non roll message (072179f)
  • roll parsing (02bbae4)
  • roll: allow 4000 characters comments using componentV2 (c64d419)
  • roll: ensure comparator is checked before processing dollarValue (5a64c7d)
  • roll: evaluate expressions in dice rolls and update modificator handling (43a9697)
  • roll: exclude automatically dice from comparaison with {syntax} if the entire dice is in it. (da1f019)
  • roll: preserve comments in dice target during parsing (86cb176)
  • roll: reroll instead of getting the first result when sending to log (98a0a03)
  • roll: should get the critical roll when available in /roll (6ff921f)
  • roll: should not considerate ! as a sign if not followed by = (6bf7578)
  • roll: should support {dice} and {{dice}>20} as target failure/success (f025c93)
  • roll: template not found (1cfdf8f)
  • roll: undefined text in command (648caaf)
  • same (3f94da7)
  • sanitize string values in context menus (158d64e)
  • scene: verify bot permission before trying to create thread (08c734c)
  • send directly image from URL for tuto (d1ca784)
  • send: urgent fix - wrong message deleted (6ff718b)
  • set manager on the wrong name (f9a4422)
  • sharedRoll: better handling comments in complexe shared roll (statistics + comparaison) (4cde44e)
  • sharedRoll: false positive shared rolls when the comments includes ; (7123138)
  • sharedRoll: parenthesis dice with shared roll comparaison (a3d8f1c)
  • shared: should not displaying a empty line if not comments exists in the shared dice (75e6cbf)
  • shortened links (314e4be)
  • should have context for guild (dd55d32)
  • should calculate points on all stats, not only the "page" stats. (7be5803)
  • should delete input if (012ba3f)
  • should delete message input after sending the result (90df8b5)
  • should handle accented character in charname (055edc9)
  • should not be 0 when the number is under 10 (c0604ab)
  • should not display character if they are none (7a2c7d9)
  • should not display the server custom critical if they are not the same as the diceType (9ad333e)
  • should not keep the CC that continue to contains $ (48fed51)
  • should not processed dice between code (1d20) (fec2af8)
  • should not throw error when a min/max is 0 (6a6dcd3)
  • should not throw error when template not found (2667a8e)
  • should return early when no result found (1d38bf1)
  • should roll for bulked roll again (d6c1557)
  • should send error in DM to not flood the channels when an error appear (3de2478)
  • should support at last expression in shared rolls in snippets (fd5ca1d)
  • should throw an error if the set contains more than 25 fields (6bff0ee)
  • should throw error on undefined roll (9add0bf)
  • should use /ignore/ also in shared roll (d4a1e49)
  • should use error and not e (1ba1c38)
  • should use this.ul (e6963ce)
  • simplify cmds with removing /r and /select (7293e7e)
  • skill: improve dice validation and parsing in bot (bfc5522)
  • skip not found when ready (aef4c4c)
  • snippet validation rejects valid dice with comments (2cf7627)
  • snippets: should support {dice} and {{dice}>20} (ca2b38e)
  • snippets: should use reply for better handling result (94cc092)
  • sort server (06a99aa)
  • sortOrder: function should be awaited (1745703)
  • space can be allowed in key name (e5fb8ac)
  • statistic not found when registering the first time a dice (498cfa1)
  • stats:edit: combination starting with number is not a NaN (233374a)
  • stats: should be capitalized (9657e0e)
  • styles: update confirm colors for better visibility (3a9f123)
  • style: trimEnd the last test for finalRes (prevent too much newlines) (a7e13ed)
  • subtext format (c8be46e)
  • switch to enmap 6.0.0 (ad8cdbd)
  • synchronize user template with guild settings and remove unused utility (d083553)
  • template: add missing space in embed message (d3aab8f)
  • template: should add a little message & continue when the template can't be pined (006691a)
  • test (ea1a5f7)
  • the autocomplete should be based on the client instead of the guild lang (243b566)
  • there will always be an embed at this step (c82a896)
  • throw an error if stats not found on a selected char (6226433)
  • throw an error when the user is not found to create an early return instead to wait for an exploding assignment (0548d69)
  • total = 0 (a0d65b1)
  • total exceeded should be accurate (cb6c28d)
  • total is undefined (ecfd6fd)
  • total should not includes critical as they are already counted in they respective things (431460b)
  • total should not includes critical as they are already counted in they respective things (cfb149e)
  • translate: import error (5b9f6e0)
  • translation context word (4ab3926)
  • translation crashed (7627e90)
  • translation for transform (bdc8bba)
  • trim commands (9919d14)
  • typo (12ee6cf)
  • typo (ad08682)
  • typo (a1705a2)
  • typo during refractor broke cmd (07108c3)
  • typo in choose description (8799e95)
  • typo in name (d77c253)
  • typo in setDescriptions method (9d50e91)
  • typo that break the bot (f12a74c)
  • typo that broke translation description in user (be42cdb)
  • ui: enhance ConfigFormFooter with icon buttons for better UX (454df89)
  • undefined success (0a1d047)
  • unequal and equal doesn't works (824758e)
  • unequal and equal doesn't works (8fc0be5)
  • uniformize entirely broken… (816b35e)
  • unknow message while creating a new user (and probably other modal / button interaction) (86619c6)
  • unknown message while creating a new user (and probably other modal / button interaction) (4a7e9f0)
  • update avatar thumbnail handling to clear if links include discord CDN (5db3917)
  • update character and common translations in JSON files (8f052a9)
  • update charUserOptions and edit command to improve option descriptions and error handling (1874ef9)
  • update error handling in reply to include context for user not found (310ff7d)
  • update error handling in reply to include context for user not found (fcaedfb)
  • update error messages for template not found scenarios (183e50d)
  • update member access verification and handle private user data in interactions (d33c55f)
  • update regex patterns for custom critical and opposition handling (e07b4a6)
  • update reuploadAvatar function to include translation support and enhance error avatar handling (65a1316)
  • update template cache when needed (7f6a4d2)
  • urgent fix for uniformize (2adbd84)
  • use another regex for capitalization (5a86bd9)
  • use char.damageName for export (original names, fiche-only macros) (52775a8)
  • use const for restricted command name (3e959f0)
  • use correct import for utils (ab4dfff)
  • use new version of verify template (without checking roll) while caching (8f1aa73)
  • use primarry the language of the serv, not the registerer (b77ea9b)
  • use the metadata user only when there is no content available (5cb278d)
  • user not found (ecbeb00)
  • user not found (ed31185)
  • user not found when the username has number (like myname124) (62fbbfd)
  • user shouldn't be allowed to set a private sheet (80962de)
  • user shouldn't be mandatory (1187f36)
  • user: they are too much condition where we want to get the user if we can (03affbc)
  • utils: add uniformization for record keys and values (56cf1f7)
  • utils: enhance capitalizeBetweenPunct function (59e3c5e)
  • validate attribute names to prevent hyphens in user settings import (a36a999)
  • validation: correct logic for stat value number check (60d8455)
  • verify the url of avatar in case of problem (1305504)
  • web: stabilize Tooltip open prop to avoid controlled/uncontrolled switch (46eeb1e)
  • when using with create url, the result add too much \n (f528eca)
  • whitespace: starting with the space for align (ccb8aa3)
  • wrong data dir in enmap (6fc00a8)
  • wrong error message (3666b55)
  • wrong parsing of comments (3fec940)
  • wrong path for linux (07fc061)

3.21.0 (2026-05-03)

Features

  • bot🎱 add 8ball command with response handling and integration (0753579)

3.20.1 (2026-04-30)

Bug Fixes

  • bot:roll: re-integrate custom critical /critical in roll handling in slashcmds (2dd1efb)

3.20.0 (2026-04-28)

Features

  • bot:join: add onMemberJoin event handler for new guild members (59fbc8b)
  • bot:join: enhance onMemberJoin with logging and character caching (ec0a183)
  • bot:roll: allow comments + critical_success + critical_failure without using {c[fs]:(sign)(value)} for accessibility. (c32f097)

Bug Fixes

  • bot:status: log status file creation and loading events (196cca2)

3.19.1 (2026-04-26)

Bug Fixes

  • attributes: should refuse to save any invalid attributes (5019afb)
  • bot:karma: karma is now ephemeral per default (8654383)

3.19.0 (2026-04-25)

Features

  • dashboard:favorites: implement favorites functionality for guilds (ea6e5cf)

Bug Fixes

  • bot:guilds: remove guild from user favorites and clean caches on deletion (08064d1)

3.18.1 (2026-04-24)

Bug Fixes

  • bot:criticalcount: preserve streaks for no-op messages in addCountLogic (b404f25)

3.18.0 (2026-04-23)

Features

  • leaderboard: add minimal threshold to create the leaderboard. (f575ea1)

3.17.0 (2026-04-23)

Features

  • karma: add sort option (raw/ratio) to leaderboard command (b7f6d7f)

3.16.4 (2026-04-21)

3.16.3 (2026-04-21)

3.16.2 (2026-04-21)

Features

  • web: show guild avatar and name as dashboard header (74eb658)

Bug Fixes

  • bot:ready: build PRIVATE_ID set inside the handler to avoid TDZ (760e8ae)
  • web: stabilize Tooltip open prop to avoid controlled/uncontrolled switch (46eeb1e)

3.16.1 (2026-04-20)

Bug Fixes

  • bot:choose: 0 in weight should be treaten as if (like string) and not throwing an error or ignored (8aa44cf)

3.16.0 (2026-04-20)

Features

  • bot:display: add access check for thread visibility and add an url to the sheet in the heading (8addbff)

3.15.0 (2026-04-19)

Features

  • characters: add force refresh option for character fetching and cache invalidation (a9bb121)
  • dashboard: add channel access check for members and update character linking logic (7c89e07)

3.14.0 (2026-04-19)

Features

  • integrate character import, edit, and logs on dashboard (2a19d89)

Bug Fixes

  • bot:roll: enhance bulk roll handling in comparison logic (0e35caa)
  • bulk: should keep the original comparaison in the header (8d0c857)
  • fallback to Discord embed field names when damageName missing (eef7497)
  • fetch character data from Discord instead of in-memory cache (de6c683)
  • preserve original macro/damage names with accents in export and import (1e550ce)
  • use char.damageName for export (original names, fiche-only macros) (52775a8)

3.13.0 (2026-04-17)

Features

  • dashboard: add proper page when user refuses Discord OAuth (e49a9de)
  • dashboard: when editing the template, allow to update sheet with the new template (03f6aeb)

3.12.2 (2026-04-16)

3.12.1 (2026-04-16)

Bug Fixes

  • infostat: capitalize on list doesn't work (912a7d9)
  • stats: should be capitalized (9657e0e)

3.12.0 (2026-04-15)

Features

  • attributes: allow formula in attributes (only between attributes) (c0d797d)

3.11.0 (2026-04-14)

Features

  • bot:tool: allow to move a sheet to another channel (dc66b95)
  • template: add components for managing templates including AddButton, CheckBox, and CopyButton (61643b2)

Bug Fixes

  • dashboard:template: fix modal height to prevent resize on tab switch (6b22c68)
  • dashboard:template: remove maxHeight property for improved scroll behavior (0f07245)
  • dashboard:template: restore original reducer actions to fix react-hook-form error (ab03b24)
  • edit-template: adjust dialog height and enable scroll buttons for improved usability (3bb9b40)
  • pre-commit: add missing newline at end of file (557f4b2)

3.10.7 (2026-04-11)

Features

  • ui: enhance ConfigFormFooter with warning icon and style updates for better visibility (0d32312)

Bug Fixes

  • db: old version of the dashboard can lead to a wrong version for ascending/descending, so it will be fixed in ready (will be removed in future version) (0f4697d)
  • result: sanitize comments to preserve channel mentions and improve formatting (6f86133)

3.10.6 (2026-04-11)

Features

  • docs: add links to Dashboard for server configuration and settings management (aa9457a)
  • scripts: add dashboard release script for improved deployment (14bf01d)
  • ui: enhance ConfigFormFooter with Snackbar notifications for save and discard actions (febbaf1)

Bug Fixes

  • ui: enhance ConfigFormFooter with icon buttons for better UX (454df89)

3.10.5 (2026-04-09)

Bug Fixes

  • styles: update confirm colors for better visibility (3a9f123)

3.10.4 (2026-04-08)

3.10.3 (2026-04-08)

3.10.2 (2026-04-08)

3.10.1 (2026-04-08)

3.10.0 (2026-04-08)

Features

  • add ignoreNotfound option to user settings and update related functionality (496d0d9)
  • add replaceUnknown option to user settings and update related functionality (7699eed)

3.9.0 (2026-04-06)

Features

  • add chart generation and attribute selection functionality (ce3b04b)

Bug Fixes

  • correct French translations for graph attribute options (d5651b2)
  • ensure chart function is called for luckMeter.graph.title case (2aab076)

3.8.0 (2026-04-05)

Features

  • stats: add leaderboard, graph, and user bilan functionalities with new types and utility functions (c421594)

3.7.0 (2026-04-03)

Bug Fixes

  • snippet validation rejects valid dice with comments (2cf7627)

3.6.2 (2026-04-02)

3.6.1 (2026-04-01)

3.6.0 (2026-04-01)

Features

  • bot:character: checkbox! yipee! (94a1d30)

Bug Fixes

  • bot:character: add user_id in character Data to check if the user can have access to it (6dad042)

3.5.0 (2026-03-31)

Features

  • dashboard: add role-based dashboard access restrictions (8aa5672)

Bug Fixes

  • dashboard: role removal, admin chip, strict admin restriction (48017b3)
  • dashboard: show all bot-present guilds in server list (8d0711b)

3.4.1 (2026-03-31)

Bug Fixes

  • update character and common translations in JSON files (8f052a9)

3.4.0 (2026-03-31)

Features

  • snippets: enhance error handling and validation messages for snippets (85edb0e)

Bug Fixes

  • csp: allow data URI fonts and external HTTPS images (ea2cbf8)
  • should throw error on undefined roll (9add0bf)

3.3.0 (2026-03-31)

Bug Fixes

  • dashboard:snippets: attribute should be passed & allow snippets with it (c1c6799)
  • dashboard: use local font instead of google for privacy & proxy (1220b46)

3.2.0 (2026-03-31)

Features

  • config: update Vite configuration for optimization and build settings (d9efc64)
  • dice: add 'ul' parameter to various functions for improved error handling (684328d)

3.1.1 (2026-03-31)

Bug Fixes

  • dice: should use attribute even if no character is found (16e7b1b)

3.1.0 (2026-03-31)

Features

  • auth: implement stricter rate limiting and improve error logging (0dc212f)
  • dashboard:character: add the refresh bouton directly on the header (af6ff42)
  • dashboard: add server characters tab and name search filter (b616412)
  • dashboard: add server characters tab and name search filter for GMs (ea5a43a)
  • dashboard: show Discord owner name on server characters, grid layout for search (2e86b56)

Bug Fixes

  • appareance of server list (0c8c0e3)
  • avatar channel (e6cc395)
  • characters 304 (90d2948)
  • characters doesn't appear on non admin ser (ab680d1)
  • dashboard:character: avatar cache, again (45c494a)
  • dashboard:char: user globalName instead of member name (6dd41af)
  • dashboard: fix server characters tab - stats/avatar, refresh button, tab order (6c1fe36)
  • dashboard: slow down refresh spin animation to 1.4s (0e3c9b1)
  • dashboard: spinning refresh feedback and stale Discord CDN avatar fix (4c0b418)
  • dice: preserve parentheses when replacing stats in formulas & allow combinaison of tree stats without error (45b57bd)
  • do not readonly (0d3a96c)
  • same (3f94da7)
  • should not display character if they are none (7a2c7d9)
  • sort server (06a99aa)

3.0.1 (2026-03-27)

Bug Fixes

  • dashboard:character: Some text was cut (ebd3485)
  • dashboard: perf + add template global config (24776e5)

3.0.0 (2026-03-27)

2.38.0 (2026-03-27)

Features

  • add web dashboard scaffold with Discord OAuth2 (steps 1 & 2) (#48) (3c02857)

2.37.7 (2026-03-24)

Bug Fixes

2.37.6 (2026-03-20)

2.37.5 (2026-03-20)

Bug Fixes

  • should throw an error if the set contains more than 25 fields (6bff0ee)

2.37.4 (2026-03-20)

2.37.3 (2026-03-14)

Bug Fixes

  • Cannot read properties of undefined (reading 'toLowerCase') in Object.entries(dices) (88b6c10)

2.37.2 (2026-03-11)

Bug Fixes

  • cannot convert null to undefined (896a486)

2.37.1 (2026-03-01)

Bug Fixes

  • autocomplete: return empty array + verify existence of stats before autocomplete (61ca025)
  • deferReply to gain time when registering user (bc47ad4)
  • error: e.code can be a number or a string, add a conversion (7dec0b6)
  • guarding the fetching of botmember (ddbae15)
  • improve error handling for missing pin permissions (6549266)
  • scene: verify bot permission before trying to create thread (08c734c)
  • should use error and not e (1ba1c38)
  • template: should add a little message & continue when the template can't be pined (006691a)

2.37.0 (2026-02-19)

Features

  • description: add command to update guild description (01a67db)

2.36.0 (2026-02-15)

Features

  • math: allow outside of a guild (3d12852)

2.35.1 (2026-02-08)

Bug Fixes

  • export: set default member permission to moderators (2233eea)

2.35.0 (2026-02-05)

Features

  • add expander functionality to user settings and update related commands (b571387)
  • add stats to user settings and refactor snippet display functions (0735246)
  • allow attributes in snippets (c74cbe6)

Bug Fixes

  • ensure attributes are only retrieved for valid guild interactions (0a062be)
  • handle errors in dice comparison logic gracefully (13995c5)
  • improve error handling and logging in on_error.ts (32cb602)
  • improve reply handling for empty user stats (f431dcf)
  • improve validation for imported stats and macros (f6cb849)
  • increase minimum similarity threshold for snippet and dice matching (14990b6)
  • misplaced return (09b42ef)
  • pass attribute in executing snippets for statsDice (1e64adc)
  • prevent "interaction already replied" when an error is throw (d80b180)
  • space can be allowed in key name (e5fb8ac)
  • throw an error when the user is not found to create an early return instead to wait for an exploding assignment (0548d69)
  • update template cache when needed (7f6a4d2)
  • use correct import for utils (ab4dfff)
  • validate attribute names to prevent hyphens in user settings import (a36a999)

2.34.0 (2026-01-31)

Features

  • overwrite existing snippets (d51025a)

Bug Fixes

2.33.1 (2026-01-24)

Bug Fixes

  • duplicate commands when adding the bot (27220eb)

2.33.0 (2026-01-21)

Features

  • add delete template functionality (dfbeb10)

2.32.5 (2026-01-17)

Bug Fixes

  • cmds appear event outside of the bot (f6be554)
  • organization in commands (af43049)

2.32.4 (2026-01-17)

Bug Fixes

  • should have context for guild (dd55d32)

2.32.3 (2026-01-17)

Bug Fixes

  • forgot to remove console.log for course example (db0a536)
  • improve character name handling and filtering in autocomplete functions (a848487)

2.32.2 (2026-01-17)

Bug Fixes

  • forgot to set context for all the commands (acebbb6)

2.32.1 (2026-01-17)

Bug Fixes

  • simplify cmds with removing /r and /select (7293e7e)

2.32.0 (2026-01-15)

Features

  • add new social media links and icons to constants (2cf58db)
  • ephemeral for info & global context cmd (3c911dd)

2.31.0 (2026-01-02)

Features

  • add disableCompare & sortOrder (3d965f9)
  • add setPity command for managing pity configuration (24b6612)
  • add sortOrder parameter to rollCustomCriticalsFromDice function (e02812a)
  • implement trivial comparison caching for pity management (20a500d)
  • order: add support for sort order global configuration (9ad6a27)
  • pity: add pity feature and adjust karma display (07e3be0)
  • pity: trigger pity based on a random value, starting at 75%. (3c5c0a2)

Bug Fixes

  • allow double sign in exploding dice (6f6c598)
  • bulk: shouldn't match critical if the dice type doesn't match in bulk roll (7b399ac)
  • comment indentation (277ecf9)
  • context: should not add the context link if the option is disabled (97b826a)
  • disableCompare: incomplete comment preservation for multiple comments. (1f9d754)
  • disableCompare: message in example (60f4c2d)
  • disableCompare: update parameter names for clarity in processChainedDiceRoll and isRolling functions (9dc8634)
  • karma: display emoji when >1 (a053cb5)
  • karma: double counting (3bad446)
  • karma: fix misleading longestStreak display (802cbb1)
  • karma: total key not found (5ac2777)
  • no need to check the type of critical as typescript do this for me (0ba0323)
  • pity: curly brace roll should be detected as trivial too (b6063e4)
  • pity: forgot to pass pity in the shared roll (067035a)
  • pity: incorrect operator use (should use ||) (dc82d27)
  • pity: should check pity only in guild context (87d1170)
  • pity: the prevCacheKey was updated to use the channelId (de77392)
  • pity: when adding count, streaks are not updated; when deleting, they must also not be decremented, otherwise the series becomes inconsistent. (e3da8d1)
  • pity: wrong authorid during delete in the cache (06b2334)
  • Potential null reference when accessing guild settings. (104836c)
  • shared: should not displaying a empty line if not comments exists in the shared dice (75e6cbf)
  • sortOrder: function should be awaited (1745703)

2.30.9 (2025-12-24)

Bug Fixes

  • Add lint suppression for Discord customId property names (1cb635a)
  • rename: allow to remove name with recognizing default (947d022)

2.30.8 (2025-12-20)

Bug Fixes

  • mjRoll: default should give the first chara in the user (7cc41ca)
  • mjRoll: incoherence between data in user retrieval (64ee533)

2.30.7 (2025-12-18)

Bug Fixes

  • roll: should support {dice} and {{dice}>20} as target failure/success (f025c93)

2.30.6 (2025-12-17)

Bug Fixes

  • broken cs/cf in baseRoll (75fac8c)
  • regex: ! should not be valid if not followed by != in theses case (42408bf)
  • snippets: should support {dice} and {{dice}>20} (ca2b38e)

2.30.5 (2025-12-17)

Bug Fixes

2.30.4 (2025-12-17)

Bug Fixes

  • snippets: should support {dice} and {{dice}>20} (ca2b38e)

2.30.3 (2025-12-16)

Bug Fixes

  • regex: enhance STAT_MATCHER to support optional parentheses around variable names (04c9026)
  • roll: preserve comments in dice target during parsing (86cb176)

2.30.2 (2025-12-16)

Bug Fixes

  • replace QUERY_URL_PATTERNS with DICE_COMPILED_PATTERNS in roll and validation logic (226e6a6)
  • roll: exclude automatically dice from comparaison with {syntax} if the entire dice is in it. (da1f019)
  • roll: should not considerate ! as a sign if not followed by = (6bf7578)
  • update regex patterns for custom critical and opposition handling (e07b4a6)

2.30.1 (2025-12-16)

Bug Fixes

  • snippets: should use reply for better handling result (94cc092)

2.30.0 (2025-12-16)

Features

  • result: allow to send result > 4000 (extreme case) (1a2b2f8)

2.29.0 (2025-12-15)

Features

2.28.1 (2025-12-14)

Bug Fixes

  • add MENTION_ID_DETECTION regex and refactor getIdFromMention function (f350b87)
  • Add proper guard clauses for optional db parameter (5d4447e)
  • Add unused db parameter to Move.start for interface consistency (28e662e)
  • Correct duplicate prevention logic in Move feature (ce798f8)
  • Correct IFeature interface to match actual implementations (9bd5a0f)
  • features: should not findLn for stats/macro (788704b)
  • Handle case when user has no existing characters in Move (9d135d6)
  • Make db parameter optional in Avatar and Rename implementations (eee2eb3)
  • Make db parameter optional in IFeature.start for Move compatibility (5801e69)
  • missing await (b365010)
  • refactor interaction reply to use reply helper function (5a609a3)
  • Remove IFeature implementation from abstract BaseFeature class (ee45662)
  • Remove unnecessary non-null assertions in MoveFeature (ccfe276)
  • shortened links (314e4be)
  • should use this.ul (e6963ce)
  • there will always be an embed at this step (c82a896)
  • update error handling in reply to include context for user not found (310ff7d)
  • update error handling in reply to include context for user not found (fcaedfb)
  • when using with create url, the result add too much \n (f528eca)

2.28.0 (2025-12-12)

Features

  • choose: add | and weight with *nb (c981679)
  • health-check: enhance health check endpoint with detailed status and resource usage (5e13b53)
  • logger: add sentry logs (cdf49ca)

Bug Fixes

  • choose: use array fill instead of repeat (ea59ff8)

2.27.0 (2025-12-10)

Features

  • sync-version: add script to synchronize package versions (7af49b6)

Bug Fixes

  • logger: update release version to match package.json (77c5613)
  • macro: clean up dice message handling and remove unnecessary comments (c7c9799)

2.26.3 (2025-12-09)

Bug Fixes

  • add profiler start/stop calls in interaction handling (9375b60)
  • InteractionNotReplied: should check before to send the follow up (c266531)
  • roll: allow 4000 characters comments using componentV2 (c64d419)
  • sharedRoll: false positive shared rolls when the comments includes ; (7123138)

2.26.2 (2025-12-07)

Bug Fixes

  • allow negative statistics in template (622e1ce)

2.26.1 (2025-12-07)

Bug Fixes

  • allow bracket roll in same message that code blocks (1e95a4f)
  • allow neg stats & block with force distrib (quickfix) (5443db1)

2.26.0 (2025-12-03)

Features

  • choose: should allow multi word if using ; or , (590f95b)

Bug Fixes

  • allow more character in detection (7bd3bf6)

2.25.0 (2025-12-03)

Features

  • onMessageSend: allow moderator to ping someone to "roll for them" (3ec1fd4)

2.24.4 (2025-12-02)

2.24.3 (2025-12-02)

2.24.2 (2025-12-02)

Bug Fixes

  • regression with parenthesis (d26e94f)

2.24.1 (2025-12-02)

Bug Fixes

  • comments with statistics in $ (95be868)
  • opposition not rolled successfully (15fa28f)
  • sharedRoll: better handling comments in complexe shared roll (statistics + comparaison) (4cde44e)
  • sharedRoll: parenthesis dice with shared roll comparaison (a3d8f1c)
  • should handle accented character in charname (055edc9)
  • should use /ignore/ also in shared roll (d4a1e49)

2.24.0 (2025-12-02)

Features

  • mj roll to roll any dice for another user (b8e7dc3)

Bug Fixes

  • use the metadata user only when there is no content available (5cb278d)

2.23.1 (2025-12-02)

Bug Fixes

  • comments deleted when an user data is send (3fbc339)
  • crash /multiple error even when skip = true (202fc4c)
  • empty comments (b20b96f)
  • handle dice with () and comments (ea8b9ca)

2.23.0 (2025-12-02)

Features

  • allow to ignore some dice from the karma (1ad2388)
  • dice with parenthesis will be better handled (43194b6)

2.22.3 (2025-12-01)

Bug Fixes

  • choose: prevent random.sample to roll when the list is empty or howMany > list length (cf7988a)

2.22.2 (2025-11-30)

Bug Fixes

  • ensure user ID is valid and not a webhook in saveCount function (d761a5a)
  • id not found in mp (cd58af5)
  • interaction.guild.id doesn't exists in MP (033c0c2)
  • total = 0 (a0d65b1)
  • total is undefined (ecfd6fd)
  • undefined success (0a1d047)

2.22.1 (2025-11-28)

Bug Fixes

  • Centralized command helpers, autocomplete, and interaction context (0726907)

2.22.0 (2025-11-28)

Features

  • snippets: allow to import snippets from a JSON file (81043c8)

2.21.0 (2025-11-25)

Features

  • add karma reset if needed (9774907)

Bug Fixes

  • cannot read of undefined "statsname" (4047bd3)
  • message sending logic for chunked replies (6daff3e)
  • reply already replied (231f96a)

2.20.0 (2025-11-23)

Features

  • use the real name for statistics when found (be239e1)

2.19.0 (2025-11-22)

Features

  • allow threshold in macro & snippets (6a060a3)

Bug Fixes

  • should support at last expression in shared rolls in snippets (fd5ca1d)

2.18.1 (2025-11-22)

Bug Fixes

  • expr: should not display the +0 or -0 (4887dd2)

2.18.0 (2025-11-22)

Features

  • add snippets functionality for creating, deleting, and listing user-defined macros (b721657)
  • autodelete usersettings when needed (29805f1)

Bug Fixes

  • sanitize string values in context menus (158d64e)

2.17.2 (2025-11-22)

Bug Fixes

2.17.1 (2025-11-22)

2.17.0 (2025-11-22)

Features

  • allow to set char even if not registered using the [@tag](https://github.com/tag) (9a0a36d)

2.16.0 (2025-11-21)

Features

  • implement template rendering with improved token replacement and context handling (7829572)

2.15.0 (2025-11-21)

Features

  • enhance template functionality with character and original dice support (e4fff64)

2.14.3 (2025-11-21)

2.14.2 (2025-11-21)

2.14.1 (2025-11-21)

Bug Fixes

  • context-menus: switch results to dice accordingly (19e2c83)

2.14.0 (2025-11-21)

Features

  • add user settings command for creating and displaying the link created by the context menu (5eb6ccb)

2.13.3 (2025-11-18)

Bug Fixes

  • typo in setDescriptions method (9d50e91)

2.13.2 (2025-11-18)

Bug Fixes

  • typo in choose description (8799e95)

2.13.1 (2025-11-18)

2.13.0 (2025-11-18)

Features

  • add a select/choose in a list commands (6b2a84f)
  • update to node crypto engine for better number generation (5e6a543)

2.12.0 (2025-11-03)

Features

  • remove followup with the commands, as you can copy codeblock in mobile (1c60fed)

2.11.3 (2025-11-02)

Bug Fixes

  • correct page number in modal title (52312c5)

2.11.2 (2025-11-01)

Bug Fixes

  • crash when config is not found (33d9d48)

2.11.1 (2025-11-01)

Bug Fixes

  • update member access verification and handle private user data in interactions (d33c55f)
  • wrong path for linux (07fc061)

2.11.0 (2025-10-31)

Features

  • enhance interaction handling and button functionality with new moderation options (ed444c9)

Bug Fixes

  • correct import path for localization module in button functionality (649cda3)
  • improve avatar file handling and validation in user interactions (3e8c184)

2.10.8 (2025-10-31)

Bug Fixes

  • synchronize user template with guild settings and remove unused utility (d083553)

2.10.7 (2025-10-31)

2.10.6 (2025-10-31)

Bug Fixes

2.10.5 (2025-10-31)

2.10.4 (2025-10-30)

Bug Fixes

  • update avatar thumbnail handling to clear if links include discord CDN (5db3917)

2.10.3 (2025-10-30)

Bug Fixes

  • adjust pagination logic and update footer for last page in modals (783eb61)

2.10.2 (2025-10-30)

2.10.1 (2025-10-30)

2.10.0 (2025-10-30)

Features

  • enhance avatar handling by allowing attachment uploads and improving error handling (684baeb)

Bug Fixes

  • improve avatar error handling by updating error messages and refining URL validation (3fbfeac)
  • remove redundant cleanUrl option in getUserFromInteraction call (aa2484f)
  • update charUserOptions and edit command to improve option descriptions and error handling (1874ef9)
  • update reuploadAvatar function to include translation support and enhance error avatar handling (65a1316)

2.9.0 (2025-10-29)

Features

  • allow to upload avatar instead to use a link outside of discord (2562a92)
  • implement avatar reupload functionality and improve avatar handling in display logic (e001718)

2.8.1 (2025-10-28)

Bug Fixes

  • enhance moderation cancellation with user notification and utility functions (f3c0ef8)

2.8.0 (2025-10-28)

Features

  • adjust the display of "simple send dice" (b5ef01a)
  • better processing of custom critical and display value (0aab83b)
  • implement moderation for dice edits and validations (feb56fb)

Bug Fixes

  • enhance timer descriptions and error handling in translations (0b4950d)
  • should not keep the CC that continue to contains $ (48fed51)

2.7.0 (2025-10-20)

Features

  • add activities commands for admin only (private server) (5c64805)

2.6.3 (2025-10-18)

Bug Fixes

  • editMe: allow reset to default (84a8fa6)

2.6.2 (2025-10-18)

2.6.1 (2025-10-18)

Bug Fixes

  • update error messages for template not found scenarios (183e50d)

2.6.0 (2025-10-17)

Features

  • add editMe command to update bot profile information (8d7f68d)

2.5.0 (2025-10-16)

Features

  • add mp_roll command for private channel usage and update roll command contexts (3f9638f)

2.4.1 (2025-10-14)

Bug Fixes

  • improve channel validation and response handling in send function (32e79b8)

2.4.0 (2025-10-14)

Features

  • allow simple roll in DM (00451d7)

Bug Fixes

  • enhance variable matching regex and improve formula processing (cbf2e62)
  • implement parseComparator function and update interaction handling (eb9d6a9)
  • remove debug console logs from base_roll and dice_extractor (424da9a)
  • remove unnecessary config object from fetch function return (bb9578a)

2.3.7 (2025-10-11)

Bug Fixes

  • the autocomplete should be based on the client instead of the guild lang (243b566)

2.3.6 (2025-10-11)

Bug Fixes

  • translation for transform (bdc8bba)

2.3.5 (2025-10-10)

Bug Fixes

  • modals: use modals from discord 14.23 (cc4d71d)
  • record: improve avatar fetching logic and channel selection (should be used when the user is a moderator) (f5b7990)
  • record: update avatar verification to return null for empty avatar (a9d6e8f)
  • record: update user and channel input handling in modals (f005670)
  • user: they are too much condition where we want to get the user if we can (03affbc)

2.3.4 (2025-10-08)

Bug Fixes

  • contextMenu: improve line matching logic and remove duplicate partial (21b9d19)

2.3.3 (2025-10-08)

2.3.2 (2025-10-07)

Bug Fixes

  • roll: should get the critical roll when available in /roll (6ff921f)

2.3.1 (2025-09-26)

2.3.0 (2025-09-24)

Features

  • luckmeter: add ephemeral (c5b4466)

2.2.3 (2025-09-20)

2.2.2 (2025-09-16)

Bug Fixes

  • should send error in DM to not flood the channels when an error appear (3de2478)

2.2.1 (2025-09-16)

Bug Fixes

  • add fetchAvatarUrl utility and update avatar handling across modules (8540560)
  • total should not includes critical as they are already counted in they respective things (431460b)
  • total should not includes critical as they are already counted in they respective things (cfb149e)
  • typo that broke translation description in user (be42cdb)

2.2.0 (2025-09-12)

Features

  • add "total" rolls to have the number of roll done in the server (9320860)
  • enhance leaderboard functionality to display all options when none selected (7535426)

Bug Fixes

  • add support for displaying custom critical settings in the embed and diceType (3b4b8cb)
  • ensure critical count is only deleted if it exists on user quit (5064633)
  • export critical count functions and clean up imports (77e303b)
  • should not display the server custom critical if they are not the same as the diceType (9ad333e)

2.1.0 (2025-09-08)

Features

  • add tools function: luck_meter (6bb0b72)

Bug Fixes

  • clean critical blocks from dice content during processing (b348dba)
  • ensure proper parsing of custom value in natural dice evaluation (b6402eb)
  • on_message_send: text cc not recognized (f31014b)
  • should return early when no result found (1d38bf1)
  • should roll for bulked roll again (d6c1557)

2.0.2 (2025-08-17)

Bug Fixes

  • correct templateID check and update documentation formatting (97e1b52)
  • message broken (c336a47)

2.0.1 (2025-08-14)

2.0.0 (2025-08-14)

⚠ BREAKING CHANGES

  • the dbd command doesn't exists anymore, user need to use /macro instead of.

Features

1.65.0 (2025-08-14)

Features

  • base roll should works the same as parsing message content (5fb8c78)

1.64.5 (2025-08-12)

1.64.4 (2025-08-12)

Bug Fixes

  • should not be 0 when the number is under 10 (c0604ab)

1.64.3 (2025-08-12)

Bug Fixes

1.64.2 (2025-08-03)

Bug Fixes

  • bad env for Math constants (9a01672)

1.64.1 (2025-08-01)

Bug Fixes

  • comments not set when using with stats (3797521)

1.64.0 (2025-08-01)

Features

  • add character name support to dice roll processing (c18e06d)
  • add support for info stats comments and refactor comment extraction logic (efa8a64)
  • enhance dice roll processing with infoRoll support and refactor user data handling (97f8c8d)
  • enhance user data handling and improve comment formatting (666505d)
  • integrate user data into dice roll processing and result formatting (7536b0d)
  • remove character name parameter from dice roll functions (600b934)
  • update comment processing logic and improve test assertions for dice rolls (aaff09a)

Bug Fixes

  • should not processed dice between code (1d20) (fec2af8)

1.63.0 (2025-07-31)

Features

  • add support for custom critical in template (80dee14)
  • add user data integration for dice rolls and character retrieval (7a284d6)

1.62.1 (2025-07-30)

Bug Fixes

  • customCritical: Invalid left hand side of assignment operator when using = instead of == (0e7851b)

1.62.0 (2025-07-29)

Features

  • prevent quickest moderator to validate until the user mark it as "confirmed" (220abed)

Bug Fixes

  • handle JSON parse error when cancellation (21f085a)

1.61.1 (2025-07-28)

Bug Fixes

1.61.0 (2025-07-27)

Features

  • selfRegister: enhance validation process with modal support and footer data handling (515868d)

Bug Fixes

  • crash with private allowed only for moderator (44b5d63)
  • displaying of the self registration configuration (b1ed88b)
  • only moderator should be allowed to move an user to another (c0a8151)

1.60.0 (2025-07-26)

Features

  • add an "update template" commands to quick update without re-registering the channels. (c808658)

1.59.3 (2025-07-25)

1.59.2 (2025-07-25)

Bug Fixes

  • messageId is the first in the list ; not the last. (b4ae012)

1.59.1 (2025-07-24)

1.59.0 (2025-07-21)

Features

  • add invert option for some system (85225c1)

1.58.0 (2025-07-13)

Features

  • add EMOJI_MATH constant and update return statements to include it (40441e5)

1.57.0 (2025-07-11)

Features

  • add onDebug and onWarn event handlers to logger (770e23c)

Bug Fixes

  • typo during refractor broke cmd (07108c3)

1.56.3 (2025-07-04)

1.56.2 (2025-07-04)

Bug Fixes

  • await in fetchChannel (9d4a9cf)
  • cache: duplicate key translation create a cascading issue in french (fe3b227)
  • dbd: missing translation (0d87190)
  • registration: duplicate found even if the diceEmbed is empty (f858a2f)

1.56.1 (2025-07-04)

Bug Fixes

  • diceNotFound: I dunno why but in some condition, the template is not fully fetched on user resulting in cache error. (1dd6be0)

1.56.0 (2025-07-03)

Features

  • add strip_ooc option to remove out-of-characters messages, and other improvements (1ccbe33)
  • config: enhance display command with general and template subcommands (b9cb377)
  • stripOOC: add thread mode option for OOC deletion configuration (9694448)

1.55.0 (2025-06-27)

Features

1.54.3 (2025-06-26)

Bug Fixes

  • fetch user when not found in cache (e8d345d)
  • total exceeded should be accurate (cb6c28d)

1.54.2 (2025-06-22)

Bug Fixes

  • help message doesn't send right as they are pretty long (76669e2)

1.54.1 (2025-06-22)

Bug Fixes

  • user shouldn't be allowed to set a private sheet (80962de)

1.54.0 (2025-06-22)

Features

  • disallow channel with self register (09f1cc3)

Bug Fixes

  • private channel should not be allowed if private channel is not set (be08927)
  • remaining value not accurate (c168085)

1.53.1 (2025-06-22)

1.53.0 (2025-06-22)

Features

  • opposition roll option in dice (6a49ec2)

1.52.0 (2025-06-21)

Features

  • remove restriction on adding a template & add it when template is deleted (ea61eb2)

Bug Fixes

  • allow to get cs and cf (00b547c)
  • use const for restricted command name (3e959f0)

1.51.1 (2025-06-19)

Bug Fixes

  • dbroll: forgot to remove the detect critical before parsing the comparator (f824942)

1.51.0 (2025-06-19)

Features

  • custom critical per dice roll with {(*)c(sf):(sign)(number)} syntax. (ba55c42)

Bug Fixes

  • damage: allow overriding template dice when registering an user (aka fix duplicate) (9d09c94)
  • damage: on duplicate value registered with damage dice, allow to override a existing value (035a9ef)
  • roll custom critical if they are dice (702a131)

1.50.1 (2025-06-15)

1.50.0 (2025-06-14)

Features

  • allowSelf: add option where moderator needs to validate the sheet (64fb496)

1.49.0 (2025-06-14)

Features

  • allow force distribution of points (085b11e)

1.48.4 (2025-06-13)

1.48.3 (2025-06-11)

Bug Fixes

  • on-message: regression with "comments" on normal dice (like 1d20 hello or 1d20 # hello) (410f5c0)

1.48.2 (2025-06-10)

Bug Fixes

  • auto-role: inverted the stats/dice role (153f4ca)

1.48.1 (2025-06-10)

Bug Fixes

  • calc: undefined symbol when calc's result = 0 (8698ada)

1.48.0 (2025-06-10)

Features

  • exit the bot on uncaught error + send a message via webhook for alert (24aabc2)

1.47.1 (2025-06-09)

1.47.0 (2025-06-08)

Features

  • allow self registration (deda85e)

1.46.1 (2025-06-08)

Bug Fixes

  • chainedRoll: better take into account the comments on_message_send.ts (ec18748)

1.46.0 (2025-06-08)

Features

  • threshold: allow to use "simple" number to replace the original threshold (if any) (362386b)

1.45.3 (2025-06-08)

Bug Fixes

  • lang: update the lang in memory too (7bda09c)
  • should calculate points on all stats, not only the "page" stats. (7be5803)

1.45.2 (2025-06-06)

Bug Fixes

  • add silent option to suppress error messages in getTemplate function when loading the first time (2bf6270)
  • better zod error (prevent crash if too much error) (508c7f5)
  • export: fetch correctly avatar & channel when asked (e63fee9)
  • import: allow to delete old char via an option in the cmd (d28da76)
  • import: standardize header with new lib (22f32b7)
  • should not throw error when a min/max is 0 (6a6dcd3)
  • skip not found when ready (aef4c4c)
  • translate: import error (5b9f6e0)
  • use new version of verify template (without checking roll) while caching (8f1aa73)
  • user not found when the username has number (like myname124) (62fbbfd)

1.45.1 (2025-05-29)

Bug Fixes

  • no permission to send the welcome so fallback to DM (5309d76)

1.45.0 (2025-05-17)

Features

1.44.0 (2025-05-09)

Features

  • mj: allow roll on global dice if exists (ac50687)

1.43.2 (2025-05-08)

Bug Fixes

  • correct condition for generating stats dice in custom criticals (a25bf6f)

1.43.1 (2025-05-08)

Bug Fixes

  • crash when starting the bot when the template is not found (2fdcf37)

1.43.0 (2025-05-08)

Features

  • allow "global" dbd & dbroll if the template allow it (#13) (b3d01d9)

1.42.4 (2025-04-12)

Bug Fixes

  • unknow message while creating a new user (and probably other modal / button interaction) (86619c6)
  • unknown message while creating a new user (and probably other modal / button interaction) (4a7e9f0)

1.42.3 (2025-03-30)

Bug Fixes

  • interactions: handle expired interactions and add permission checks for modal replies (4dced5a)
  • logging: improve error logging format and add ephemeral replies for user feedback (51f1a10)

1.42.2 (2025-03-16)

Bug Fixes

  • channels: enhance channel type checks to exclude non-text channels (920f6f3)
  • configuration: remove unused disabledLogs variable (bbd0a4d)
  • dependencies: update discord.js to latest version (f547642)
  • embeds: specify message type as Djs.Message<boolean> (a7f488f)
  • errors: add missing permission error messages for bot access (e69da26)
  • remove log (045acaf)
  • reply: ensure proper handling of reply options for edited responses (491e1dc)

1.42.1 (2025-03-04)

Bug Fixes

  • whitespace: starting with the space for align (ccb8aa3)

1.42.0 (2025-02-23)

Features

  • help: enhance help message with new configuration options and commands (c8b17b3)

1.41.2 (2025-02-22)

Bug Fixes

  • configuration: add option to disable thread creation and refactor related functions (a37dc02)

1.41.1 (2025-02-18)

1.41.0 (2025-02-18)

Features

  • error-handling: improve error reporting with detailed messages (08f698a)

Bug Fixes

  • stats:edit: combination starting with number is not a NaN (233374a)

1.40.0 (2025-02-12)

Features

  • dice: support for dollars values in expression (b2d6b43)

1.39.1 (2025-02-12)

Bug Fixes

  • dice: expression should be also converted even used in {exp} (9fec858)
  • dice: use {exp} to prevent colliding with {{exp}} stats name (3732260)
  • roll: evaluate expressions in dice rolls and update modificator handling (43a9697)

1.39.0 (2025-02-11)

Features

  • dbd: allow using {{exp}} in dice for replace with the expression (719d883)

Bug Fixes

  • buttons: button disappear when register dice (7cfdf44)
  • i18n: translation not found (44bf1e9)
  • if the select menu disappear, make it appear with the button (f69a154)

1.38.2 (2025-02-11)

Bug Fixes

  • interaction: make resetButton asynchronous and improve select handling (d407024)

1.38.1 (2025-02-11)

Bug Fixes

  • dice:records: in first records, embed was not updated (a63b84c)

1.38.0 (2025-02-11)

Features

  • logger: improve logging format and add deleteByMessageIds function (513189a)
  • validation: update error message for user not found and improve condition for hidden output (a281943)

Bug Fixes

  • avatar: validate avatar URL (2fba310)

1.37.0 (2025-02-11)

Features

  • channelName: allow to detect emoji while channel starts with special ascii characters (57e4f44)
  • timer: better displaying time (ec5f4fe)

Bug Fixes

  • avatar: discord use different domains for media/cdn (e5173e8)
  • char is not iterable (8fc36ea)

1.36.0 (2025-02-05)

Features

  • avatar: allow using cdn image ! (778b254)

1.35.0 (2025-02-05)

Features

  • avatar: allow using cdn image ! (778b254)

1.35.0 (2025-02-05)

Features

  • avatar: allow using cdn image ! (778b254)

1.34.2 (2025-02-05)

Bug Fixes

  • disable ping on graph (asked by user) (44b193e)

1.34.1 (2025-01-13)

Bug Fixes

  • diceRoll: do not trimAll in baseRoll (because it breaks comments!) (02712e5)
  • forgot to remove a param in rollWithInteraction (9f3dd4c)
  • send: urgent fix - wrong message deleted (6ff718b)

1.35.0 (2025-01-03)

Features

  • calc: set calc result as other roll, allowing better "forwarding" with anchor and logUrl (499d5dd)
  • if the server have a template ⇒ enable by default the commands ID when the bot is ready (73748eb)

1.33.0 (2024-12-31)

Features

  • commands: improve sign handling in roll and calc commands (9c6eb7d)

1.31.0 (2024-12-31)

Features

  • calc: enhance calc sign with allowing >= and ⩾ ascii (37cc9a1)

Bug Fixes

  • calc: uniformize when rolling the expression (d91f5a1)

1.30.2 (2024-12-30)

Bug Fixes

  • calc: better result in chained expression (9f65ff8)

1.31.0 (2024-12-30)

Features

  • calc: add calc commands based on statistics (6260c34)
  • utils: integrate capitalizeParenthesis for enhanced text formatting (96a1586)

Bug Fixes

  • bot: enhance dice roll with stat replacement (1b82161)
  • db: move uniformization of user records to correct location (a9f2edc)
  • diceRoll: affectskill should only works if dollarsValue is defined (da22ba1)
  • diceRoll: comments for dice allowing "&" and main comments (c970115)
  • parse-result: do not add the comparator if the symbol for not is here (c83226f)
  • parse-result: enhanced the comments handling of shared rolls (eb90736)
  • parse-result: finally i fixed these too much space in res (dc99507)
  • parse-result: message for success should only be used on "exact" result (5f257e8)
  • parse-result: modify the message formatting in result_as_text.ts to ensure successOrFailure is prepended correctly (5dffb86)
  • parse-result: should keeps the comments between [] as if (69d1ef5)
  • parse-result: trimAll on roll commands (49a8166)
  • roll: ensure comparator is checked before processing dollarValue (5a64c7d)
  • template: add missing space in embed message (d3aab8f)
  • utils: enhance capitalizeBetweenPunct function (59e3c5e)

1.30.1 (2024-12-15)

Features

  • utils: integrate capitalizeParenthesis for enhanced text formatting (96a1586)

Bug Fixes

  • bot: enhance dice roll with stat replacement (1b82161)
  • db: move uniformization of user records to correct location (a9f2edc)
  • roll: ensure comparator is checked before processing dollarValue (5a64c7d)
  • template: add missing space in embed message (d3aab8f)
  • utils: enhance capitalizeBetweenPunct function (59e3c5e)

1.30.0 (2024-12-13)

Features

  • dbroll: allow to exclude a statistiques from dbroll (d3e551f)
  • parse-result: enhance compareValue to format originalDice output (238caaa)
  • parse-result: replace roll function with getRoll in custom critical (a75e6da)
  • parser: improve handling of custom critical rolls and comparisons (89e5f78)
  • refactor custom critical handling in embeds (40da490)
  • roll: add exclusion of specific statistics (7fbd036)
  • roll: enhance dice roll logic with dynamic modificators and comparaison (fe93226)
  • update dotenv configuration for production environment (d72d6a1)
  • utils: add isNumber utility function for value validation (ad200a2)

Bug Fixes

  • commands: correct client parameter in bulkDeleteCharacters call (50e86fb)
  • custom_critical: correct value assignment in custom critical logic (ea7827f)
  • custom-critical: allow dice also in custom critical compared to a dice to be rolled (prevent also errors :clown:) (249146c)
  • custom-critical: fix name trimmed in the database and also the affect skill and onNatural dice that have no effect (5e9c1f2)
  • delete: delete message and memory DB (4f435e1)
  • edit: bulk edit memory when editing template (cb15d29)
  • improve critical hit handling and modify import paths (b0b2176)
  • memory-database: make updateCharactersDb call awaitable in thread message handling (c2e5707)
  • parse-result: add custom critical value evaluation in the /dbd (a351c7e)
  • parse-result: handle undefined statistics in convertNameToValue function (e70edae)
  • parse-result: handle when cc used without $ value & allow them (8fd5b8a)
  • skill: improve dice validation and parsing in bot (bfc5522)
  • utils: add uniformization for record keys and values (56cf1f7)
  • validation: correct logic for stat value number check (60d8455)
  • wrong data dir in enmap (6fc00a8)

1.29.0 (2024-12-13)

Features

  • dbroll: allow to exclude a statistiques from dbroll (d3e551f)
  • parse-result: enhance compareValue to format originalDice output (238caaa)
  • parse-result: replace roll function with getRoll in custom critical (a75e6da)
  • parser: improve handling of custom critical rolls and comparisons (89e5f78)
  • refactor custom critical handling in embeds (40da490)
  • roll: add exclusion of specific statistics (7fbd036)
  • roll: enhance dice roll logic with dynamic modificators and comparaison (fe93226)
  • update dotenv configuration for production environment (d72d6a1)
  • utils: add isNumber utility function for value validation (ad200a2)

Bug Fixes

  • commands: correct client parameter in bulkDeleteCharacters call (50e86fb)
  • custom_critical: correct value assignment in custom critical logic (ea7827f)
  • custom-critical: allow dice also in custom critical compared to a dice to be rolled (prevent also errors :clown:) (249146c)
  • custom-critical: fix name trimmed in the database and also the affect skill and onNatural dice that have no effect (5e9c1f2)
  • delete: delete message and memory DB (4f435e1)
  • edit: bulk edit memory when editing template (cb15d29)
  • improve critical hit handling and modify import paths (b0b2176)
  • memory-database: make updateCharactersDb call awaitable in thread message handling (c2e5707)
  • parse-result: add custom critical value evaluation in the /dbd (a351c7e)
  • parse-result: handle undefined statistics in convertNameToValue function (e70edae)
  • parse-result: handle when cc used without $ value & allow them (8fd5b8a)
  • skill: improve dice validation and parsing in bot (bfc5522)
  • utils: add uniformization for record keys and values (56cf1f7)
  • validation: correct logic for stat value number check (60d8455)
  • wrong data dir in enmap (6fc00a8)

1.27.0 (2024-12-12)

Features

  • parse-result: enhance compareValue to format originalDice output (238caaa)
  • parse-result: replace roll function with getRoll in custom critical (a75e6da)
  • parser: improve handling of custom critical rolls and comparisons (89e5f78)
  • refactor custom critical handling in embeds (40da490)
  • roll: enhance dice roll logic with dynamic modificators and comparaison (fe93226)
  • update dotenv configuration for production environment (d72d6a1)
  • utils: add isNumber utility function for value validation (ad200a2)

Bug Fixes

  • commands: correct client parameter in bulkDeleteCharacters call (50e86fb)
  • custom_critical: correct value assignment in custom critical logic (ea7827f)
  • custom-critical: allow dice also in custom critical compared to a dice to be rolled (prevent also errors :clown:) (249146c)
  • custom-critical: fix name trimmed in the database and also the affect skill and onNatural dice that have no effect (5e9c1f2)
  • delete: delete message and memory DB (4f435e1)
  • edit: bulk edit memory when editing template (cb15d29)
  • improve critical hit handling and modify import paths (b0b2176)
  • memory-database: make updateCharactersDb call awaitable in thread message handling (c2e5707)
  • parse-result: add custom critical value evaluation in the /dbd (a351c7e)
  • parse-result: handle undefined statistics in convertNameToValue function (e70edae)
  • parse-result: handle when cc used without $ value & allow them (8fd5b8a)
  • skill: improve dice validation and parsing in bot (bfc5522)
  • wrong data dir in enmap (6fc00a8)

1.26.0 (2024-12-12)

Features

  • parse-result: enhance compareValue to format originalDice output (238caaa)
  • parse-result: replace roll function with getRoll in custom critical (a75e6da)
  • parser: improve handling of custom critical rolls and comparisons (89e5f78)
  • refactor custom critical handling in embeds (40da490)
  • roll: enhance dice roll logic with dynamic modificators and comparaison (fe93226)
  • update dotenv configuration for production environment (d72d6a1)
  • utils: add isNumber utility function for value validation (ad200a2)

Bug Fixes

  • commands: correct client parameter in bulkDeleteCharacters call (50e86fb)
  • custom_critical: correct value assignment in custom critical logic (ea7827f)
  • custom-critical: allow dice also in custom critical compared to a dice to be rolled (prevent also errors :clown:) (249146c)
  • custom-critical: fix name trimmed in the database and also the affect skill and onNatural dice that have no effect (5e9c1f2)
  • delete: delete message and memory DB (4f435e1)
  • edit: bulk edit memory when editing template (cb15d29)
  • improve critical hit handling and modify import paths (b0b2176)
  • memory-database: make updateCharactersDb call awaitable in thread message handling (c2e5707)
  • parse-result: add custom critical value evaluation in the /dbd (a351c7e)
  • parse-result: handle undefined statistics in convertNameToValue function (e70edae)
  • skill: improve dice validation and parsing in bot (bfc5522)
  • wrong data dir in enmap (6fc00a8)

1.25.0 (2024-12-09)

Features

  • update dotenv configuration for production environment (d72d6a1)

Bug Fixes

  • skill: improve dice validation and parsing in bot (bfc5522)

1.24.0 (2024-12-09)

Features

  • build: automate version synchronization with postrelease script (ecdb694)
  • logger: enhance logging configuration and add pretty log styles (a03f23b)
  • logging: replace console.error and console.warn with logger (468dfda)
  • tests: add test for result within a simple roll (1c2cc33)

Bug Fixes

  • change console.log to console.info for version update message (f093704)
  • memory-database: prevent fatal error when no message are found for cache completion (54674f9)

1.23.0 (2024-12-08)

Features

  • memory-database: use a enmap "memory" database to store all user-characters, speed up a lot the bot in the roll process. (befd6ee)