5
First, either a ranking system has a real useful purpose that gives relevant feedback to all users or don't bother wasting time coding it. IMNSHO....
vbulletin has implemented a really strong reputation system. I'd recommend reading through the comments on it to see the positives and negatives. They've learned a lot from the feedback. It's interesting to read the comments from admins of all types of sites about what worked, what didn't and why.
I like users being able to reward good comments/posts.
I like limiting the number of times users can reward to prevent spamming or stacking the deck.
I like older users or users with higher reputation or users that rarely give reputation automatically giving more per reward.
I think negative reputation by users can be abused for many groups. I tend to have small groups of friends for my sites so negative rep is useful for us to weed out bad ideas, but in larger groups it tends to be used to attack people rather than comment on ideas which makes me hesitant to ask for negative rewards for users. Admins definitely need to be able to remove rewards though.
It would be nice if rewards could work in conjunction with or even replace the current XOOPS user ranks system which is primarily based on number of posts. Ideally, this system would tie directly into that and be implemented at core level to be available to all modules or current ranks would be removed from core and implemented as a module/plug-in setup like you propose.
It would be interesting to be able to "clone" or create multiple rewards/ranks to allow people to advance along multiple pathways. A simple example would help: let's say the site created ranks for Support, Development and Creativity. Support would gain rewards mainly from posts and would be granted by users for useful comments, troubleshooting, advice, etc. Development would gain rewards mainly from news stories and would be granted by moderators for new modules, bug fixes, code suggestions, etc. Creativity would gain rewards mainly from posts and would be granted by users for providing ideas, constructive criticism, etc. Splitting into three different reward structures allows users and admins to quickly and easily see what areas different users excel in. This way users can quickly see for instance that Trabis has a really strong Dev and Creativity ranking just by looking at his profile or "badges" under his avatar. When Trabis comments on module development, new users would be able to very quickly compare between Trabis and Speed to know which one has a strong reputation and probably knows what they are talking about since Speed would have no Dev rank whatsoever but might have a reasonable Creative rank. :)
If you have one blanket reputation/rank/reward category for everyone, you have no way to really judge whether a person has broad or focused knowledge which makes their rank pretty much irrelevant except as a measure of favoritism which in my not so humble opinion is useless. If everyone is lumped into the same pool, we can't tell why they are highly ranked.
...