Does you plug-in achieve the following requirements?
Question:
I really like the concept of using IPB as an integrated community site and forums. A specific plugin I would like to have to encourage user activity within the site is an 'Achievement & Points' mod.
The Achievements are intended to emulate Xbox 360 achievements, a system whereby gamers are awarded points for the completion of game-specific challenges. For IPB this could mean commenting a an article a numebr of times, starting a forum topic, visiting the site every day of the week etc.
When the users hit a certain milestone for each activity they will be awarded the achievement in the form of a badge on their profile.
Points can be earned in a number of ways:
- Commenting on an article in IP.Content
- Voting on a poll
- Starting a new forum topic
- Replying to a forum topic
- Logging into the site
- Fully completing their profile (including specific custom fields)
- Admin must also have the ability to add or remove points to any individual. For example run a competition on the site the winner will be awarded X number of bonus points.
The site admin can edit these values in the control panel. If a users reply or topic etc is deleted, then the same amount of points will be deleted from their total. This is to avoid users spamming topics or creating and deleting topics to boost points.
There are a few conceptual differences between Achievements and User Points:
- Points can be automatically deleted (see below). However, a user will never loses his achievement once it has been earned. May possibly allow an admin to manually remove an achievement from a user.
- Achievements are based on milestones, not necessarily activity. Whereas, in User Points, a user may get 5 points every time he starts a new topic, a matching achievement would be awarded when a user has started 10 new topics (or 50, etc.)
- Achievements can be hidden so that a user doesn't know how to unlock it until he stumbles upon the discovery himself (either by meeting the milestone, asking another user, etc).
- Unlike User Points, the only achievement data stored in the database is the achievement's internal ID and when the user unlocked it. This allows you to change the achievement details (spelling, name, etc.) without having to issue database updates.
- Achievements can be created, edited & disabled by an admin in the modules control panel. This allows modules to ship with dozens of achievements, but gives the admin the ability to shut off specific milestones that may not apply to his user base and create new milestones.
- Achievements are not retroactively applied - you either get them after the Achievements module has been enabled, or you don't get them at all. Likewise, achievements can not be deleted but they can be disabled, so that people who earned them in the past still have a specific achievement but no one can earn that achievement in future if it has a status of disabled.
- If you need to "shame" your users, you can create 0 point negative achievements like "Had 5 comments deleted", "Was suspended", etc.
- When creating achievements in the admin panel, the achievements fields will be event type, name, description, image, activity type, number of times and bonus points. Description, image & bonus points will be optional.
The "event type" field will be the type of achievement. There will be two types "Automatic", which will be awarded automatically by the system when the milestone is reached. The other type will be "Manual". The manual awards will be awarded manually by the admin on an ad-hoc basis for example create a specific achievement for a competition etc. When viewing teh achievements in the control panel when a a manual achievement is selected there will be an "award to" button, the admin click this and selects the users to award the achievement to. The admin can come back at any stage and award more people the achievement.
The "activity type" field will be what has to happen for the user to earn the achievement such as "replies to a forum topic" and the "number of times" field will be the number of times this happens before the achievement is awarded.
- Since achievements are "milestones", each one has its own leaderboard that lists when a user has met (or "unlocked") the goal, and their matching rank. A site-wide leaderboard ranks users by points they've achieved, but also by timestamp - if two users share the same point total, the person who got there first gets the higher rank.
- There should also be the functionality to display the "most recent achievements earned". This will work similar to the way the "recent added topics" box works.
Thanks, I look forward to your reply.
John













