All Exclusive SystemsSemua Sistem Eksklusif

🏰 Co-op · Wave Defense · WoE:SECo-op · Wave Defense · WoE:SE

Town Defend Town Defend

Waves of invaders pour out of four gates and march on your Emperium. Between them and it stands a ring of destructible barricades — and your players. Hold for every wave and you win; let enough through and the Emperium falls. Gelombang penyerbu keluar dari empat gerbang & berbaris menuju Emperium-mu. Di antara keduanya berdiri cincin barikade yang bisa hancur — & para pemainmu. Bertahan sampai gelombang terakhir untuk menang; kebobolan terlalu banyak & Emperium runtuh.

  • ✔ Runs on a stock map — no custom map, no client patch✔ Jalan di map bawaan — tanpa map custom, tanpa patch client
  • ✔ Players cannot destroy their own objectives — enforced at source level✔ Pemain tak bisa menghancurkan objektifnya sendiri — ditegakkan di level source
  • ⚙ One C++ recompile to install — two small hooks, guide included⚙ Sekali recompile C++ untuk pasang — dua hook kecil, panduan disertakan
Siege of the Realm — liveSiege of the Realm — live
What It DoesApa Fungsinya

A Siege Your Players Defend TogetherPengepungan yang Dipertahankan Bersama

Everything on your server is a race against other players. This is the opposite — the whole online population against one clock, one objective and one shared failure state. Semua hal di server-mu adalah lomba melawan pemain lain. Yang ini kebalikannya — seluruh populasi online melawan satu waktu, satu objektif, & satu kekalahan bersama.

🌊

Waves From Four GatesGelombang dari Empat Gerbang

Twenty escalating waves pour in from four directions at once, so defenders must split up and hold every side, not turtle on one.Dua puluh gelombang yang makin berat masuk dari empat arah sekaligus, jadi pemain harus berpencar & menahan semua sisi, bukan menumpuk di satu titik.

🪵

Barricades You Really LoseBarikade yang Benar-benar Bisa Hilang

The ring is built cell by cell in the WoE:SE style — a whole row must fall before anything gets through. Reinforce it, rebuild a fallen side, or repair it mid-fight.Cincinnya dibangun sel demi sel ala WoE:SE — satu baris penuh harus jatuh sebelum ada yang tembus. Bisa diperkuat, dibangun ulang saat jatuh, atau diperbaiki di tengah pertempuran.

💎

Emperium IntegrityIntegritas Emperium

Every invader that reaches the centre chips away at a shared integrity bar. It is the single lose condition, and it is visible to everyone the whole time.Tiap penyerbu yang mencapai pusat mengikis bar integritas bersama. Itulah satu-satunya kondisi kalah, & terlihat semua orang sepanjang waktu.

🧮

Invaders That Actually MarchPenyerbu yang Benar-benar Berbaris

Monsters normally only chase players — left alone they mill about after breaking a wall. These walk the gate-to-centre route under their own steam, so the siege presses even when nobody is watching that lane.Monster biasanya hanya mengejar pemain — kalau dibiarkan mereka mondar-mandir setelah menjebol dinding. Yang ini menempuh rute gerbang-ke-pusat sendiri, jadi pengepungan terus menekan walau tak ada yang menjaga jalur itu.

👾

An MVP Every Fifth WaveMVP Tiap Gelombang Kelima

Four boss checkpoints break the rhythm and force the group to actually organise. Which bosses appear is a list you edit in game.Empat titik bos memecah ritme & memaksa kelompok benar-benar berkoordinasi. Bos mana yang muncul adalah daftar yang bisa kamu ubah dari dalam game.

👥

Scales to Who Turns UpMenyesuaikan Siapa yang Datang

The swarm is sized per defender present, with a cap so a big turnout never turns into lag. One player gets a real fight; twenty get a war.Jumlah gerombolan dihitung per pemain yang hadir, dengan batas atas supaya keramaian tak berubah jadi lag. Satu pemain tetap dapat pertarungan nyata; dua puluh pemain dapat perang.

🛡

Players Cannot Break Their Own ObjectivesPemain Tak Bisa Merusak Objektifnya Sendiri

