lemonbrass_FHPGym= Feather Hitbox Preservation Gym
lemonbrass_FHPGym_FHPGym= FHP Gym
poem_lemonbrass_FHPGym_FHPGym_A= Spranther Wlip

lemonbrass_FHPGym_S1=
T1 Introduction

lemonbrass_FHPGym_S2=
Dashing

lemonbrass_FHPGym_S3=
Climbing

lemonbrass_FHPGym_S4=
Dream Blocks

lemonbrass_FHPGym_S5=
Holdables

lemonbrass_FHPGym_S6=
Moving Solids

lemonbrass_FHPGym_S7=
Boosters

lemonbrass_FHPGym_S8=
Undemo Dash

lemonbrass_FHPGym_S9=
Bouncables

lemonbrass_FHPGym_S10=
Misc. Interactions

lemonbrass_FHPGym_S10_1=
Cornerboost

lemonbrass_FHPGym_S10_2=
Ultra Boost

lemonbrass_FHPGym_S11=
T2 Introduction

lemonbrass_FHPGym_S12=
Wall Tech

lemonbrass_FHPGym_S13=
Ceiling Tech

lemonbrass_FHPGym_S14=
Going Down

lemonbrass_FHPGym_S15=
Coyote Time

lemonbrass_FHPGym_S16=
Moving Solids 2

lemonbrass_FHPGym_S17=
CT1 & CT2

lemonbrass_FHPGym_S18=
Feather Squishing

lemonbrass_FHPGym_S19=
T3 Introduction

lemonbrass_FHPGym_S20=
Technical Details

lemonbrass_FHPGym_S21=
Clip Depth

lemonbrass_FHPGym_S22=
Ultra Boost 2

lemonbrass_FHPGym_S23=
Dream Blocks 2

lemonbrass_FHPGym_S24=
T4 Introduction

lemonbrass_FHPGym_1=
The player usually may only have 1 of 3 sets of hitboxes (which we'll call hitbox states): Normal, Crouched, and Feather.
...Not to be confused with StateMachine states like StNormal, StDummy, StClimb, etc.
By hitting a spring while in a feather it is possible to obtain one of several "glitched" hitbox states.
When returning to the usual hitbox states (which we'll call "resetting") you may clip into solids.
This gym aims to teach which actions reset your state (such as talking to these statues) and various clip-techs.

lemonbrass_FHPGym_2=
Hitting a feather and spring on the same frame (the feather must update before the spring) will grant you a T1 state, where your collision box is the F hitbox and your hurtbox is the N hurtbox.
Your hurtbox now reaches 1 pixel further into the ceiling and 2 pixels further into the floor relative to the N and C states.
Step on the feather/spring and collect the touch keys.

lemonbrass_FHPGym_3=
Reseting a T1 while on the ground will embed you 2 pixels into the floor.
Doing so will usually get you stuck and you will have to manually reset.
Activate the zip mover up ahead by crouching above it with a T1 state.

lemonbrass_FHPGym_4=
Dashing down, down-diagonally, or demoing in any direction will force you to crouch and reset your state.
Proceed to the right and crouch through the jumpthrough at the end.


lemonbrass_FHPGym_5=
You may preserve your state when performing supers. Performing hypers isn't possible, since that requires being "crouched".


lemonbrass_FHPGym_6=
Grabbing onto a wall, sliding down a wall (without grabbing), wall kicks, neutral jumps and wall bounces will reset your state.
You may use climbjumps and wallboosts.
Try to only climbjump while moving upwards in this section, as that prevents you from grabbing onto the walls.
In this gym orange backgrounds will indicate areas you cannot dash in. 


lemonbrass_FHPGym_7=
You can embed yourself into a dream block beneath you and dash horizontally or up(-diagonally).
Dream (double-)jumps are still possible and dashing upwards from the surface of a dream block will give you more height than going through it.
If you clip into a dream block that's overlapping a solid, you will only be able to dash horizontally (which will just clip you out) or up-diagonally.

lemonbrass_FHPGym_8=
Just like with the C state, dashing through a dream block and holding onto it will preserve your state.
Unlike C, you can climb *down* walls.

lemonbrass_FHPGym_9=
Grabbing holdables will reset your state, so grab the jelly before stepping on the spring.

lemonbrass_FHPGym_9_1=
Holdables clipped into solids will instantly move down until un-clipped.
Clip into the switch gate using T2 and throw the jelly in each direction.
I recommend using frame buffering to hold left for only one frame to switch directions without unclipping. 

lemonbrass_FHPGym_9_2=
Throwing a holdable near the ceiling will also clip it down, but that usually isn't noticable.
You can more easily see this when doing that in a 1 tile tall gap. Since the holdable is taller than one tile, it will continue going down until it's beneath the floor as well. 
If all three of these conditions are met you will auto-drop your holdable:
1) You are in StNormal 2) You are "crouched" 3) You are grounded
Smuggle the jelly across this section and then clip through the jumpthrough at the end with T3.


