https://github.com/nodebb-community/nodebb-plugin-reputation-rules
reputation rules to prevent abuse and make it more reliable
https://github.com/nodebb-community/nodebb-plugin-reputation-rules
nodebb
Last synced: about 1 month ago
JSON representation
reputation rules to prevent abuse and make it more reliable
- Host: GitHub
- URL: https://github.com/nodebb-community/nodebb-plugin-reputation-rules
- Owner: NodeBB-Community
- License: gpl-2.0
- Created: 2015-01-13T20:24:36.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-02-19T13:00:54.000Z (3 months ago)
- Last Synced: 2025-04-11T06:07:33.710Z (about 1 month ago)
- Topics: nodebb
- Language: JavaScript
- Size: 385 KB
- Stars: 8
- Watchers: 8
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://badge.fury.io/js/nodebb-plugin-reputation-rules)
[](https://www.codacy.com/gh/exo-do/nodebb-plugin-reputation-rules/dashboard?utm_source=github.com&utm_medium=referral&utm_content=exo-do/nodebb-plugin-reputation-rules&utm_campaign=Badge_Grade)# Reputation Rules Plugin for NodeBB
> Rules to prevent abuse of the reputation system and reward most valuable users.

## Rules
### Rule #1
**Upvoting** In order to upvote, the user must have
- `{MIN_POSTS_TO_UPVOTE}` posts or more
- at least `{MIN_DAYS_TO_UPVOTE}` days since registration### Rule #2
**Downvoting** In order to downvote, the user must have
- `{MIN_POSTS_TO_DOWNVOTE}` posts or more
- at least `{MIN_DAYS_TO_DOWNVOTE}` since registration
- `{MIN_REPUTATION_TO_DOWNVOTE}` reputation or more### Rule #3
Downvoting costs `{DOWNVOTE_PENALIZATION}` reputation (user who votes loses some reputation)### Rule #4
One user can't vote (up or down) more than `X` times a day, being `X = reputation/10`. With a minimum of 5 and a max of 50### Rule #4.1
One user can't downvote more than 5 times a day. Zero to disable this maximum### Rule #5
Reputation can be disabled in certain subforums### Rule #6
A user cannot vote the same person twice in a month### Rule #7
A user cannot vote more than 5 messages in the same thread### Rule #8
Upvotes give extra reputation depending on the user who is voting:
- extra reputation = `floor(votersReputation * 5%)` (you can change this percentage in the ACP)Downvotes decrease extra reputation depending on the user who is voting:
- extra reputation = `floor(votersReputation * 5%)` (you can change this percentage in the ACP)### Rule #9
Undoing votes:
- undoing an upvote should remove extra reputation awarded when upvote was given (extra rep should not be recalculated)
- undoing a downvote should remove penalization to voter and give the extra reputation the author lost when he got the downvote### Rule #10
Upvotes and downvotes should have a maximum weight, configurable. So that rule **#8** doesn't make vote points tend to infinity.### Rule #11
Optional: you can limit upvotes and downvotes to recent posts. In other words, if a message is too old, users won't be able to vote it.
You can configure what "too old" means for you, for example 30 days, 90 days, or 0 if you want to disable this feature and allow votes in old posts.
**Note** unvotes are always allowed.## Changelog
v1.2.3
- Added some tests and coverage
- Added more information to error messages when votingv1.2.2
- Big refactor mainly to use async/await instead of callbacks
v1.2.1
- Fix typos on "weigh"
- Add a section for Rule 4 on the settings panel. It is not configurable but it is a rule that is being applied
- Added explanations for most of the settings so they are easier to understandv1.2.0
- Updated compatibility to 1.18.2
- Removed the "Reload" button in the ACP as this is no longer needed
- Added debug logs to track down any errors
- Fix: vote max weight was being used as a min, instead of a max