Barricades and the Emperium are monsters under the hood, which normally means a bored player can smash them. A source hook makes them damageable by invaders only.Barikade & Emperium sebenarnya adalah monster, yang biasanya berarti pemain iseng bisa menghancurkannya. Sebuah hook source membuatnya hanya bisa dilukai penyerbu.

🔒

Objectives That Cannot Be ShovedObjektif yang Tak Bisa Didorong

A knockback skill used to fling a barricade off its own cell and jam the whole lane. Now they are immovable at the lowest level, whatever skill is used.Skill knockback dulu bisa melempar barikade dari selnya & membuat satu jalur macet total. Kini mereka tak bisa digeser di level paling dasar, apa pun skill yang dipakai.

🎁

Points, Shop and Costume GachaPoin, Toko, & Gacha Costume

Players earn points for kills, building, repairing, reviving and buffing — then spend them at a quartermaster shop or on a costume gacha, with a trophy for the winning side.Pemain mendapat poin dari membunuh, membangun, memperbaiki, membangkitkan, & nge-buff — lalu membelanjakannya di toko quartermaster atau gacha costume, dengan trophy untuk pihak yang menang.

🔨

Field Services Mid-SiegeJasa Lapangan di Tengah Siege

Reinforce, rebuild, repair, buff and revive are all purchasable from inside the arena for zeny — a steady sink that turns spare cash into survival.Perkuat, bangun ulang, perbaiki, buff, & bangkitkan semuanya bisa dibeli dari dalam arena dengan zeny — penyedot zeny stabil yang mengubah uang menganggur jadi peluang bertahan.

A GM Panel That Covers EverythingPanel GM yang Mencakup Semua

Wave count, monsters per player, objective HP, every reward number, every service price — and the invader roster itself, edited by monster ID with live validation. All from one NPC, saved permanently.Jumlah wave, monster per pemain, HP objektif, semua angka reward, semua harga jasa — & daftar monster penyerbunya sendiri, diubah lewat Mob ID dengan validasi langsung. Semua dari satu NPC, tersimpan permanen.

🕑

Runs Itself on a ScheduleBerjalan Sendiri Sesuai Jadwal

Seven automatic sieges a day out of the box, plus GM commands to force one, skip a wave, or stop it — so the event fills your quiet hours without you being online.Tujuh siege otomatis per hari secara bawaan, plus perintah GM untuk memaksa mulai, melompati wave, atau menghentikannya — jadi event ini mengisi jam sepi tanpa kamu harus online.

The SiegeJalannya Pengepungan

Twenty Waves, Four BossesDua Puluh Gelombang, Empat Bos

Each tier draws from its own monster pool, and every pool is a list you edit from the GM panel — so the difficulty curve is yours, not ours. Tiap tingkat mengambil dari pool monsternya sendiri, & tiap pool adalah daftar yang kamu ubah dari panel GM — jadi kurva kesulitannya milikmu, bukan milik kami.

WavesGelombang Draws fromDiambil dari What changesYang berubah
1 – 5Tier 1 poolPool tingkat 1Teaching waves. Defenders learn the lanes and start banking points.Gelombang pembelajaran. Pemain mengenali jalur & mulai mengumpulkan poin.
5Boss poolPool bosFirst MVP. The group has to stop splitting and focus.MVP pertama. Kelompok harus berhenti berpencar & fokus.
6 – 10Tier 2 poolPool tingkat 2Barricades start genuinely falling; rebuilding becomes a job.Barikade mulai benar-benar jatuh; membangun ulang jadi pekerjaan tersendiri.
11 – 15Tier 3 poolPool tingkat 3Leaks reach the centre. Integrity starts visibly dropping.Kebobolan mulai mencapai pusat. Integritas mulai turun terlihat.
16 – 20Tier 4 poolPool tingkat 4Endgame. Every service purchase and every revive matters.Babak akhir. Tiap pembelian jasa & tiap kebangkitan sangat berarti.
Survive allBertahan semuaVictory — the Emperium stands, points and the trophy are paid out.Menang — Emperium bertahan, poin & trophy dibagikan.
The Detail That Took LongestDetail yang Paling Lama Dikerjakan

Making the Invaders Actually InvadeMembuat Penyerbu Benar-benar Menyerbu

🧮 Why most wave events quietly stallKenapa kebanyakan event wave diam-diam macet