lemonbrass_FHPGym_10=
If you are clipped into a solid entity while it's moving, you will be moved in the direction the entity is going until you are no longer clipping it or you hit another solid.
Embed yourself into the swap block and then dash.

lemonbrass_FHPGym_11=
While inside a Kevin, you can hit it in any direction.
Additionally, if the kevin cannot move after being hit, it will either move you left or up anyway, depending on if you hit it horizontally or vertically.
A similar concept applies to non-moving move blocks.


lemonbrass_FHPGym_12=
Green boosters will preserve your state if you do not go downwards or down-diagonally.
Red boosters will try to uncrouch you unless you are grounded at the start of the boost. You are able to go down-diagonally with them.

lemonbrass_FHPGym_13=
Demos can be performed manually by dashing down(-diagonally) and then inputting a different direction during freeze-frames.
If you instead first dash up(-diagonally) or to the sides and redirect downwards, you will not momentarily get crouched. This is called an undemo (or omed) dash.
Alternatively, you can bind a button to dash+up and then tap it for one frame for the same effect (though this doesn't work as well when on the ground).

lemonbrass_FHPGym_13_1=
You may also undemo with green boosters.

lemonbrass_FHPGym_14=
Other entities that bounce you (not just springs) can also give you a T1 state.
These include: puffers, snowballs, iceballs, oshiro and seekers.

lemonbrass_FHPGym_14_1=
There's one way to gain a T1 state without simultaneously hitting a feather and a bouncable:
Flying into the bottom of a room (with assist mode invincibility (it's automatically applied you don't need to turn it on yourself)).

lemonbrass_FHPGym_15=
The following entities also do not reset your state: bumpers, puffers (explosions), seekers (explosions), fling birds, badeline bosses, hearts, bounces (from e.g. kevins, dash blocks), all bouncables.
Badeline orbs uncrouch you.
Feathers reset you to the usual feather state.
To avoid getting reset by water, either dash through it or hop on it.

lemonbrass_FHPGym_15_1=
Since cornerboosts are merely climbjumps, they do not reset your state.

lemonbrass_FHPGym_15_2=
For this next part, have an input bound to both jump and pause.
After you start going right with the booster, hold grab, right, jump, and spam jump+pause.
Hopefully you will nyoom over the spikes.

lemonbrass_FHPGym_15_3=
After dashing down-diagonally, you receive a 1.2x speed boost on collision with the ground.
This boost only goes away when colliding with the ground or dashing in another direction, so you can delay the boost by (for example) jumping on springs or holding onto walls.
(A green dot will appear above you while having this boost in this section)
Having an ultra boost and a T1 state at the same is rather simple: 
either touch a spring+feather with an ultra boost (for example by normal down-diag dashing into it) or down-diag undemo with a T1 state.
When this boost is applied you will be reset to the C state.

lemonbrass_FHPGym_15_4= 
Activate the touch switch with a T1 state, reset said state and then use an ultra boost after the puffer explosion. The spiked platform is set up so it will only kill you if you have a T1 state.

lemonbrass_FHPGym_15_5=
If you down-diag into a solid that bounces you on collission (e.g. a dash block or kevin), the ultra won't be applied.
Down-diag undemo into the dash block while in a T1 state, stall on the spring and then re-enter the booster to dash in another direction to remove the ultra.

lemonbrass_FHPGym_15_6=
It's possible to become grounded without "colliding" with the ground if your speed is zero when you touch it.
Go down-diagonally with the red booster in the T1 state, grab onto the other side of the dream block and let go after you "hit" the ground.
You should have both T1 and an ultra stored.

lemonbrass_FHPGym_16=
Canceling a feather into a bouncable not on the same frame will grant you a T2 state. Anything that will reset a T1 state will also reset a T2 state, as well as any downward speed.
In a T2 state your collision box is another two pixels shorter and thinner.
This difference allows you to clip into walls and the ceiling.
Dash into the feathers and springs to collect the touch keys.

lemonbrass_FHPGym_17=
If you stop yourself from going downwards, you can preserve the T2 state.
Attain a T2 state and then dash towards the touch keys.

lemonbrass_FHPGym_18=
Try both dashing and climb jumping to get to the touch key at the top.

lemonbrass_FHPGym_19=
When in a wall, you are able to perform (demo) hypers, (reverse) supers and extended reverse supers.
Attempt to do a wall hyper followed by a reverse extended wall super.

lemonbrass_FHPGym_20=
Dashing horizontally while in the ceiling will force you to crouch. You can then jump to perform a hyper during coyote time, but only if you are close enough to an overhang.

lemonbrass_FHPGym_21=
If you are especially close to an overhang, it's possible to perform a ceiling super instead of a ceiling hyper by jumping immediately after dashing.
However, it's also possible to walljump without using your dash, which may be more useful.

lemonbrass_FHPGym_22=
Try to perform a reverse ceiling hyper.

lemonbrass_FHPGym_23=
You do not need to be going upwards to preserve a T2 state. Dashing horizontally onto solid ground will let you keep it.
Dash up into the booster and then go right.

lemonbrass_FHPGym_24=
Repositioning by boosters will not reset your T2 state, even if you are going down.

lemonbrass_FHPGym_25=
The player's own speed must be downward to lose the T2 state - if you are going down by riding another entity, you can preserve your state.

lemonbrass_FHPGym_26=
Since you're not going downwards, it is possible to down-undemo on the ground to break a dash block.

lemonbrass_FHPGym_27=
After you stop being grounded you have 5 frames of coyote time, during which you will not reset your state from falling. This lets you walk down 4 pixel gaps (wind and slowfalling affect this number a bit).
You can also dash horizontally to corner-correct back up.

lemonbrass_FHPGym_27_1=
For a 5-16 pixel gap you need to perform a down-undemo. Wider gaps require more precision.
Walk right until you are no longer on the ground and then execute the down-demo. This is somewhat difficult without frame-buffering.
For small gaps you can also perform a horizontal dash right before hitting the ground (this has a 2-frame window).

lemonbrass_FHPGym_28=
You are considered grounded while in a ceiling, meaning you will regain your dash, stamina and coyote time.
After clipping into the crumble block, perform a ceiling jump: crouch (which will destroy it early) and then jump during coyote time.
Alternatively, you could jump and then immediately crouch (this often gives a smaller jump).

lemonbrass_FHPGym_28_2=
If you input an instant super (i.e. a super where you jump instantly after the dash) in the ceiling, the speed from it will be stored as retained speed. You can release it by crouching.
Afterwards you will still have coyote time, so jump to finish performing a "ceiling super bhop". 

lemonbrass_FHPGym_28_3=
You can perform a ceiling hyper near an overhang by dashing horizontally (which will crouch you) and then jumping (during coyote time) once there isn't anything above you (this can be buffered).

lemonbrass_FHPGym_28_4=
You may also perform ceiling hypers from crumble blocks instead, since they will dissapear after you dash out of them.
Try to perform a "reverse ceiling hyper" here.

lemonbrass_FHPGym_28_5=
To perform an "extended ceiling wallbounce", do a regular wallbounce in the ceiling and then immediately crouch. 
If you don't regain your dash it means you jumped too early. If you don't move away from the ceiling it means you crouched too late.
You will always be moved left.

lemonbrass_FHPGym_28_6=
More ceiling tech exists, but the ones shown here are easiest to execute.
You can, for example, jump, crouch and then jump a bit later using coyote time from a crumble block to perform a "ceiling double jump".

lemonbrass_FHPGym_29=
How far clipped into solids you are affects how you can move around in them.
With T1 you can clip 2 pixels into the floor and with T2 you can clip 3 pixels into the floor, 2 into the ceiling and 1 into the wall.
With certain setups it's easy to clip less deep.
If you're only clipped 1 pixel into the floor, you can easily escape by jumping or dashing.
The floor above the zip mover on the right is padded by 1 pixel of jumpthrough. Crouching on it will embed you only 1 pixel into the floor.

lemonbrass_FHPGym_29_1=
If you are only clipped 1 pixel into a moving solid, you will not get clipped out of it in the opposite direction and you will "ride" it instead.
For example, if you clipped into the *left* side of a solid that's moving *right*, no clipping will happen.
After going right with the bubble do absolutely nothing.

lemonbrass_FHPGym_29_2=
Clipping only 1 pixel into the ceiling will let you "grab" it. Releasing grab will cause you to fall out of it.
The second booster is set up so when you uncrouch from falling you will be clipped 1 pixel into the zip mover. Climb jump out of it a bit before it stops moving to get to the other side.

lemonbrass_FHPGym_30=
If you clip only 1 pixel into a dream block on the floor, you will clip out of it if you dash horizontally.
To prevent this, a solid may be placed above you.
Attain a T1 state, grab onto to the crumble block to get an N state and only then dash right.

lemonbrass_FHPGym_30_1=
If you want to dash horizontally from the ceiling or upwards from a wall, the same concept applies.
Dashing downwards from a dream block in a wall, however, doesn't have this requirement.

lemonbrass_FHPGym_31=
If a solid is moving both vertically and horizontally, it will only clip you out horizontally.

lemonbrass_FHPGym_31_1=
If a solid is moving fast in enough in a direction, you will lag behind more and act as if you are clipped in fewer pixels deep.
This means that, for example, if you are clipped 2 pixels into a vanilla swap block that's only moving down, you won't clip down and instead ride it.
You need to clip in 3 pixels deep to teleport through it: T1 isn't enough, T2 must be used. 

lemonbrass_FHPGym_31_2=
Solids will only move you in multiples of 1 pixel.
If one moves less than 1 pixel in a frame, no clipping will happen.
The swap block on the right will only clip you half way through its path, since its destination is only 1 pixel away from the origin horizontally.

lemonbrass_FHPGym_32=
If you get clipped into a wall or ceiling with an ultra and do nothing, it will apply itself after a short delay and crouch you out. 
To prevent this, you can simply hold grab, which will preserve the ultra and prevent you from clipping out.
lemonbrass_FHPGym_32_1=
If you're in a wall, you may also crouch to remove the ultra and prevent unclipping (uncrouching will unclip you).
If you're in a ceiling, crouch to auto-unclip while preserving the ultra.
lemonbrass_FHPGym_32_2=
Jumping will also prevent the ultra from being a applied when in a ceiling.
lemonbrass_FHPGym_32_3=
In this section, after you unclip from the ceiling by crouching, jump during coyote time. Don't buffer the jump.

lemonbrass_FHPGym_33=
When exiting the feather state, the game will attempt to crouch you if that prevents clipping into a wall (if you clip into a wall regardless, you die).
We can abuse this mechanic to create alternate versions of the T1 and T2 states (CT1 and CT2) where the hurtbox is the crouching hurtbox instead of the normal hurtbox.
No gameplay differences arise besides having a lower reach.

lemonbrass_FHPGym_34=
The game may attempt to crouch you if that saves you from being crushed to death.
Whether or not you are in a feather is not checked, so this is a way to become crouched in a feather state.
Moving down with a crouched feather will uncrouch you (being pushed down by wind and bouncing off walls won't).
Get to the other side without uncrouching.

lemonbrass_FHPGym_35=
Cancelling a crouched feather into a bouncable will yield a T3 state.
Its hitbox is the shortest - just 4 pixels tall.
T3 acts similarly to the C state (you're considered as "crouched"). If resetting to the N state would get you stuck, the action either fails or your state doesn't change.
You don't need to hold down to not uncrouch (like with C), because uncrouching on the ground would get you stuck.
To embed yourself into the ground, you need to reset to the C state, which is only possible with an ultra boost.
Use the compact machine on the right to attain a T3 state and get to the end without resetting. Hug the ceiling to preserve your state.

lemonbrass_FHPGym_36=
Hypers require you to uncrouch, so to perform them with a T3 state you need to be over air or a non-solid platform.
In this section, once you're out of the slim tunnel, jump (this may be buffered).

lemonbrass_FHPGym_37=
To obtain a T4 state, fly a crouched feather into the void with assist mode invicibility.
It's essentialy just the C state but with a taller hurtbox, the hitbox is the same. This means resetting to the C state won't clip you into a solid.
Since you're considered to be crouched, the game also checks if resetting to the N state will clip you. So it's not possible to clip into anything with T4, making it the most boring hitbox state.
In this section simply hold right.

lemonbrass_FHPGym_38=
T4 preservation works the same as with the C state, with the caveat that ultra boosts will reset you.
This makes it so moving across flat ground requires strictly horizontal dashes, but if at any point you're not holding down while not dashing, you'll reset your state.
Spam right-dash and then jump into the switch gate.

lemonbrass_FHPGym_car=
	{anchor bottom}
	This introcar in front of you...
	Is trying to perform a {~}ceiling hyper{/~}.
	But it's too nervous to do it.
	
lemonbrass_FHPGym_challenge=
	???