Build. Break. Understand.
Share the fix.
Start with a specific problem. Follow the investigation, try a small example and bring what you learn back to the forum.
39 editorial guides and resource notes. Community references are credited in the articles. Server branches differ; each guide states its limits.
Announcements
Development
A tiny proto check: duplicate VNUMs and a missing upgrade target
A small example you can reproduce The data below is synthetic. It illustrates two static data problems, not a complete item_proto schema. Use tabs between columns. The third d
Read and discuss ↗m2city · officialBefore a content update: a small, repeatable server-file review
Use this as a review checklist, not a launch guarantee Review one change at a time If you change an item's ID, its upgrade path and a drop table together, write down how they
Read and discuss ↗m2city · officialGarbled item names? Check the encoding before editing your data
Preserve the original bytes first If item or mob names change into replacement characters or unreadable symbols after an import/export, stop and keep the original file. Saving
Read and discuss ↗Server Setup & Builds
Add a system to Metin2 source without mixing branches: patch, build and rollback workflow
Start with a working baseline, not the advertised feature This guide applies to a Git-managed C++ client/server project. Before adding a system, build the unmodified revision
Read and discuss ↗m2city · officialInstall a Metin2 test server: FreeBSD, database, game cores and first-login checks
Scope: a private installation, not a one-click public server This walkthrough is for a FreeBSD-compatible Metin2 branch whose server files, schema and matching client you alre
Read and discuss ↗m2city · official32-bit server on a 64-bit host: diagnose the mismatch before changing build flags
The symptom A build reports an incompatible library or a newly compiled game starts but no longer communicates correctly with the client. Treat these as different failures: th
Read and discuss ↗m2city · officialA game/db build failed: capture the first real error, not the last page of output
One useful error beats a screenshot of hundreds of lines The final build message often says that a target failed. It may not identify the first compiler or linker error that c
Read and discuss ↗Client, Python & UI
Metin2 client closes with an empty syserr: collect the crash before replacing DLLs
A blank log is a symptom, not a diagnosis A client that exits before the login screen may leave syserr.txt empty. That alone does not identify Python, Granny, the graphics dri
Read and discuss ↗m2city · officialAttributeError, ImportError or KeyError in a UI script? Use the exception to choose the next check
The same loader wrapper can hide several different causes A window can abort while loading because its file is missing, a module is unavailable, a locale symbol is absent or t
Read and discuss ↗m2city · officialFailed to load script file: trace the requested UI path through the actual client pack
Read the underlying exception first The wrapper message 'Failed to load script file' is not a complete diagnosis. If the accompanying exception says that a file cannot be foun
Read and discuss ↗Quests & Lua
A quest compiles but does not trigger: trace the event, state and loaded artifact
Compilation and execution answer different questions Compilation can establish that a particular input was accepted by a particular toolchain. It does not establish that the r
Read and discuss ↗m2city · officialQuest compilation: distinguish a missing qc tool from a syntax error in the quest
A quest cannot be diagnosed until you know what actually ran There are at least three separate stages in many quest workflows: an optional preprocessing step, the quest compil
Read and discuss ↗Protos, Drops & Economy
Build your first Metin2 NPC shop: inspect the export before importing SQL
A small shop is easier to verify than an entire economy This original M2City walkthrough uses the free NPC Shop Builder. Editing is free; export through the server requires a
Read and discuss ↗m2city · officialProto debugging exercise: a VNUM range collision and a missing refine target
Two reproducible mistakes, one change at a time Use the original MIT troubleshooting kit with the free text proto checker. No account is required for this checker. Its synthet
Read and discuss ↗m2city · officialAn item did not drop: separate file errors, eligibility rules and probability
A failed observation is not yet a probability diagnosis Start by establishing whether the server loaded the file, whether the relevant mob/group and item references exist, and
Read and discuss ↗m2city · officialUpgrade failures: the target item VNUM and the refine recipe are separate references
Two links can fail independently When reviewing an item upgrade, distinguish the identifier of the resulting item from the identifier of the material/cost recipe used for that
Read and discuss ↗Maps, Regens & Spawns
A single mob spawns but its group does not: follow the correct identifier chain
A spawn identifier has a type A direct mob spawn and a group spawn do not necessarily interpret their final identifier as the same kind of object. Before changing coordinates,
Read and discuss ↗m2city · officialYour spawn is on the wrong map position: label local coordinates, map origin and units
Do not start with a blind multiply-by-100 fix A coordinate can be local to a map, global after a base offset, or expressed in a different unit from another file. A copied numb
Read and discuss ↗Free Tools & Resources
Serverfiles & Open Server Projects
Metin2 Playerbots v2.2.16: C++ system integration sources, patches and seed tools
A concrete system, with its base identified This download selects the Playerbot integration sources from TieruYT/metin2-playerbots at the MIT-era v2.2.16 tag, commit 47106704f
Read and discuss ↗m2city · officialWonder2 download: serverfiles, matching client and source archives — contents and setup notes
Community release and download Wonder2 was shared on MPCforum by Bitek113; Insigin supplied the public Google Drive reupload in the discussion. Original component authors and
Read and discuss ↗m2city · officialDownload: Quantum Core X source snapshot — C# server emulator, MPL-2.0
Separate dependency-update proposal for Single — 3 November 2026 The original source ZIP below remains unchanged. M2City prepared a separate MPL-2.0 review proposal for the Si
Read and discuss ↗m2city · officialDownload: go-metin2-server source snapshot — MIT, pre-alpha, original project credited
What this download contains An unmodified source snapshot of Mikel Calvo's go-metin2-server project at revision c0826f8dc60c1c88c60d3e057a4f859b7c657961. The upstream reposito
Read and discuss ↗Sample Packs & Tool Downloads
OX Event v1.1: included notice helper, scheduler restart and reproducible Lua tests
An adaptation with specific fixes This MIT-licensed adaptation builds on Owsap Productions' OX quest at revision 30f7f7af779fb4127d1328c0f6fa75eefabe0640. The original source
Read and discuss ↗m2city · officialQuantum Core X DropGold: a uint debit proposal with reproducible C# tests
An independent review of a public report The public Quantum Core X issue #546, reported by Biggestmeme, concerns a signed conversion when dropping a large yang amount. M2City
Read and discuss ↗m2city · officialQuest system download: automated OX event — schedule, rewards and integration checks
Original OX quest by Owsap This is an unmodified MIT-licensed snapshot of Owsap's OX Event Quest, published in the Sophie-Williams/m2_oxevent repository. Copyright remains wit
Read and discuss ↗m2city · officialDownload: quest functions reference — Russian documentation, triggers and examples
A reference library, with its original language preserved This MIT-licensed repository credits terron and contributors and is now available under yaestray/metin2-quest-functio
Read and discuss ↗m2city · officialSource download: Karbust's Electron patcher — manifest URLs and client launch settings
An original project by Karbust This unmodified MIT-licensed snapshot contains an Electron patcher built with React and TypeScript. Upstream describes SHA-256-based file compar
Read and discuss ↗m2city · officialSource download: ProtoTool v1.2 — review item and mob TXT transformations
What this download contains ProtoTool is credited upstream to blackdragonx61 / Mali61, with a MIT licence copyright notice for Muhammet. This is an unmodified snapshot from th
Read and discuss ↗m2city · officialRelease: a free offline proto checker with source, examples and JSON reports
Run the check without a website connection This original M2City release packages the plain-text checker into a single HTML file. Extract the ZIP and open index.html in a moder
Read and discuss ↗m2city · officialDownload: a small proto troubleshooting starter kit with broken and corrected examples
A useful download should make a problem easier to reproduce The M2City Proto Troubleshooting Starter Kit contains original synthetic text data and reports. It contains no game
Read and discuss ↗Server Security & Operations
Metin2 database backups: check table engines and prove a restore before an update
A completed dump is not a completed recovery test This procedure covers logical backups using MariaDB tools. It is not a raw data-directory migration and does not assume that
Read and discuss ↗m2city · officialMetin2 source security: validate item moves and purchases on the server
Review one operation from packet to persistent state This is a defensive source-review exercise, not an exploit or a drop-in patch for every branch. Pick one handler you own,
Read and discuss ↗m2city · officialSecure a Metin2 host: keep SQL, P2P and administration off the public network
Goal: expose only the services players actually need This is a defensive deployment review for a host you administer. It does not install a firewall automatically or change yo
Read and discuss ↗