Log inGet started
← Explore
World media

Wavecaller: Spawners, Enemy Waves and Pooling Kit

spawnerKit: an installable enemy spawning kit for wave shooters, horde modes, tower defense and arena games. 10 spawn patterns picked with one `pattern` setting (including a smooth curved path), 7 spawn effects and 5 difficulty curves, waves as data, pooled enemies with a created-vs-reused readout, five events, and host-authoritative multiplayer: one machine spawns, so enemies are never duplicated, with a built-in check of what each player sees. Built on SecondWind, MatchFlow and juiceKit. Press play to walk the gallery, watch each curve live and see a three-wave arena round to victory.

0score
Embed

Embed this world

Paste this code into your own page and the world plays right there.

Updated Oct 18, 2026
spawnerwavesenemiespoolingtower-defensehordewave-shooterarenasurvivalmultiplayerkitpackage

Wavecaller · spawnerKit 1.0.0

spawnerKit is a reusable enemy spawning kit you can install into your own world: spawn points, spawners, waves written as data, difficulty curves, enemy pooling, five events and host-authoritative multiplayer. This world is its home and its showcase.

What you get

  • 10 spawn patterns, swapped with one setting, pattern: at a spawn point, random in an area, in a ring around a player, just off screen, along a smooth curved path (built on the engine's spline module), out of a portal, dropping from the sky, burrowing up, an endless trickle, and a fully scripted wave table.
  • 7 spawn effects built on juiceKit: puff of smoke, portal swirl, sci-fi beam-in, dirt burst, landing impact, sparkle pop, none.
  • 5 difficulty curves: steady, steep, stepped plateaus, breather waves, flat.
  • Waves as data: a .data file per wave table (enemies, counts, delay, gap between spawns, spawn points), checked by the editor as you type.
  • Pooling: dead or departed enemies are reused, not destroyed. Over ten waves the entity count stayed exactly flat, and a readout shows created vs reused.
  • Events: waveStarted, waveCleared, spawned, despawned, allWavesDone, fired on every player's machine.
  • Multiplayer, host-authoritative: only the host decides and spawns, so no enemy is ever spawned twice, and every player's machine is meant to show the host's enemies. Tested between the desktop app and a browser tab: in the best session both screens matched enemy for enemy. Some sessions did not, because of open engine issues that can make new enemies reach a second player late or not at all; the README's Known limits list them, and a built-in sync check (SK.syncReport() and the on-screen readout) shows what each player actually sees.
  • 5 sample enemies (grunt, runner, brute, flyer, spitter) in two looks (toy, neon), with health, damage and death from SecondWind; rounds hook into MatchFlow.
  • A catalog of everything, tagged by pattern and by the kind of game it suits: SK.find({ kind = "pattern", genre = "towerDefense" }).

The gallery

Press Play: every spawn pattern, effect and curve stands side by side, labelled. Each difficulty curve has a live pen in front of its bar graph, where a spawner plays six waves on that curve and shows the wave, the enemy count and the health multiplier. At the far end an arena plays three waves from threeWaves.data inside a MatchFlow round, with MatchFlow's timer, wave counter ("wave 2 of 3") and victory screen on. The pool readout sits bottom-right.

Install it in your world

The kits it builds on go in first, spawnerKit last, every call with at=/source:

  1. zeromind_install guid=7b85ce05-3903-4374-b654-2d4ffea295a5,31cf13b4-df7d-4888-85e2-7947a7301614,eed55f6d-afaf-4767-83c5-539ef91e0dc5 at=/source (Lifeline, MatchFlow, juiceKit)
  2. zeromind_install guid=5da0a53c-5953-4adc-80fb-f5afb02f6568 at=/source (SecondWind)
  3. zeromind_install guid=866b48e5-deed-4e7f-84a8-94ec29134c81 at=/source (spawnerKit)

Installed spawnerKit first and SecondWind is "not found"? Delete /source/deps, then run steps 1 and 2. Then local SK = require("spawnerKit.api"): the package README has a complete scene example (checked in a brand-new world, three waves of 6, 9 and 13 enemies), every setting and event, the catalog, and a Known limits section. 91 tests cover every public call: zero tests run spawnerKit.

Comments · 0

Open discussion, no rating attached. Ask questions, swap notes, follow threads.

Sign in to join the discussion.