Metin2 Dungeon Quest Generator
Generate ready-to-use Metin2 dungeon quest Lua files instantly. Configure floors, mobs, bosses, timers and download clean quest + lib files. No signup required.
How to Use Metin2 Dungeon Quest Generator
- Fill in the Dungeon Identity section: choose a quest name (used for all generated filenames and timer names), enter the entrance NPC VNUM, and set the chat text players and GMs will see.
- Configure Entry Rules: pick enter mode (party, solo, or both), set level range, optionally enable a ticket item check, and optionally clear player buffs on entry.
- Set up Map Configuration: enter your inside and outside map indices and base coordinates. All X/Y values are map-relative — the tool handles the ×100 multiplication for warp() calls.
- Add floors using the "Add Floor" button. Pick a floor type for each — Metin Wave, Monster Wave, Boss Spawn, Item Delivery, or Final Boss. Reorder floors with the arrow buttons.
- For Monster Wave floors, add mob rows in regen format: fill in VNUM, X, Y, size, direction, aggression, respawn time, max count, and spawn count. Use the Duplicate button to clone a row and only change X/Y.
- Watch the live code preview update in real time as you type. Switch between the .quest tab, Lib.lua tab, and regen file tabs to review all generated output.
- Click "Download All Files" to get the quest file, lib file, and any regen files in one go — ready to place on your server.
About Metin2 Dungeon Quest Generator
The Metin2 Dungeon Quest Generator is the fastest way to create a fully functional dungeon quest for your private server. Instead of hand-coding complex Lua event chains from scratch, you configure your dungeon through a visual form and instantly get two ready-to-drop files: a `_zone.quest` event script and a `Lib.lua` library — all clean, server-ready Lua with no external dependencies.
What this tool generates: The generator produces only the code your dungeon actually uses. If you don't add a time limit, no timer code is emitted. If you don't add an item delivery floor, no take-handler is generated. Every byte in the output corresponds to something you configured — no dead code, no placeholder blocks.
Floor types you can combine: Metin Wave floors spawn metins at specific coordinates and advance when all are destroyed. Monster Wave floors use the standard regen file format (VNUM, X, Y, size, direction, aggression, respawn time, max count, spawn count) — define rows inline with a Duplicate button or point to an existing regen file. Boss Spawn floors place a boss at a coordinate and wait for the kill. Item Delivery floors generate an NPC take-handler that counts delivered items before advancing. Final Boss floors emit completion logic — server-wide notice, exit timer, and flag setting.
Dungeon configuration: Set entrance NPC, entry chat text, GM management chat, enter mode (party only / solo only / both), level range, optional ticket item, buff clear on entry, and a time limit with countdown notices. All coordinates are entered relative to the map base — the tool multiplies by 100 for all warp() calls automatically.
Live code preview: As you fill in the form the generated Lua updates in real time in a split-panel view with syntax highlighting. Each output file has its own tab — quest, lib, and regen files — with Copy and Download buttons. "Download All" grabs everything at once.
Why admins use this: Writing a dungeon quest by hand requires deep knowledge of server_timer, server_loop_timer, d.select(), d.getf()/d.setf() state flags, regen format, and party warp flow. This generator handles all of that correctly so you can focus on dungeon design rather than Lua plumbing.
Common Use Cases
Frequently Asked Questions
What files does the dungeon generator produce?
The generator produces a `[questname]_zone.quest` file containing all quest event handlers (login, logout, NPC chat, kill events, server timers) and a `[questname]Lib.lua` file containing the library namespace with GetData(), InDungeon(), CheckEntrance(), MakeDungeon(), StartFloor(), and other helpers. For Monster Wave floors with inline mob rows it also generates a regen .txt file per floor.
What is a regen file and how does the Monster Wave floor use it?
A regen file is a tab-separated text file that the Metin2 server reads to spawn mobs in a zone. Each row follows the format: r X Y sizeX sizeY direction isAggressive respawnTime maxCount count mobVnum. The generator lets you define these rows visually — with a Duplicate button to clone a row — and outputs both the inline spawn calls in the Lua and a ready-to-use regen .txt file.
Can I have multiple floor types in the same dungeon?
Yes. The floor list is fully flexible — you can add as many floors as you want, in any order, with any combination of types. A minimal dungeon might be a single Monster Wave floor and a Final Boss floor. A complex dungeon could have Metin Wave → Monster Wave → Boss Spawn → Item Delivery → Final Boss across five floors.
Can the entire dungeon happen in a single floor?
Absolutely. You can configure a single-floor dungeon where players break metins, a boss spawns, and the dungeon ends — all without advancing to a second floor. The generated code handles sequencing correctly regardless of how many floors you configure.
What does the Duplicate button on mob rows do?
The Duplicate button copies the entire mob row — VNUM, size, direction, aggression, respawn time, max count, and spawn count — inserting it directly below. This is useful when you want to place the same mob type at several different coordinates: duplicate the row and only change X and Y.
Do I need to modify the generated files before using them?
The generated files are functional as-is for the configuration you entered. You will need to place regen files in the correct directory on your server, register the quest file with your quest system, and ensure the map indices and NPC VNUMs match your server setup.
Are the coordinates I enter in map units or warp units?
You enter map-relative coordinates (the same scale used in regen files and map editors). The tool automatically multiplies by 100 for all warp() calls in the generated Lua. A coordinate of 115, 105 becomes warp(11500, 10500) in the code.
Related Metin2 Tools
Metin2 TXT to SQL Converter
Convert Metin2 item_proto.txt and mob_proto.txt to SQL INSERT statements (and back) instantly in your browser. No download, no signup.
Metin2 Mob Proto Editor
Edit Metin2 mob_proto.txt online with a full table editor. Smart dropdowns for type, rank, battle type, resist sliders, immune flags — export to TXT or SQL instantly.
Metin2 Drop Table Calculator
Paste your mob_drop_item.txt group block and instantly see the full drop table with real drop percentages and avg kills per item at any player level. Free, no signup.