Compatible XF 2.x versions
  1. 2.3
Additional requirements
XenForo: Version 2.3.0 or higher is required.
PHP:Version 8.1.0 or higher is required.
License
1 licence = 1 site
Updates duration
6 Months - US $45 / 1 Year - US $65
Visible branding
Yes, but removable with payment
reward.webp


As a forum administrator, one of the greatest challenges is keeping members genuinely active on your platform and encouraging them to produce truly quality content. Standard giveaway addons address this challenge only superficially: you post a prize, members spam the forum, a winner is picked, and everyone disperses. But what if you want to cultivate real community engagement, eliminate spam, and manage the entire process in a transparent, fair, and fully automated way?

[XTR] Forum Reward System was built from the ground up to answer exactly those questions. It is an enterprise-grade giveaway and reward management system for XenForo 2.3.x, combining an advanced participation conditions engine, a cryptographically secure random selection algorithm, an intelligent two-layer spam moderation system, bidirectional data synchronization, real-time progress tracking, and an automated notification infrastructure into a single, cohesive package.

If you want to take your forum engagement to the next level, build member trust, and genuinely grow your community, [XTR] Forum Reward System is the definitive solution.

1. ADVANCED PARTICIPATION CONDITIONS ENGINE (7 Independent Modules)​

The addon contains 7 participation condition classes, each managed in its own dedicated PHP class file within the Condition/ directory, following a fully extensible architecture that allows future expansion without touching core files.

Messages Since Giveaway Start (MessageCountSinceStart)
Checks how many messages the user has posted AFTER the giveaway's start date. Historical messages are entirely excluded. Only activity produced during the active campaign period counts. The system compares against the giveaway's start_date with millisecond-level precision. This is the most effective way to keep forum activity high throughout the campaign duration.

Threads Since Giveaway Start (ThreadCountSinceStart)
Checks how many new topics the user has created since the giveaway started. Past threads are completely excluded. Only threads created after the giveaway start date qualify. This drives members to contribute new, original discussions rather than reviving old ones just to inflate their numbers.

Lifetime Total Messages (TotalMessages)
Checks the total number of messages posted across the user's entire account history. This is the critical filter for preventing new and fake accounts from entering your giveaway. Setting a minimum like "100 total messages" restricts participation to established, long-standing forum members only.

Lifetime Total Threads (TotalThreads)
Checks the total number of topics the user has ever created across their account history. Similar to Total Messages, it measures overall account activity level. Combined with TotalMessages, it creates a double-layer account quality gate.

Reaction Score (ReactionScore)
Checks the user's total accumulated reaction/like score. This is a unique tool for identifying members who have contributed genuinely valuable content. It rewards not just prolific contributors, but those whose contributions have been recognized and appreciated by the community itself.

Account Age (AccountAge)
Checks how long the user has held their forum account. Configurable precisely in Days, Months, or Years. The system compares the registration date against the current date using the selected unit for an exact and accurate calculation. For example "Must be a member for at least 6 months" restricts the giveaway to loyal, long-standing members.

User Groups (UserGroups)
Restricts the giveaway to specific user groups. Multiple groups can be selected simultaneously. Non-selected groups are automatically excluded. Use this to create VIP-exclusive, Premium-only, or subscriber-specific giveaways.

2. CATEGORY-BASED FILTERING (Applicable Categories)​

All activity-based conditions can be evaluated not forum-wide but only within the specific forum sections you select. In the admin panel, choose your desired sections in the "Applicable Categories" field and the system will count only activities in those sections. If no selection is made, the system covers the entire forum. This feature lets you transform a giveaway into a focused engagement campaign for a specific part of your forum community.

3. PARTICIPATION KEYWORD REQUIREMENT​

You can require users to include a specific word or phrase in their reply to participate. The system performs this check using both case-insensitive (stripos) and multi-byte UTF-8 compatible (mb_stripos) string matching, ensuring flawless operation with all international character sets including accented, Arabic, Cyrillic, and Asian scripts. Messages not containing the keyword are not processed as participation attempts and do not trigger any entry creation logic.

4. TWO-LAYER INTELLIGENT SPAM MODERATION SYSTEM​

This is one of [XTR] Forum Reward System's most powerful innovations. During giveaway periods, members may flood targeted categories with low-quality content solely to meet participation thresholds. This addon eliminates that problem at the root with two independently controllable moderation layers:

