RepBot is an app that allows users to award reputation points if a user has been helpful. Its main use case is for help and advice subreddits to help indicate users who have a track record of providing useful solutions.
It allows the OP of a post, a mod, or a trusted user to reply to a user and award them a point using a bot command, which will be stored as their user flair (optional) and stored in a data store. The command can be customisable (by default it is !award and .award).
The app gets triggered when a comment is posted or edited, but only never award points twice per comment. It triggers on edit to give the user chance to amend a comment to add the "thanks" command if they forget initially.
You can also set an optional post flair if a point is awarded, such as to mark the question as "Resolved".
- The optional leaderboard will not pull in points for users until this app awards one. If you have previously used /u/Clippy_Office_Asst or a similar bot to award reputation points in the past, this will make the leaderboard misleading.
- For flair setting options, if you specify both a CSS class and a flair template, the flair template will be used.
You may wish to create an automod rule that detects phrases like "thank you" and similar in comments that do not have the trigger command, and reply suggesting that they use the command.
I strongly recommend using a command that is not going to be used in "normal" comments, to avoid awarding points accidentally. If you use a prefix e.g. !award or /award, you will reduce the risk of accidental points awarding.
I recommend testing settings out on a test subreddit before deploying to a real subreddit for the first time.
{{author}}: The username of the poster. Will not contain 'u/'.{{requirement}}: The amount of points required before a posting restriction is lifted.{{name}}: The name of points. Specified in 'Point Name'.{{permalink}}: Link to the most recent valid post by the poster.{{title}}: The title of the most recent valid post by the poster.{{symbol}}: The symbol associated with your subreddit installation. Specified in 'Point Symbol'.{{awardee}}: The user being awarded. Will not contain 'u/'.{{awarder}}: The user giving the award. Will not contain 'u/'.{{total}}: The total amount of points a user has.{{helpPage}}: Link to a page explaining how to use the bot. Uses the Old Reddit version of this page.{{leaderboard}}: Link to a page of the subreddit's leaderboard. Uses the Old Reddit version of this page.{{threshold}}: Threshold to become a superuser. Specified in 'Auto Superuser Threshold'.{{command}}: Notifies the user who has reached the threshold of a special command they can use. Specified in 'Superuser/Mod award command'.{{commands}}: Lists all valid non-superuser/non-mod command(s) (comma-separated list (if more than 1)). Specified in 'Trigger Words'.{{markdown_guide}}: Link to Reddit's Markdown Guide.{{user}}: The username of the person being awarded. Used in 'Alternate Award Command'.{{altCommand}}: Alternate command to directly award users. Used in 'Alternate Command Success/Fail Message'.{{subreddit}}: Get the name of the subreddit. Will not contain 'r/'.{{awardeePage}}: Link to a recipient's individual page. Logs all points received and given that are not alternate commands.{{awarderPage}}: Link to an awarder's individual page. Logs all points received and given that are not alternate commands.
This application stores the reputation score awarded by the app for each user in a Redis data store and (if configured) as the user's flair. It also stores a record that a comment has had a point awarded on it for a period of a week after that point is awarded.
If the application is removed from a subreddit, all data is deleted although the flairs will remain. If the application is subsequently re-installed, the existing flairs will be used as a basis for new point awarding.
Code edited from u/fsv's reputatorbot.
This app is open source and licensed under the BSD 3-Clause License. You can find the source code on GitHub here.
NOTE: If you remove the app from your subreddit, it will delete all data and you will have to manually restore it to users.
- Allow mods to notify the developer if they receive a modmail notifying them of an error with bot command handling
- Fix regex issue where certain characters weren't escaped correctly (would make it so certain commands won't register for users)
- Make alternate command actually work
- Guarantee the mod info page is created and populate it regardless of whether the content matches the template
- Update the page if any edits exist (checked every minute)
- Reduce leaderboard user listing to be maxed at 500
- Add mod info wiki page regarding how the leaderboard post works (linked in all new leaderboard posts)
- Make leaderboard allow mods to choose how many users to display properly
- Change leaderboard viewing options to be 1-6 (previous would be too long to read all of them for all but 5)
- Make help button on leaderboard link to point system explanation page (if one is specified in "Point System Help Page")
- Make help button not appear if there is no point system explanation page defined
- Add comment notifying mods that they need to create a new leaderboard post if they add a point system explanation page or remove the explanation page
- Update to latest devvit version (3/23/26)
- Change leaderboard post formatting/colors to be compatible with light and dark mode reddit
- You must create a new leaderboard post for this to take effect
- Add old bot versions back to README
- Remove comment reply locking from all comment types (ie comment awarding the point, comment receiving the award, and the bot response)
- Massive refactoring of code and custom post to work with Devvit Web with help from u/Beach-Brews
- Fix trigger calls so that new comments will be registered by thanks event (doesn't work correctly USE 24.0.0 or later)
- Update to latest devvit version
- Migrate code away from Blocks
- Make it so mods can only make the leaderboard post if the users displayed is 20 or less
- Make sure that RepBot can't be restricted by new leaderboard posts regardless of whether or not mods are exempt from awarding
- Update to latest devvit version
- Separate mod award logic from trusted user so people can tell whether it is a mod or superuser using the mod/trusted user award command
- Add settings to supplement this
- Update to latest devvit version
- Lock all comments related to the awarding process (ie awarder's comment, comment being awarded, and the bot's response)
- Fix dming logic (previous would infinitely loop even if you confirmed your intent)
- Fix awarding logic so only one point can be given to a comment (previously would allow infinite awards)
- Fix awarding logic for mod commands to work as intended
- NOTE: ALTERNATE COMMANDS WILL NOT WORK. I AM NOT FIXING THEM AT THIS TIME.
- Update to devvit 0.12.12
- Make the repinning option notify the moderator if the comment they are trying to pin is already pinned
- Make it so that comments by u/therepbot can be repinned if they are unpinned for whatever reason
- This option will appear in the moderator actions of comments and will only work on top-level comments (ie must be in response to the post and not a comment)
- Add
Check User Restrictionoption for mods to see if a user is restricted or not via a toast Check User Restrictionwill say that mods are exempt if mods are exempt from awarding requirement
- Make it so
Check Posting Restrictiontoast will tell mods they are exempt if they are exempt from awarding requirement
- Make it so mods can set a post flair for the top post of the month (registers the first of every month 00:00 UTC and only registers posts from the last 30 days)
- Post flair can use an optional CSS Class or template ID (template ID is prioritized)
- Text is required in the "Flair text to use for the Post Of The Month" setting if Post Of The Month is enabled or it won't set post flair
- CSS Class and template ID will pull the color of the flair being used ONLY, not the text of the flair
- Update to the most recent Reddit API version for various modules
- Make the award checking on posts accurately portray if the user isn't restricted with the bot (improper checking before)
- Add an option to check awards required to be unrestricted via burger menu within posts (will appear as a toast on the bottom of your screen)
- Award checking can be done any post regardless of who created the post
- Make it so bot will lift restriction and send restriction lifted message correctly
- Make it so bot will notify users correctly when they try to award points to a commentor, but don't have permission to
- Make it so bot won't respond on non-command comments on posts with disallowed flair
- Remove bot logic where non-command comments would be treated as commands
- Reimplement and fix non-flaired post logic to work
- Remove non-flaired post settings
- Make it so that the bot will notify if a post has a disallowed flair and not award points on such posts (unflaired posts cannot be disallowed)
- Fix leaderboard placeholder formatting on mod and alt command messages
- Make bot notify user if they send a command within alt, quote, or spoiler text
- Allow user to edit the comment that caused the message with "CONFIRM" in all caps to stop future messages about this usage
- Make it so alternate command award can be used without issue
- Make it so users aren't infinitely put into a restriction key loop
- Add customizable message for when someone tries to award the post author (OP)
- Massive logic overhaul to make settings work as expected
- Make it so alternate award logic won't be triggered by non-alternate command users
- If an invalid alternate command is used (eg !awarded, .awarding), then no comment will be left on the comment
- Make it so that there must be a space between the alternate command and the u/ for it to trigger an alternate award
- Optimize post restriction removal notifications (previously would only ever send one to the user)
- Make awards count properly in relation to restriction
- Make it so that a user will actually have their post restriction removed when they should
- Add a setting for how to notify the user when their restriction is removed
- Make
{{awardeePage}}link to the user page (incorrect formatting previously)
- Add
{{permalink}}to Supported Placeholders list on Subsequent Post Restriction Message
- Add
{{title}}placeholder to be usable on Subsequent Post Restriction Message - Fix restriction logic to actually remove it when enough points are awarded
- Change Received Table to only display date and submission with name and link to the submission
- Add message informing the user if their alternate command contains a "u/" that is too short or too long (must be 3-21 characters to be valid)
- Add message to inform the user if their alternate command doesn't contain a "u/" at all
- If alternate command doesn't contain a "u/", or the user provided is too short or long, don't award the awardee user
- Make it so individual user pages are created and add initial content on page creation (ie initial award for both the awarder and awardee)
- User pages display amount of awards received and given to/by users
- User pages update as people award and receive awards
- Make Mod Award Success and Fail notification settings have a default value of "No Notification"
- Make settings more logical and categorized based on what they are for (mainly applies to Moderator/Trusted User Settings)
- Allow Trusted Users to use the "Mod Award Command"
- Notify non-Trusted Users/non-moderators that they don't have permission to use the command
- Make it so mod awarding and related notifications work
- Make it so more than one user can be awarded on a post with the alternate command
- Make it so the above feature works as intended (previously had weird behavior)
- Put "Subsequent Post Restriction Message" after "Initial Post Restriction Message"
- Make "Awards required to create new posts" allow a value of 0
- If "Awards required to create new posts" is set to 0, post restriction will be disabled
- Add a message for subsequent posts if a user is restricted
- Remove "How to notify OP on post restriction" setting as it is unused
- Make the bot remove the new posts if OP has a post restriction
- Stop bot from messaging users about their post restriction/award status
- Update README to reflect that the alt command can be used once per username per post instead of once per post
- Make it so the alternate command can only be used once per username per post
- Add symbol, leaderboard, and total placeholders to "Alternate Command Success Message"
- Notify users that an award command as a top-level comment isn't allowed
- Change option in LeaderboardMode to say "Default settings for wiki" instead of "public"
- Make the bot actually work with award commands when trying to award specific users
- Display the entry instead of a 0 or 1 to inform the user changing the score of what the new score is when manually setting a user's score
- Remove AwardRequirementMessage as it isn't used
- Make it so an alt command can be used (a command that can be run a bot for example) where you can award points to individual users without the need for awarding the user a point on their comment
- Alt command MUST use an existing trigger word and can award users whether the 'u/' is contained or not
- Update help page to use the old reddit version of the page
- Make point setting actually update the redisKey for the user so that their score is actually updated instead of just saying it is
- Make it so users are informed in private messages if they use alt text (
this), spoiler text(>!this!<), or quote text(> this) when using an award command - Make it so users can stop the bot from informing them of using these spoiler types (must be done on individual types as they are used)
- Made leaderboard links using the {{leaderboard}} placeholder link to the Old Reddit version of that link (New Reddit can be weird with wiki pages not being created or displayed)
- Simplify leaderboard logic
- Make it so users can use a link to their subreddit's discord
- Simplify wiki page declaration for specifying what page explains the point system (no longer requires full link)
- Add setting to set a default message to send on OP's first post if point awarding is required for OPs (cannot be empty even if point awarding isn't required)
- If point awarding is required, the above message will be pinned on OP's post
- Reimplement code to properly edit the leaderboard wiki page
- Remove {{flair}} placeholder from being usable in the award requirement message
- Make it so that it can be toggled whether or not mods have the award requirement associated with them if point awarding is required
- Make it so that a user's flair can be set to force them to award points on their own post before being allowed to make new posts
- Add a toggle for whether or not to enable the feature mentioned above
- Make it possible to permalink to the author's most recent valid post
- Make it possible for moderators to remove the post restriction from a user
- Allow a template to tell the user they must award points on their most recent valid post to remove the restricted posting flair
- Make a customizable message that the bot will send on new posts to inform users of how the restriction system works
- Make it so a user can only receive a point once per comment
- Make it so a user's score can be set to 0
- Update code so that the leaderboard will be set and updated when a user receives a point or their score is manually updated
- Forgot to save README (oops!)
- Make it so the comment made by the bot on the custom post can be locked or unlocked by the person making the post in the post UI
- Lock the comment made by the bot on the leaderboard custom post
- Make it possible to create a leaderboard post that can be refreshed by anyone at any time if a user presses the refresh button
- Append a message to leaderboard custom post that informs the user how to refresh the data if it doesn't appear for them
- Make it so comments with trigger commands that are in spoiler text won't trigger
- Make it so comments with trigger commands that are in a quote or alt text block won't trigger
- Make it so non-trigger comments won't trigger the bot's responses
- Make it so the bot doesn't lock its comments on responses
- Fix formatting with where the "how to award points" message appears
- Move "how to award points" message to top of leaderboard wiki page
- Make it so that leaderboard will dynamically update if a user's score changes
- Put in the above patch note for 0.0.24
- Properly implement manual score setting
- Remove deny command (can't get it to work)
- Update to most recent devvit version
- Update to try and publish publicly
- Remove unnecessary/unused files
- Remove manual point setting (can't get it to work)
- Make it so that backup and restore methods aren't available to mods
- Remove unused code
- Remove incorrect information from README
- Add and implement various components to further expand on what the bot can do
- Make it so the bot can't be awarded
- Make it so non-superusers and non-mods can't use the mod award command
- Remove leaderboard post (can't get it to accurately display users' scores)
- Try to make the leaderboard post accurately display the top scoring users
- Make it so only the all time leaderboard appears (can't figure out how to do every leaderboard)
- Make it so that flair is properly set
- Make it so that leaderboard doesn't link to individual user pages anymore
- Leaderboard now uses user flair to update the leaderboard
- Update README to be more accurate
- Fix incorrect version number for 0.0.10
- Remove daily, weekly, monthly, and yearly leaderboards for now to try and fix it.
- Make it so that users can select if they use an all-time leaderboard only or daily, weekly, monthly, yearly, and all-time leaderboards (this part is a WIP).
- Make it so the bot can actually send the user messages
- Improve code for functionality
- Make it so the symbol can be added to a user's flair if a symbol is specified
- Fixed a typo in v0.0.6 (used TheRepBot instead of reputatorbot in acknowledgements)
- Kept bits of code from TheRepBot while implementing custom code
- Set up a baseline for what should be used
- Implemented daily, weekly, monthly, yearly, and alltime leaderboards
- Made code work as intended as much as possible
- Note that this bot's source code has changed since this README/project was first created and is why these notes may seem weird with what the code shows
- Add more customizability to various messages
- Allow awards to be allowed/not on unflaired posts as specified by app
- Add more options to customizability
- Make it so that various placeholders work and the scoreboard appears as intended
- NOTE: THE SCOREBOARD IS BUGGY AND STILL A WORK-IN-PROGRESS
- Improved text explanations for what various entries are for
- Getting base code out