#Contents
#Menu Options 
#Map Intro
#Hub Portal
#Spike Clips
#Ultras
#Crouch Tech
#Cornerboosts
#Subpixels
#Dashless Tech
#Holdable Tech
#Pausebuffering
#Obscure Tech
#Retention Tech

#Notes: the dialog for each section includes locations and explainers. 
#Locations are for the dialog options for each portal 
#Explainers are for the respective Theos' tech explanations

#CollabUtilsStuff

modname_HardlistGyms= HardlistGyms
endscreen_collabname_HardlistGyms= HG2025

#Names and Poems

	poem_HardlistGyms_0_Lobbies_0_Prologue_A= Good luck!
	
	poem_HardlistGyms_0_Lobbies_1_GMplusOneGym_A= Limitless
	
	poem_HardlistGyms_0_Lobbies_2_GMplusTwoGym_A= Uncharted
	
	poem_HardlistGyms_0_Lobbies_3_GMplusThreeGym_A= Finality
	
	HardlistGyms_0_Lobbies_0_Prologue= Prolougue

	HardlistGyms_0_Lobbies_1_GMplusOneGym= Grandmaster+1
	
	HardlistGyms_0_Lobbies_2_GMplusTwoGym= Grandmaster+2

	HardlistGyms_0_Lobbies_3_GMplusThreeGym= Extra content

	HardlistGyms_0_Lobbies_1_GMplusOneGym_postcard= 

	Remember that learning is better if you take breaks.
	
	HardlistGyms_0_Lobbies_2_GMplusTwoGym_postcard= 
	
	Don't be afraid to ask for help when you become stuck.
	
#Birdless Tutorial

	Violet_HardlistGyms_Tutorial_0= Make it longer?

	Violet_HardlistGyms_Tutorial_1= Try again?

