Gamification Overview
Updated
Pro feature. Available in MediaVerse Pro.
Requires WPMediaVerse Pro - This feature is available exclusively in the Pro version.
WPMediaVerse Gamification turns your media community into a competitive platform. Users earn XP, enter photo competitions, challenge each other to battles, and boost their media visibility - all integrated with the wb-gamification plugin's XP and reward engine.
Gamification requires WPMediaVerse Pro and the wb-gamification plugin (active and configured). All gamification features are disabled by default. Enable each feature individually at WPMediaVerse > Settings > Gamification.

Requirements
- WPMediaVerse Pro 1.0.0+
- wb-gamification plugin (active)
- WordPress 6.5+
- PHP 7.4+
Feature Types
| Feature | Description | Setting Key |
|---|---|---|
| Photo Challenges | Themed weekly competitions with voting | mvs_challenges_enabled |
| Photo Battles | 1v1 head-to-head media matchups | mvs_battles_enabled |
| Tournaments | Single-elimination bracket competitions | mvs_tournaments_enabled |
| Media Boosts | Spend points to increase media visibility | mvs_boosts_enabled |
| Upload Streaks | Track consecutive daily uploads | mvs_streaks_enabled |
Competition Types
All three competition types share a unified database schema. Each type follows its own lifecycle, but they share the same tables.
Challenges
Themed weekly competitions. Admin creates a challenge with a theme, entry window, and voting window. Users submit a photo, community votes, winners earn XP prizes.
Battles
1v1 matchups. A challenger picks a photo and invites an opponent. Both submit photos, the community votes, the system resolves the winner.
Tournaments
Single-elimination brackets for 4 to 64 participants. Users register, the system seeds the bracket, rounds proceed by community vote until a winner is determined.
Database Schema
| Table | Purpose |
|---|---|
mvs_competitions |
Master record for all challenges, battles, and tournaments |
mvs_competition_entries |
User photo submissions for any competition type |
mvs_competition_matches |
Individual head-to-head pairings (battles and tournament rounds) |
mvs_competition_votes |
Per-user votes on entries or matches |
mvs_boosts |
Active and expired media boost records |
The mvs_competitions.type column distinguishes between challenge, battle, and tournament records.
XP Integration
XP and points are not awarded by WPMediaVerse itself - the separate free wb-gamification plugin is the points engine. WPMediaVerse ships an integration manifest that registers 15 gamification actions (photo upload, album creation, likes/comments/follows/favorites received and given, bookmarks, battle win, challenge participation, challenge placing, tournament round win, tournament win, and streak milestones).

As members interact with the site and competitions, WPMediaVerse fires the matching action hooks - for example mvs_media_uploaded, mvs_battle_resolved, mvs_challenge_winner_named, mvs_tournament_finalized, and mvs_streak_milestone - and wb-gamification awards the points configured for each action. The per-competition XP prizes you set on a challenge or tournament are honored through the wb_gam_points_for_action filter, so the points a member earns match the prize shown in the UI.
Without the wb-gamification plugin active, competitions still run end to end - members enter, vote, and win - but no points are earned or spent. Install and activate wb-gamification to enable the XP and rewards layer.
Frontend Pages
| URL | Description |
|---|---|
/media/challenges/ |
Browse and enter photo challenges |
/media/battles/ |
View active and completed battles |
/media/tournaments/ |
Browse tournaments and view brackets |
/compete/ |
Unified competition hub showing all active competitions |
The My Media dashboard adds Challenges, Battles, and Tournaments tabs showing the logged-in user's entries, results, and active matches.

Scheduled Actions
All competition lifecycle transitions run via Action Scheduler on an hourly recurrence. No competition state changes happen in real time - transitions occur at the next hourly tick after a deadline passes.
| Scheduled Action | Trigger Condition |
|---|---|
mvs_activate_scheduled_challenges |
Challenge start date reached |
mvs_close_challenge_entries |
Entry deadline reached |
mvs_finalize_expired_challenges |
Voting deadline reached |
mvs_resolve_expired_battles |
Battle vote deadline reached |
mvs_start_registered_tournaments |
Tournament registration deadline reached |
mvs_resolve_expired_matches |
Match vote deadline reached |
mvs_expire_boosts |
Boost impression target or duration reached |
mvs_daily_streak_check |
Daily at 2 AM - break streaks for missed uploads |
Action Scheduler must be running for gamification to function. If you use a managed host that blocks WP-Cron, configure Action Scheduler with a server-level cron trigger.