A monster in this engine only ever hunts players. It will never decide to attack another monster on its own — and the Emperium is a monster. So in a naive wave event the invaders break a wall, find nobody to chase, and wander in circles. The siege looks alive but nothing is actually pushing.Monster di engine ini hanya pernah memburu pemain. Ia tak akan pernah memutuskan menyerang monster lain atas kemauannya sendiri — & Emperium adalah monster. Jadi di event wave yang dibuat asal, penyerbu menjebol dinding, tak menemukan siapa pun untuk dikejar, lalu berputar-putar. Pengepungannya terlihat hidup padahal tak ada yang benar-benar menekan.

Simply handing each monster a target does not fix it either: a target only sticks while it is inside the monster's chase range, and a gate sits far outside that. The assignment is dropped every second and the monster goes back to idling.Sekadar memberi tiap monster sebuah target juga tak menyelesaikannya: target hanya melekat selama masih dalam jangkauan kejar monster, & gerbang berada jauh di luar itu. Penugasannya batal tiap detik & monster kembali menganggur.

What works is walking them in: idle invaders are routed along checkpoints from their gate toward the centre, and only handed the Emperium as a target once they are close enough for it to stick. Aggro on a real player always wins over the march, so defenders still pull attention exactly as they expect.Yang berhasil adalah menuntun mereka berjalan: penyerbu yang menganggur diarahkan lewat titik-titik dari gerbangnya menuju pusat, & baru diberi Emperium sebagai target begitu cukup dekat agar target itu melekat. Kemarahan pada pemain sungguhan selalu mengalahkan barisan, jadi pemain tetap bisa menarik perhatian seperti yang mereka harapkan.

There is also a GM telemetry command that prints one census line per tick — how many invaders are fighting, holding a wall, marching, or already at the centre — so if you retune the difficulty you can see what your change actually did.Ada juga perintah telemetri GM yang mencetak satu baris sensus tiap detik — berapa penyerbu yang bertarung, menahan dinding, berbaris, atau sudah di pusat — jadi kalau kamu menyetel ulang kesulitannya, kamu bisa melihat efek nyata perubahanmu.

Two Small Hooks, and Why They ExistDua Hook Kecil, & Kenapa Ada

Barricades and the Emperium are monsters, so out of the box a player can walk up and destroy the thing they are supposed to be defending. Script alone cannot tell player damage from monster damage here. The first hook makes those two objectives damageable by invaders only.Barikade & Emperium adalah monster, jadi secara bawaan pemain bisa mendatangi & menghancurkan benda yang seharusnya mereka pertahankan. Script saja tak bisa membedakan damage pemain & damage monster di sini. Hook pertama membuat kedua objektif itu hanya bisa dilukai penyerbu.

The second makes them genuinely immovable. The engine's own knockback-immunity flag is not absolute — certain skills bypass it — and a barricade shoved off its cell jams an entire lane for the rest of the siege.Hook kedua membuatnya benar-benar tak bisa digeser. Flag kebal-knockback bawaan engine tidak mutlak — beberapa skill menembusnya — & barikade yang terdorong dari selnya membuat satu jalur macet sepanjang sisa siege.

Both are gated to the arena map and to those two monster IDs, so they are completely inert everywhere else on your server — your real WoE castles behave exactly as before.Keduanya dibatasi ke map arena & ke dua Mob ID tersebut, jadi benar-benar tak berpengaruh di tempat lain di server-mu — kastil WoE aslimu berperilaku persis seperti sebelumnya.

If you would rather not build it yourself, installation on your VPS can be done for you — just ask.Kalau tidak mau build sendiri, pemasangan di VPS-mu bisa kami kerjakan — tinggal bilang.

CompatibilityKompatibilitas

Where It RunsDi Mana Ia Berjalan

rAthena — Pre-Renewal & RenewalrAthena — Pre-Renewal & Renewal Stock arena map — no custom mapMap arena bawaan — tanpa map custom Stock monsters and itemsMonster & item bawaan No client patchTanpa patch client No SQL schema changeTanpa ubah skema SQL Map-server recompile requiredPerlu recompile map-server
What You ReceiveYang Anda Dapatkan

One Script, Two Hooks, Full DocsSatu Script, Dua Hook, Dokumentasi Lengkap

