I've recently added categories for warping and runs that use it. Because of the nature of this glitch, it can be used to drastically speed up runs on certain levels where you don't need to wait for certain events to happen. So why add it now? It's simple: the player base decreases and people have been exploiting other bugs and using trainers anyway, so there really isn't a point in keeping it hidden from the public, which for a game that no longer receives updates is the only way to keep it from getting abused.
So how does it work? Once you're on a solid object, the game keeps track of your position relative to this object. This allows you to move along with the object, like the van on Heat Street. The problem lies in the fact that it keeps track of the position for each position/posture like standing and crouching. So if you're on the object in one position and then move off of it in another position, then the game assumes you're still on it. So if the object then moves, your position is updated, but only for the body position you were in while you were still on the object. That means once you enter the body position again, your location and rotation will be updated with the translations that have been applied to the object in question. Note that the position is updated first and then the rotation, so a small rotation may be greatly exaggerated when the object moved a great distance.
To give an example: you crouch on such a solid object, stand up to switch to another body position, move away from the object in this position to (so that the crouched position still remains there), get the object vector to change (e.g. by shooting it or by letting it play its animation) and then crouch again. You will now be warped to a new location (depending on the translation of the spatial vector of the object) ignoring any objects between the old and new position. You may even end up inside another object.
By posting this I'm hoping it'll help you with the (new) any% speedruns. Just be respectful towards other players and don't use this in public gaming lobbies. The information may even help you become aware of why you're sometimes pushed out of the boundaries of the map after you've interacted with a shield unit.
NOTE: THIS IS A COPY OF ANOTHER POST AND THESE CONTENTS WILL STILL BE REVIEWED AND CLARIFIED IF NEEDED. JUST NEEDED A URL TO LINK TO.
[section=Intro]The rule listed for the categories are a listing of what applies for those categories. In this post I try to explain why some of the rules are in place and give more detail on them. If something is not clear, please post in the thread about changing these rules. In case something is not black and white, it's up to the moderators to judge whether a run should be disqualified (for a certain category).
Due to the limited number of runs present for this game, existing runs will not be disqualified if one of the more specific rules is violated. They may have to be moved to different categories.
[section=Rules] [big]General[/big] 1. Team AI may be enabled. 2. The total time of a run is the sum of all timings on the mission end screens for the host. 3. Runs recorded by clients must have some indication what the hosts time is. 4. Mods that give you (significant) advantages are not allowed. See the next section.
[big]Categories[/big] 1. The exploitation of major and time saving glitches is only allowed in the Any% and Shuffle categories. See below on what's considered a major glitch. 2. In co-op runs, it is not allowed to leave a game to speed it up unless posted under the Shuffle category. 3. It is not allowed to restart a co-op game in a category other than in the Shuffle category. It is allowed in single player mode and for individual levels. [small][1][/small]
[small][1] Restarting or ending a game will not show the time played. Unless an in-game timer is shown, the time between the intro fade-out and the opening of the menu will be used. Unless all timings are accurate to tenths of a second, they will be rounded up to the nearest second. Endgame timings are used as is (and rounded to what the vanilla game timer would've shown).[/small]
[section=Mods: What is allowed and what not.]This is a controversial topic because not everyone has the same opinion about what's cheating and what isn't. However, disallowing all mods means you can never play with any mod or "accidental" speedruns would not be allowed when you regularly play with some mods enabled. Instead, we'll be a bit more liberal on this and allow anything that's not a cheat. That is, any information that will help your run and is not provided by the game and cannot be determined manually is not allowed.
Since only the actual gameplay is recorded, intros are allowed to be skipped with mods as long as the transitions are maintained. While this may indirectly affect the state of the game in some cases, there is no advantage in starting a game a few seconds earlier. When a certain timing is of concern, the same effect can be achieved in other ways that do not involve mods. While restarting a game is allowed to restart individual levels, you are not allowed to do this to speed up multiplayer runs as you may gain a few seconds compared to when you are forced end the game by the whole team getting downed.
Examples of what's not allowed includes anything that changes the gameplay, seeing assault times in a way not possible with a stopwatch, enemy numbers (as they can tell you when the assault starts or ends), information about enemy hitpoints, etc.
If you really want to do a run on a modified game (e.g. a custom difficulty), you can use the other difficulty. Even slight alterations to the gameplay are not allowed for the regular difficulties even if they make the game more difficult. The only exception to this is the bugfixes to the Undercover map by DorHUD/DAHM to fix the boss loop as they do not impact speedruns (they're too short for the bug to have any effect).
[section=Glitches]The game has tons of bugs and some of them can be abused to make your runs faster or much easier. In the any% category all glitches can be used, but for the glitchless category they have to be defined since many small glitches are used by most of the community in regular gameplay. In general for the glitchless category the rule is simple: if it gives you a time advantage or a significant risk advantage, then it should be disallowed.
Avoiding damage or manipulating assaults by entities being in so called "god spots" or "jesus spots" are not allowed. These are areas where you are hidden from enemies (by taking advantage of their pathing limitations) and take little or no damage. Assault manipulations in general is a way to play this game, so there's nothing wrong with that as long as units can (easily) hit you in the places you go. Examples of these spots are closed off rooms in Panic Room, sitting behind doors, hiding in open containers and hiding in bags to avoid damage. This does not only apply to players but also to sentry guns as they too attract the attention of the cops just like a player would.
Interacting through objects in general does not save you any time nor is it significantly safer to do so unless you purposely put yourself at risk by being in risky places. For time advantages there's really only a few things I can think of and these are:
- Duplicating and using mission critical equipment, most notably gas cans and thermite unless explicitly attempted to be picked up again or multiple players starting the interaction at the same time.
- Interacting through the wall on panic room to set up or repair the saw. This avoids two people having to go in the panic room.
- Interacting with the gas on slaughterhouse through the container wall. This only saves a second, but every second matters.
- Destroying the glass on the cases on Diamond Heist with the GL40 from the floor above even though will only save you a second on a solo run.
For some less obvious ones it may be debatable and may have to be determined when the question arises. These include not killing the bulldozer guarding the transformer box on Counterfeit. However, for this example you're not saving any time (if your team is good enough) and in fact you already lost time at this point as the power has been turned off. To be clear: that specific case would be allowed in a glitchless run. [section=Tracking time]For runs by individuals the time simply starts from the moment you gain control of your character until you see the endgame screen. This is tracked automatically and the result is rounded to the nearest second (the time you see on Steam is rounded down to the nearest integer number so it can be a second lower). For multiplayer runs desync plays a factor, so if the host has the ability to record, then he or she should do so to prevent any questions about the validity of the time (i.e. caused by high ping and/or having delayed objectives or spawns). This can be done by communicating the time or taking screenshots. These screenshots then have to show either the endgame screen or the Steam statistics [small][1][/small] (if this was the fastest time). For full game runs the screenshots have to be of the endgame screens as the small differences can add up. In general the time shown at the mission end screen should be identical for both host and client. If there's any discrepancy, the time shown for the host will apply. Existing runs recorded by clients have to be taken as is in order not to invalidate everything.
[small][1] The time indicated by the Steam statistics has to be at most the value shown on the endgame screen. Lower values -- by one or two seconds -- are acceptable, higher values are not. Because of how the rounding is done, this may still lead to a minor discrepancy if the times are equal. A lower value on Steam is no proof the run was faster than shown in the video/screenshot.[/small]
[section=Crashes, (re)joining and other client stuff]The game isn't the most stable and it can crash or bug out and the networking code isn't the best. I do not wish to disqualify multi-heist runs when this would happen. But if the video isn't recorded by the host, it's really difficult to determine an accurate time for the run. So unless screenshots are provided in this case, the time will be based on the video and in every case of doubt the result will be rounded up. If any gaps in the video are present, there's no other option than to disqualify the whole run. For individual levels, such effort will not be taken and the run will be disqualified immediately when a player (re)joins the game.
Using mods to get yourself out of situations where you became stuck or falling through the map is tolerated, but this should not be abused. Any sign of intent or gain of advantage will disqualify the run.
At the time of writing the rules for full game runs are as follows:
- Team AI may be enabled.
- Timing begins when the players come in control of their character on the first heist and loading times ARE counted between levels, so you are NOT allowed to skip any intros.
This is just a small rewrite of the rules that were in place. I don't agree on the second rule: the netcode for this game isn't great and loading times vastly differ for someone with a 5400KPM HDD vs a modern M.2 SSD. In fact during regular games it's possible to time out because the host is loading so slowly that it exceeds the 15 (or 20) second timeout and that's just for one level. Mulitply that by the 9 different levels this game has to offer and you get a difference of nearly 3 full minutes and this doesn't even include the time it takes to connect to one another.
I propose to use the in-game timer instead. For individual levels it's easy as there's just one screen at the end. For multi level runs it gets a bit more difficult, especially when the run is recorded by a client. Obviously it should be prefered to record as host (or even from multiple views) when playing with a team, but the rules should not be that strict. We can ignore differences in the end result caused by client desync because they usually average out to the same time as the host and tend to be higher than the time the host has if this is not the case. However, in some (rare) cases the end-game time is actually lower for clients, though this will also be the case if some external timing is used. The real problem lies when a client loses connection to the host or crashes mid game. I don't think this should invalidate a run, but it invalidates the use of the in-game timer and therefore is the only case where an external timer (e.g. the video timestamps) should be used. When connection is lost because the lobby was abandoned by the host, the in-game time should be used. The end result is the sum of all these in-game times (with corrections in case these cannot be used).
I already changed the rules for individual levels as just one of them had a difference in the claimed time and the in-game time (ignoring the runs with clearly incorrect time values). All that needs to be done for these is to specify what should considered a glitch. Or rather, what should be considered glitchless. I can only think of three glitches that can be considered acceptable and those are leaving the dozer next to the transformer alive on Counterfeit, interacting through objects such as walls -- because it's so common in regular plays -- and the manipulation of assaults. The latter does not include the use of god spots where you cannot get shot. All other things, even minor ones such as the duplication of mission critical equipment, should be considered a glitch if used to speed up the run.
Now for a more controversial subject: leaving the game to speed up the escape on a level. I think this should be banned from co-op runs because it can be faster to only have the host escape. However, someone hosting games for having the best connection does not mean they also have the capability to record. Sure you'll be punished if you play with someone that's desynced, but you also have an advantage if you have such a player and thus it somewhat cancels each other out. Moreover, this avoids issues where the escape cannot be seen on all recordings.
Last but not least is the acceptance of mods. I'm the author of what's probably the biggest and most used mod for PDTH: DAHM/DorHUD. I'm firmly against cheats or anything that changes the gameplay in any way, but I do believe in the power of mods to make certain aspects of the game more convenient. Therefore I think mods should be acceptable, AS LONG AS THEY DO NOT AFFECT THE RUN AT ALL. There's also the fact that you cannot see what others are using, so really there's no point in banning them for co-op runs. To give some examples, it should be allowed to use a restart feature (and the time after this is initiated should not count towards the total time), but it should not be allowed to use a mod to put yourself into custody or get downed immediately. You are not allowed to see when exactly assaults end or start (as this is clearly not possible without any mods), but automated stopwatches to keep track of events are allowed as long as you can manually do the same. When in-game times are used instead of actual times, skipping intros are not a problem as the in-game timer only starts after the intro is done as long as a black fading screen is shown so that you cannot use these one to two additional seconds where you can actually see what you're doing. For speedruns with gameplay changing mods (e.g. my 193+ mod) there's a dedicated section, but you cannot rank entries using the same mod. The use of improved bots, health regeneration and other things that can only be classified as cheats are banned.
I won't be making any changes to the rules for at least a week. Any feedback on these changes is appreciated and I won't make any changes the majority of this (small) community does not support.