Blog ·
What is coyote time in games?

Coyote time is a short grace period in a platform game: for a moment after you run off the edge of a ledge, the game still lets you jump, as if your feet were on solid ground. In Celeste, whose player code the developers released, that window is 0.1 seconds. You almost never notice it. You only notice the games that do not have it, where a jump pressed a hair too late sends you straight down.
What does coyote time do?
Without it, a game checks one thing when you press jump: are you standing on something? The instant your character's feet pass the edge of a platform, the answer is no, and the press does nothing. People judge the edge by eye, and the eye is a little late, so a jump that felt perfectly timed turns into a fall.
Coyote time keeps saying yes for a few moments longer. Maddy Thorson, who directed Celeste, put it in one line in Celeste & Forgiveness: "You can still jump for a short time after leaving a ledge." The same article says the team did not think they invented any of these techniques; they are old tricks that many platformers use quietly.
How long is coyote time?
There is no standard length, and most games never say. Celeste is a rare case where you can read it: the studio published the game's Player class on GitHub as a learning resource (the repository's README says the MIT license covers that code, not the game). In it, a constant named JumpGraceTime is set to 0.1f. Every frame the player stands on the ground, a timer is filled back up to that value; once they leave the ground it counts down, and a jump is still allowed while it is above zero.
A tenth of a second is about six frames on a 60 Hz screen. That is short enough that the jump still looks like it came from the ledge, and long enough to cover a late thumb.
What other tricks go with coyote time?
Coyote time is usually one of a family of small helpers that make jumping feel fair. Thorson's article lists ten in Celeste; these are the ones most games share, with what Celeste's player code shows for each:
| Trick | What it does | In Celeste |
|---|---|---|
| Coyote time | Lets you jump just after leaving a ledge | 0.1 seconds (JumpGraceTime) |
| Jump buffering | A jump pressed just before landing fires on the frame you land, per Thorson's article | Handled by the game's input code, which was not released |
| Variable jump height | Holding jump longer makes the jump higher; letting go early cuts it short | Upward speed is held for up to 0.2 seconds while jump is held (VarJumpTime) |
| Softer jump peak | Near the top of a held jump, gravity is halved, giving you more time to aim the landing | Gravity times 0.5 while vertical speed is under 40 and jump is held |
Variable jump height is the subject of a well-known talk for game programmers, Kyle Pittman's Building A Better Jump at GDC, which shows how to build jump arcs from a designer's desired height and distance and extend them to jumps whose height depends on how long the button is held.
Do all platformers have coyote time?
No. Some leave it out because the challenge is the point. Trapeze, our circus platformer inspired by Big Top (1983), does it the strict way, and you can read why in its code:
- You can only jump while standing on something. The jump is checked only when the acrobat is on the ground, and the moment you walk off a platform you are falling, with no grace window.
- The jump is committed. Its direction is fixed at take-off, and nothing you press in the air changes it. The game's own help says to aim before you leap.
- There is no variable height. Every jump gets the same upward push, however long you hold Space.
- Falls are what kill you. Drop more than about two stories and you lose a life, unless you land on a trampoline or catch a ladder or pole on the way down.
That makes every jump a decision you make before your feet leave the ground, which is a very different feeling from Celeste's forgiving one. Neither is wrong. Coyote time hides the gap between what you meant and what you pressed; a committed jump makes that gap part of the game.
How do you add coyote time to your own game?
It takes a timer and two lines. In JavaScript, inside the update that runs every frame:
const COYOTE = 0.1 // seconds, the same as Celeste's JumpGraceTime
if (player.onGround) player.coyote = COYOTE
else player.coyote = Math.max(0, player.coyote - dt)
if (jumpPressed && player.coyote > 0) {
player.vy = JUMP_SPEED
player.coyote = 0 // so one ledge gives one jump
}
Clear the timer when the jump starts, or a player could jump twice from the same edge. Then tune the number by playing: too short and nobody feels it, too long and players start jumping off thin air on purpose.
Where can I try it?
Play Trapeze (keyboard; its hub page shows it next to Big Top) and feel how a committed jump makes you plan every leap. For the forgiving side, Celeste is the classic example, and our 1980s page has the platformers where these ideas started. Or browse the hub for more games and the classics behind them.
More from the blog
Why are browser games silent until you click?Browsers block sound on a page until you interact with it, so a web game cannot play audio before your first click, tap or key press. Here is how the rule works and why it exists.
What is procedural generation in games?Procedural generation means a game builds its levels, maps or worlds with rules and random numbers instead of storing each one made by hand. Here is how it works, what a seed is, how Rogue, Elite, Minecraft and No Man's Sky used it, and three browser games where you can see it.
What was the first computer RPG?The earliest computer role-playing game that still survives is pedit5, also called The Dungeon, written by Rusty Rutherford on the PLATO system at the University of Illinois in 1975. Here is how it played, the rival that followed it, the lost game called m199h, and where you can try them today.