Thread Moderation (Moderate Applicable Nodes)
When enabled, any new thread created in the "Applicable Categories" while the giveaway is active is automatically sent to the moderation queue BEFORE it is published. Technically, the system hooks into XenForo's entity_pre_save event and sets the thread's discussion_state to 'moderated' before the record is committed to the database. Users with moderator-level permissions (approveUnapprove) are exempt and their threads publish immediately.

Reply / Post Moderation (Moderate Applicable Posts)
When enabled, not just new threads but every new reply posted in those categories is also automatically held in the moderation queue. It uses the same event-driven architecture, setting the post's message_state to 'moderated' before saving. Moderators are again exempt.

Both layers operate independently and can each be enabled or disabled separately based on your specific campaign needs. The critical point: content held in the moderation queue and not approved by a moderator does NOT contribute to the user's participation condition counters. Spam content literally cannot help users meet giveaway requirements.

5. CRYPTOGRAPHICALLY SECURE RANDOM SELECTION ENGINE​

Many giveaway addons rely on PHP's standard array_rand() or shuffle() functions. These are NOT cryptographically secure and can theoretically produce predictable or biased results.

[XTR] Forum Reward System performs winner selection through a rigorous three-step process:

Step 1 — Live Re-Verification
Immediately before the draw, the system re-checks the eligibility of EVERY registered participant. Users who qualified at entry time but have since fallen below the required thresholds are automatically removed from the draw pool. This ensures only truly deserving members participate in the final draw.

Step 2 — Fisher-Yates Shuffle + random_int()
The eligible participant list is shuffled using the Fisher-Yates algorithm powered by PHP 7+'s cryptographically secure random_int() function. This produces a statistically unbiased shuffle with zero predictability — the gold standard for fair randomization in PHP applications.

Step 3 — SHA-256 Draw Hash Generation
For each draw, a unique SHA-256 hash is generated from: the giveaway ID, exact draw timestamp, the complete eligible participant ID list, and the selected winner IDs. This hash code is appended to the winner announcement message and allows any member to independently verify the integrity of the draw result.

6. FULLY AUTOMATED CRON-BASED GIVEAWAY PROCESSING​

You never need to manually finalize a giveaway. The addon includes a scheduled task integrated with XenForo's native cron infrastructure. This task automatically detects all active giveaways whose end date has passed, then processes them in sequence. When the cron runs, the following happens:
  • All participant conditions are re-verified in real time
  • Winners are selected using Fisher-Yates + random_int()
  • SHA-256 Draw Hash is generated and stored in the database
  • Giveaway status is updated to "completed"
  • An automated reply is posted to the giveaway thread containing @mentions of all winners and the draw verification hash code
  • XenForo native alerts are sent to all winners
  • If "Lock Thread" is enabled, the thread is automatically closed
  • If no eligible participants exist, a "no eligible winners" notice is posted automatically

7. COMPREHENSIVE NATIVE ALERT SYSTEM​

The system is fully integrated with XenForo's native alert infrastructure and covers three key notification scenarios:

Successful Entry Alert
When a user successfully enters the giveaway, they receive a "You have successfully joined the giveaway" notification.

Detailed Failure Alert
When a user is ineligible, they receive a precise explanation of which condition they failed and by how much. For example:
"You need at least 5 messages to participate. You have 2 messages. Please post 3 more messages."

These messages are dynamically generated for each individual condition type.

Winner Alert
When a user wins, they receive a personalized "Congratulations! You won the giveaway" notification. All alerts are sent in the name of the thread creator, providing a natural, personal forum communication experience.

8. INTERACTIVE PARTICIPATION PANEL WITH REAL-TIME PROGRESS BAR​

Members viewing the giveaway thread see a comprehensive participation information panel at the top of the thread. This panel displays:
  • Giveaway title and description
  • All active participation conditions, each with its own icon
    (message icon, thread icon, reaction icon, user group icon, calendar icon)
  • Live countdown timer showing days, hours, minutes, and seconds remaining
  • Dynamic Progress Bar showing how close the user is to meeting conditions
  • Participation keyword reminder if a keyword is required
  • List of the most recent participants
  • Entry confirmation block once the user has successfully joined
  • Winner announcement block once results are published

9. WINNER VISUAL CELEBRATION (Confetti Animation)​

When a winning user views the giveaway thread, if the "Enable Confetti Effect" option is active in the admin panel, a vibrant confetti rain animation pours from all corners of the screen. This small but powerful experience makes the moment of winning feel genuinely special, memorable, and shareable.

