General Description

This page is under destruction. Here you'll find original description of the score system idea, but now it's in 1.9 and all information here is being moved to proper place. Most info is only found here though.

This feature is a game to motivate people to participate in the community. Users are given points for things they do in the site, like writing an article, reading an article, starting a new topic in forum, voting a poll, etc. They also earn points by being popular, like having his/her blogs and articles read and commented. Then the users will be able to see their position in a ranking.

In tiki 1.8 there's a Karma system, as described in KarmaDoc. In the karma system, users are given points according to other user's rating on their contents, and the more karma you have, more karma people rated by you will gain. The idea of this karma is to be a reliable measure of someone's popularity, by community itself. The current Karma system has a conceptual problem: if user A has a karma of 1, user B has a karma of 5 and A gives rating 5 to B, B will be given rating 1 (because of A's karma) and so B will have karma lowered. This happens because user's vote weight and his points are the same field, it will be solved in this new system by separating in two fields.

If you earn point's by reading an article, writing a message, creating a wiki page, joining a chat, etc, this can still be cool, but it's a quantitative measure, not by community but by a computer. We can moderate giving points on actions like posting an article or editing a wiki page for avoiding spam and have more reliability on these points, but it will still be quantitative.

So, there are two different systems for ranking users, I'll call them Karma and Score:

Points according to other users rating on published content Points for every action, including other users rating
Reflects user popularity Reflects user activity
Qualitative Quantitative
Subjective Objective

This system will mantain both points, all points that are based on other users rating will be in a separated field. System administrator will configure the amount of points for actions and what kind of points will be used.

Key Function and sub-features

- Users get an amount of points for events related to them
- The amount of point is configurable
- Users are ranked according to points earned
- Events can be repeated or not. For example, earning 5 points for each hour logged in.


This describes current implementation of Score system, that's on latest main CVS but not integrated to site. The karma system is implemented in commentslib since v1.8 and an implementation that merges both is in course.

The field 'score' was created in users_users with user's total score, so that it will be fast to rank users.

The table users_score will be created, with following fields:
- user - user's login
- event_id - an unique id for this event, so that user won't be scored twice

- score - the score earned by this event
- expire - expiration time for this scoring. so that users can earn points per 10 minutes in a chat, for example
- tstamp - timestamp of this score

Every time the user makes some scoring action, the event will be given a unique id (for example, read_article_10 if he's reading article with id 10). If there is no event for this user with same event id, or if the event has expired, this new event will be logged and the user's score will be updated. Old events (with age configurable) are erased for performance.

Also the table tiki_score will be created to hold all events and respective punctuation:
- event - the name of the event. In the previous example 'read_article' would be the event's name.
- score - number of points for these events
- expiration - how long, in seconds, before the user can earn points again for the same event. 0 indicates only once.
- category - category, to group on admin
- description - description to go on admin
- ord - order to list in admin

Check /lib/score/scorelib.php on latest v1.9 CVS. It's not being included, I've put there just for having comments on it. The lib works with tables exactly as above. I have an idea of including classifying events in Subjective/Objective, as for easily setting up a Karma only system.

Related Links

KarmaDoc is the old Karma idea.

Typical Uses

The Score system is good for small and starter sites, to motivate new users to contribute. This can also help administrators to focus activity in one or two areas by granting more points to these areas, so that small communities won't get dispersed with lots of tools in the beginning.

The Karma system is the karma system. It's more reliable for, well, measure user's karma in a community. It's really fun! It motivates people to care about community by contributing for it to get better.

Case Studies

I hope there will be one soon :-)


No public prototype yet.

Support Requests=-


Is everything scored now? Forum posting doesn't seem to yield points. How do we put more hooks in place for scoring? Where's the page for weighting scores?


Luis Fagundes
For more information
Contact-me at #tikiwiki, I use the nick batatata