The whole siege is a single script file. The source side is two short hooks, each quoted with the code around it so you can place them in your own fork. Seluruh pengepungan ada dalam satu file script. Sisi source-nya dua hook pendek, masing-masing dikutip bersama kode di sekitarnya supaya kamu bisa menempatkannya di fork-mu sendiri.

📦 NERO_TownDefend_Package.zip
server/
├─ npc/custom/nero_town_defend.txt       the whole siege
├─ db/import/item_db_TD_costumes.yml   gacha costume pool (optional)
└─ scripts_custom_conf_ADD.txt         one line to register
src_patches/
└─ SOURCE_MODIFICATIONS.md             the 2 hooks, anchor by anchor
docs/
└─ FEATURES_AND_TUNING.md             every knob + GM commands
README_INSTALL.md   CHANGELOG.txt   CREDITS.txt
  1. Apply the two hooks and recompile the map-server. A one-line grep confirms both landed.Terapkan dua hook lalu recompile map-server. Satu perintah grep memastikan keduanya masuk.
  2. Copy the script into npc/custom/ and register it with one line.Salin script ke npc/custom/ & daftarkan dengan satu baris.
  3. Optionally merge the costume pool used by the reward gacha.Opsional: gabungkan pool costume yang dipakai gacha hadiah.
  4. Force a siege with a GM command and try attacking your own barricade — you should not be able to.Paksa satu siege lewat perintah GM lalu coba serang barikademu sendiri — seharusnya tidak bisa.
  5. Open the GM panel and tune the waves, rewards and monster pools to your server.Buka panel GM lalu setel wave, hadiah, & pool monster sesuai server-mu.
1 script file1 file script No custom mapTanpa map custom No client patchTanpa patch client No SQL schema changeTanpa ubah skema SQL C++ recompile requiredPerlu recompile C++

The costume gacha pool is optional and clearly flagged: a costume only appears if your own client has the sprite for it, so the guide explains how to swap the list for costumes you know you have.Pool gacha costume bersifat opsional & ditandai jelas: sebuah costume hanya tampil kalau client-mu punya sprite-nya, jadi panduannya menjelaskan cara mengganti daftarnya dengan costume yang pasti kamu punya.

FAQ

Common QuestionsPertanyaan Umum

Does this need a custom map?Apakah ini butuh map custom?

No. It is built on a stock arena map that already ships with the emulator, and the barricade ring is constructed at runtime rather than baked into map files. That means no GRF work, nothing for your players to download, and no client patch. If you want it somewhere else, the arena map name appears in the script and in the two hooks — changing it is a documented step.Tidak. Ia dibangun di map arena bawaan yang sudah ada di emulator, & cincin barikadenya dibangun saat runtime, bukan ditanam ke file map. Artinya tak ada pekerjaan GRF, tak ada yang perlu diunduh pemain, & tak ada patch client. Kalau mau di tempat lain, nama map arena muncul di script & di dua hook — menggantinya adalah langkah yang sudah didokumentasikan.

Will the hooks affect my real WoE castles?Apakah hook-nya memengaruhi kastil WoE saya?

No, and this was deliberate. Barricades and Emperiums exist in real WoE castles too, so a blanket rule would have made your actual sieges unwinnable. Both hooks are gated to the arena map and to those two monster IDs, so everywhere else on your server the code path does nothing at all.Tidak, & ini disengaja. Barikade & Emperium juga ada di kastil WoE sungguhan, jadi aturan menyeluruh akan membuat WoE-mu mustahil dimenangkan. Kedua hook dibatasi ke map arena dan ke dua Mob ID tersebut, jadi di tempat lain di server-mu jalur kode itu sama sekali tak melakukan apa pun.

Is it playable solo, or does it need a crowd?Bisa dimainkan sendirian, atau butuh ramai?

Both. The swarm size is calculated from how many defenders are actually on the map, so a single player gets a siege scaled to one person rather than an impossible wall. A cap keeps a large turnout from turning into lag. The objective's health scales too, so the shape of the fight stays similar whether three people show up or thirty.Dua-duanya. Besar gerombolan dihitung dari berapa pemain yang benar-benar ada di map, jadi satu pemain mendapat siege yang diskalakan untuk satu orang, bukan tembok mustahil. Ada batas atas supaya keramaian tak berubah jadi lag. HP objektif ikut menyesuaikan, jadi bentuk pertarungannya tetap mirip baik yang datang tiga orang maupun tiga puluh.

