Half-Life 1 questions related to speedrun validity


I’ve been running Half-Life for a while now and gotten familiar with the tricks. I aim to run scriptless on hard difficulty with the Steam version (capped). So far these questions have come to me:

  1. To my knowledge, you can’t exceed fps_max 100 in versions of the game that isn’t the Steam version. As I can do that on the Steam version would a scriptless run using this to my advantage be valid?

  2. The mouse that I’m using has a function to “unlock” the mouse wheel making it able to spin several rounds through one swipe of my finger, making the time interval of successional inputs of “+jump” or “+duck” comparable to that of a script. Would the usage of this mouse function be eligible for scriptless speedruns?

  3. Is the usage of the delaying of trigger_changelevel allowed in scriptless runs if it would be done by making inputs of “wait;wait;…” using only the game client?


  1. Yes, as long as you accept the bunnyhop cap or are running a category which allows mods.
  2. I’m not an expert, but I remember reading this is okay, since it’s not really a script and PC’s don’t have an official controller so if a mouse has free scrolling it should be fine. The only thing a controller can’t have be used for (at least by SDA rules) is a turbo button feature.
  3. There is some debate as to stuff like this; you’d have to discuss with people more involved with GoldSrc to decide on that. Though even if it were to be allowed in scriptless, you’d have to use your scrollwheel and do just a single wait, otherwise it’s a script due to multiple inputs.


Alright! Thanks for the answers. Yeah, on 3) I did actually try to type this in the console: bind “p” "bind “mwheeldown” “wait;wait;”. It didn’t work. But then I thought that I could have it on my clipboard for ctrl + v, or have it in console history.


uh… I genuinely have no idea if that’s okay.
I’m pretty sure actually entering stuff into the console isn’t allowed… but that’s all keybinds do anyway.
Damn. Now you confused me.

ask someone else im done


I couldn’t tell you when/where the decision was made since it’s before my time but ‘wait’ generally has never been allowed in scriptless, so by standard you can’t triggerdelay.

EDIT: There’s no proof that ‘wait’ has ever been banned properly, so I’d say it’s fine if you can find a use for it.

Also, as far as I’m aware free-scrolling doesn’t work well for GoldSrc, so using it to time jumps wouldn’t give you an advantage in that case.


On the free-scrolling part I thought so too, it came to be the same effect as holding down the space key (+jump) or ctrl key (+duck). I believe I understand it right that the inputs are so fast by free-scrolling making the game think one key is being held down, however, this is this case with 100 fps not with 300+ or 500+ or what not (having set fps_max 1000). I’ve been able to replicate the trick used at 8:12 in Half-Life in 20:41 using fps_max 1000 and free-scrolling.


Keep in mind that at lower framerates you don’t even need to scroll that fast anyway.


All great questions, none of which quite have great answers yet.

Very few runners or people have much interest in 170% jump capped runs for any category/sub category or combination of rules/limitations. So its’ not a very well thought out, attention given area. From what I gather you want to do, your best bet would probably be to just use the current steam version, though this will be subject to random updates that may or may impact things significantly, positively or negatively, it’s a total crap shoot from any valve employee’s whim of discretion, entirely out of the community hands. Thus it might be best to save the HL.dll and maybe any other file(s) needed (I’m honestly not into this side of things much) to preserve an explicit version, the current version as of this date.

Then just expressly say and advertise any runs as using this specific version, which is not a mod of any sort.

You’d be perfectly legitimate in using any fps supported by said version. However, this can be arbitrary, unfair and a poor promoter of a supported competitive category. So if you ever want other people to share this category and/or compete/compare with you, I’d highly recommend a fixed cap of some sort, which would make more sense to be over 100 for a steam version, 250-500 would be prudent.

Though if you want to run more for yourself, you’re own satisfaction and enjoyment and aren’t hoping or expecting more to join this specific category, feel free to use w/e fps you like, just be explicit what you used/did.

Furthermore, you’d be legitimate in using binds such as “fps_max 20” “fps_max 1000”, most would not consider this scripts, just be clear what your doing. (low/high fps helps/hurts for different things)

The subject of free-scroll wheels is a whole can of worms, very confounded and complicated. However, this hearkens back to what your plans are for this category. If it’s mostly for yourself, it’s a lot more simple, do what w/e you want to do. You’re perfectly legitimate in advertising hardware assistance like mouse wheels and free scrolling mouse wheels as not using in-game scripts on the software side. Just be explicit in what you’re using.

Now if you want others to join you in this category, It’s prudent to keep things as fair, even and consistent across the board. So it’s dubious in the least to be introducing outside hardware like mouse wheels which vary considerably, everyone having strong preferences in vastly different mice and the ability on the scroll wheel to spam, large monetary costs associated, banned for spamming in all sanction e-sports, ect. Just be aware of everything that comes with this. It’d make most sense not introduce any such calamity and free scrolling being stacking calamity with further calamity.

Delay load with waits is debated with no great answer having many arguments and pros and cons. Firstly, You obviously need something bound to “wait” , this in itself is debated to be use of “scripts” with no clear answer. But certainly using “wait;wait” is virtually unanimously viewed as using scripts, any command with a semi-colon, ie more than one command bound to a key is the most colloquial basis for the definition of a “script”. Thus, to be scriptless, you’d need to introduce hardware assisted spamming of the single “wait” command, which has been done before in “scriptless” runs, “scriptless” being rough to define. Again, you’d be in no wrong advertising this as "scriptless’ just be clear what you’re doing/did and having ways prove that’s what did couldn’t hurt either.

Whatever you do, it’s important to be opaque and explicit. Outside of that, you have a lot of freedom in what YOU want to do, just don’t expect others to be doing the same thing unless you go to great lengths to arbitrate and agree on justifiable parameters. And honestly, there are no great specific agreed upon categories for HL and there probably never well be, more so for HL than any other game ever made and probably ever to be made. Whatever “categories” are defined at this moment are more or less the by product of how many people decided try and do the same as someone else, most of these people not particularly caring what or why they were doing it, or considering the impact and future success of the community.

PJC, treetoon, windedcone, Yalter and myself are trying responsibly to help remedy this crippling mess. Sorry it’s taken so long, it’s frankly hard to do, a lot harder than it might seem on the surface. I’ve been trying on and off since 2007 to help the community in this regard, often at my own expense in more ways than one…