When entering Hurnscald from the north, I am sometimes placed just outside Celestia's house rather than on the "other side" of the warp point. This occurs sporadically.
Hurnscald north warp point glitch
- ItchyDemon
- Peon

- Posts: 20
- Joined: 01 Jan 2013, 03:50
- Location: Cyberspace
Hurnscald north warp point glitch
Itchy Demon
As a demon, it is my duty to inform you that the underworld is full of itchiness.
Alts: Scratchy Demon, Pokey Demon, Holy Demon, Demonic Noob, Melody Pond, minlevel 140, 0xFF, Itchy Angel
- Bjørn
- Manasource

- Posts: 1497
- Joined: 09 Dec 2004, 18:50
- Location: North Rhine-Westphalia, Germany
- Contact:
Re: Hurnscald north warp point glitch
Is this new or has this always been happening sometimes?
- ItchyDemon
- Peon

- Posts: 20
- Joined: 01 Jan 2013, 03:50
- Location: Cyberspace
Re: Hurnscald north warp point glitch
Sorry for the delayed response -- I don't check the forums very often.
The glitch was new as of when I made my post.
Itchy Demon
As a demon, it is my duty to inform you that the underworld is full of itchiness.
Alts: Scratchy Demon, Pokey Demon, Holy Demon, Demonic Noob, Melody Pond, minlevel 140, 0xFF, Itchy Angel
Warps demistifyed - by one of gate builders
TL;DR next gives quite thorough analisys of issue, and "bird's view" on overall state of things, how and why. Readnig next things may need some understanding how things internally work.
Somehow when I coded my custom teleports system I had my time to investigate what it happens to be. And even more or less work it around on custom teleports logic, though workaround proven to be surprisingly advanced (or complicated) in its nature to fix effect on all existing clients in all existing configs.
This glitch not "new" and generic in nature. It impacts many if not "most" warp actions in game per se. In its code its some niche client-server mis-interaction. Its anything but new and known for eons in various forms. Technically warps are very rudimentary and simplistic server-generated NPCs boasting very minimal logic.
How this all approximately happens:
- Client enters warp/teleport/etc (technically its NPC). Diagonal movement known to aggravate issue. Or script could even request warp via builtin, this will also do - as long as client walking - esp in diagonal movement.
- Once warp requested, client starts loading new map. This may take some non-zero time. Its where things start heading wrong directon.
- Seems, while map loading in flight, client and server may very considerably diverge in their idea on player position. Especially if player keeps pushing movement buttons while warping/loading maps.
- To make matters even more fun, clients may also fail to handle few things properly if server sends packets during map loading. Most notably client apparently misses sc_start and sc_end if this arrives while map been still loading. Its fortunately much less severe and only causes some visual glitch (SC icons lingering when SC effect ended or not displayed when SC in effect, and is relatively rate)
Net result is: client gets very odd idea where it is. Especially if player kept pushing buttons hard while map still loading. So it either performs quite non-trivial jump (rate limited by server to sane walk speed on server side, so for brief amount of time others see a bit different things) or even gets entirely disconnected (probably for rampant speed hack attempt from server's point of view). There are other cases where it may trigger. Say Crypt entrance to L1 transition under diagonal move is quite likely to entirely disconnect you. But when coding teleports system I investigated effect in its full. Its not really unique to certain warps. Just some warps are more likely to cause effect than many others due to placement.
In fact I even coded logic completely suppressing this effect in custom teleporters in all scenarios in existing clients.
What I did is:
- Upon warp initiaton I trigger massive client slowdown by sc_start SC_SLOWMOVE with very strong slow motion factor. So client can't walk any appreciable distance while warping anymore, solving problem.
- Btw, there's more logical SC_CANTMOVE - but it proven to be buggy and unpleasant in how it handled by clients. Clients would not really stop walking in its entirety and may in fact walk up to few tiles and rubberband char back. In edge cases it may trigger some very undesirable client - server interactions, at best it feels ugly, at worst it IIRC may even trigger DC in extreme cases. On other hand SC_SLOWMOVE with strong slowdown achieves same result in much more workable and pleasant ways.
- Unfortunately there's catch. Map loading takes unknown amount of time, depending on map, how powerful user's computer is and so on. So there's no single good and simple number to use.
- In absolute worst case map loading may take up to dozen of seconds or so. This number not really comfortable to use in terms of UX of faster clients on warp. Fortunately only few maps load that long only in few configs.
- sc_start SC_SLOWMOVE before warp does works. But brings its share of (less severe) odds. Most notably client would miss end of SC if map still loading, leaving obscure icon lingering forever. I in fact managed to work around this as well in custom teleports. But this took rather complicated warp sequencing. That looks a bit too complex for rudimentary server-generated simplistic NPCs.
Easiest "fix" is actually to avoid diagonal move when entering Hurns north or Crypt. Other options I'm aware of unfortunately harder and have their downsides.
