Who? || Scrolling platformer

Instructions: Welcome!\nIf you don't press the green flag twice, the platform may not generate.\n➩➪➫➬➭➯➩➪➫➬➭➮➯➱➩➪➫➬➭➮➩➪➫➬➭➮➯\nIf you enjoyed this game, feel free to Love, Fave, and Follow!\nInstructions:\nWASD or Arrow Keys || to move\nR || to refresh if you get stuck\n\nAvoid obstacles and climb your way through this simple scrolling platformer. All sprites by me, all animations by me, scrolling generator by @griffpatch . Sorry if you get stuck and can't get out, that is a glitch that remains unfixed.\n➩➪➫➬➭➯➩➪➫➬➭➮➯➱➩➪➫➬➭➮➩➪➫➬➭➮➯\n#games #platformers #platform #platformer #krakenmaster #kraken #game #gaming #simple #k #fun #play #generating #loading #playing #jamming #everything #animations #ok #this #is #dumb #lol #love #fave #follow #please #if #you #are #reading #this\ntype: (Who am I) in #comments

@Stage\n\n@Player\n\nwhen I receive [play v]\nshow\nforever\n    Griffpatch's Platforming Engine [8]\nend\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <touching (level hitbox v)?>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <touching (level hitbox v)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\nend\nchange [frame v] by (0.5)\n\ndefine Set Costume\nif <(falling?) < [6]> then\n    if <(frame) = [0]> then\n        switch costume to (stand_1 v)\n    else\n        switch costume to (walk1 v)\n    end\nelse\n    if <(speed y) > [0]> then\n        switch costume to (jump_1 v)\n    else\n        switch costume to (fall_1 v)\n    end\nend\n\ndefine Griffpatch's Platforming Engine (speed)\nswitch costume to (hitbox v)\nif <<(speed y) < [4]> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n    change [speed y v] by (-1)\nelse\n    change [speed y v] by (-2)\nend\nchange y by (speed y)\nTouch Ground <(speed y) > [0]>\nif <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n    Walk (-90) ((speed) * (-1))\nelse\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        Walk (90) (speed)\n    else\n        set [frame v] to [0]\n    end\nend\nif <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n    if <<(jump key) = [0]> and <(falling?) < [3]>> then\n        set [speed y v] to [14]\n        set [falling? v] to [6]\n        set [jump key v] to [1]\n    end\nelse\n    set [jump key v] to [0]\nend\nif <<<(y position) < [-180]> or <touching color (#ff0000)?>> or <key (r v) pressed?>> then\n    go to x: (0) y: (200)\n    point in direction (90)\n    if <(ScrollX) > [400]> then\n        set [scrollx v] to ((ScrollX) - (350))\n    end\n    set [speed y v] to [0]\nend\nSet Costume\nScrolling Blocks\n\ndefine Reset Player\nshow\nset size to (30) %\nset rotation style [left-right v]\npoint in direction (90)\ngo to x: (0) y: (100)\nset [speed y v] to [0]\nset [falling? v] to [10]\nset [scrollx v] to [10]\nhide\n\ndefine Scrolling Blocks\nchange [scrollx v] by (x position)\nset x to (0)\n\nwhen flag clicked\nhide\nbroadcast (Transition In v) and wait\nbroadcast (Delete All Clones v) and wait\nbroadcast (SetUp v) and wait\nbroadcast (Level Loop v)\nbroadcast (Play v)\nbroadcast (Transition Out v) and wait\nbroadcast (Play BG Music v)\n\nwhen I receive [setup v]\nReset Player\n\ndefine Quick Scroll\nif <key (right arrow v) pressed?> then\n    change [scrollx v] by (100)\nend\nif <key (left arrow v) pressed?> then\n    change [scrollx v] by (-100)\nend\n\nQuick Scroll\n\nset [scrollx v] to [2400]\n\nset size to (20) %\n\nwhen flag clicked\nforever\n    if <touching color (#00039f)?> then\n        set [speed y v] to [33]\n    end\nend\n\n@Level ART\n\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\n\ndefine Create\nFind Costume Number\nrepeat ((Level Costumes) - (1))\n    create clone of (_myself_ v)\n    change [level_x v] by (480)\n    next costume\nend\n\nwhen I receive [level loop v]\nforever\n    set x to ((Level_X) - (ScrollX))\n    if <([abs v] of ((Level_X) - (ScrollX)) ) > [480]> then\n        hide\n    else\n        show\n    end\nend\n\nwhen I receive [delete all clones v]\n\nwhen I receive [setup v]\nshow\nclear graphic effects\ngo to x: (0) y: (0)\nset [level_x v] to [0]\nswitch costume to (costume1 v)\nCreate\nhide\n\ndefine Find Costume Number\nset [level costumes v] to [1]\nswitch costume to ((1) / (1))\nnext costume\nrepeat until <(costume [number v]) = [1]>\n    change [level costumes v] by (1)\n    next costume\nend\n\nset [level_x v] to [0]\n\n@Level HITBOX\n\nwhen flag clicked\nforever\n    set [ghost v] effect to (100)\nend\n\nclear graphic effects\n\ndefine Create\nwait (1) seconds\nrepeat ((Level Costumes) - (1))\n    create clone of (_myself_ v)\n    change [level_x v] by (480)\n    next costume\nend\n\nwhen I receive [level loop v]\nforever\n    set x to ((Level_X) - (ScrollX))\n    if <([abs v] of ((Level_X) - (ScrollX)) ) > [480]> then\n        hide\n    else\n        show\n    end\nend\n\nwhen I receive [delete all clones v]\n\nwhen I receive [setup v]\nshow\ngo to x: (0) y: (0)\nset [level_x v] to [0]\nswitch costume to (costume1 v)\nCreate\nhide\n\ndefine Find Costume Number\nset [level costumes v] to [1]\nswitch costume to ((1) / (1))\nnext costume\nrepeat until <(costume [number v]) = [1]>\n    change [level costumes v] by (1)\n    next costume\nend\n\nset [level_x v] to [0]\n\n@G\n\nwhen flag clicked\nshow\ncalculatetiming (Level Costumes)\n\ndefine calculatetiming (costumes)\nrepeat ((costumes) / (3))\n    switch costume to (pick random (1) to (15))\n    wait (3) seconds\nend\nswitch costume to (costume16 v)\nwait (.5) seconds\nswitch costume to (costume17 v)\nwait (.5) seconds\nhide\nforever\n    play sound [TheFatRat - Unity \(DownloadMaster v] until done\nend\n\ngo to [front v] layer\n\ngo to [front v] layer\n\nwhen I receive [introdone v]\n\nhide\n\n@Sprite1\n\n@Sprite2\n\nwhen flag clicked\nhide\n\nwhen I receive [cave v]\nshow\nset [ghost v] effect to (40)\nforever\n    go to x: (0) y: ([y position v] of [player v])\nend\n\nwhen I receive [winter v]\nhide\n\n@Sprite3\n\nwhen flag clicked\nhide\n\nwhen I receive [winter v]\nforever\n    wait (.08) seconds\n    repeat (pick random (5) to (7))\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I start as a clone\nset [ghost v] effect to (0)\nshow\ngo to x: (pick random (-220) to (220)) y: (150)\nrepeat until <<touching (_edge_ v)?> or <touching (level art v)?>>\n    change y by (-10)\nend\nwait (.5) seconds\nset [ghost effect v] to [0]\nrepeat until <<(ghost effect) = [100]> or <not <<touching (_edge_ v)?> or <touching (level art v)?>>>>\n    repeat (50)\n        change [ghost v] effect by (2)\n        change [ghost effect v] by (1)\n    end\nend\ndelete this clone\n\ndefine process\n\nif <(ghost effect) = [100]> then\n\nprocess\n\n@Sprite4\n\nwhen flag clicked\nset [ghost v] effect to (30)\nforever\n    hide\n    wait (pick random (0.5) to (3)) seconds\n    go to x: (250) y: (pick random (70) to (130))\n    show\n    repeat (10)\n        change x by (-10)\n    end\n    repeat until <touching (_edge_ v)?>\n        change x by (-4)\n    end\nend\n\nwhen I start as a clone\n\n@Sprite5\n\nwhen flag clicked\nset [ghost v] effect to (30)\nforever\n    hide\n    wait (pick random (0.5) to (3)) seconds\n    go to x: (-250) y: (pick random (20) to (40))\n    show\n    repeat (10)\n        change x by (10)\n    end\n    repeat until <touching (_edge_ v)?>\n        change x by (4)\n    end\nend\n\nwhen I start as a clone\n\n@Sprite6\n\nwhen flag clicked\nforever\n    if <key (space v) pressed?> then\n        go to (mouse-pointer v)\n    end\nend\n\nwhen flag clicked\nset [loved? v] to [0]\nforever\n    if <<<(mouse x) > [-240]> and <[-200] > (mouse x)>> and <(mouse y) = [-180]>> then\n        set [loved? v] to [1]\n    end\nend\n\nwhen flag clicked\nset [faved? v] to [0]\nforever\n    if <<<(mouse x) > [-160]> and <[-120] > (mouse x)>> and <(mouse y) = [-180]>> then\n        set [faved? v] to [1]\n    end\nend\n\n@Sprite7\n\nwhen flag clicked\nset [loved? v] to [0]\nhide\nswitch costume to (costume1 v)\nwait until <(loved?) = [1]>\nset [ghost v] effect to (100)\nshow\nrepeat (9)\n    change [ghost v] effect by (-10)\n    next costume\nend\nwait (2) seconds\nrepeat (9)\n    next costume\nend\nrepeat (10)\n    change [ghost v] effect by (10)\n    next costume\nend\nhide\n\n@Sprite8\n\nwhen flag clicked\nset [faved? v] to [0]\nhide\nswitch costume to (costume1 v)\nwait until <(faved?) = [1]>\nset [ghost v] effect to (100)\nshow\nrepeat (9)\n    change [ghost v] effect by (-10)\n    next costume\nend\nwait (2) seconds\nrepeat (9)\n    next costume\nend\nrepeat (10)\n    change [ghost v] effect by (10)\n    next costume\nend\nhide\n\n@Sprite9\n\nwhen flag clicked\nhide\n\nshow\n\n@Sprite10\n\nwhen flag clicked\nhide\n\nshow\nswitch costume to (costume3 v)\nset [ghost v] effect to (0)\nrepeat until <(costume [number v]) = [28]>\n    next costume\n    wait (0.01) seconds\nend\nwait (0.3) seconds\nrepeat until <(costume [number v]) = [36]>\n    next costume\nend\nwait (0.8) seconds\nrepeat until <(costume [number v]) = [46]>\n    next costume\nend\nbroadcast (introdone v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\n@Sprite11\n\nwhen flag clicked\nset [ghost v] effect to (100)\nshow\n\n