How hard is it to retune if it feels too easy or too brutal?Seberapa sulit menyetelnya kalau terasa terlalu mudah atau terlalu kejam?

Everything meaningful is in the in-game GM panel: wave count, monsters per player, the field cap, objective health, how much each leak costs you, reward values, service prices, and the monster roster for each tier. Changes save permanently and survive a script reload. You do not edit files to balance this, and you never recompile to balance it.Semua yang penting ada di panel GM dalam game: jumlah wave, monster per pemain, batas di lapangan, HP objektif, berapa kerugian tiap kebobolan, nilai hadiah, harga jasa, & daftar monster tiap tingkat. Perubahannya tersimpan permanen & tahan reload script. Kamu tak perlu mengedit file untuk menyeimbangkannya, & tak pernah perlu recompile untuk itu.

What stops players from just ignoring it?Apa yang membuat pemain tidak mengabaikannya saja?

Points that only come from this event, spent at a shop and a costume gacha that only this event feeds, plus a trophy for winning. Because points are earned for building, repairing, reviving and buffing as well as killing, support players and low-level characters have a real reason to turn up — they are not carried, they contribute.Poin yang hanya bisa didapat dari event ini, dibelanjakan di toko & gacha costume yang hanya diisi event ini, ditambah trophy untuk yang menang. Karena poin juga didapat dari membangun, memperbaiki, membangkitkan, & nge-buff — bukan cuma membunuh — pemain support & karakter level rendah punya alasan nyata untuk datang: mereka berkontribusi, bukan sekadar dibawa.

Do I have to run it manually every time?Apakah saya harus menjalankannya manual tiap kali?

No. It runs on an automatic schedule several times a day out of the box, which you can change or remove. GM commands are there when you want them — force a siege now, skip a wave, check the live status, or stop it — but the event does not need you online to happen.Tidak. Ia berjalan otomatis beberapa kali sehari secara bawaan, & jadwalnya bisa kamu ubah atau hapus. Perintah GM tetap tersedia saat dibutuhkan — memaksa siege sekarang, melompati wave, mengecek status live, atau menghentikannya — tapi event ini tak butuh kamu online untuk berjalan.

What happens to players who die during the siege?Apa yang terjadi pada pemain yang mati saat siege?

They can be brought back. A living defender can revive fallen teammates, and there is a field-service revive purchasable inside the arena, so a wipe on one side is recoverable rather than the end of the run. Reviving also earns points, which is deliberate — it makes picking your friends up worth doing.Mereka bisa dibangkitkan. Pemain yang masih hidup bisa membangkitkan rekan yang tumbang, & ada jasa lapangan kebangkitan yang bisa dibeli di dalam arena, jadi tumbang di satu sisi masih bisa dipulihkan, bukan akhir dari semuanya. Membangkitkan juga memberi poin — itu disengaja, supaya menolong teman jadi hal yang sepadan dilakukan.

The costume gacha — will those costumes work on my client?Gacha costume — apakah costume-nya akan bekerja di client saya?

Some will, some may not, and the package says so plainly rather than pretending otherwise. The server side always loads cleanly, but a costume only shows up if your client's GRF actually contains its sprite. The guide explains how to test, how to drop the ones that come up blank, and how to replace the whole list with costumes you already know work on your server. The siege itself does not depend on any of it.Sebagian akan, sebagian mungkin tidak — & paketnya mengatakan itu terus terang, bukan pura-pura aman. Sisi server selalu termuat bersih, tapi sebuah costume hanya tampil kalau GRF client-mu benar-benar punya sprite-nya. Panduannya menjelaskan cara mengetes, cara membuang yang tampil kosong, & cara mengganti seluruh daftarnya dengan costume yang sudah pasti bekerja di server-mu. Pengepungannya sendiri tidak bergantung pada itu sama sekali.

Give Your Players Something to DefendBeri Pemainmu Sesuatu untuk Dipertahankan

Tell us your emulator and how many players you usually have online, and we will tune the first siege with you. Installation on your VPS can be done for you.Beri tahu emulator-mu & berapa pemain yang biasanya online, & kami akan menyetel siege pertamanya bersamamu. Pemasangan di VPS-mu bisa kami kerjakan.