Page 1 of 2

coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sun May 24, 2020 4:00 am
by Enjl
A staple in platformers for decades (notably used in the DKC series since the first entry, for example). Coyote time describes the idea of being able to jump a few frames after leaving the ground, in a nod to Wile E. Coyote from Road Runner.

This script is multiplayer compatible.

The script:
https://pastebin.com/2eb5i94B

You can customize:
coyotetime.frames: A number value corresponding to the frames of coyote time. Default is 5.
coyotetime.onJump: A function to override, with the parameters passed as a jumping player and whether they are spinjumping. If you have any silly jump modifications in your own code, this is where you can take care of them.

Short demonstration:
Spoiler: show
Image

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon May 25, 2020 1:17 am
by FireSeraphim
This is a pretty nifty addition although I personally refer to it as the "Drop Hop".

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon May 25, 2020 7:41 am
by lan vuhoang
And I refer to it as "Jump Extension" as it was how it's called in Doom Eternal.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon May 25, 2020 8:52 am
by Taycamgame
And I refer to it as the "midair jump" because that is what it is.
Or alternatively, the "fall canceller", or even "invisible ledge jump". :)

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon May 25, 2020 12:12 pm
by Hoeloe
I mean... you can call it what you like, but "coyote time" is the industry standard term.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon May 25, 2020 12:42 pm
by Taycamgame
Hoeloe wrote:
Mon May 25, 2020 12:12 pm
I mean... you can call it what you like, but "coyote time" is the industry standard term.
Didn't know that... though to be fair I suppose Enjl would not have plucked a random animal out of thin air :D

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Wed May 27, 2020 3:36 pm
by PROX
ah yes, this definitely fixes the notorious "I refuse to jump" issue.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 6:28 am
by DrMekar
Would it be possible to limit the abilty to one (legacy) Character like Toad?

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 7:00 am
by Enjl
DrMekar wrote:
Sat Jun 06, 2020 6:28 am
Would it be possible to limit the abilty to one (legacy) Character like Toad?
Encase the scope of the player for loop in a character check.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 7:56 am
by DrMekar
Enjl wrote:
Sat Jun 06, 2020 7:00 am
DrMekar wrote:
Sat Jun 06, 2020 6:28 am
Would it be possible to limit the abilty to one (legacy) Character like Toad?
Encase the scope of the player for loop in a character check.
Could you show me where I have to encase the Character Check?

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 8:31 am
by Enjl
DrMekar wrote:
Sat Jun 06, 2020 7:56 am
Enjl wrote:
Sat Jun 06, 2020 7:00 am
DrMekar wrote:
Sat Jun 06, 2020 6:28 am
Would it be possible to limit the abilty to one (legacy) Character like Toad?
Encase the scope of the player for loop in a character check.
Could you show me where I have to encase the Character Check?
Like I said, everything inside the player for loop. An if statement that starts just after the for loop begins, and ends just before it closes.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 9:27 am
by DrMekar
Enjl wrote:
Sat Jun 06, 2020 8:31 am
DrMekar wrote:
Sat Jun 06, 2020 7:56 am
Enjl wrote:
Sat Jun 06, 2020 7:00 am

Encase the scope of the player for loop in a character check.
Could you show me where I have to encase the Character Check?
Like I said, everything inside the player for loop. An if statement that starts just after the for loop begins, and ends just before it closes.

Code: Select all

function ct.onTick()
    for k,p in ipairs(Player.get()) do
So after this section, right?

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 9:53 am
by Enjl
DrMekar wrote:
Sat Jun 06, 2020 9:27 am
Enjl wrote:
Sat Jun 06, 2020 8:31 am
DrMekar wrote:
Sat Jun 06, 2020 7:56 am


Could you show me where I have to encase the Character Check?
Like I said, everything inside the player for loop. An if statement that starts just after the for loop begins, and ends just before it closes.

Code: Select all

function ct.onTick()
    for k,p in ipairs(Player.get()) do
So after this section, right?
Yes.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 06, 2020 11:42 am
by DrMekar
Enjl wrote:
Sat Jun 06, 2020 9:53 am
DrMekar wrote:
Sat Jun 06, 2020 9:27 am
Enjl wrote:
Sat Jun 06, 2020 8:31 am

Like I said, everything inside the player for loop. An if statement that starts just after the for loop begins, and ends just before it closes.

Code: Select all

function ct.onTick()
    for k,p in ipairs(Player.get()) do
So after this section, right?
Yes.
Okay, Thank You.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon Jun 08, 2020 2:39 am
by Eclipsed
Enjl wrote:
Sun May 24, 2020 4:00 am
Ping
I was wondering since you made this script if you were planning on making a buffer jump script that basically fixes the other issue of why sometimes jumping of smbx doesn't feel like it'd come out.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Mon Jun 08, 2020 2:43 am
by Enjl
Eclipsed wrote:
Mon Jun 08, 2020 2:39 am
Enjl wrote:
Sun May 24, 2020 4:00 am
Ping
I was wondering since you made this script if you were planning on making a buffer jump script that basically fixes the other issue of why sometimes jumping of smbx doesn't feel like it'd come out.
Not at the moment. I have something like that in my episode, but it works in a way in which it's not suitable for abstracting into a script, unlike coyotetime and playerphysicspatch were. I'd need to rewrite it from scratch to make it work as a library, which is something I miiight do in the future, but that's not a promise and more my own uncertainty.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Sat Jun 13, 2020 4:23 am
by Eclipsed
Enjl wrote:
Mon Jun 08, 2020 2:43 am
Text above
Sounds interesting. Also, by any chance does it have a fix to the fact that if you spinjump and then press jump the frame you land, you still maintain a spin jump state. Or is that not included since the character in your episode based off of link,

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Wed Jul 15, 2020 1:56 pm
by Eclipsed
Enjl wrote:
Sun May 24, 2020 4:00 am
A staple in platformers for decades (notably used in the DKC series since the first entry, for example). Coyote time describes the idea of being able to jump a few frames after leaving the ground, in a nod to Wile E. Coyote from Road Runner.
Hey, would this script also work with jumps a few frames after leaving water or is this just the ground? As you know, jumping out of a downward moving water layer is super buggy and annoying to do currently.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Wed Jul 15, 2020 1:58 pm
by Enjl
Eclipsed wrote:
Wed Jul 15, 2020 1:56 pm
Enjl wrote:
Sun May 24, 2020 4:00 am
A staple in platformers for decades (notably used in the DKC series since the first entry, for example). Coyote time describes the idea of being able to jump a few frames after leaving the ground, in a nod to Wile E. Coyote from Road Runner.
Hey, would this script also work with jumps a few frames after leaving water or is this just the ground? As you know, jumping out of a downward moving water layer is super buggy and annoying to do currently.
Only ground. Never had problems with what you described.

Re: coyotetime.lua - "Argh, the jump didn't jump!"

Posted: Wed Jul 15, 2020 2:22 pm
by Eclipsed
Enjl wrote:
Wed Jul 15, 2020 1:58 pm
Only ground. Never had problems with what you described.
https://i.imgur.com/vyIP7zO.mp4
Here's a visual representation of it. I pressed jump around 10 times while skimming across the top of the water here. When the water is moving downwards sometimes it randomly doesn't allow you to jump out.