10. ACTIVE GIVEAWAYS WIDGET​

A fully configurable "Active Giveaways" widget can be placed in any widget position supported by XenForo. The widget provides:
  • A live list of all currently active giveaways
  • Dynamic countdown timer for each giveaway (based on end date)
  • Current participant count for each giveaway
  • Direct link to each giveaway thread
Widget settings configurable from the admin panel:
  • Maximum number of giveaways to display (Result Limit)
  • Countdown timer visibility (On/Off)
  • Participant count visibility (On/Off)

11. AUTOMATIC BIDIRECTIONAL SYNC (XenForo Core Services)​

Admin panel changes are automatically reflected in the public forum thread. This bidirectional sync uses XenForo's own Core services:

On new giveaway creation
XF:Thread\Creator service generates the forum thread and first post automatically.

On giveaway edit
XF:Thread\Editor updates the thread title, and XF:Post\Editor updates the first post content — both instantly and safely.

Because these operations go through XenForo's native services, search indexes remain intact, forum statistics continue to operate correctly, and edit history is properly recorded.

12. REROLL WINNERS FEATURE​

If a selected winner is found to have violated the rules or cannot accept the prize, administrators can use the "Reroll Winners" function in the Admin CP with a single click. This clears the current winners, re-runs the full cryptographic selection process, and generates a new Draw Hash. A complete audit trail is maintained.

13. AUTOMATIC THREAD LOCKING ON COMPLETION​

When "Lock Thread Upon Giveaway Completion" is enabled, the thread's discussion_open value is set to false the moment the draw completes. Members can no longer post new replies to the closed thread. This prevents post-giveaway disputes and noise, keeping the thread as a clean, archived record.

14. IP-BASED MULTI-ACCOUNT PROTECTION​

Every participation attempt records the user's IP address in binary format in the database. The system queries whether a different user account has already participated in the giveaway from the same IP address. If a second participation attempt is detected from the same IP, it is rejected with a "Multiple account participation is not allowed" error message. Localhost addresses and administrator accounts are exempt from this check.

15. VERIFIABLE SHA-256 DRAW HASH (Transparency Proof)​

The SHA-256 Draw Hash generated for each draw is published publicly in the winner announcement reply. The hash is derived from:
  • The giveaway ID
  • The exact draw timestamp (Unix)
  • The complete list of eligible participant IDs
  • The selected winner IDs
Any member can independently verify this hash to confirm the draw was not manipulated. This mechanism provides a level of transparency that is unprecedented in XenForo giveaway solutions and dramatically increases community trust in your administration.
  • active_giveaways-widget.webp
    active_giveaways-widget.webp
    51 KB · Views: 21
  • design.webp
    design.webp
    16.4 KB · Views: 19
  • general-settings.webp
    general-settings.webp
    33.5 KB · Views: 18
  • giveaways.webp
    giveaways.webp
    69.9 KB · Views: 20
  • options.webp
    options.webp
    22.4 KB · Views: 19
  • participants.webp
    participants.webp
    86.4 KB · Views: 19
  • participation-conditions.webp
    participation-conditions.webp
    58.6 KB · Views: 18
  • style-properties.webp
    style-properties.webp
    24.4 KB · Views: 18
  • thread-information.webp
    thread-information.webp
    32 KB · Views: 20
  • threads.webp
    threads.webp
    57.3 KB · Views: 20
  • widget.webp
    widget.webp
    13 KB · Views: 21
  • Like
Reactions: alfaNova
Author
Osman
Views
38
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from Osman

  • [XTR] AI Assistant
    [XTR] AI Assistant
    Upgrade your forum with AI automation: multi-provider support smart bots, auto replies, content hub.
  • [XTR] Special Days Pro
    [XTR] Special Days Pro
    Liven up your forum with automatic banners and celebrations on special days!
  • [XTR] Watermark Pro
    [XTR] Watermark Pro
    Professional XenForo add-on that auto-applies text or logo watermarks. Dynamic, safe, easy to use!
  • [XTR] Similar Thread Suggestions
    [XTR] Similar Thread Suggestions
    Discover relevant threads with smart recommendations, multiple tabs, XFRM/XFMG/eCommerce support.
  • [XTR] Smart Customization
    [XTR] Smart Customization
    [XTR] Smart Customization customizes your XenForo with flexible and powerful tools.
Back
Top Bottom