In-Depth Punch Card Exploit Explanation First of all, we need to understand "Global.Interact" values. Global.Interact 0 = You can move, open your menu, etc. Global.Interact 1 = All movement keys and CTRL, are unbound. Global.Interact 3 = The game runs code to see where to put you after hitting a room transition. Global.Interact 5 = Your menu is open. Other Global.Interact values are not listed as they are irrelevant to the glitch. Punch Card Exploit relies on the one frame window where Global.Interact is 0 that you have between trying to open the card, and actually opening it. Normal PCE - Pressing CTRL and an arrow key on the exact same frame, Will cause frisk to move with the menu open, but only for one step. Events only occur when Global.Interact is 0, And having your menu open has Global.Interact set to 5, so the cutscene does not occur while your menu is open. So we can exploit the one frame window to trigger the cutscene, and after the cutscene has began, the card will open up on-screen, so we can close the card to set global.interact back to 0, allowing movement. Text Overflow - Using our one frame window, we can open a text box in the one frame. Allowing us to have a text box on-screen while being able to move around, If we repeat overflowing, we can have two of the same text box on-screen, If we do this with text that is stored in SCR_TEXT, the script will overflow to the next entry in its list. so we can get items before we are supposed to by overflowing text in SCR_TEXT that gives us items. Wrong Warping - When Global.Interact is 3, the game looks for a tile to put you at in the next room, i.e if you entered door A it would look for exit A. Using the one frame window, We can move into Door A with the punch card open, so by having the card open, we have set global.interact 1 while still room-transitioning, so the code that tells you to exit at door A doesn't run, so the game puts you at the default location in the room. If you hold the arrow keys after closing the card, the game realises you are in door A, and sets global.interact back to 3, which makes you room transition normally. Not closing the card makes you go to the next room while still having global.interact be 1, so we cannot move in the room, with no way to get global.interact back to 0.