#Menu Options 

	Violet_HardlistGyms_Close= 

	{#00FF00}Close{#}

	Violet_HardlistGyms_Explain=

	Explain

	Violet_HardlistGyms_Hub=

	{#00FF00}Gym Hub{#}
	
#Credits

	#Playtesters 

		Violet_HardlistGyms_More= 

			More playtesters
	
		Violet_HardlistGyms_Credits_0=
		
			Playtesters
			
		Violet_HardlistGyms_Credits_1=
			
			Pushtak 
			
		Violet_HardlistGyms_Credits_2=
			
			Katze1098 
			
		Violet_HardlistGyms_Credits_3=
			
			VioletYidhra 
			
		Violet_HardlistGyms_Credits_4=
			
			jftyjghj 
			
		Violet_HardlistGyms_Credits_5=
			
			Stymph
			
		Violet_HardlistGyms_Credits_6=
			
			Luciro
			
		Violet_HardlistGyms_Credits_7=
			
			Poise
		
		Violet_HardlistGyms_Credits_8=
		
			Kosei
			
		Violet_HardlistGyms_Credits_9=
		
			Shem 

		Violet_HardlistGyms_Credits_10=

			Kaitlyn

		Violet_HardlistGyms_Credits_11=

			Ninjakitten

		Violet_HardlistGyms_Credits_12=

			Rockyfish	
	
	#Music 
	
		Violet_HardlistGyms_Music_0= 
		
			Music 
			
		Violet_HardlistGyms_Music_1=
		
			Astral 1 (Patricia Taxxon)
			
		Violet_HardlistGyms_Music_2=
			
			Wavetable (Patricia Taxxon)

		Violet_HardlistGyms_Music_3=

			The Work (Patricia Taxxon)
	
	#Art 
	
		Violet_HardlistGyms_Art_0=
		
			Art 
	
		Violet_HardlistGyms_Art_1=
		
			Circumplex (SJ tilesets)

		Violet_HardlistGyms_Art_2=

			Kalypso (Cards, GUI)

		Violet_HardlistGyms_Art_3=
	
			Vivien (Stylegrounds)
			
		Violet_HardlistGyms_Art_4= 
		
			Mathias Reding (+2 endscreen)
			
		Violet_HardlistGyms_Art_5=
		
			Lucas Pilon Ferro (+1 endscreen)
		
			
	#Technical Players
	
		Violet_HardlistGyms_Tech_0= 
		
			Technical 
			
		Violet_HardlistGyms_Tech_1= 
		
			Cadaeib65
			
		Violet_HardlistGyms_Tech_2=
		
			Pandora 
		
		Violet_HardlistGyms_Tech_3=
		
			deesoff
		
		Violet_HardlistGyms_Tech_4=
		
			Arti
		
		Violet_HardlistGyms_Tech_5=
		
			Alexa
			
		Violet_HardlistGyms_Tech_6=
		
			Leganeski
		
		Violet_HardlistGyms_Tech_7= 
		
			Ninz 
			
		Violet_HardlistGyms_Tech_8=
		
			Bret
			
		Violet_HardlistGyms_Tech_9= 
		
			NCG

		Violet_HardlistGyms_Tech_10= 

			Zheo 

		Violet_HardlistGyms_Tech_11= 

			jackthewack
	
	#for being cool 	

		Violet_HardlistGyms_Cool_0=

		For Being Cool

		Violet_HardlistGyms_Cool_1= 

		Druwu 

		Violet_HardlistGyms_Cool_2= 

		Daorex

#Full gym introduction

	Violet_HardlistGyms_Intro=

	Hello! Its been 6 months of work, but here it is. 
	
	Grandmaster+1 gym, grandmaster+2 gym, and some extra content.
	
	This project involved alot of people and it wouldn't been possible without their help.

	I also drew heavy inspiration from strawberry jams and spring collabs gyms. 

	Keep in mind that you don't need to be a gm+ player to complete these gyms. 
	
	Have fun!

#gm+1 gym intro 

	Violet_PlusOneGym_peeker=

	Tech that have red names might be difficulty to learn. 

	If you've been stuck on the nrcb or rev hyper dultra for hours, that's normal. 

	They're hard. 

#gm+2 gym intro 

	Violet_PlusTwoGym_peeker=

	Similar to the last gym red names mean something might be hard to learn. 

	A lot of the moves in this gym are hardware dependent. 

	If you can't 1f tap, I would recommend using pause to 1f tap. 

	Also you can use pausebuffering and placing savestates out of pause to practice. 

#gm+3 gym 

	Violet_PlusThreeGym_peeker= 

	This map has some of the stuff I decided not to include in gm+2 gym

	but that is too cool to not keep in same way.

	The dashless stuff hard. Like multiple frame perfects hard.

		
#____________________________________________________________PLUS ONE GYM_______________________________________________________
	
#Torture Room

Violet_PlusOneGym_Torture= 

[Theo left normal]

Since you're so good at dashless gameplay, I think you'll appreciate this room of unplaytested dashless gameplay.

[Theo left normal]

Have fun nerd.

Violet_PlusOneGym_Return= 

Lmao.
	
	Violet_PlusOneGym_GymHub_Intro=

	[Madeline left distracted]

	Uh, where am I?

	[Theo left normal]

	This is the edge of the universe. You're lucky to be alive. Most don't make it this far. 

	[Theo left normal]

	There isn't much out here. Of what little there is, are some of the hardest challenges you'll ever face.

	[Theo left normal]

	I made this place to prepare you for life out here. 

	[Madeline left sad]

	Can't I go home?

	[Theo left normal]
	
	You can, but don't you want the crystal heart?
	
	[Madeline left normal]

	Oh boy! I do.
		
#Map Ending

	Violet_PlusOneGym_Ending_1=
	
	You've made it.

	Violet_PlusOneGym_Ending_2=

	Past the edge of the universe.

	Violet_PlusOneGym_Ending_3=

	Now all that's left.

	Violet_PlusOneGym_Ending_4=

	Is for you to take one last leap.

	Violet_PlusOneGym_Ending_5=

	And confront what's out here.
	
#Hub Portal

	Violet_PlusOneGym_GymHub_1= 

	DelayedUltras

	Violet_PlusOneGym_GymHub_2=

	Cornerboosts

	Violet_PlusOneGym_GymHub_3=

	Crouch Tech

	Violet_PlusOneGym_GymHub_4=

	Dashless

	Violet_PlusOneGym_GymHub_5=

	Theo Tech

	Violet_PlusOneGym_GymHub_6=

	Subpixels (cpops)

	Violet_PlusOneGym_GymHub_7=

	Labbing

	Violet_PlusOneGym_GymHub_8=

	Miscellaneous

#Spike Clips

	Violet_PlusOneGym_SpikeClip_1=

	[Theo left normal]

	To understand spike clips we need to establish afew things. 

	[Theo left normal]

	First, spikes have a deceptive visual and their hitbox is thin, 3 px tall. 

	[Theo left normal]

	Second, upwards facing spikes will only kill Madeline if the bottom of her hitbox overlaps with the spike hitbox. 

	[Theo left normal]

	Third, the game operates on a frame by frame basis and spikes will only kill you if you touch them on any given frame. 

	[Theo left normal]

	So a spike clip works when the bottom of your hitbox skips past the spike hitbox. You need to have more than 3 pixels/frame or 180 speed for this to be possible. 

	[Theo left normal]

	For a demonstration, if you stand on the crumble block, hold down and, keep holding it, you will automatically preform a spike clip. Give it a try!

	Violet_PlusOneGym_SpikeClip_2=

	[Theo left normal]

	Try it without the setup and once you're ready... brave the pit

#Ultras

	#Locations

		Violet_PlusOneGym_Ultra_loc_0=

		Section Intro

		Violet_PlusOneGym_Ultra_loc_1=

		The basic setup

		Violet_PlusOneGym_Ultra_loc_2=
		
		Ultra into Dultra
		
		Violet_PlusOneGym_Ultra_loc_3=

		{#F32013}Optimising dultras{#}
		
		Violet_PlusOneGym_Ultra_loc_4=
		
		{#F32013}Reverse Hyper Dultras{#}

	#Explainers

		Violet_PlusOneGym_Ultra_0=

		[Theo left normal]

		Ultras are a broad umbrella but there is unified theory of them. Let's outline that

		[Theo left normal]

		An ultra is anything that gives you an ultra boost and an ultra boost happens when the game multiplies your speed by 1.2x under the following conditions:

		[Theo left normal]

		(a) your last dash is down diagonal (b) you've collided with the floor (c) not much else

		[Theo left normal]

		Since your last dash direction can't change until you dash again, there's no time limit for how quickly you need to ultra after you dash.  

		[Theo left normal]

		Given this, when your last dash is down diagonal and you haven't touched the floor yet, we say the ultra boost is "stored". 

		[Theo left normal]

		When you store an ultra boost for a significant amount of time, we call that a "delayed ultra". 

		[Theo left normal]

		Here, you can do a delayed ultra by storing an ultra boost and flinging off the zip block. Remember to slide before jumping! (check {#00FF00}buffered ultras, subpixels{#})

		[Theo left normal]

		Try it with and without the ultraboost to see the difference. I added an indicator for when an ultra is stored. 

		Violet_PlusOneGym_ULtra_1=

		[Theo left normal]

		The most common setup for a delayed ultra is cancelling your diagonal dash with a corner boost. 

		[Theo left normal]

		Here, you want to hyper into down diagonal corner boost. Remember to slide before jumping.

		Violet_PlusOneGym_ULtra_2=

		[Theo left normal]

		Sometimes you're expected to land as soon as possible after starting a dultra. 
		
		[Theo left normal]
		
		This optimises for speed since you lose less speed to friction before ultra boosting. 

		[Theo left normal]

		Here, you want to cornerboost without holding jump afterwards. This should minimise your airtime.

		[Theo left normal]

		For the motions, wavedash --> downdiagonal cornerboost --> release jump asap.

		Violet_PlusOneGym_Ultra_3=

		[Theo left normal]

		Reverse hyper dultra!
		
		[Theo left normal] 
		
		All you have to do is downdiagonal dash off a ledge, reverse hyper back, and do a down diagonal cornerboost.
		
		[Theo left normal]
		
		Then you get the speed from a hyper, cornerboost, and dultra combined.
		
		[Theo left normal]
		
		This one is pretty tricky. But if you down diagonal dash from spawn, you will be aligned for it.

#Crouch Tech

	#Locations

		Violet_PlusOneGym_CrouchTech_loc_0=

		Section Intro

		Violet_PlusOneGym_CrouchTech_loc_1=

		Crouch Climb

		Violet_PlusOneGym_CrouchTech_loc_2=

		{#F32013}Preversing Crouch (walljumps){#}

		Violet_PlusOneGym_CrouchTech_loc_3=

		Optimal Crouch Climb

		Violet_PlusOneGym_CrouchTech_loc_4=

		Preserving Crouch (Demos)

		Violet_PlusOneGym_CrouchTech_loc_5=

		Preverving Crouch (Interactions)

		Violet_PlusOneGym_CrouchTech_loc_6=

		Crouch Slide

		Violet_PlusOneGym_CrouchTech_loc_7=

		Roof Slide

		Violet_PlusOneGym_CrouchTech_loc_8=

		Crouch Spam

		Violet_PlusOneGym_CrouchTech_loc_9=

		{#F32013}Crouched 5-tile{#}

	#Explainers

		Violet_PlusOneGym_CrouchPrev_0=

		[Theo left normal]

		Here you'll get to practice crouching. Apparently that matters past GM.

		[Theo left normal]

		Crouch through the hole to enter. 

		Violet_PlusOneGym_CrouchPrev_1=

		[Theo left normal]
		 
		You can stay crouched while climbjumping so long as you don't fall. You can slowfall (check {#00FF00}miscellaneous{#}) to make it easier. 

		[Theo left normal]

		This is covered in the {#9d00ff}Strawberry Jam advanced gym{#} if you aren't familiar.
		
		[Theo left normal]
		
		Keep in mind that the game prioritises walls to your right over walls to your left.
		
		[Theo left normal]
		
		So when crouch climbing in 1-tile gaps like this, you will always be climbjumping off the right wall.
		
		[Theo left normal]
		
		Meaning you will uncrouch if you try to jump off the left walls.
		
		[Theo left normal]
		
		This idea that left and right walls act differently is called wall priority.
		
		Violet_PlusOneGym_CrouchPrev_2=

		[Theo left normal]

		There are two ways to stay crouched while moving away from the wall. Either you can buffer a wallkick away from a wall or you can wallboost. 

		[Theo left normal]

		Generally, you can't go wrong with the wallboost method but it's worth learning both.

		[Theo left normal]

		Quick note, the bubbles will bring you down a level if needed.

		Violet_PlusOneGym_CrouchPrev_3=

		[Theo left normal]

		Optimised crouch climb.

		Violet_PlusOneGym_CrouchPrev_4=

		[Theo left normal]

		You can start a crouch climb by demodashing. Try demo dashing up into this crouch climb.

		Violet_PlusOneGym_CrouchPrev_5=

		[Theo left normal]

		Crouch is preserved by springs and bouncables such as pufferfish. Remember to demo into the fish and hold jump for the full bounce.  

		Violet_PlusOneGym_CrouchPrev_6=

		Often you'll be required to alternate between walls while crouch climbing. 
		
		As you'd recall, climbjump priority means the game always picks right walls over left walls.
		
		So to do this section, you'll want to turn towards any right walls to continue the crouch climb. 
		
		You can also keep stamina by wallboosting. So after each turn around, release any directions before climbjumping.
		
		That way you can wallboost and keep stamina as well.

		Violet_PlusOneGym_CrouchPrev_7=

		[Theo left normal]

		You can also crouch slide across a roof. In this example, dash down to trigger the swap block. At the end, jump for the block boost and dash upright to clear the spikes.	

		Violet_PlusOneGym_CrouchPrev_8=

		Spam jumps while crouched for big speed.

		Violet_PlusOneGym_CrouchPrev_9=

		[Theo left normal]

		This is for a crouched 5-tile overhang.

		[Theo left normal]

		To perform a crouch 5-tile, you'll want stay crouched until you approach the corner.

		[Theo left normal]

		You'll need to start two pixels away from the wall (check {#00FF00}miscellaneous, Lava Climb{#}). 

		[Theo left normal]

		Next, crouch jump into crouched wallboost.

		[Theo left normal]
		 
		Finally, buffer a cornerkick when you reach the corner.

		[Theo left normal]
		
		If you want to do a five tile without crouching, check out Ninz's video {#9d00ff}How to Ceiling Pop and 5-tile Overhang EASILY - Celeste in Depth Tech Tutorial{#}.
		
#Cornerboosts

	#Locations

		Violet_PlusOneGym_Cornerboost_loc_0=

		Section Intro

		Violet_PlusOneGym_Cornerboost_loc_1=

		RCB Easy

		Violet_PlusOneGym_Cornerboost_loc_2=

		RCB Hard

		Violet_PlusOneGym_Cornerboost_loc_3=

		{#F32013}NRCB{#}

		Violet_PlusOneGym_Cornerboost_loc_4=

		RCB with corner

		Violet_PlusOneGym_Cornerboost_loc_5=

		{#F32013}NRCB with corner{#}

		Violet_PlusOneGym_Cornerboost_loc_6=

		Cornerboost Staircase

		Violet_PlusOneGym_Cornerboost_loc_7=

		Cornerboost Wallboost

	#Explainers

		Violet_PlusOneGym_Cornerboost_0=

		[Theo left normal]

		A cornerboost is, basically, a climb jump with retained speed (check {#00FF00}cornerglide, Miscellaneous{#}). Cornerboosts preserve your momentum, which make them common place in speed chains. 

		[Theo left normal]

		You were likely introduced to cornerboosts in the expert gym. Here you'll learn about the different flavours of cornerboost.

		Violet_PlusOneGym_Cornerboost_1=

		[Theo left normal]

		It is possible to turn around and climb jump off a wall behind you. We call this a reverse cornerboost or a rcb. 

		[Theo left normal]

		Similar to a backboost, you'll want to turn around as briefly as possible if you need maximum speed. 

		[Theo left normal]

		Unforuntately, reverse cornerboosts lose 40 speed since the your climbjump faces away from your overall speed. 

		[Theo left normal]

		For this, you want to extended hyper, up diagonal dash, and rcb before it ends.

		[Theo left normal]

		I stacked several jumpthroughs to make it more "lenient".

		Violet_PlusOneGym_Cornerboost_2=

		[Theo left normal]

		Now do an ultra into a rcb. You will need to optimise both to clear this gap.

		[Theo left normal]

		Keep in mind: you need to up diagonal asap and turn left briefly for the rcb. 

		Violet_PlusOneGym_Cornerboost_3=

		[Theo left normal]

		Recall how rcbs lose 40 speed. It is possible to keep that speed with a neutral reverse cornerboost (nrcb).

		[Theo left normal]

		A nrcb is like a rcb but when you jump you can't hold either direction. 

		[Theo left normal]

		Most of time you'll be using a normal rcb since you don't typically need the extra speed. 

		[Theo left normal] 

		Furthermore, rcbs tend to keep more speed in practice since you can't press right quickly after a nrcb without wallboosting.

		[Theo left normal] 
		
		Why? Because an NRCB involves a neutral climbjump and neutral climbjumps start wallboost timer (where you can wallboost). 
		
		[Theo left normal] 
		
		Furthermore, wallboosting resets your speed. Often making it undesirable after an nrcb.

		[Theo left normal]

		If you dash after an NRCB, however, you can keep your speed and avoid the threat of wallboosting.
		
		[Theo left normal]
		
		So if you are NRCBing for speed, you are almost always ultra-ing afterwards. 

		[Theo left normal]

		To do this nrcb, tap left to turn around, let go of any directions, and climb jump. Then quickly ultra afterwards.

		[Theo left normal]

		You'll know you've hit one when you have noticeably more speed than usual.

		[Theo left normal]

		The blue crystal gives you freeze frames so you can be more mindful of your button presses.
		
		[Theo left normal]
		
		Before you go, make sure to dash first and then direct it down diagonal for the ultra.
		
		[Theo left normal]
		
		If you press the directions for the ultra before dashing, you will wallboost!
		
		[Theo left normal]
		
		There's an indicator that will turn on if your NRCB and turn red if you wallboost. Good luck!

		Violet_PlusOneGym_Cornerboost_4=

		[Theo left normal]
		 
		You may have been wondering where the corners are if we are doing "cornerboosts". 

		[Theo left normal]

		That starts here. 

		[Theo left normal]

		This is a reverse cornerboost, but instead you need to turn around to jump off a roof corner. 

		[Theo left normal]

		I added a jump through to make this less punishing. Don't get too used to it, though.

		Violet_PlusOneGym_Cornerboost_5=

		[Theo left normal]

		And this is an nrcb. 

		[Theo left normal]

		Same idea as a rcb, but you don't want to input any directions while cornerboosting. Remember to dash asap for the ultra.
		
		[Theo left normal]
		
		I'd also like to remind you to dash first for the ultra then direct it down digonally. 
		
		[Theo left normal]
		
		This is to avoid wallboosting!
		
		[Theo left normal]
		
		Orange indicator = nrcb. Red indicator = wallboost. 

		Violet_PlusOneGym_Cornerboost_6=

		[Theo left normal]

		This is a cornerboost stair case.

		[Theo left normal]

		When there a refills on each step like this, it's best just to spam as many jumps as possible since you can't run out of stamina.

		[Theo left normal]

		To initiate the staircase, reverse hyper into the first cornerboost. 

		Violet_PlusOneGym_Cornerboost_7=

		[Theo left normal]

		The long name for this is a cornerboost wallboost or (cobwob).

		[Theo left normal]

		A cornerboost wallboost occurs when you cornerboost without holding any direction and wallboost later to reverse direction.

		[Theo left normal]

		It is important to not hold any direction since the game only allows you to wallboost if you do a neutral climbjump.

		[Theo left normal]

		Like alot of cornerboosts, the name is misleading. Often there is no corner or boost involved.

		[Theo left normal]

		In the case of cobwobs, you don't get a boost from the corner. You just retain your incoming speed.

		[Theo left normal]

		To sum everything up: cornerboost, don't hold a direction, move the direction the corner was facing, wallboost.

#Subpixels  

	#Locations

		Violet_PlusOneGym_Subpixel_loc_0=

		Ceiling Pop (bufferable)

		Violet_PlusOneGym_Subpixel_loc_1=

		{#F32013}Ceiling pop{#}

	#Explainers

		Violet_PlusOneGym_Subpixel_1=

		[Theo left normal]

		Although visually Madeline's position is bound to pixels, her real position can be some fraction of a pixel (e.g. 7.57 px).

		[Theo left normal]	

		For most gameplay, her position to the pixel is all you need to know. However, maps past GM start to require subpixel precision. 

		[Theo left normal]

		This section requires the use of external tools like celesteTAS to view subpixels. For celesteTas, you'll need to enable info HUD.

		Violet_PlusOneGym_Subpixel_2= 

		[Theo left normal]

		A cpop is when you climb jump below a wall. Despite their simplicity, cpops depend on your vertical and horiztional position within a pixel. 

		[Theo left normal]

		So the main difficulty with cpops is finding the right subpixel. 

		[Theo left normal]

		Here, I made a cpop that doesn't have this difficulty. 
		
		[Theo left normal]
		
		Just slide down the wall. Then hold down until you collect the crystal. 
		
		[Theo left normal]
		
		Now just enter right + jump + grab during the freeze frames. 
		
		[Theo left normal]
		
		The freeze frames make this a four frame window instead of a one frame window.

		Violet_PlusOneGym_Subpixel_3=

		[Theo left normal]

		In a limited sense, cornerboosts are subpixel dependent too.

		[Theo left normal]

		If you collide with the wall before you cornerboost, you will lose speed and get a "bad cornerboost".

		[Theo left normal]

		Whether or not you get a bad cornerboost depends on your pixel, speed, and sometimes your subpixel. 

		[Theo left normal]

		Most maps add cornerboost protection so you don't have to think about this. The cornerboosts in this gym are all protected excluding the one's in this room. 

		[Theo left normal]

		If you look at the decal over there, this shows how each pixel will affect your cornerboost.

		[Theo left normal]

		Note that this only represents a minimum speed, horizontal dash into a cornerboost.

		[Theo left normal]

		Here, the pixels are coloured based on what happens if the bottom right pixel of your hitbox coincides with it. 

		[Theo left normal]

		Green means you will always get a good cornerboost. Orange means you will always get a bad cornerboost. Blue means whether or not you get a good/bad cornerboost depends on your subpixel.

		[Theo left normal]

		Try cornerboosting with the right side of your hitbox aligned to the good and bad bands. 

		Violet_PlusOneGym_Subpixel_4=

		[Theo left normal]

		Sliding down a wall or walking into a wall will put your subpixel in the half pixel towards the wall. You won't know exactly where you are in that half pixel, however.
		
		[Madeline left normal]
		
		Okay, but why are there two of you?
		
		[Theo left normal]
		
		I don't know what you're talking about.

		Violet_PlusOneGym_Subpixel_5=

		[Theo left normal]
	
		Walking along flat ground preserves your vertical subpixel and climbing/climbjumping preserves your horizontal subpixel.
		
		[Theo left normal]
		
		I'll let you mess around with that abit.

		Violet_PlusOneGym_Subpixel_6=

		[Theo left normal]

		On spawn your vertical subpixel should be 0.5px vertically. 
		
		[Theo left normal]
		
		You can position yourself in the bottom 1/8th of a pixel by buffering nine updashes and one horizontal dash.
			
		[Theo left normal]
		
		You could also full jump into a wall while holding grab. Slide down. 
		
		[Theo left normal]
		
		Then hyper into the wall while holding grab. And sliding down again.
		
		[Theo left normal]
		
		You can check your subpixels by walking into the light.
		
		Violet_PlusOneGym_Subpixel_a=
		
		[Theo left normal]
		
		Often you'll want to have 0.5 subpixels vertically. You can get these by jumping into a ceiling. 
		
		[Theo left normal]
		
		Bonking your head.
		
		[Theo left normal]
		
		To check your subpixels, just float over the jump through.
		
		[Theo left normal]
		
		Oh by the way. We call getting 0.5 subpixels normalising your subpixels.
		
		Violet_PlusOneGym_Subpixel_b=
		
		[Theo left normal]
		
		You can also get 0.5 subpixels horizontally (normalise your horizontal subpixel). 
		
		[Theo left normal]
		
		There's alot of ways you can do this.
		
		[Theo left normal]
		
		Here, if you do two right climbjumps into the corner, you will normalise your subpixels.
		
		[Theo left normal]
		
		One climbjump can be enough, but two will guarantee it.
		
		[Theo left normal]
		
		Just drop down to check you subpixels. Don't press any directions.
		
		Violet_PlusOneGym_Subpixel_7=

		[Theo left normal]

		You may have heard that buffered ultras depend on your subpixel. 

		[Theo left normal]

		So to understand why, we need to understand how ultras and jumps work.

		[Theo left normal]

		A jump is possible when you are enter the pixels above the ground. 

		[Theo left normal]

		Understood with subpixels this means you could jump when 0.5 px off the ground but not if you are 1.5px off the ground.

		[Theo left normal]

		Next, the game only does collision when you would have otherwise been inside of a surface on a given frame.

		[Theo left normal]

		When performing an ultra, you will only get the boost if you collide with the floor.

		[Theo left normal]

		Since it is possible to enter the pixel above the floor without overlapping with it, it is possible to jump before you collide with the floor.

		[Theo left normal]

		In otherwords, you can jump before you really "touched" the floor and you will not get the speed boost from an ultra

		Violet_PlusOneGym_Subpixel_9=
		
		[Theo left normal]

		Here's the someguy's trick for a cpop which makes it a two frame timing.

		[Theo left normal]

		Slide down the wall to fix your horiztional subpixel. 

		[Theo left normal]

		Do very brief taps to the third pixel up from the bottom of the block. 

		[Theo left normal]

		You should now have bottom most subpixels if the taps were brief enough. 

		[Theo left normal]

		Now you'll want to press down. Keep holding grab. You can choose to hold right now or on the next step. 

		[Theo left normal]

		As you're passing the corner, press up and jump. You'll have a two frame window for this. 

		[Theo left normal]

		It is recommended that bind a jump + up button for this. 

		[Theo left normal]

		Congratulations! You did a cpop. 

		[Theo left normal]

		For this setup to be fully reliable those very brief taps I described need to be one frame taps.

		[Theo left normal]

		You can check the length of your taps with the input history mod. 

		[Theo left normal]

		Note one frame taps can be hardware dependent and not all keyboards/controllers can reliably register them. 

#Dashless Tech

	#Locations

		Violet_PlusOneGym_Dashless_loc_0=

		Bubble hyper (grounded)

		Violet_PlusOneGym_Dashless_loc_1=

		Bubble hyper (dream)

		Violet_PlusOneGym_Dashless_loc_2=

		6-jump

		Violet_PlusOneGym_Dashless_loc_3=

		{#F32013}7-jump{#}

		Violet_PlusOneGym_Dashless_loc_4=

		More neutrals

		Violet_PlusOneGym_Dashless_loc_5=

		{#F32013}Cornerjumps (setupless){#}

		Violet_PlusOneGym_Dashless_loc_6=

		{#F32013}Float jumps{#}

		Violet_PlusOneGym_Dashless_loc_7=

		Grabless Climbs

		Violet_PlusOneGym_Dashless_loc_8=

		Spikes Jumps

		Violet_PlusOneGym_Dashless_loc_9=

		Triple Cornerkick

		Violet_PlusOneGym_Dashless_loc_10=

		Dropper

		Violet_PlusOneGym_Dashless_loc_11=

		Spike Clip

	#Explainer

		Violet_PlusOneGym_Dashless_0=

		[Theo left normal]

		How's tha gap possible if this is dashless, you ask?

		[Theo left normal]

		With a bubble hyper, of course. 

		[Theo left normal]

		Since the game allows you to jump provided you were recently on the ground, it's possible to use a bubble (which is coded as dash) to perform a hyper. 

		[Theo left normal]

		Enter the bubble and input a hyper asap.

		Violet_PlusOneGym_Dashless_1=

		[Theo left normal]

		As you probably know, dream blocks also give you coyote time. This allows you to bubble hyper out of a dream block. 

		[Theo left normal]

		Enter the dream block with the bubble and perform a bubble hyper as soon as you leave.

		Violet_PlusOneGym_Dashless_2=

		[Theo left normal]

		This is a 6-jump and right after is a 7-jump. 

		[Theo left normal]

		8-jumps and 9-jumps are possible, but you don't need to know about those 

		[Theo left normal]

		Yet.

		[Theo left normal]

		To do a 6-jump, you need full strafe speed plus a cornerboost.

		[Theo left normal]

		A common setup for 6-jumps is to climb jump, buffer a wall kick out to get distance, and strafe back for the cornerboost.

		[Theo left normal]

		It is important to buffer the wall kick to ensure you have max height.

		Violet_PlusOneGym_Dashless_3=

		[Theo left normal]

		To understand a 7-jump, you need to understand double cornerboosts (dcb).

		[Theo left normal]

		A double cornerboost is as it sounds. You do two climb jumps before retaining your speed over a corner.

		[Theo left normal]

		This obviously gives you more speed than a single cornerboost. 

		[Theo left normal]

		To perform a dcb, you just need to consecutively press two jumps while approaching a corner. You'll need to be quick. 

		[Theo left normal]

		You can tell you've done dcb if you hear two jump noises and clear the corner. 

		[Theo left normal]

		So a 7-jump you need to strafe at full speed and hit a dcb. 

		[Theo left normal]

		Similar to a 6-jump, you can do a 7-jump with a climb jump, a buffer wall kick away, and a strafe back for the dcb.

		Alternatively, you can run and jump at the corner before performing a dcb. 

		I wouldn't recommend depending on this method, though, since you won't always have a floor.

		[Theo left normal]

		I'd also recommend binding three seperate jump buttons for a 7-jump.

		Violet_PlusOneGym_Dashless_4=

		[Theo left normal]

		It's possible to neutral over two spikes vertically. However, the top of your hitbox needs to be edge to edge with the spike hitbox.

		[Theo left normal]

		You need to make sure to neutral as soon as possible after releasing grab. If you don't you will slide down the wall and you won't get enough height.

		[Theo left normal]

		Afterwards is just a common corner jump setup, where you neutral corner kick into a cornerjump.

		Violet_PlusOneGym_Dashless_5=

		[Theo left normal]

		These are common setups for a float jump.

		[Theo left normal] 

		A float jump involves pressing, releasing, and repressing jump. This allows you to avoid the height of a full jump and still get some distance.

		[Theo left normal]

		For both you will need to crouch jump and for the second you will need to be at full strafe. Avoid holding down since you will fall faster.
		
		[Theo left normal]
		
		Float jumps work because pressing jump makes you fall slower (check {#00FF00}slowfalling, miscellaneous{#}).

		Violet_PlusOneGym_Dashless_6=

		[Theo left normal]

		It is possible to climb falling blocks without triggering them. 

		[Theo left normal]

		Typically, you would do this just by neutraling, but often dashless maps will not give room for neutrals or cover the wall with trigger spikes.

		[Theo left normal]

		You will not grab a wall if you are moving up and therefore won't trigger falling blocks. 

		[Theo left normal]

		So it's possible to keep climb jumping without ever clinging to the block. 

		[Theo left normal]

		It is important to buffer your climbjump when getting onto a climbing block. Otherwise, you may grab the block before you climb jump.

		Violet_PlusOneGym_Dashless_7=

		[Theo left normal]

		This is a spike jump. 

		[Theo left normal]

		If spikes are forced into you (such as with a moving block) or you are forced into spikes (as with wind)...

		[Theo left normal]

		it's possible to jump without dying.

		[Theo left normal]

		This works because the game processes events in a certain order for each frame.

		[Theo left normal]

		And it turns out that player movement comes before checking if you should die.

		[Theo left normal]

		So you can jump before that check and start moving with the spikes.

		[Theo left normal]

		Furthermore, spikes can't kill you when you move in the same direction they face. In sum, you live!

		[Theo left normal]

		To perform this, it is important to buffer your jump to avoid lingering in the spikes. The rest is a matter of timing.

		Violet_PlusOneGym_Dashless_8=

		[Theo left normal]

		Do a triple cornerkick.

		Violet_PlusOneGym_Dashless_9=

		[Theo left normal]

		Just your typical grandmaster dropper. Have fun~

#Holdable Tech

	#Locations

		Violet_PlusOneGym_Holdable_loc_0=

		{#F32013}Instant Regrab{#}

		Violet_PlusOneGym_Holdable_loc_1=

		Theo Dryper

		Violet_PlusOneGym_Holdable_loc_2=

		{#F32013}Freeze Ungrab{#}

		Violet_PlusOneGym_Holdable_loc_3=

		Theo Climb

		Violet_PlusOneGym_Holdable_loc_4=

		Sidewards Regrab

		Violet_PlusOneGym_Holdable_loc_5=

		Preserved Speed

		Violet_PlusOneGym_Holdable_loc_6=

		Theo Backboost

		Violet_PlusOneGym_Holdable_loc_7=

		Button Jumps
		
	#Explainers

		Violet_PlusOneGym_Holdable_0=

		[Theo left normal]

		It is possible to regrab theo as soon as possible after throwing him. This is called an instant regrab.

		[Theo left normal]

		To perform an instant regrab, it is easiest to buffer an up diagonal dash before letting go of grab, and quickly repressing grab. 

		[Theo left normal]

		If you don't buffer the dash, then you'll have to hit a tight timing (not recommended). 

		Violet_PlusOneGym_Holdable_1=

		[Theo left normal]

		Here's a theo dream hyper (theo dryper). 

		[Theo left normal]

		The neatest way to do a theo dryper is to turn and grab the dream block before doing a dream hyper as normal.

		[Theo left normal]

		Just do this before your coyote time runs out.

		[Theo left normal]

		This works because you can grab a wall with theo after exiting a dream block and it is possible to dash with theo while holding a wall.

		[Theo left normal]

		You can do a theo dryper without grabbing (grabless dream hyper) but I won't be teaching that. 

		Violet_PlusOneGym_Holdable_2=

		[Theo left normal]

		This here is a freezeframe ungrab.

		[Theo left normal]

		If you drop theo while touching a bumper or pufferfish, you can dash with theo so longer as you stay launched. 

		[Theo left normal]

		Be careful about pressing grab before you've dashed since you will exit this state.

		[Theo left normal]

		You can also renew this state by dashing into another bumper to refresh your launch state.

		[Theo left normal]

		You can also perform a bumper clip with theo by hitting the bumper, entering the state, and buffering a dash into the buffer while it's still on cooldown.
		
		[Theo left normal]
		
		Before you go here's one last tip.
		
		[Theo left normal]
		
		You'll notice the game freeze alittle whenever you touch a bumper. Try to release grab while the game is frozen.

		Violet_PlusOneGym_Holdable_3=
		
		[Theo left normal]

		Theo climb. Neutral drop theo, climb jump, and regrab theo.

		[Theo left normal]

		Make sure to wait for theo to start falling before climb jumping.

		Violet_PlusOneGym_Holdable_4=

		Here you want to neutral drop theo, wait for alittle, dash right, and regrab.

		Violet_PlusOneGym_Holdable_5=

		You can preserve your speed by dashing into a theo.

		Violet_PlusOneGym_Holdable_6=

		Theo backboost.

		Violet_PlusOneGym_Holdable_7=

		You can jump off of buttons with theo by buffering a jump.

#Pausebuffering

	#Locations

		Violet_PlusOneGym_Pause_loc_0=

		Pausebuffering Intro

		Violet_PlusOneGym_Pause_loc_1=

		N-frame Taps

		Violet_PlusOneGym_Pause_loc_2=

		Frame windows

		Violet_PlusOneGym_Pause_loc_3=

		Zero frames

	#Explainers

		Violet_PlusOneGym_Pause_0=
		
		[Theo left normal]
		
		After unpausing, there are a dozen frames before the game resumes.
		
		[Theo left normal]
		
		You can buffer inputs during these frames, including another pause!
		
		[Theo left normal]
		
		So pausebuffering is just when you buffer a pause after an unpause.
		
		[Theo left normal]
		
		This causes the game to repause after the game has run for a frame.
		
		[Theo left normal]
		
		In other words, you just moved the game fowards a frame by unpausing and quickly repausing.
		
		[Theo left normal]
		
		You can also buffer any other input alongside buffering a pause.
		
		[Theo left normal]
		
		Allowing you to input any input you want on a given frame.
		
		[Theo left normal]
		
		Just unpause, buffer the desired input, and buffer a pause after.
		
		[Theo left normal]
		
		For this example, hold jump and pausebuffer until you align with the Madeline.
		
		[Theo left normal]
		
		Then pausebuffer a demo dash.
		
		[Theo left normal]
		
		Note, check the rules before using pausebuffering in a submission to an offical list or leadboard.
		
		[Theo left normal]
		
		Pausebuffering trivialises most inputs, but is nonetheless useful for learning and practice.
		
		Violet_PlusOneGym_Pause_1=
		
		You can also use pausebuffering to determine how long you need to hold a button for. Measured in frames.
		
		For example, if you grab the wall and let go, if you do a five frame left tap, you'll enter the pixel perfect gap.
		
		You can confirm this by counting out 5 pauses while pausebuffering and inputting left.
		
		Then just releasing any directions and unpausing. You will just slot into the gap.

		Violet_PlusOneGym_Pause_2=
		
		[Theo left normal]

		Not only can we measure lengths of inputs, we can also measure input leinency.
		
		[Theo left normal]

		This is done by trying an input on each frame. 
		
		[Theo left normal]

		If the input works on 3 frames, then we say the input has a 3 frame window.
		
		[Theo left normal]

		This demo if you hold jump (during the fall too), has two frames that work.
		
		[Theo left normal]

		The two madelines represent the two frames.
		
		[Theo left normal]

		Check both work by lining up with them.

		Violet_PlusOneGym_Pause_3=
		
		[Theo left normal]

		Sometimes you'll hear about being zero framed.
		
		[Theo left normal]

		You've been zero framed when movement would be possible "between frames" but not possible on any frame.
		
		[Theo left normal]

		A common example of being zero framed is when the player is moving so fast they skip over a required jellyfish.
		
		[Theo left normal]

		This is possible when madeline speed (in pixels a frame) exceeds the width of the jellyfish.
		
		[Theo left normal]

		You'll often see speed chains put multiple jellyfish in a row to avoid this issue.
		
		[Theo left normal]

		So! I didn't do that so you can experience a zero frame yourself.	
		
		[Theo left normal]

		Use pausebuffering to confirm that your character skips over the jellyfish.

#Obscure tech

	#Locations

		Violet_PlusOneGym_Obscure_loc_0=

		Cornerglide

		Violet_PlusOneGym_Obscure_loc_1=

		Bubble Retention

		Violet_PlusOneGym_Obscure_loc_2=

		Bubble Storage

		Violet_PlusOneGym_Obscure_loc_3=

		Lava Climb

		Violet_PlusOneGym_Obscure_loc_4=

		{#F32013}Lava Neutrals{#}

		Violet_PlusOneGym_Obscure_loc_5=

		Liftboost Timer (walljump)

		Violet_PlusOneGym_Obscure_loc_6=

		Liftboost Timer (super)

		Violet_PlusOneGym_Obscure_loc_7=

		Liftboost Timer (wallbounce)

		Violet_PlusOneGym_Obscure_loc_8=

		Slowfall

		Violet_PlusOneGym_Obscure_loc_9=

		Bino Control Storage

	#Explainers

		Violet_PlusOneGym_Obscure_0=
		
		[Theo left normal]

		You will clip through moving entities if forced against a screen edge. 
		
		[Theo left normal]

		If you're forced against a jumpthrough, you will clip through that instead.

		Violet_PlusOneGym_Obscure_1=
		
		[Theo left normal]

		It is possible to climbjump up lava. This works because there are 2 pixels of leinency around a wall for climbjumps.
		
		[Theo left normal]

		So even physical box inside of lava is 2 pixels smaller than the kill box, you can still climbjump off it.
		
		[Theo left normal]

		I added a jump through that'll allow you to get right against the lava.
		
		[Theo left normal]

		You can then climbjump to the top.

		Violet_PlusOneGym_Obscure_2=

		[Theo left normal]

		You can also neutral off of lava. It's recommended to buffer your jumps (otherwise it's a likely one frame timing).
		
		[Theo left normal]

		Make sure to slow down before each neutral if you move too fast you can get zero framed (check {#00FF00}zero frames, labbing{#}).

		Violet_PlusOneGym_Obscure_3=
		
		[Theo left normal]

		Feather clip. 
		
		[Theo left normal]

		When a feather expires, your hitbox grows, allowing you to clip through jumpthroughs.
		
		[Theo left normal]

		For related tech check out the {#9d00ff}feather hitbox preservation gym{#}.

		Violet_PlusOneGym_Obscure_4=
		
		[Theo left normal]

		Lift boosts aren't specifically tied to the block. 
		
		[Theo left normal]

		Even after a moving block stops moving, you are given some time to get the boost.
		
		[Theo left normal]

		You can use this time to dash and get a block boost off of another surface.
		
		[Theo left normal]

		This setup involves dashing down to the wall and boosting off of it.
		
		[Theo left normal]

		Be quick!	

		Violet_PlusOneGym_Obscure_5=
		
		[Theo left normal]
		
		Delayed block boost + super.

		Violet_PlusOneGym_Obscure_6=
		
		[Theo left normal]

		Delayed block boost + wallbounce.

		Violet_PlusOneGym_Obscure_7=
		
		[Theo left normal]

		After jumping, holding jump halfs your gravity. This is called slowfalling.
		
		[Theo left normal]

		Slowfalling doesn't reduce your max fall speed. 
		
		[Theo left normal]

		Here, you can use slow falling to stall long enough for the block to moves.

		Violet_PlusOneGym_Obscure_8=
		
		[Theo left normal]

		This is bino control storage (BCS).

		[Theo left normal]

		If madeline enters a cutscene or is moved while entering binoculars, she will still be able to move and have control of the camera.
		
		[Theo left normal]

		Jumping and dashing normally will leave this state. So you'll need to use a combination of walking, climbing, and demo dashing to get around.
		
		[Theo left normal]

		To save on resources, the game unloads lighting and spinners if they are off screen. 
		
		[Theo left normal]

		This means you can use BCS to move the camera away from the player so you can clip through hazards.
		
		[Theo left normal]

		To give it a try, just interact with the binos.
	
#Retention

#Explainers

	Violet_PlusOneGym_Rentention_0=
	
	[Theo left normal]

	This first room covers bubble basics and is not comphrensive. 
	
	[Theo left normal]

	Check out the {#9d00ff}rentention tech gym{#} if you want a deeper understanding of bubble tech.
	
	[Theo left normal]

	In front of you is a corner glide. 
	
	[Theo left normal]

	To do a cornerglide, you just need to demo dash into a corner with speed.
	
	[Theo left normal]

	Okay, so what's happening really?
	
	[Theo left normal]

	When you collide with a wall, the game stores your speed for afew frames.
	
	[Theo left normal]

	So long as you clear the wall in time, the game will refund that speed.
	
	[Theo left normal]

	This process is called retained speed.
	
	[Theo left normal]

	As a matter of fact, cornerboosts are ultimately climbjumps with retained speed.

	Violet_PlusOneGym_Rentention_1=
	
	[Theo left normal]

	Although cornerglides and cornerboosts are, in a deeper sense, retention tech, retention tech typically refers bubbles-retention tech in particular.
	
	[Theo left normal]

	If you cornerglide under a bubble, the speed will be refunded while you're in the bubble.
	
	[Theo left normal]

	Normally, your speed would reset after bubbling, but you can keep it with a cornerboost (like any other dash).
	
	[Theo left normal]

	In other words, retention tech allows you to smuggle speed for a further distance than you ordinarily could.	

	Violet_PlusOneGym_Rentention_2=
	
	[Theo left normal]

	If your bubble is cancelled before you can bubble, the bubble will be stored until your next dash.
	
	[Theo left normal]

	Often people will use bubble retention tech to refer to this, but specifically speaking this is called bubble storage.
	
	[Theo left normal]

	Sometimes you'll see people call this a dashless dash. 
	
	[Theo left normal]

	The game has it's own count for the number of times you dash and dashless dashes don't add to that count.
	
	[Theo left normal]

	Some modded bubbles will have their effects be stored too when using bubble storage.
	
	[Theo left normal]

	In this case, you can store the gravity flip of this bubble until needed.
	
#____________________________________________________________PLUS TWO GYM_______________________________________________________


Violet_PlusTwoGym_Trap= 

	Go to gwoost prison.	

#Ending 

Violet_PlustwoGym_Ending_1=

	I think its cool you came this far. 
	
Violet_PlustwoGym_Ending_2=

	And I would love to see what you do next. 
	
Violet_PlustwoGym_Ending_3=

	GG.

#Gym Intro 

Violet_PlusTwoGym_GymHub_Intro= 

	[Madeline left normal] 
	
	What is it this time? 
	
	[Theo right normal]
	
	Simulation. 
	
	[Madeline left normal] 
	
	So like synap...
	
	[Theo right normal]
	
	Don't be crazy!
	
	[Madeline left normal] 
	
	Is there a crystal heart atleast
	
	[Theo right normal] 
	
	Of course!

Violet_PlusTwoGym_GymHub_1= 

	Dashful 

Violet_PlusTwoGym_GymHub_2= 

	Dashless

Violet_PlusTwoGym_GymHub_3= 

	Holdable 

Violet_PlusTwoGym_GymHub_4= 

	Subpixels 

Violet_PlusTwoGym_GymHub_5= 

	Overhangs 

Violet_PlusTwoGym_GymHub_6= 

	Laddering/Juggling

Violet_PlusTwoGym_GymHub_7=

	Lava 

Violet_PlusTwoGym_GymHub_8= 

	Other 

#Holdables

	#Locations
	
		Violet_PlusTwoGym_Holdable_loc_0= 
		
			{#F32013}Grabless Theo Dream Hyper{#}
			
		Violet_PlusTwoGym_Holdable_loc_1=
		
			Holdable Freeze (intro)
			
		Violet_PlusTwoGym_Holdable_loc_2=
		
			Holdable Freeze (harder)
			
		Violet_PlusTwoGym_Holdable_loc_3=
		
			Instant Hyper Bunnyhop
			
		Violet_PlusTwoGym_Holdable_loc_4=
		
			{#F32013}Grabful Theo Core Hyper{#}
			
		Violet_PlusTwoGym_Holdable_loc_5=
		
			Temple Gate Climb 
			
		Violet_PlusTwoGym_Holdable_loc_6= 
		
			Theo Stalls 
			
		Violet_PlusTwoGym_Holdable_loc_7=
		
			Door Cornerboost
			
		Violet_PlusTwoGym_Holdable_loc_8= 
		
			Conveyer Climbs 
	
	#Explainers

		Violet_PlusTwoGym_Holdable_0=

		[Theo left normal]

		This is a grabless theo dream hyper. These are usually needed if you want to dream hyper and keep theo but cannot the dream block. 

		[Theo left normal]

		To perform a grabless theo dream hyper, you need to dream jump and dream hyper afterwards. 

		[Theo left normal]

		Without the dream jump you may not gain enough height to regrab theo and lose him depending on your vertical subpixel.

		[Theo left normal]

		But with the dream jump, grabbing Theo is no longer subpixel dependent. 

		[Theo left normal]

		As you can guess by the description, you perform a dream double jump hyper. 

		[Theo left normal]

		To help simplify these inputs, you want to release grab while in the dream block, buffer a jump before exiting it, and then perform a demo hyper after exiting it.

		[Theo left normal]

		If done well, you should be able to grab theo again!

		[Theo left normal]
		
		You can also try it with a short dream block since that makes it trickier. 

		Violet_PlusTwoGym_Holdable_1=

			[Theo left normal]

			Why are there two more of me encased in these crystals? Because we'll be learning about holdable freezes.

			[Theo left normal]
		
			When in holding Theo/jelly without grab, it is possible to pick another theo/jelly.

			[Theo left normal]

			If you do, the theo/jelly you were orignally holding will freeze in place. 

			[Theo left normal]

			To do a holdable freeze, all you need to do is a feeze frame ungrab (these are covered in gm+1 gym). 

			[Theo left normal]

			And then press grab again to pick up the other theo.

			[Theo left normal]

			An extra note, each other has a depth associated with it. 

			[Theo left normal]

			Depth determines what renders infront of what and, more importantly, entity processing order. 

			[Theo left normal]

			Holdable freezes will only work when the depth of what your holding is lower than the depth of what you're picking up. 

			[Theo left normal]

			Otherwise, you will grab the the theo you're already holding again instead. 

			[Theo left normal]

			For the purposes of the next section, I will call the Theo that you pick up the freezer and the theo you drop the freezee.

		Violet_PlusTwoGym_Holdable_2=

			[Theo left normal]

			With low subpixels its possible to hyper, pick up theo, and bunny hop the frame the pickup state ends. 
			
			[Theo left normal]
			
			This works since the low subpixels snap you to the ground for long enough to get coyote time. 
			
			[Theo left normal]
			
			This means you're able to jump again after the pickup animation ends despite no longer being on the ground.
			
			[Theo left normal]
			
			This is called an instant bunnyhop since you bunnyhop instantly after the pickup ends. 
			
			[Theo left normal]
			
			To get the required subpixels, you can use the method to get botom eighth taught in the subpixel section. 
			
			[Theo left normal]
			
			To do the hyper bhop, you'll need to hyper on the first frame and grab on the next. 
			
			[Theo left normal]
			
			If you want to get the maximum distance, wait later in your coyote time to do the bunny hop.
			
			[Theo left normal]	
			
			This can get slightly more distance than a hyper.
			
		Violet_PlusTwoGym_Holdable_3=
			
			[Theo left normal]
			
			What is this horror story? Well, it is a grabful theo core hyper!
			
			[Theo left normal]
			
			Here's the core idea. 
			
			[Theo left normal]
			
			Somehow grab the core block, wait for the core block to give coyote frames, throw theo, hyper, grab theo.
			
		    [Theo left normal]
			
			The most common setup uses a dream block to get the core grab. 
			
			[Theo left normal]
			
			The timing for the throw is tricky, but a good visual cue is when the core block detaches you on its own. 	
			
			[Theo left normal]
			
			It is important that you are high on the core block. Otherwise you may not gain enough height to regrab Theo.
		
		Violet_PlusTwoGym_Holdable_4=
		
			[Theo left normal]
			
			Picking up Theo freezes madeline's movement for afew frames. 
			
			[Theo left normal]
			
			When this is used to buy time, this is called a theo stall. 
			
			[Theo left normal]
			
			There are two main ways to do Theo stalls. 
			
			[Theo left normal]
			
			The first involves neutral dropping Theo immediately regrabbing him. 
			
			[Theo left normal]
			
			It is important that you are moving up otherwise you will fall away from Theo too quickly.
			
			[Theo left normal]
			
			The second way involves doing a freeze frame ungrab and pressing grab to regrab theo again. 
			
			[Theo left normal]
			
			Stalls are typically used in rooms where you need to wait for the exit to open and will gradually exhausted your options. 
			
		Violet_PlusTwoGym_Holdable_5=
		
			[Theo left normal]
			
			 Sometimes you'll be made to theo climb off a gate that is about to open.
			 
			[Theo left normal]
			
			There is nothing special about it really. Just a new timing to learn. 
			
		Violet_PlusTwoGym_Holdable_6= 
		
			[Theo left normal]
			
			Theo maps will often involve a disappearing wall cornerboost off a temple gate. 
			
			[Theo left normal]
			
			This is called a door cornerboost or a doorner boost. 
			
			[Theo left normal]
			
			All you need to do is time the cornerboost with the door opening.
			
		Violet_PlusTwoGym_Holdable_7=
		
			[Theo left normal]
			
			These are conveyor Theo climbs. 
			
			[Theo left normal]
			
			They are like normal Theo climbs but you get a boost from the conveyor belt.
			
			[Theo left normal]
			
			Unlike a normal theo climb, you want to wait before the climb jump. 
			
			[Theo left normal]
			
			Otherwise, you will not get accelerated by the conveyor belt very much.

		Violet_PlusTwoGym_Holdable_a= 

			[Theo left normal]

			I thought it was kinda lame to just have you do a single holdable freeze. 

			[Theo left normal]

			With this, do a holdable freeze. 

			[Theo left normal]

			Throw Theo backwards before you hit the second bumper.

			[Theo left normal] 

			Then pickup the frozen Theo. 
			
			[Theo left normal]

			If you keep holding grab, you should automatically perform a second freeze. 

			[Theo left normal]

			This is because the bumper hit allows you to pickup the higher priority Theo if its in range.
			
#Dashless Tech

	#Locations
	
		Violet_PlusTwoGym_Dashless_loc_0=
		
			{#F32013}Grounded Wallboost{#}
			
		Violet_PlusTwoGym_Dashless_loc_1=
		
			Spiked Ceiling Pop 	
			
		Violet_PlusTwoGym_Dashless_loc_2=
		
			Reverse Spiked Ceiling Pop
			
		Violet_PlusTwoGym_Dashless_loc_3=
		
			Reverse Ceiling Pop 
			
		Violet_PlusTwoGym_Dashless_loc_4= 
		
			Cornerslip 
			
		Violet_PlusTwoGym_Dashless_loc_5=
		
			Multiboost
			
		Violet_PlusTwoGym_Dashless_loc_6= 
		
			Spiked neutral 
			
		Violet_PlusTwoGym_Dashless_loc_7=
		
			Spike climb 
			
		Violet_PlusTwoGym_Dashless_loc_8=
		
			Double wall jump  
			
		Violet_PlusTwoGym_Dashless_loc_9= 
		
			{#F32013}PCJ{#}
			
		Violet_PlusTwoGym_Dashless_loc_10= 
		
			Grounded 8/9 Jump 
			
		Violet_PlusTwoGym_Dashless_loc_11=
		
			{#F32013}Walled 9 Jump{#}
	
	#Explainers
	
		Violet_PlusTwoGym_Dashless_0=
		
			[Theo left normal]
		
			Okay, this is impossible right? 
			
			[Theo left normal]
			
			Nope its a grounded wallboost!
			
			[Theo left normal]
			
			To do a grounded wallboost, be on the top pixel of the wall.
			
			[Theo left normal]
			
			Do do a neutral climbjump. Make sure it is a one frame jump since it'll make it much easier.
			
			[Theo left normal]
			
			Tap over onto the ground. 
			
			[Theo left normal]
			
			Wallboost towards the gap and jump during the coyote time.
			
			[Theo left normal]
			
			If done well optimally enough, you will be able to buffer a climbjump at the end and live.
		
		Violet_PlusTwoGym_Dashless_1=
		
			[Theo left normal]
			
			So I haven't really told you what a cpop it is. 
			
			[Theo left normal]
			
			This is a spiked cpop. A cpop off a spiked wall. 
			
			[Theo left normal]
			
			Let's cover some basics.

			[Theo left normal]
			
			First, you can grab walls from two pixels below. 

			[Theo left normal]
			
			Second, when you grab a wall your speed is divided by five. 

			[Theo left normal]
			
			Third, you don't stop moving on the frame of the grab.

			[Theo left normal]
			
			So a cpop involves falling below a wall, snapping back up to grab it, and despite having your speed divided by 5, still move down a pixel.

			[Theo left normal]
			
			Keep in mind this all happens on the same frame. All you will see is the end result of moving a pixel below the wall while still climbing.

			[Theo left normal]

			Since all of these events happen before the game checks whether spikes should kill you, you won't be in the spikes when the game checks. 

			[Theo left normal]

			And that's how a spiked cpop works!

		Violet_PlusTwoGym_Dashless_3=

			[Theo left normal]

			This is a reverse ceiling pop. 

			[Theo left normal]

			Since you can jump either direction after moving a pixel below a wall, 

			[Theo left normal]

			you can jump away from the wall to slot under a ceiling in the opposite direction instead. 

			[Theo left normal]

			Reverse ceiling pop!

		Violet_PlusTwoGym_Dashless_2=

			[Theo left normal]

			You can combine a reverse ceiling pop with a spiked ceiling pop. 

			[Theo left normal]

			Spiked reverse cpop.

			[Theo left normal]

			Since you need to be facing a wall to grab it, you can't hold a direction away from the wall until you grab.

			[Theo left normal]

			But you need to press jump on the frame your grabbing otherwise you will snap back up into the spikes. 

			[Theo left normal]

			In other words, inputting the direction for the reverse ceiling pop are a one frame timing.

		Violet_PlusTwoGym_Dashless_4=

			[Theo left normal]

			This is a cornerslip. 

			[Theo left normal]

			A cornerslip allows you get the benefits of touching the ground without losing vertical speed.

			[Theo left normal]

			This means you can refill dashes, get coyote time, and refill stamina while falling!

			[Theo left normal]

			Cornerslips abuse the distinction between being on the ground and colliding with the ground. 

			[Theo left normal]

			Being on the ground just involves being 0px away from the ground.

			[Theo left normal]

			Colliding with the ground involves moving into the ground.

			[Theo left normal]

			A cornerslip occurs when you enter the pixel above the ground

			[Theo left normal]

			but you avoid colliding with the ground. 
			
		Violet_PlusTwoGym_Dashless_5=

			[Theo left normal]
		
			Multiboost, Madeline, Madeline, Multiboost. 

			[Theo left normal]
			
			Since the block is moving into you, you're able to enter climb jump range multiple times.

			[Theo left normal]
			
			And each time you climb jump, you get another liftboost.

			[Theo left normal]
			
			The only caveat is that you want your last climbjump to be a climbjump into the zip mover.

			[Theo left normal]
			
			If you do a neutral climb jump, you can't press right until the wallboost timer expires.

			[Theo left normal]
			
			Which will typically lose you more speed than just taking the -40 from climb jumping against your speed.

			[Theo left normal]
			
			Here you need to neutral climb jump and left climb jump in quick succession. Hold right after!
			
		Violet_PlusTwoGym_Dashless_6=	

			[Theo left normal]
		
			Remember how you can neutral over 2 tiles of spikes vertically?

			[Theo left normal]
			
			Well, you do that here's its corner kick cousin.

			[Theo left normal]
			
			These work by doing a brief tap in the direction of the spikes.

			[Theo left normal]
			
			before performing a neutral jump.

			[Theo left normal] 
			
			If done right, you won't ever stop moving in the spikes. 

			[Theo left normal]
			
			And you won't die.

		Violet_PlusTwoGym_Dashless_7=

			[Theo left normal]
		
			This is a spike climb. 

			[Theo left normal]
			
			So long as you're moving with the spikes they can't kill you. 

			[Theo left normal]
			
			This means you climb jump on a spiked wall without dying so long as you keep moving.

			[Theo left normal]
			
			To perform this one you'll need to neutral past the corner.

			[Theo left normal]
			
			Once you enter the spikes, climb jump into the wall.

			[Theo left normal]
			
			And neutral from as high as possible to escape the spikes.

			[Theo left normal]
			
			You may need to buffer a climb jump to clear the top of the spikes.

			[Theo left normal]
			
			It helps to have a right climb jump bind here (right + grab + jump). Or a left one if your splimb is flipped.

			[Theo left normal]
			
			Usually the neutral to escape the spikes is frame perfect, but with good subpixels its a two frame window. 

			[Theo left normal]
			
			Here's my preferred manipulation. 

			[Theo left normal]
			
			Slide down the wall then climbjump while holding right and grab.

			[Theo left normal]
			
			Align Madeline's hand to the pixel below the top of the second tile down.

			[Theo left normal]
			
			1f tap up until her hand is aligned with that top pixel.
			
			[Theo left normal]

			Now there should be a 4 pixel gap between the top of hitbox and the ceiling. 

			[Theo left normal]
			
			And she should have 0.5 horizontal and bottom half subpixels.
			
		Violet_PlusTwoGym_Dashless_8=

			[Theo left normal]
			
			You can wallkick twice off the same wall.

			[Theo left normal]
			
			This works because the wall has 3px of leinency for climb jumps.
		
			[Theo left normal]
			
			To perform a double wall jump, just press two jumps in quick succession while facing away from the wall.
			
			For this setup you'll also need to be on the top most pixel of the wall and to buffer a climbjump at the end.
			
		Violet_PlusTwoGym_Dashless_9=

			[Theo left normal]
		
			I won't be teaching the subpixel manipulation for this.

			[Theo left normal]

			Its called PCJ (penis cock jump). DON'T use its name in celestecord.

			[Theo left normal]

			This is closer to a jump than a tech, honestly.

			[Theo left normal]

			To do it, grab the top pixel, wall kick away, hold left and fast fall asap. 

			[Theo left normal]

			Then buffer a wallkick. Hold jump for 8 frames. Slowfall.

			[Theo left normal]

			Finally, buffer a climbjump and you've done the jump.

		Violet_PlusTwoGym_Dashless_10=
			
			[Theo left normal]

			You can overclock with a refill. 

			[Theo left normal]

			Just incase you didn't know. 

		Violet_PlusTwoGym_Dashless_11=

			[Theo left normal]

			This is an 8 jump right now.

			[Theo left normal]

			You can enter the () to turn it into a 9 jump. 

			[Theo left normal]

			Both involve getting running speed.

			[Theo left normal]

			and doing a dcb with a climbjump for height. 

			[Theo left normal]

			The easiest way to do an 8 jump is to bind 8 jump buttons.

			[Theo left normal]

			Then you just use them to spam climbjumps when you reach the corner. 

			[Theo left normal]

			A 9 jump adds some subpixel manipulation.

			[Theo left normal]

			Walk into the wall of the 9 jump. 

			[Theo left normal]

			Full jump and do a 1f tap into the wall.

			[Theo left normal]

			Fast fall and hold grab.

			[Theo left normal]

			Slide down the wall to the bottom.

			[Theo left normal]

			Do a 6 frame left tap. 

			[Theo left normal]

			Now you're setup.

		Violet_PlusTwoGym_Dashless_12=

			[Theo left normal]

			Doing a 9 jump from the wall complicates things.

			[Theo left normal]

			First, the subpixel setup from spawn.

			[Theo left normal] 

			1 frame crouch jump into the wall. 

			[Theo left normal]

			Release right first then uncrouch. 

			[Theo left normal]

			Do a 1 frame tap into the wall.

			[Theo left normal]

			Full height climbjump. Hold grab.

			[Theo left normal]

			Now climb down the wall.

			[Theo left normal]

			Do a 4 frame climbjump. Hold grab.

			[Theo left normal]

			You should now be setup.

			[Theo left normal]

			How to do the 9 jump. 

			[Theo left normal]

			For three frames in a row, release grab, neutral, and neutral climbjump. 

			[Theo left normal]

			Press right to wallboost just before the corner. 

			[Theo left normal]	

			Then do a double cornerboost.

#Dashful Tech 

	#Locations
	
		Violet_PlusTwoGym_Dashful_loc_0=
		
			Disappearing Block Cornerboosts
			
		Violet_PlusTwoGym_Dashful_loc_1=
		
			Screen Transition Cornerboost
			
		Violet_PlusTwoGym_Dashful_loc_2=
		
			Liftboosted Cpop 
			
		Violet_PlusTwoGym_Dashful_loc_3= 
		
			{#F32013}Disappearing Block Ultras{#}
			
		Violet_PlusTwoGym_Dashful_loc_4= 
		
			Climbhop Cancel (boost)
			
		Violet_PlusTwoGym_Dashful_loc_5= 
		
			Climbhop Cancel (spike clip)
			
		Violet_PlusTwoGym_Dashful_loc_6= 
		
			Spring Moonboost 
			
		Violet_PlusTwoGym_Dashful_loc_7=
		
			Cornerboost Staircase 
			
		Violet_PlusTwoGym_Dashful_loc_8=
		
			6 Frame Hyper Bunnyhop
			
		Violet_PlusTwoGym_Dashful_loc_9=
		
			{#F32013}Roboboost{#}
	
	#Explainers

		Violet_PlusTwoGym_Dashful_0=

			[Theo left normal]
		
			This is a disappearing block cornerboost. 

			[Theo left normal]

			When you climbjump into a wall, you get the +40 speed and then hit the wall. 

			[Theo left normal]

			The game is nice and stores your speed for abit. 

			[Theo left normal]

			When the wall disappears, the game refunds your speed. 

		Violet_PlusTwoGym_Dashful_1=

			[Theo left normal]

			Normally when you move away from a wall, your retained speed gets taken away. 

			[Theo left normal]

			However, the check for whether you are moving away happens before your movement is handled. 

			[Theo left normal]

			So if you neutral/walljump away from the wall and stop moving on the next frame, 

			[Theo left normal]

			your speed will get refunded instead!

			[Theo left normal]

			Since screentransitions get your horizontal speed to zero, 
			
			[Theo left normal]

			this trick will work if you neutral the frame before transitioning. 

			[Theo left normal]

			This when used to setup a cornerboost this is called a cross screen cornerboost. 

			[Theo left normal]

			It will not be covered in this gym but you can do an 11 jump with screen transition. 

			[Theo left normal]

			Since you can fit an extra cornerboost in using the screen transition. 

			[Theo left normal]

			To do this screen glide, line yourself up on the jumpthrough below. 

			[Theo left normal]

			Then extended hyper, updiagonal, hit the wall, and neutral/walljump the frame before you screen transition. 

			[Theo left normal]

			If you hit the wall too low, you will lose your retained before you reach the transition. 

			[Theo left normal]

			So keep that in mind.

		Violet_PlusTwoGym_Dashful_2=
		
			[Theo left normal]

			Liftboosted cpop!

			[Theo left normal]

			Slide down to the bottom of the block for horiztional subpixels.

			[Theo left normal]

			Dash horizontially into the block.

			[Theo left normal]

			Then just perform cpop inputs. 
		
			[Theo left normal]

			Hold down and climbjump on the right frame.

			[Theo left normal]

			Make sure not to redirect your dash.

			[Theo left normal]
			
			You need to jump later than you think too!

		Violet_PlusTwoGym_Dashful_3=

			[Theo left normal]

			Similar to disappearing block cornerboosts, you can also do disappearing block ultras. 

			[Theo left normal]

			These are typically called door ultras. 

			[Theo left normal]

			These work because the following can happen: 

			[Theo left normal]

			You ultra gives you 1.2x speed. 

			[Theo left normal]

			You hit the wall and your speed is retained. 

			[Theo left normal]

			Your dash ends, which is what normally kills your speed in a gultra. 

			[Theo left normal]

			The wall disappears and your speed is refunded. 

			[Theo left normal]

			For this gultra chain, start with a hyper into a gultra. 

			[Theo left normal]

			Wait for the block to break and then dash diagonal again for another gultra. 
			
			[Theo left normal]

			You don't need to jump after the hyper and the speed gain from jumping is negliable.

			[Theo left normal]

			Keeping in mind if the wall breaks before your dash ends, you will lose speed. 

			[Theo left normal]

			And if you dash the frame the wall breaks, you won't get your speed refunded.

		Violet_PlusTwoGym_Dashful_4=

			[Theo left normal]

			When you climb up and over a ledge, you do alittle hop. 

			[Theo left normal]

			This is a climbhop. 

			[Theo left normal]

			If you cancel your climbhop, your motion is still tied to the block. 

			[Theo left normal]

			For example, if you cancel your climbhop with a dash into a spring, 

			[Theo left normal]

			then you will get the motion of the spring and the block combined. 

			[Theo left normal]

			This is a climbhop cancel. 

			[Theo left normal]

			The connection between you and the block can be maintained for an extended period with springs and wallkicks.

			[Theo left normal] 

			This is called climbhop entanglement. 

			[Theo left normal]

			Climbhop and quickly dash into the spring.

		Violet_PlusTwoGym_Dashful_5=

			[Theo left normal]

			Since climbhops don't give your speed, but simply moves you,

			[Theo left normal]

			its possible to have a speed in one direction and move in another direction. 

			[Theo left normal]
			
			So here, you can climbhop and dash away from the spikes. 

			[Theo left normal]

			And have the block move you through the spikes. 

			[Theo left normal]

			Because your speed technically faces with the spikes, you won't die. 

			[Theo left normal]

			Start on the right face of the move block and climbhop cancel.	

		Violet_PlusTwoGym_Dashful_6=

			[Theo left normal]

			Spring moonboost! Dash into the block once to push it away. 

			[Theo left normal]

			Dash again while it is snapping back and jump while you hit the spring.

			[Theo left normal] 

			If you're lucky, you should get liftboost from the moonblock

			[Theo left normal]

			and get the movement from the spring as well!

			[Theo left normal]

			It'll take afew tries but you'll know when you get it.
			
		Violet_PlusTwoGym_Dashful_7= 
		
			[Theo left normal]

			You know what to do. 
		
		Violet_PlusTwoGym_Dashful_8=

			[Theo left normal]
		
			So if you get bottom 8th subpixel, you can stay on the ground for a frame after a hyper. 
			
			[Theo left normal]
			
			This is because the first frame of a hyper only moves you up 7/8ths of a pixel, so if you're subpixel is low enough, you won't move up a full pixel.

			[Theo left normal]
			
			Since hypers with a one frame jump have symmetrical trajectories, this mean you can land on the ground a frame ealier too. 

			[Theo left normal]
			
			This means you can shave two frames of air time off a normal 1f hyper. 

			[Theo left normal]
			
			We call a hyper bunnyhop that uses this a 6f (six frame) hyper bunnyhop since you have 6 frames of air time on the hyper.

			[Theo left normal]
			
			This platform is just big enough to do one. 

			[Theo left normal]
			
			There is a manipulation to get bottom 8th in the subpixel section. Check that out first.
			
		Violet_PlusTwoGym_Dashful_9= 

			[Theo left normal]
		
			This is a roboboost. 
	
			[Theo left normal]
			
			Isn't that tas-only? Yes, but actually no. 

			[Theo left normal]
			
			So the start of a roboboost is like a 6f hyper bunny hop. 

			[Theo left normal]
			
			You want bottom eighth subpixels and hyper for frame one. 

			[Theo left normal]
			
			Then you want to fall off the block on the next frame and do a reverse cornerboost. 

			[Theo left normal]
			
			And obviously we want to face fowards again ASAP to reduce friction. 

			[Theo left normal]
			
			How do you fall off the block, though? 

			[Theo left normal]
			
			This works because of two mechanics. The first we covered earlier, hypering with low subpixels keep you level with the ground for an extra frame.

			[Theo left normal]
			
			The second is that moving blocks suck you down when you're holding the direction that's with its movement.

			[Theo left normal]
			
			So you're level with the top of the block, there's no floor below you, and you get sucked down a pixel, putting you next to the wall.

			[Theo left normal]
			
			If you align yourself against the jumpthrough, there's a trigger that'll give you the right subpixels. And you'll also have the right pixel to fall off the edge.

			[Theo left normal]
			
			I'd recommend binding a reverse cornerboost button for this (left + grab + jump).

			[Theo left normal]
			
			Keep in mind that dashing has freeze frames. With input history enables you want to see something like: 

			[Theo left normal]
			
			5 down right, X. 1 right, J. 1. left, J G.

#Lava Tech 	

	#Locations
	
		Violet_PlusTwoGym_Lava_loc_0=
		
			Lava Wallbounce 
			
		Violet_PlusTwoGym_Lava_loc_1=
		
			Lava Cornerjumps 
				
		Violet_PlusTwoGym_Lava_loc_2=
		
			Lava Cornerboost 
			
		Violet_PlusTwoGym_Lava_loc_3= 
		
			{#F32013}Lava 5-tile{#}
	
	#Explainers
	
		Violet_PlusTwoGym_Lava_0=

			[Theo left normal]
			
			Honestly, everything in this section is pretty obvious besides the lava 5-tile. 

			[Theo left normal]
			
			So let me just explain the mindset you should have with lava tech. 

			[Theo left normal]

			Lava tech's difficulty typically comes from the movement you need to do before it, not the tech itself. 

			[Theo left normal]
			
			The issue is that lava tech requires so much precision, that prior movement can involve multiple frame perfects. 

			[Theo left normal]
			
			And if you fail to do those frame perfects, you will be zero framed and die. 

			[Theo left normal]
			
			Anyway. Wallbounce.
			
		Violet_PlusTwoGym_Lava_1=
		
			[Theo left normal]

			Since lava has a solid inside of it, it also has a corner inside of it. 

			[Theo left normal]

			This means you can lava cornerjump!

			[Theo left normal]

			Have fun with this one. 
			
		Violet_PlusTwoGym_Lava_2=

			[Theo left normal]
		
			Lava cornerboosts are also possible. 
			
			[Theo left normal]

			Since lava doesn't kill if just your feet are in it if you cornerboost and your body leaves the lava on the next frame, then you won't die.

			[Theo left normal]

			This is vertically precise to 0.75px and horizontally precise to 1px. 

			[Theo left normal]

			For this setup, just jump and dash at the right height to cornerboost.

			[Theo left normal]

			The dash here is obviously frame perfect. 
			
		Violet_PlusTwoGym_Lava_3=

			[Theo left normal]
		
			Lava 5-tile. I put a subpixel trigger down, but just know this is subpixel dependent. 

			[Theo left normal]
			
			Let's explain the logic behind them before sharing the inputs.

			[Theo left normal]
			
			You are balancing three factors with this. 

			[Theo left normal]
			
			You don't want to be too high otherwise you will just hit the lava. 

			[Theo left normal]
			
			You don't want to be too low because you will either not reach the corner or uncrouch into the lava. 

			[Theo left normal]
			
			You don't want to be too close to the wall because you will uncrouch into the corner of the lava. 

			[Theo left normal]
			
			So to actually do this you need to do a frame perfect wallboost from the right pixel. 

			[Theo left normal]
			
			In other words, neutral climbjump and wallboost on the very next frame. 
	
#Overhangs 

	#Menu Options 

		Violet_PlusTwoGym_Overhang_opt_0=

			Introduction

		Violet_PlusTwoGym_Overhang_opt_1=

			How to do one (keyboard)

		Violet_PlusTwoGym_Overhang_opt_2= 

			How to do one (controller)

		Violet_PlusTwoGym_Overhang_opt_3= 

			Practice the subpixel manipulation.

	#Locations
	
		Violet_PlusTwoGym_Overhang_loc_0=
		
			2x1 
			
		Violet_PlusTwoGym_Overhang_loc_1=
		
			3x2
			
		Violet_PlusTwoGym_Overhang_loc_2=
		
			{#F32013}3x1{#}
			
		Violet_PlusTwoGym_Overhang_loc_3=
		
			4x2
			
		Violet_PlusTwoGym_Overhang_loc_4= 
		
			Spiked 4-tile 
			
		Violet_PlusTwoGym_Overhang_loc_5= 
		
			Uncrouched 5-tile 
			
		Violet_PlusTwoGym_Overhang_loc_6= 
		
			Crouch retained 3-tile 
			
		Violet_PlusTwoGym_Overhang_loc_7=
		
			Crouch retained 4-tile 
			
		Violet_PlusTwoGym_Overhang_loc_8=
		
			{#F32013}6-tile{#}
			
		Violet_PlusTwoGym_Overhang_loc_9=
		
			{#F32013}Crouch retained 5-tile{#}

		Violet_PlusTwoGym_Overhang_loc_10= 

			{#F32013}5x3 overhang{#}
	
	#Explainers 

		Violet_PlusTwoGym_Overhang_0=

			[Theo left normal]

			Instead of telling you the name for each of these, 
	
			[Theo left normal]

			I will explain the general sceheme for naming them. 

			[Theo left normal]

			A "n by m overhang" is an overhang that is n tiles long and m tiles high. 

			[Theo left normal]

			So the overhang infront of you is a 2x1 overhang. 

			[Theo left normal]

			To do a 2x1 overhang, there's two ways you can go about it. 

			[Theo left normal]
			
			First, you can grab the very bottom pixel and 1f tap up until you move up a pixel.

			[Theo left normal]
			
			Then you can do a one frame jump away from the wall and cornerkick after you corner correct.

			[Theo left normal]
			
			Alternatively, you can slide against the wall, grab the very bottom pixel, do 2f jump instead, and gamble for good subpixels.

		Violet_PlusTwoGym_Overhang_1=

			[Theo left normal]

			For a 3x2 overhang, you will want to grab the bottom pixel. 

			[Theo left normal]

			Then jump away from the wall. Hold jump for exactly 6 frames. 

			[Theo left normal]

			Now repress jump to slowfall before doing the ckick/rcb. 

			[Theo left normal]

			Note that when I say hold jump for 6 frames, I'm including the frame you jump too. 

			[Theo left normal]

			Everything in this section will follow that convention. 

		Violet_PlusTwoGym_Overhang_2=

			[Theo left normal]

			How about 3x1's? 

			[Theo left normal]

			Crouch jump. Climbjump for a frame from the bottom pixel. You can either 1f tap jump or buffer jump then release the frame after you jump. 
	
			[Theo left normal]

			Now wallboost on either of the two following frames. 

			[Theo left normal]

			Slow fall as soon as possible and cornerkick!

			[Theo left normal]

			Its that easy.

		Violet_PlusTwoGym_Overhang_3=

			[Theo left normal]

			4x2's are a weird combination of the movement for 3x1's and 3x2's.

			[Theo left normal]

			Crouch jump, climbjump from bottem pixel, then wallboost on next frame. 

			[Theo left normal]

			When you climbjump, you'll need to hold jump for exactly 5 frames. 

			[Theo left normal]

			Then slowfall and ckick!

		Violet_PlusTwoGym_Overhang_4=

			[Theo left normal]

			This is a spiked 4-tile overhang.

			[Theo left normal] 

			We typically don't state the height of an overhang if it as tall was it is long. 

			[Theo left normal]

			To do this one, just do a crouched wallboost and buffer a cornerkick. 

		Violet_PlusTwoGym_Overhang_5=

			[Theo left normal]

			Here's a simple way to do a uncrouched 5tile overhang. 

			[Theo left normal]

			First normalise your horizontal subpixels. 

			[Theo left normal]

			Then bonk your head against the roof to normalise your vertical (hold grab!). 

			[Theo left normal]

			You can achieve both by climbjumping twice into the corner.

			[Theo left normal] 

			Then fall for 16 frames and grab the wall. 

			[Theo left normal]

			Or just use the visual cue of Madeline's hand grabbing the top of the bottom most tile.

			[Theo left normal]

			Now you're setup. Simply do a double walljump (covered in the dashless section).

			[Theo left normal]

			You should be able to cornerkick after.

		Violet_PlusTwoGym_Overhang_6=

			[Theo left normal]			

			Cornerkicks will uncrouch you, but if you reverse cornerboost instead. 

			[Theo left normal]

			So if you do a crouched wallboost and rcb you can keep crouch through an overhang. 

			[Theo left normal]

			This is called a crouch transfer overhang. 
			
		Violet_PlusTwoGym_Overhang_a= 

			[Theo left normal]
		
			Same idea but the inputs are tighter.	

		Violet_PlusTwoGym_Overhang_7a=

			[Theo left normal]

			This is a 6 tile overhang. 

			[Theo left normal]

			To do a 6 tile overhang, you need to crouch jump, double wallboost, and then neutral cornerkick (or reverse cornerboost) when you uncouch next to the corner.

			[Theo left normal]

			A double wallboost is when you wallboost of the same wall twice. 

			[Theo left normal]

			You first wallboost, then turn back to the wall on the next frame, and neutral climbjump on the frame after. 

			[Theo left normal]

			Now you have a second wallboost ready. 

			[Theo left normal]

			This means a double wallboost involves three frame perfects on its own: direction towards the wall press and release + the neutral climbjump. 

			[Theo left normal]

			Six tile overhangs also make the first wallboost frame perfect (direction away from the wall press) and make the second wallboost a three frame window at best. 

			[Theo left normal]

			With worse subpixels, it could be a two or one frame window instead. 

			[Theo left normal]

			The first climbjump can happen on any of the frames before the first wallboost. So frames 2-7 are viable. Frame 1 has to be a crouch jump. 

			[Theo left normal]

			And frame 8 is when you have to first wallboost. 

			[Theo left normal]

			After all that, you're looking at 25-27 frames of airtime after the second wallboost before reaching the corner.

			[Theo left normal]

			Fun 6 tile fact. They are vertically press to 1/8th of a pixel. 
		
		Violet_PlusTwoGym_Overhang_7b= 

			[Theo left normal]

			Even though I outlined the inputs before, you wouldn't have much luck doing them normally. 

			[Theo left normal]

			At the time of writing this, only one person has manually done a six tile overhang. Most people do six tile overhangs with "roll binds". 

			[Theo left normal]

			Find any three keys that are in a row, that suit your dominant hand, and that you can comfortably rest your index, middle, and ring fingers on. 

			[Theo left normal]

			Then bind as follows: right (ring finger), left (middle finger), grab + jump (index finger). 

			[Theo left normal]

			If you want to include the second wallboost bind this instead: right (pinky), left (ring), grab + jump (middle), right (index). 

			[Theo left normal]

			Whatever you choose these will be your roll binds.

			[Theo left normal] 

			As for the other hand, consider binding any of the following: crouch jump button (down + jump), climbjump button (jump + grab), left climbjump button (left + climbjump), and right button. 

			[Theo left normal]

			Now let's talk about rolling. 

			[Theo left normal]

			A roll is a technique where you press each button in a row with a consecutive finger.

			[Theo left normal]

			Its important that you do all rolls from the outside of your hand in since this is faster and more natural. 

			[Theo left normal]

			The main power of rolling is that it takes a diverse range of moves and boils it down to the same hand movement.

			[Theo left normal] 

			For the 6 tile roll, you'll want to release both direction buttons before the climbjump. 

			[Theo left normal]

			From a physical standpoint, this means you should only be lightly tapping those keys and briefly at that. 

			[Theo left normal]

			Before I get into what buttons you need to press. Go get input history mod. You will need it. 

			[Theo left normal]

			You'll want to crouch jump --> neutral climb jump --> do your roll --> wallboost --> neutral ckick or rcb

			[Theo left normal]

			You can hold the down button, any jump, and grab the whole time without issue. Just release down after you get the corner. 

			[Theo left normal]

			You'll want to hold your jump after both neutral climbjumps. 

			[Theo left normal]

			As for the crouch jump --> neutral climbjump, on input history these should both add to seven. 

			[Theo left normal]

			So for example, 1 down jump 6 jump grab. Is good. 

			[Theo left normal]

			Be mindful that rolling can hurt your fingers. Best of luck!
			
		Violet_PlusTwoGym_Overhang_7c= 

			[Theo left normal]		

			I would recommend reading the keyboard section in addition to this because it talks about how to use input history. 

			[Theo left normal]

			The hard part of a 6 tile on controller is getting the right -> left input.  

			[Theo left normal]

			There's two ways you can go about it. 

			[Theo left normal]

			Method 1: stick flick. 

			[Theo left normal]

			If your controller is capable of registering it, you can flick your stick right and hope it overshoots hitting left too. 

			[Theo left normal]

			You'll want to have a small dead zone for this. 

			[Theo left normal]

			Your deadzone is a region where your controller will not register joystick movements near the center. 

			[Theo left normal]

			Method 2: thumb rolling. 

			[Theo left normal]

			For this method, bind right to B (or O on playstation) and left to A (or X). Then you bind climbjump to your right trigger. 

			[Theo left normal]

			Then you slide your thumb down and over the face buttons and pull the trigger in one movement. 

			[Theo left normal]

			Good luck. You'll need it	

		Violet_PlusTwoGym_Overhang_7d= 

			[Theo left normal]

			First the manipulation for a 6x6 overhang, you'll want to climbjump into the ceiling twice (while holding grab and the direction into the wall). 

			[Theo left normal]

			This will normalise both your vertical and horizontal subpixels. 

			[Theo left normal]

			The climb down to the ground again. 
			
			[Theo left normal]

			Now do a 1f tap away from the wall. You'll be setup with 0.7 horizontal 0.4 vertical. 

			[Theo left normal]

			For the crouch keeping 5x5, normalise you subpixels as before. 

			[Theo left normal]

			Now do a 16 frame jump and grab the wall. Climb down like before.

			[Theo left normal]

			Then do a 1f tap away from the wall. 

			[Theo left normal]

			You should have 0.2 horizontal 0.3 vertical. 

			[Theo left normal]

			Once you have you're setup, you can crouch to check if you're correct.			
			
		Violet_PlusTwoGym_Overhang_8=

			[Theo left normal]
		
			This is a crouch retained 5x5 overhang. 

			[Theo left normal]

			Like a 6x6 overhang, you need to double wallboost. 

			[Theo left normal]

			However, the inputs are more difficult. 

			[Theo left normal]

			For one, you want to start the roll on the third frame after crouch jumping. 

			[Theo left normal]

			For two, you don't want to hold jump during the double wallboost. 

			[Theo left normal]

			There's two ways you can go about this. 

			[Theo left normal]

			You can either try to crouch jump and 1f tap jump in quick succession. 

			[Theo left normal]
			
			Then roll as taught with 6 tile overhangs. 

			[Theo left normal]

			Or you can bind all the inputs in a row and run your finger along them quickly (single finger roll). 

			[Theo left normal]

			So the following binds: jump + down, grab + jump, left, right, grab + jump, right + jump 

			[Theo left normal]

			You obviously want to stop on the final bind to keep the jump going. 

			[Theo left normal]

			Keep in mind that single finger rolling is typically more rough on your fingers than multifinger rolling.

		Violet_PlusTwoGym_Overhang_9= 

			[Theo left normal]

			5x3 overhang. 

			[Theo left normal]

			Its alot like 4x2 overhang. 

			[Theo left normal]

			Crouch jump while two pixels away from the wall. 

			[Theo left normal]

			Climbjump on the bottom pixel and wallboost on the frame after. 

			[Theo left normal]

			Hold jump for exactly 10 frames. Then slowfall. 

			[Theo left normal]

			Then finish off with ckick. 

			[Theo left normal]

			You'll want far subpixels from the wall. 

			[Theo left normal]

			So just do a 1f right tap on spawn and you should be setup. 

			[Theo left normal]

			Reminder that "exactly 10 frames" includes the frame you climbjump!
			
#Laddering

	#Locations
	
		Violet_PlusTwoGym_Ladder_loc_0= 
		
			Triple Jelly Ladder 
			
		Violet_PlusTwoGym_Ladder_loc_1= 
		
			{#F32013}Theo spring ladder{#} 
			
		Violet_PlusTwoGym_Ladder_loc_2=
		
			Theo Juggle 
			
		Violet_PlusTwoGym_Ladder_loc_3=
		
			{#F32013}Theo Jelly Juggle{#}
	
	#Explainers
	
		Violet_PlusTwoGym_Ladder_0=

			[Theo left normal]
		
			Don't think this shows up in any maps but its cool anyway. 

			[Theo left normal]
			
			So a normal tripple Jelly ladder is not very human friendly. 

			[Theo left normal]
			
			This is because the backboosts push you away from the wall so you need to move back. 

			[Theo left normal]
			
			And that balance of between your movement and the backboosts is hard to maintain.

			[Theo left normal]
			
			But by adding a second wall, you don't have to worry about this. 

			[Theo left normal]
			
			So just pickup and throw the jellies against one wall and maintain the rhythm. 
			
		Violet_PlusTwoGym_Ladder_1=

			[Theo left normal]
		
			The whitehole 98!!!

			[Theo left normal]
			
			To do one, you need to throw Theo into the springs, turn around, climbjump off the wall, and pickup the second Theo.

			[Theo left normal]
			
			To get the last climbjump off and pickup Theo its important that your climbjump is neutral. 

			[Theo left normal]
			
			This is because the game, in some ways, acts like you have an extra climbjump worth of Stamina if you can wallboost.

			[Theo left normal]
			
			And this allows you to pick up Theo while flashing red because picking up Theo checks for this potential stamina too. 
			
		Violet_PlusTwoGym_Ladder_2= 

			[Theo left normal]
		
			Picking up a holdable stops you from falling. 

			[Theo left normal]
			
			So by repeatedly picking up holdables, you can slow your fall. 

			[Theo left normal]

			This is called a juggle.

			[Theo left normal]

			To do this juggle, you just need to neutral drop Theo, pickup the second Theo, and repeat. 

			[Theo left normal]
			
			Also make sure to hold jump so you slowfall. 

			[Theo left normal]
			
			It isn't too hard once you get the rhythm.
			
			[Theo left normal]

			There's indicator for this section that show red if you press grab too early, orange if you press grab too late, and green if you're all good.
			
		Violet_PlusTwoGym_Ladder_3= 

			[Theo left normal]
		
			Similar to the Theo juggle, you can slow your fall by switching between a jelly and a Theo (Theo Jelly Juggle or TTJ). 

			[Theo left normal]
			
			The rhythm is way tighter, however. 

			[Theo left normal]
			
			I've added a section over to the side to practice juggling just with two jellies.
	
			[Theo left normal]
			
			Once you start to feel confident with that, come back over here.

			[Theo left normal]

			Each juggle in a TJJ has 1-2 frame window. 

			[Theo left normal]

			There's nothing more to it than hitting the rhythm. 

			[Theo left normal]

			Remember to slowfall and best of luck.			
	
#Other 

	#Locations 
			
		Violet_PlusTwoGym_Other_loc_0=
		
			{#F32013}Core Stall{#}
			
		Violet_PlusTwoGym_Other_loc_1=
		
			Dream Rejection 
			
		Violet_PlusTwoGym_Other_loc_2=
		
			Screen Transition Retention 
			
		Violet_PlusTwoGym_Other_loc_3=
		
			Milkpop
			
		Violet_PlusTwoGym_Other_loc_4=
		
			{#F32013}Spinner Stun{#} 	
	
	#Explainers 

		Violet_PlusTwoGym_Other_0=

			[Theo left normal]

			Core blocks will not break until they reach a target position, which is defined by the angle between the center of the player and the block. 

			[Theo left normal]

			It gets alot more detailed than that, but I would rather not get into it. Type this link into your browser if you really care: https://github.com/lnf-24/BounceBlockExplanation

			[Theo left normal]

			Since the move block takes time to reach that position, if you cross over the center of the dream block quickly enough, then the target position will switch sides. 

			[Theo left normal]

			So now the block needs to move over there instead and the blocks windup will be extended. 

			[Theo left normal]

			In practice, you can do this by reverse hypering into gultra-ing to cross the block. 

			[Theo left normal]

			Since a gultra is a downdigonal dash, you can turn it into another reverse hyper and gultra back again. 

			[Theo left normal]

			And you keep chaining these to rapidly change sides of the block. 

			[Theo left normal]

			Uh, this is hard. Have fun. 
		
		Violet_PlusTwoGym_Other_1= 

			[Theo left normal]

			You can enter a dream block with a dash direction that faces towards the way you entered. 

			[Theo left normal]

			When this happens, instead of dream dashing through the block, you dream dash to back from whence you came. 

			[Theo left normal]

			Because of this, this is commonly called a dream rejection because you get "rejected" from the block. 

			[Theo left normal]

			They're pretty easy to do because you just dash into a bumper and you'll get bumped into the dream block. 

			[Theo left normal]

			Usually this is done as a bumper clip setup, especially if you're holding Theo. 

		Violet_PlusTwoGym_Other_2=

			[Theo left normal]

			Hitting a screen transition preserves your speed even if you don't cross into the other room. 

			[Theo left normal]

			You will still gradually lose speed to friction but you can also add more speed. 

			[Theo left normal]

			So if you were to, say, spam waterboosts against a screen transition...

			[Theo left normal]

			then all that speed would add to your total speed. 

			[Theo left normal]

			And if you were to, hypothetically, pick up the Theo that's been preventing you from leaving the room...

			[Theo left normal]

			I think you get the idea. 

			[Theo left normal]

			You might want to bind multiple jumps for this one. 	
			
		Violet_PlusTwoGym_Other_3=

			[Theo left normal]
		
			Milkpop!

			[Theo left normal]
			
			If you get pushed into lava, you can jump off the solid inside of it without dying.

			[Theo left normal]
			
			This is because the lava kill check is done after you movement on a frame. 

			[Theo left normal]
			
			So if you move out of the lava before the end of the frame, you'll be okay!

			[Theo left normal]
			
			This can be used to refresh your dash and that's about all its good for.

			[Theo left normal]
			
			Oh this is frame perfect, btw.	
			
		Violet_PlusTwoGym_Other_4=
		
			[Madeline left normal] 
			
				How are you trapped in a crystal and here at the same time? 
				
			[Theo right normal]
			
				You might be wondering why there's just a hole and a spinner at the bottom. 
				
			[Madeline left angry]
			
				Are you even listening to me.
				
			[Theo right normal] 
			
				Well, to save on resources the game cycles through three groups of spinners (each group is about 1/3 of the spinners) on each frame to see if they should be collidable (deadly). 
				
			[Madeline left angry]
			
				ugh!
				
			[Theo right normal]
			
				We can prevent a group of spinners from loading (their collision) if we pause on the frame they attempt to load. This is called a spinner stun. 
				
			[Theo right normal]
			
				Keep in mind pausing can only prevent unloaded spinners from loading. Spinner stunning cannot magically unload spinners.
				
			[Theo right normal]

				Spinner stunning is repeatable since if you hit the first stun, unpausing, letting the game play for two frames, and pausing again will stun again.
				
			[Theo right normal]
			
				In sum, by pausing funnily you can go through a spinner without dying. 
				
			[Theo right normal]
			
				This shouldn't be confused with pausebuffering. Pause buffering advances the game one frame at a time. Spinner stunning advances the game two frames at a time instead. 
				
			[Theo right normal]

				For this setup, buffer a fast fall. Then pausebuffer until the camera snaps to the spinner. 
				
			[Theo right normal]
			
				Once you see the spinner, then it will be visible and unloaded. Then you can start stunning.
				
			[Theo right normal]
			
				I would recommend showing hitboxes. Get tas helper for the more visible spinner hitboxes too.
				
			[Theo left normal]
			
				Regardless of which you use, if the hitbox becomes a solid colour, then you missed a stun and need to start again.
				
			[Theo right normal]
			
				You need to spinner stun ten times in a row for this one.

#Subpixels

	#Locations
	
		Violet_PlusTwoGym_Subpixel_loc_0= Quarter Pixel Grid
		
		Violet_PlusTwoGym_Subpixel_loc_1= Subpixel Guantlet
		
		Violet_PlusTwoGym_Subpixel_loc_2= Section End
	
	#Explainers 
	
		Violet_PlusTwoGym_Subpixel_0= 

			[Theo left normal]
		
			The quarter pixel grid refers to a grid with spaces of 1/4 of a pixel between each grid line.

			[Theo left normal]
			
			This grid is centered on Madeline's position.

			[Theo left normal]
			
			When climbing up or down a wall, for the first frames of her acceleration, her vertical position stays on the quarter pixel grid.

			[Theo left normal]
			
			This means that if you climb up a wall without exceeding a certain speed, you will stay on the quarter pixel grid vertically.

			[Theo left normal]
			
			In this example, you can move your subpixel up by a quarter with a one frame up tap. 

			[Theo left normal]
			
			If you face away from the wall, you can tell you've done the tap because Madeline will turn back briefly. 

			[Theo left normal]
			
			You can check if you've done it correctly by walking to the left.

			[Theo left normal]
			
			If you mess up, you can reset your vertical subpixel by jumping.
		
		Violet_PlusTwoGym_Subpixel_1= 

			[Theo left normal]
			
			Just skip this.	I'm still working it out.
		
		Violet_PlusTwoGym_Subpixel_2=

			[Theo left normal]
		
			The subpixel gauntlet! 

			[Theo left normal]
			
			All these moves have a predictable effect on your subpixel and are the building blocks of subpixel manipulation.

			[Theo left normal]
			
			If you dash into a wall without grabbing, it will normalise your horiztional subpixel.

			[Theo left normal]
			
			Climb up to the blocks to check your subpixel.
			
		Violet_PlusTwoGym_Subpixel_a=
		
			[Theo left normal]

			When you walk into a wall your horiztional subpixel alternates between 0.5 and 0.77 on every frame. 

			[Theo left normal]
			
			By doing a one frame tap into the wall, you'll only walk into it for a frame. 

			[Theo left normal]
			
			So it will switch your subpixel from 0.5 to 0.77 and vice versa. 

			[Theo left normal]
			
			Normalise your subpixel and do a 1f tap to get 0.77 subpixels horiztionally.
		
		Violet_PlusTwoGym_Subpixel_3=

			[Theo left normal]
		
			Neutrals have a predictable effect on your subpixel.

			[Theo left normal]
			
			I won't get into the details but it "cycles" your subpixel.

			[Theo left normal]
			
			Anyway normalise your subpixel and neutral get 0.4 subpixels horiztionally. 
		
		Violet_PlusTwoGym_Subpixel_4=

			[Theo left normal]
		
			Another move that works similarly to a neutral is a failed neutral. 

			[Theo left normal]
			
			To do one, kick away from the wall and quickly hold the direction back to the wall. 

			[Theo left normal]
			
			Make sure to start holding before the wallkick ends.

			[Theo left normal]
			
			Noramlise your subpixels and failed neutral to get 0.14 subpixels horiztionally.
		
		Violet_PlusTwoGym_Subpixel_5=

			[Theo left normal]
		
			Full jump or full super into the wall while holding grab. 

			[Theo left normal]
			
			Once you grab the wall, just slide to the bottom.

			[Theo left normal]
			
			Walk over to the light to check your subpixel. 

			[Theo left normal]
			
			You should get a vertical subpixel of 0.83.
			
		Violet_PlusTwoGym_Subpixel_6=

			[Theo left normal]
		
			If you do the previous manipulation and follow it with a full height hyper + slide down the wall, 

			[Theo left normal]
			
			then you will get a vertical subpixel of 0.125. 
			
			[Theo left normal]

			Having a vertical subpixel that's equal or less than this is called having a "bottom eighth subpixel".

		Violet_PlusTwoGym_Subpixel_7= 

			[Theo left normal]

			Climb hopping shifts your current subpixel back towards the wall by an eighth.

			[Theo left normal]

			Keep in mind this loops, so if you had 0.08 as your horizontal subpixel and you climbhop rightwards, then you will get 0.08 - 0.125 = -0.045.

			[Theo left normal]

			This might seem weird since negative subpixel are impossible, but really you should read this as saying you entered the right side of the previous pixel by 0.025. 

			[Theo left normal]

			Given that your actual subpixel would be 1 - 0.045 = 0.955. 

			[Theo left normal]

			Anyway, just normalise your horizontal subpixel and then climbhop to beat this one. 

			[Theo left normal]

			Bonus points if you know what 0.5 - 0.125 is. 

		Violet_PlusTwoGym_Subpixel_8=

			[Theo left normal]

			Dashing updiagonal and releasing all your directions will kill you with most subpixels...

			[Theo left normal]

			since it moves you 39.123 pixels horizontally and you need to move 40 pixels.

			[Theo left normal]

			We can assume that moving our start position around will move the end position by the same amount because we aren't colliding with anything. 

			[Theo left normal]

			So if we get a starting subpixel of 0.93px. Then we get 39.123px + 0.93px = 40.053. 

			[Theo left normal]

			Just barely entering the safe pixel.

			[Theo left normal]

			We can actually get that starting subpixel by first normalising our subpixel. 

			[Theo left normal]

			Then press right and then down the frame after.

			[Theo left normal]

			Make sure to release right before uncrouching otherwise you will move.
	
			[Theo left normal]

			Then just updiagonal dash and you should slot into the gap.

		Violet_PlusTwoGym_Subpixel_9=

			[Theo left normal]

			We can uses the previous trick to actually confirm the climbhop calculations I did earlier. 

			[Theo left normal]

			First just climbhop with normalised subpixels just to confirm that you enter the lava and die. 

			[Theo left normal]

			Now press left and crouch on the following frame to get 0.08 horizontal subpixels.  

			[Theo left normal]

			If you stay crouched, you can turn back to the wall without affecting your subpixels.

			[Theo left normal]

			Now climbup and climbhop. You will not die to lava.

			[Theo left normal]

			Why? Like the calculations showed, you entered the previous pixel by 0.045px.

			[Theo left normal]

			This makes sense since if you are in the back eighth of the pixel and climbhopping moves another eighth back.

			[Theo left normal]

			Then you will just move to the previous pixel.

		Violet_PlusTwoGym_Subpixel_10= 

			[Theo left normal]
		
			I just wanted to talk about subpixel calculations in some more detail.

			[Theo left normal] 

			The main idea is that you can calculate how much your subpixel moves by on each frame if you know your speed on that frame.

			[Theo left normal]

			For example, if you currently have a subpixel of 0.8 and you have a vertical speed of 1.25 pixels a frame, 

			[Theo left normal]

			then you will move 1.25px + 0.8px = 2.05px. 

			[Theo left normal]

			In other words, you will move two pixels and have a vertical subpixel of 0.05.

			[Theo left normal]

			So just with your speed and subpixel, you can calculate your next subpixel.

			[Theo left normal] 

			Nothing is stopping you from calculating your subpixel after multiple frames either. 

			[Theo left normal]

			Just add the speeds on each frame (in pixels a frame) together and add it to your current subpixel. 

			[Theo left normal]

			Then just ignore the whole number part and keep the decimals. 

			[Theo left normal]

			Often you will get your speeds in "speed" which is measured in pixels a second.

			[Theo left normal] 

			If you have everything in speed, just divide 60 to convert it to pixels a frame. 

			[Theo left normal]

			You can also handle accelerations too. 

			[Theo left normal]

			Let's say you accelerate by 0.25 pixels a frame a frame. 

			[Theo left normal]

			In otherwords, each frame you gain an extra 0.25 pixels a frame in speed.

			[Theo left normal]

			So let's say you have a starting speed of 0 px/f (pixels a frame) and a starting subpixel of 0.5px

			[Theo left normal]

			Then we can calculate three frames of acceleration with 0.5 + 0 + 0.25 + 0.5 + 0.75 = 2.00. 

			[Theo left normal]

			So we will have a subpixel of 0.00. 

			[Theo left normal]

			Note that you those calculations assume you aren't colliding with anything. 

			[Theo left normal]

			Or interacting with anything really. 

			[Theo left normal]

			So double check your math in game since they can be inaccurate.

			
	
#____________________________________________________________PLUS THREE GYM_______________________________________________________
	
#Hub Warp 

	Violet_BonusGym_GymHub_1= Holdables
	
	Violet_BonusGym_GymHub_2= Dashless

#Holdables

	#Locations

		Violet_PlusThreeGym_Holdable_loc_0=

			Walled Down Smuggle 
		
		Violet_PlusThreeGym_Holdable_loc_1= 
		
			1-tile Down Smuggle 
			
		Violet_PlusThreeGym_Holdable_loc_2=
		
			Alternating Spring Ladder  
		
	#Explainers 
	
	Violet_PlusThreeGym_Holdable_0=

		[Theo left normal]
	
		So you might've heard down smuggles are very precise. What does that mean?

		[Theo left normal]
		
		Basically, the game uses a number called delta time to represent the length of a frame. 
	
		[Theo left normal]
		
		On every frame, you are moved by your speed * delta time pixels. 

		[Theo left normal]
		
		Usually, delta time is around 1/60 (0.01666 repeating) seconds but it isn't exactly that. 

		[Theo left normal]
		
		This is because delta time is rounded up to 0.0166667. 

		[Theo left normal]
		
		This means you move ever so slightly more than expect on each frame.

		[Theo left normal]
		
		It also means gravity is slightly stronger than expected.

		[Theo left normal]
		
		Because of this, you can pickup Theo and just barely fall an extra pixel before your dash attack runs out. 

		[Theo left normal]
		
		And that's actually enough to do a down smuggle!

		[Theo left normal]
		
		Anyway, for this example, you'll want to jump for 7 frames, dash down into picking up Theo, and then hold right.

		[Theo left normal]
		
		It is subpixel dependent, but you can just walk into the wall to get good subpixels.
		
	Violet_PlusThreeGym_Holdable_1=
	
		[Madeline left normal] 
		
		Why are you in the ceiling 
		
		[Theo left normal]
		
		Smuggle over exposure.
		
		[Madeline left normal]
		
		Cool. Can I learn another down smuggle?
		
		[Theo left normal]
	
		Okay.

		[Theo left normal]
		
		For this one you want to pickup Theo, crouch briefly to drop Theo and grab the wall.

		[Theo left normal]
		
		Now you just need to do a 6 frame up tap followed by a 1 frame up tap. 

		[Theo left normal]
		
		If you face away from the wall, you can tell you did the 1 frame tap if you face but to the wall but don't move up.

		[Theo left normal]
		
		Now just down dash and pick Theo up. Make sure to release down otherwise you will neutral drop Theo.

		[Theo left normal]
		
		You can also do down smuggles on completely flat ground and nope! I'm not teaching that.
		
#Dashless 

	Violet_PlusThreeGym_Dashless_loc_0=
	
		Spiked Grounded Wallboost 
		
	Violet_PlusThreeGym_Dashless_loc_1=
	
		11 jump 
		
	Violet_PlusThreeGym_Dashless_loc_2=
		
		Dove Jump 
		
	Violet_PlusThreeGym_Dashless_loc_3=
	
		1f dcb 
		
	Violet_PlusThreeGym_Dashless_loc_4=
	
		5x3 Invert 
		
	Violet_PlusThreeGym_Dashless_loc_5=
	
		Dcbwob
		
#Explainers 

	Violet_PlusThreeGym_Dashless_0= 

		[Theo left normal]
	
		Spiked grounded wallboost. 

		[Theo left normal]
		
		You want to fall into the spikes with a low speed. This is done by pressing left before you enter the spikes.

		[Theo left normal]
		
		The key idea is not to kill so much speed you stop inside the spikes, but to not have so much speed you can't get back to the ground for the gwoost.

		[Theo left normal]
		
		For the gwoost, make sure to press left immediately after the 1f neutral climbjump. 

		[Theo left normal]
		
		Since it takes so long to get back to the ground, you need to wallboost as soon as possible.

		[Theo left normal]
		
		You'll be aligned for a spike fall if you crouch jump from spawn.

		[Theo left normal]
		
		I should mention everything in this section is insanely difficult.

		[Theo left normal]
		
		I don't know why I made this.
		
	Violet_PlusThreeGym_Dashless_1= 

		[Theo left normal]
	
		11 is possible? Yeah. 

		[Theo left normal]
		
		An 11 jump is like a 9 jump, but you add a screen transition cornerboost in. 

		[Theo left normal]
		
		It isn't as vertically precise because of the screen transition, so the first neutral isn't frame perfect.

		[Theo left normal]
		
		Anyway, start with 9 jump inputs before the screen transition: neutral --> neutral climbjump --> wallboost --> dcb.

		[Theo left normal]
		
		Then add the screen transition cornerboost. Neutral/Wallkick --> screen transition --> cornerboost --> climbjump for height.
		
	Violet_PlusThreeGym_Dashless_2=

		[Theo left normal]
		
		This is called Dove Jump.

		[Theo left normal]
		
		Its just a cpop down into a reverse cpop into a 3x2 up.

		[Theo left normal]
		
		To align for the reverse cpop, you'll need to frame perfectly release jump after the cpop and frame perfectly repress for slowfall.

		[Theo left normal]
		
		Specifically, you need hold jump for 5 frames, release for 1 frame, and repress again.

		[Theo left normal]
		
		With bad subpixels you'd need to release right for that frame too.

		[Theo left normal]
		
		I've given you good subpixels here so you don't have to think about that.
		
	Violet_PlusThreeGym_Dashless_3=

		[Theo left normal]
	
		1f double cornerboost.

		[Theo left normal]
		
		Its just a double cornerboost where the second jump is held for 1f frame.

		[Theo left normal]
		
		Obviously, the second jump needs to be released before or when the second is.

		[Theo left normal]
		
		This setup adds a frame perfect jump. Just align yourself to the jumpthrough for the right pixel and subpixels.
		
	Violet_PlusThreeGym_Dashless_4=

		[Theo left normal]
	
		An inverted overhang just describes a setup like this.

		[Theo left normal]
		
		This would be a 5x3 invert.

		[Theo left normal]
		
		The main idea behind inverts is to double cornerboost with crouch to reach the corner.

		[Theo left normal]
		
		So here you want to press right into rolling the following: crouch jump, cornerboost, cornerboost.

		[Theo left normal]
		
		The crouch jump needs to be 2 frames long before the dcb.

		[Theo left normal]
		
		Then you want release jump after 8 frames and repress jump after another 5 frames.

		[Theo left normal]
		
		Now just cornerkick! Simple, right?
		
	Violet_PlusThreeGym_Dashless_5=

		[Theo left normal]
			
		Double cornerboost into a wallboost. 

		[Theo left normal]
		
		Typically shortened into dcbwob or dcbcobwob. 

		[Theo left normal]
		
		For this one, press right for 10 frames and then roll the following: crouch jump, cornerboost, cornerboost, neutral climbjump.

		[Theo left normal]
		
		Then just wallboost on the right frame.
		
		

