Directory / plugin
Init User Engine – Gamified, Fast, Frontend-First
v1.7.5 · by Init HTML
Gamified user engine with EXP levels, Coin/Cash wallet, check-in, VIP, inbox, and referral – powered by REST API and Vanilla JS.
About this plugin
Init User Engine is a lightweight, no-bloat user system for modern WordPress sites. It’s designed for maximum frontend flexibility and gamified user engagement. All dynamic interfaces are rendered via JavaScript with real-time REST API interaction.
No jQuery. Minimal settings. Smart by default.
What you get:
- Display user avatar and dashboard via shortcode
- Show level, EXP, Coin/Cash, and full user wallet
- Frontend login & registration modal with Cloudflare Turnstile (or built-in math captcha) protection
- Let users check-in daily and receive timed rewards
- Auto-track referral registrations with reward system
- Let users buy VIP status using Coin, Cash, or both
- Redeem Code / Gift Code and dedicated VIP Code system, with CSV export from wp-admin
- Built-in inbox for notifications (uses custom DB table), with pinned/expiring messages and a stats dashboard
- Custom avatar support with upload & preview modal
- Send custom notifications to selected users or all members from wp-admin
- Optional “Require Login to Access Site” mode that gates the entire frontend behind the built-in login modal
- Optional one-step “Login After Register” so new users land on the site already signed in
This plugin is the core user system behind the Init Plugin Suite – optimized for frontend-first interaction, extensibility, and real-time gamification.
GitHub repository: https://github.com/brokensmile2103/init-user-engine
Features
Profile & Avatar
- Avatar shortcode
[init_user_engine]– renders the guest login button or the logged-in avatar with dropdown dashboard automatically - Modal dashboard showing level, EXP progress, Coin/Cash wallet, and quick links
- Custom avatar upload with live preview, crop-free flow, and one-click revert to the default/Gravatar image
- Configurable upload policy (allow everyone, VIP only, or disable uploads entirely) with a configurable max file size
- Optional display name change limit (e.g. once every 7 days, like TikTok), enforced in the profile modal,
wp-admin/profile.php, the REST API and WooCommerce Account details - Theme override support: any template file can be overridden by copying it to
your-theme/init-user-engine/
Accounts, Login & Registration
- Frontend login & registration modal – no theme editing or template overrides required
- “Login After Register” option to automatically sign users in right after they create an account (disabled by default)
- Failed logins reopen the login modal on the current page with an inline error message, instead of redirecting to
wp-login.php - Cloudflare Turnstile captcha on registration, with a built-in math-question captcha as automatic fallback when no Turnstile keys are set
- Optional protection of the native WordPress login, registration, and lost-password forms (
wp-login.php) using the same Turnstile setup - “Forgot password?” form right inside the login modal, using the native WordPress reset flow (can be turned off; a custom Lost Password URL always takes priority)
- Custom redirect URLs for “Register” and “Lost password” links
- Optional “Require Login to Access Site” mode that gates the entire frontend behind the built-in login modal
- Ability to temporarily disable new registrations without affecting other plugins or WordPress core
Gamification
- EXP & Level system with hookable progression logic
- Coin & Cash dual-wallet system with transaction logs and a configurable exchange rate between the two currencies
- Daily check-in with streak milestones and an online-time bonus timer
- Optional Streak Recovery: members who miss a few days can spend Coin to keep their check-in streak alive (allowed missed days and Coin price per day are configurable, off by default)
- Built-in reward hooks for registration, daily login, comments, published posts, and completed WooCommerce orders (when WooCommerce is active)
VIP Membership
- VIP membership system with Coin-based, Cash-based, or combined purchase options
- Multiple configurable pricing tiers per duration, including a lifetime option
- VIP bonus multipliers for Coin/EXP earning
- Optional VIP purchase lock (globally disable new purchases) and stacking restriction
Referral
- Referral module with cookie-based signup tracking
- Separate, configurable rewards for both the referrer and the newly referred user
Redeem & VIP Codes
- Redeem Code / Gift Code module – code in, rewards out
- Dedicated VIP Codes module to grant VIP duration through a code
- One-click CSV export for both code lists (full list, streamed in batches, UTF-8 BOM, and sanitized against CSV/formula injection)
Inbox & Notifications
- Built-in inbox system with pagination and read/claim/delete actions
- Pinned messages that automatically unpin once read, or once their optional expiration time passes
- Admin panel to send custom notifications to selected users or all members, with priority and expiration
- Inbox Statistics dashboard (Users Init User Engine Inbox Statistics) with date-range filtering
- Optional automatic cleanup of read messages older than a set number of days (unread, pinned and assigned-code messages are always kept)
Admin Tools
- Manual Top-up tool for Coin/Cash (Users Init User Engine Top-up Coin/Cash)
- Per-user overview metabox on the WordPress profile/edit-user screen (level, wallet, VIP status, recent activity), with one-click Remove VIP, Ban Avatar Upload and Unlock Display Name actions
Developer-Friendly
- REST API for all features (read/write/modify)
- Action/filter hooks for full customization
- Pure Vanilla JS frontend – no jQuery, no server bloat
Developer Hooks
Filters
init_plugin_suite_user_engine_online_minutes– Modify required online minutes after check-ininit_plugin_suite_user_engine_vip_prices– Modify VIP package pricesinit_plugin_suite_user_engine_referral_rewards– Modify referral rewardsinit_plugin_suite_user_engine_localized_data– Modify frontend JS datainit_plugin_suite_user_engine_calculated_coin_amount– Modify Coin reward before applyinit_plugin_suite_user_engine_calculated_exp_amount– Modify EXP reward before applyinit_plugin_suite_user_engine_exp_required– Modify EXP required per levelinit_plugin_suite_user_engine_checkin_milestones– Set milestone streak daysinit_plugin_suite_user_engine_format_inbox– Modify formatted inbox datainit_plugin_suite_user_engine_render_level_badge– Customize level badge HTMLinit_plugin_suite_user_engine_inbox_insert_data– Modify inbox data before inserting into databaseinit_plugin_suite_user_engine_validate_register_fields– Validate or modify registration fields before account creationinit_plugin_suite_user_engine_after_register– Hook after successful user registration (pass user ID and submitted data)init_plugin_suite_user_engine_daily_tasks– Add or modify daily task list and logicinit_plugin_suite_user_engine_captcha_bank– Extend or modify the internal captcha question bank used for fallback validationinit_plugin_suite_user_engine_format_log_message– Customize transaction log message display with access to entry data, source, type, and amountinit_plugin_suite_user_engine_should_keep_original– Override decision to keep original uploaded avatar (GIF or other formats)init_plugin_suite_user_engine_vip_expire_soon_threshold– Modify the threshold (in seconds) used to determine when VIP is considered close to expirationinit_plugin_suite_user_engine_body_vip_classes– Add, remove, or modify VIP-related CSS classes applied to the<body>elementinit_plugin_suite_user_engine_theme_colors– Modify theme color system (primary and active colors)init_plugin_suite_user_engine_streak_restore_max_days– Modify how many missed check-in days a user may cover to keep their streak (return0to disable it for that user)init_plugin_suite_user_engine_streak_restore_cost– Modify the Coin cost of keeping a streak (receives total cost, missed days, and user ID)init_plugin_suite_user_engine_lostpassword_modal_enabled– Enable or disable the lost password form inside the login modal (receives the current value and the plugin settings)init_plugin_suite_user_engine_display_name_change_days– Modify how many days a member has to wait between two display name changes (receives the days from the settings and the user ID;0= unlimited)init_plugin_suite_user_engine_display_name_limit_applies– Returnfalseto let a user (or role) change their display name freely (receives the current value and the user ID)init_plugin_suite_user_engine_inbox_auto_delete_days– Modify how many days read Inbox messages are kept before automatic deletion (0= never)init_plugin_suite_user_engine_inbox_auto_delete_keep_meta_keys– Metadata keys that mark an Inbox message to keep during automatic deletion (defaultcreated_by)init_plugin_suite_user_engine_inbox_auto_delete_batch/init_plugin_suite_user_engine_inbox_auto_delete_time_limit– Ids perDELETE(default 5000) and seconds per run (default 20) of the automatic deletioninit_plugin_suite_user_engine_dashboard_stats_max_age– How old (in seconds) the Dashboard Inbox widget numbers may be before a background refresh (default 900)
Actions
init_plugin_suite_user_engine_level_up– When user levels upinit_plugin_suite_user_engine_exp_added– After EXP is addedinit_plugin_suite_user_engine_transaction_logged– After Coin/Cash is loggedinit_plugin_suite_user_engine_exp_logged– After EXP log is recordedinit_plugin_suite_user_engine_inbox_inserted– After new inbox messageinit_plugin_suite_user_engine_inbox_auto_deleted– After an automatic cleanup of read Inbox messages finishes (number deleted, cutoff)init_plugin_suite_user_engine_referral_completed– When referral is completedinit_plugin_suite_user_engine_after_checkin– After user check-ininit_plugin_suite_user_engine_streak_restored– After a user paid Coin to keep their check-in streak (user ID, missed days, cost, new streak)init_plugin_suite_user_engine_after_claim_reward– After user claims rewardinit_plugin_suite_user_engine_vip_purchased– After VIP is purchasedinit_plugin_suite_user_engine_add_exp– Triggered when adding EXP via hookinit_plugin_suite_user_engine_add_coin– Triggered when adding Coin via hookinit_plugin_suite_user_engine_coin_changed– After user’s Coin balance is updatedinit_plugin_suite_user_engine_cash_changed– After user’s Cash balance is updatedinit_plugin_suite_user_engine_admin_send_notice– When admin sends notification via wp-admin.init_plugin_suite_user_engine_display_name_unlocked– After an administrator lets a member change their display name again (user ID)
REST API Endpoints
Base: /wp-json/inituser/v1/
POST /register– Create a new user accountPOST /checkin– Daily check-in (optional JSON body:prompt_restore,restore_streak,restore_costfor Streak Recovery)POST /claim-reward– Claim reward after online durationGET /transactions– Get Coin/Cash transaction logGET /exp-log– Get EXP logGET /inbox– Get inbox messagesPOST /inbox/mark-read– Mark a message as readPOST /inbox/mark-all-read– Mark all as readPOST /inbox/delete– Delete a single messagePOST /inbox/delete-all– Delete all messagesPOST /vip/purchase– Purchase VIP packageGET /referral-log– Get referral historyPOST /avatar– Upload new avatarPOST /avatar/remove– Remove custom avatar and revert to defaultGET /profile/me– Get current user profile (includesdisplay_name_limit:days,locked,next_change,notice)POST /profile/update– Update profile informationGET /daily-tasks– Get list of completed daily tasks and rewardsPOST /exchange– Convert Cash Coin based on exchange ratePOST /redeem-code– Redeem gift code (returns Coin/Cash rewards)
License
This plugin is licensed under the GPLv2 or later.
You are free to use, modify, and distribute it under the same license.