Survivors vs Zombies – Card Tower Defense is a complete card tower defense game template for Unity, built for mobile in portrait. Collect a crew of survivors and pirates as cards, place and merge them on a lawn split into lanes, and stop the zombie waves before they reach the house. Around the battles you get every system a live mobile game needs: a campaign on a world map, crew collection and upgrades, a shop with gem and coin packs for real money, missions and events, a weekly arena with leagues, event towers, clans, friends, chat, mail and six languages.
It comes with its own authoritative multiplayer server with full source code (Node.js, TypeScript, Colyseus, MySQL/MariaDB and Redis): the server runs every battle in deterministic lockstep and decides every reward and purchase, so players can't cheat by editing the game. The same game also runs 100% offline with the same rules, and you switch between Offline and Online with one setting.
Every rule is a ScriptableObject you edit in Unity and send to the server with one click, so you can ship your own tower defense, lane defense or merge defense game without writing the battle engine, the live-ops systems or the backend from scratch.
Play the WebGL Demo
Android APK | Documentation | WebSocket Backend | Discord Community | Website
LANE BATTLES (CARD TOWER DEFENSE)
- Portrait lane battles: 5 lanes x 9 columns in the demo (up to 12 x 20), on a vertical or a horizontal board.
- Drag and drop a card onto the lawn, or tap a card and then a cell, with a ghost preview and highlighted cells.
- Energy from a passive flow, generators and zombie kills; each card has an energy cost and its own recharge.
- Merge the same card on a crew member to raise it to ★2 and ★3: more health and damage, a bigger character and a badge.
- Shooters (range, splash, pierce, slow, stun, burn, close combat), energy generators and barriers. Every crew member blocks the zombies.
- Zombies with armor and reach, stationary bosses and boss phases (faster, harder hits, less damage taken, lane pulses).
- Waves of spawn groups, a lane guard cannon in every lane, speed x1 / x2, pause, and a result window with stars and rewards.
CAMPAIGN AND WORLD MAP
- World map with locked, available and completed locations, a location card with the stages and a battle preparation window (zombies, rewards, team).
- Stages with difficulties, a required level, prerequisites, and victory, first-clear and defeat rewards.
- 3 stars per stage: win, keep the base intact, win within the time limit.
- Player levels and XP that unlock stages and crew cards.
CREW COLLECTION AND UPGRADES
- 11 demo crew cards (survivors and pirates) and 8 zombies, in common, rare, epic and legendary rarities.
- Five unlock methods: starter, card tokens (with wild tokens), winning a stage, buying with coins or gems, player level.
- Upgrade curves with costs in coins, gems and items, health and damage multipliers, and presets that fill them in one click.
- Card abilities that unlock at collection levels and change any stat (pierce, rapid fire, slow, stun, burn, cost...).
- A team of 5 cards (1 to 12), items (upgrade XP, materials, tokens) and a CREW tab with the card window.
SHOP AND REAL-MONEY PURCHASES (IAP)
- Daily deals for coins or gems with daily limits, level locks and ribbons.
- Gem packs, coin packs and a one-time starter pack with Unity IAP 5 for Google Play and the App Store, with a first-purchase bonus.
- The server verifies every receipt with Google or Apple, binds it to the buyer's account and grants it once; an undelivered purchase arrives at the next start.
- Refunds from App Store notifications, refunded Google Play purchases or the admin panel take back what the purchase gave.
- Test mode for WebGL builds, demo APKs and QA: every product is granted without a store and without payment, switched on the server with no new build. Unity's fake store works in the Editor.
MISSIONS, EVENTS AND LIVE CONTENT
- Daily and weekly missions, achievement chains with tiers, and timed events, all counted by the server.
- Daily login calendar and a lucky wheel (weighted wedges drawn by the server, free and paid spins, daily limit).
- News and mail with gifts: live content you change from Unity or the admin panel with no restart and no new build.
- Balance changes (costs, health, damage, rewards, prices) reach the players from the server without a new build.
ARENA, EVENT TOWERS AND CLANS
- Weekly arena: score battles, groups in 6 leagues from Bronze to Legend, promotion and demotion, tickets and season rewards by mail.
- Event towers: timed towers of floors climbed in order, with a first-clear reward on each floor.
- Clans: open, by request or closed, roles, clan chat, crew token donations, emblems and a clan ranking.
FRIENDS, CHAT AND PROFILE
- Friends with friend codes, daily gifts and player cards.
- Global and clan chat with a word filter, a rate limit, a mute and a history saved on the server (database or Redis).
- Rankings by stars, level and wins.
- Profile with avatars, nickname, level and stats; a guest account per device, and email linking to play on any device.
- Settings: music, sound, vibration, graphics and language.
AUTHORITATIVE SERVER (FULL SOURCE CODE)
- Node.js + TypeScript server built on Colyseus 0.18, with MySQL or MariaDB storage and Redis sessions.
- The server runs every battle in deterministic lockstep (50 ms ticks). The client plays a replica of the confirmed ticks, checks state hashes and resyncs from a checkpoint, with reconnection.
- The client only sends intents. Rewards, purchases, unlocks, upgrades and scores are decided on the server inside transactions, with a ledger for every currency and item change.
- The battle rules exist in C# and TypeScript, kept identical by golden battle fixtures and parity tests.
- Rate limits, validated messages, secrets checked in production, bans and a maintenance mode.
- Web admin panel: players, grant or remove currencies and items, mail, bans, refunds, news, maintenance and an audit log.
- Step-by-step guide for beginners to deploy the server on an Ubuntu VPS (MariaDB, Redis, PM2, Caddy with free HTTPS), with backups and optional Cloudflare.
OFFLINE MODE
- The whole game also runs on the device with no server, with the same rules and an encrypted save.
- Switch between Offline and Online with one setting, without changing any code (the arena, clans, friends and chat need the server).
EASY TO CUSTOMIZE
- Every game rule is a ScriptableObject: defenders, enemies, encounters and waves, campaign and difficulties, collection and upgrade curves, shop and products, missions and events, wheel, arena, towers, news and mail.
- One-click export of the game data to the server, with data checks, and a content validator that runs before every build.
- Your own art: 2D sprite sheets (the demo characters are pre-rendered from 3D models), view prefabs and board art.
- Clean architecture: one backend interface with an Online and an Offline implementation of each feature, async code (UniTask), and guides to add server features, battle modes and battle rules.
- Localization: English, Portuguese, Spanish, Chinese, Japanese and Korean, with Noto Sans CJK fonts.
- Documentation that explains every ScriptableObject and Inspector setting, online and as an offline PDF included in the package.
PLATFORMS
Third-party content: the crew and the zombies are rendered into 2D sprites from CC0 3D models (Quaternius), the map, icons and particles use CC0 Kenney assets, and the audio is CC0. Fonts are under the SIL Open Font License (Lilita One, Noto Sans SC/JP/KR). Libraries are under the MIT License (Colyseus SDK, UniTask, LeanTween, UIEffect, UIParticle).