Hey guys,
I've been working on a Hero Zero private server for a while now, started from the [Only registered and activated users can see links. Click Here To Register...] files. The base had the core stuff but a lot was either broken or straight up missing, so I've been rewriting and adding things to get it closer to how the real game works.
All game features are now fully implemented! The core game is fully functional with 89% SWF coverage. Future updates will focus on bug fixes, stability improvements and quality of life changes.
Current version: 2.0.0
Tech Stack
SWF Compatibility
What I've added so far:
Core Systems
Goals & Achievements
Herobook Objectives
Slot Machine
Tournaments
World Boss
Sewing Machine & Costume Collections
Guild Systems
Surprise Box
Account Management
Event Quests
Message Ignore System
Bug Fixes
Version History
What's next:
All game features are now fully implemented. Future updates will focus on bug fixes, stability improvements and quality of life changes.
This is a solo hobby project so updates come when I have the time. If anyone is messing with Hero Zero servers or has dealt with getting Ruffle.rs to play nice with Flash game backends, I'd like to hear about it.
Github: [Only registered and activated users can see links. Click Here To Register...]
Discord: [Only registered and activated users can see links. Click Here To Register...]
Screenshots here: [Only registered and activated users can see links. Click Here To Register...]
I've been working on a Hero Zero private server for a while now, started from the [Only registered and activated users can see links. Click Here To Register...] files. The base had the core stuff but a lot was either broken or straight up missing, so I've been rewriting and adding things to get it closer to how the real game works.
All game features are now fully implemented! The core game is fully functional with 89% SWF coverage. Future updates will focus on bug fixes, stability improvements and quality of life changes.
Current version: 2.0.0
Tech Stack
- PHP 8.3 + MySQL 8.4 + Apache (Laragon)
- Flash SWF client running through Ruffle.rs works in Chrome, no Flash needed
- Node.js WebSocket server for real-time push
- Local CDN proxy for Akamai assets (CORS workaround)
SWF Compatibility
- Did a full analysis of the Flash client 234 total actions defined in the SWF source
- 180 server handlers implemented, 170 matching SWF actions = 87% gameplay coverage
- 38 actions not needed (payments, ads, SSO, Kongregate, game testing stuff)
- 26 implementable actions still missing - friend system, event quests, resource requests
- Full cross-reference report with priority tiers for what to tackle next
What I've added so far:
Core Systems
- Real-time WebSocket server - messages, goals, everything syncs instantly, no more waiting on polls
- Email system with PHPMailer + MySQL queue - password reset works like the original game (two-step with token)
- Admin panel from scratch - Bootstrap 5, dark theme, manage users, characters (categorized inventory, give items), guilds, item template catalog (779 items with filters), messages, emails, events, vouchers, server config
- Multi-language support across all pages (PL / EN / PT-BR)
Goals & Achievements
- All 243 achievements working with milestone progression and rewards
- 9 reward types (gold, donuts, stat points, XP, items, training, energy, boosters, sidekicks)
- 63 out of 67 goal types fully tracked - the remaining 4 are blocked by systems that don't exist in the original server code
- Progress syncs in real-time via WebSocket after every action
- Tracking working for equipment, leaderboard, shop, boosters, guild battles, sidekicks and more
Herobook Objectives
- 3 daily + 2 weekly rotating objectives, unlocks at level 40
- Collectible item drops on reward claims
- Renewal cost scaling, instant finish for donuts
- Integrated with quests, duels, training, work, dungeons and league fights
Slot Machine
- All 7 reward types working - coins, XP, stat points, quest energy, training sessions, boosters and items
- Item rewards generate random equipment (type 1-7) with quality scaling based on how many reels match 3 match gives top quality, 2 match gives mid, no match gives basic
- Booster rewards with 3 tiers (quest, stats, work) duration stacks with any active booster
- Sidekick symbol falls back to coins since the SWF reward dialog has no display logic for sidekicks
- Anti-exploit protection - server-side MySQL lock prevents double-spin during the animation window where the SWF briefly re-enables the spin button
- Slot machine chat feed working - shows recent wins to other players in real-time
Tournaments
- Weekly competitive events with XP, honor, and guild honor leaderboards
- CLI lifecycle script for starting, ending and checking tournament status
- Rewards - donuts for top character rankings, guild premium currency for top guilds
- Leaderboards show real-time progress during the tournament week
- All three tabs working - XP, honor, and guild honor with proper guild emblem display
World Boss
- Server-wide boss events with HP tracking, damage ranking and reward distribution
- Full two-step attack flow matching how the real game works - timer phase, then fight resolution with battle animation, then summary dialog with damage dealt and ranking
- Instant finish with donuts, attack cancellation, and active attack persistence across page refreshes
- Boss defeat triggers socket push to all connected players
- CLI lifecycle script for spawning, processing and checking boss status
- Rewards update in real-time after each attack - coins, XP, items, energy refills, training sessions
- Event localization pulled from CDN translation files (PT/EN/PL)
Sewing Machine & Costume Collections
- Sewing machine - change item skins for gold or donuts, tracks owned templates
- 33 costume collection sets with milestone rewards (stat points, items, training, energy)
- Pattern progress tracked automatically when buying items or claiming goal rewards
Guild Systems
- Guild dungeons - full attack and join flow with NPC team battles and goal tracking
- Guild leader elections - vote-based leadership transfers with majority resolution, auto-finishes when all members have voted
- Guild artifact release - spend premium currency with cooldown timer and active battle checks
- Guild invitation decline with 72-hour expiration validation
- Guild dungeon battle reward claiming with item placement
Surprise Box
- Type 10 inventory items generate 1-3 random equipment pieces (rare/epic quality)
- Items added to owned templates and costume pattern tracking automatically
Account Management
- Change email with password verification and duplicate check
- Account deletion with full cascade cleanup of all related data
- Stat redistribution with total point validation
- Message item claiming from attachments
Event Quests
- 13 themed events: Halloween, Summer, Xmas (x2), Winter Olympics, Carnival, Easter, Ghostbusters, World Cup (x2), Birthday, Octoberfest, Olympia Rio
- Timed objectives players need to complete before the event ends
- 11 objective tracking types: quests, duels, training, honor, energy, world boss, event items, sewing, shop refresh
- Event item drops on quest completion with configurable chance per item
- Admin panel to activate/deactivate events with date picker - only 1 event active at a time
- Progress tracked automatically across all reward handlers
Message Ignore System
- Ignore/unignore characters from the mailbox
- Blocked users see "unknown recipient" when trying to send
Bug Fixes
- JSON responses breaking from PHP 8 deprecation warnings
- MySQL 8.x strict mode failing on legacy table schemas
- Fight reward calculations treating wins as losses
- Dungeons not regenerating after completion
- Goal coin rewards being way off (formula mismatch with SWF)
- Duel reward claims crashing because winner field was read from the wrong DB table
- Guild emblem with default values crashing the entire SWF UI
- League opponent list boundary bug in demotion conditions
- Guild dungeon battle resolution was incomplete - NPC teams weren't being processed
- In-game messaging crash from Unicode regex bug on PHP 8.x
- Duel and league stamina regeneration exceeding maximum caps
- Slot machine always winning due to hardcoded debug values instead of random rolls
- Slot machine chat showing NaN - PHP 8 json_decode returning stdClass instead of array
- World boss battle records missing profile stats causing SWF crash on completion dialog
- World boss attacks stuck after language change due to missing attack data on login
- World boss reward display not updating after attacks until page refresh
- Tournament end crashing on MySQL 8 due to UNSIGNED integer underflow when stats decreased during tournament
- Tournament guild honor leaderboard crashing because SWF expected short field names for guild emblem data
- Config::get() crashing on missing keys - replaced ?: pattern with proper default argument in multiple handlers
- SQL injection in admin panel search queries - switched to prepared statements
- Admin destructive actions now require POST with CSRF token
- And a bunch more smaller stuff
Version History
- 2.0.0 (2026-03-21) - Event quest system with 13 themed events, admin events panel, 11 objective types, event item drops
- 1.1.0 (2026-03-19) - Message ignore system, server-side message blocking, 1 new DB table
- 1.0.6 (2026-03-18) - Quick win handlers (locale, ToS, quest refresh, logout, error logging), league fight rewards fix
- 1.0.5 (2026-03-15) - Guild battle history, voucher/promo code system with admin panel, item validation safety
- 1.0.4 (2026-03-15) - 10 new handlers: guild leader elections with majority voting, guild artifact release with cooldown, decline guild invitations, claim dungeon battle rewards, claim message item attachments, change email, delete account, stat redistribution. Fixed Config::get() crash pattern across multiple handlers. Full SWF compatibility report - analyzed all 234 client actions against server, documented 28 missing with priority tiers
- 1.0.3 (2026-03-14) - Slot machine fully operational with all 7 reward types, item generation, booster stacking, and double-spin exploit protection. World boss attack flow rewritten to match SWF two-step process, battle records include full profile stats, active attacks persist across refreshes. Tournament leaderboards fixed - guild honor tab no longer crashes, end-of-week processing handles stat decreases correctly
- 1.0.2 (2026-03-13) - Admin items page reworked into read-only template catalog, character inventory categorized by location (equipped/bag/shop/bank), give item tool with bag or bank destination
- 1.0.1 (2026-03-13) - Fixed in-game messaging crash, sent message format, stamina regeneration exceeding caps, admin SQL injection and CSRF on destructive actions
- 1.0.0 (2026-03-10) - Initial release with all core systems: Ruffle.rs integration, email system, admin panel, goals, herobook, tournaments, world boss, sewing machine, costume collections, guild dungeons, surprise box, socket server
What's next:
All game features are now fully implemented. Future updates will focus on bug fixes, stability improvements and quality of life changes.
This is a solo hobby project so updates come when I have the time. If anyone is messing with Hero Zero servers or has dealt with getting Ruffle.rs to play nice with Flash game backends, I'd like to hear about it.
Github: [Only registered and activated users can see links. Click Here To Register...]
Discord: [Only registered and activated users can see links. Click Here To Register...]
Screenshots here: [Only registered and activated users can see links. Click Here To Register...]