Client Systems & Python UI
Metin2 dungeon timer: countdown, floor update and window lifecycle fixes
M2City Client · Editorial · Published 2026-11-05 · Branch-specific details should be checked against your own source.
A Python HUD that receives a floor/wave and remaining time from your existing dungeon logic. The supplied skin table includes Devil Tower, Razador, Nemere, Hydra and other custom map names. This is a client display integration, not a complete dungeon, reward controller or anti-cheat timer.
M2City r1 fixes
The original showed 00:00 whenever the seconds component was zero, including a full minute remaining. The revised display correctly shows 01:00, 02:00 and expiry at 00:00, and only updates text when the displayed second changes.
Floor-only commands preserve the existing deadline. The interface reuses one window instead of recreating it for every command. Destruction hides/releases the native children, ignores late updates and is safe to call repeatedly. Invalid or nonfinite durations/floors are rejected. The import matches the supplied lowercase filename. Commands no longer hide the entire minimap, and the layout width accommodates the 150-pixel atlas backgrounds.
If your ExpandedImageBox lacks SetCoolTime or SetStartCoolTime, the timer remains useful with text/background and hides the optional circular gauge. No renderer extension is included or silently installed.
Installation
Use reviewed/uidungeontimer.py and reviewed/map_info.py in your existing root/UIScript packs, merge the locale keys, and follow the two reviewed game/interface integration instructions. Keep your unrelated handlers and interface cleanup. Recreate the timer on map-phase changes, or explicitly destroy/reset it if your fork reuses the interface across maps, so the correct skin is loaded.
Copy the supplied Binary/etc/ymir work assets. The atlas timer.tga is supplied under ui, while the .sub files refer to it alongside themselves: place that atlas at ymir work/ui/game/dungeontimer/timer.tga. Its 36 crop rectangles fit the supplied 900x900 image. The five extra Zodiac .sub files reference an absent 12zi.dds; they are unused by this timer's map selection and should not be installed as a working Zodiac UI. Fenrir uses its two supplied PNGs directly.
The server command contract is RefreshDungeonTimer <floor> <remaining_seconds> and RefreshDungeonFloor <floor>. Send a fresh remaining duration after login/rejoin. The reviewed input range is 0..86400 seconds and 0..999 floors. Reward eligibility, instance ownership, kicks and real deadlines must stay on the server. Do not use the client's clock for enforcement.
The separate dungeon-moduls archive in the parent bundle is not required just to display these commands and is not part of this reviewed release.
Validation and rights
All five Python/locale fragments and 41 subimage definitions were read; three textures were decoded and the 36 atlas rectangles checked. Fake UI tests cover minute boundaries, expiry, invalid inputs, floor-only updates, 100 window reuse/cleanup cycles and the fallback without the circular renderer. There was no actual client render, live server command exchange or dungeon gameplay test.
The supplied archive has no independently established author/version. A search for its exact command signature did not identify a primary release; no attribution or test claim was invented. Original archive retained, redistribution confirmed by its supplying owner, no blanket open-source licence asserted.
Editorial resource — M2City
Version: Owner-supplied legacy integration; M2City r1 (2026-11-04); exact fork unspecified
Rights: Owner explicitly confirmed public redistribution. Preserve original notices; no open-source relicensing.
Validation: All five Python/locale fragments and 41 subimage definitions reviewed; three textures decoded, 36 atlas rectangles bounded. Fake UI: minute boundaries, expiry, invalid numbers, floor-only refresh, 100 reuse/cleanup cycles and text-only fallback without circular renderer. No engine rendering, server command session or dungeon gameplay test.
Source: Owner-supplied archive, reviewed files and retained notices; exact upstream release not established
SHA-256: 5ca2cd5db907675d1b2295fc9c20a9c86ffad51d8ce306ec037562aa0bf3a9d6
Download package
3 download options · Sign in to download
metin2-dungeon-floor-timer-m2city-r1.zipM2City downloadmetin2-dungeon-floor-timer-m2city-r1.zipGoogle Drive mirrormetin2-dungeon-floor-timer-m2city-r1.zipMEGA mirrorMAKE THE NEXT ANSWER BETTER
What happened on your build?
Share a small example, the exact error and how you verified your fix. The discussion is open on the forum.
Need a scoped quest, UI or proto fix? · Explore more development guides · Check your proto files free