The LONGEST platformer ever! update v. 2.0

Instructions: Hey everyone i'm back! this update on the LONGEST platformer ever is here! There are new controls, and please favorite, love, and most importantly, feel free to remix this any time! \nWait until the screen fades away, then play\n\n                                           CONTROLS\n=============================================\nMove: Arrow Keys\nDash/Sprint: Space\nR: Restart \n=============================================\n                                  REQUIREMENTS\n=============================================\n1. You must have a username so I know that you are a real person and you're not some sort of hacker or a robot.\n2. Have fun!\n3. Do not touch red ᕙ(>ᗝ<)ᕗ\n=============================================\n                                                  :3

@Stage\n\nwhen flag clicked\nswitch backdrop to (lvl 1 v)\nforever\n    play sound (pick random (1) to (5)) until done\nend\n\nwhen I receive [next level v]\nnext backdrop\n\nwhen flag clicked\nforever\n    if <(Level) = [82]> then\n        wait (5) seconds\n        broadcast (Next level v)\n        broadcast (Pen up v)\n        change [level v] by (1)\n    end\nend\n\nset [level v] to [93]\n\n@Player\n\nwhen flag clicked\nerase all\npen up\nset pen size to (5)\nset pen color to (#656767)\ngo to x: (-180) y: (-167)\nset [xv v] to [0]\nset [yv v] to [0]\nset [level v] to [1]\nset [key v] to [0]\nset size to (200) %\nclear graphic effects\nforever\n    if <not <(username) = []>> then\n        Physics\n    else\n        say [Sorry You can't play because you don't have a username] for (3) seconds\n        stop [all v]\n    end\n    if <<(Level) = [55]> and <key (space v) pressed?>> then\n        broadcast (next level v)\n        change [level v] by (1)\n    end\n    if <<(Level) = [56]> and <key (2 v) pressed?>> then\n        broadcast (next level v)\n        change [level v] by (1)\n    end\n    if <<touching color (#ffff00)?> and <(Level) = [64]>> then\n        broadcast (hide v)\n        broadcast (next level v)\n    end\n    if <key (r v) pressed?> then\n        go to x: (-180) y: (-167)\n    end\n    if <<(distance to [portal2 v]) < [10]> and <(Level) = [16]>> then\n        broadcast (random position v)\n    end\n    if <<(Level) = [69]> and <key (right arrow v) pressed?>> then\n        wait until <not <key (right arrow v) pressed?>>\n        change [level v] by (1)\n        broadcast (next level v)\n    end\n    if <(Level) = [82]> then\n        pen down\n    end\n    if <(Level) = [85]> then\n        if <(x position) = [-240]> then\n            broadcast (level 1 v)\n            go to x: (-180) y: (-167)\n        else\n            if <(x position) = [240]> then\n                change [level v] by (1)\n                broadcast (next level v)\n                go to x: (-180) y: (-167)\n            end\n        end\n    end\n    if <(Level) = [86]> then\n        if <(x position) = [-239]> then\n            change [level v] by (1)\n            broadcast (next level v)\n            go to x: (-180) y: (-167)\n        else\n            if <(x position) = [239]> then\n                broadcast (level 1 v)\n                go to x: (-180) y: (-167)\n            end\n        end\n        if <(y position) = [179]> then\n            change [level v] by (1)\n            broadcast (next level v)\n            go to x: (-180) y: (-167)\n        else\n            if <(y position) = [-174]> then\n                broadcast (level 1 v)\n                go to x: (-180) y: (-167)\n            end\n        end\n    end\nend\n\ndefine Physics\nif <touching color (#00ffff)?> then\n    if <key (up arrow v) pressed?> then\n        set [yv v] to [5]\n    else\n        set [yv v] to [-1]\n    end\nend\nif <<touching color (#006622)?> or <touching color (#ff9400)?>> then\n    if <key (up arrow v) pressed?> then\n        set [yv v] to [5]\n    else\n        set [yv v] to [-1]\n    end\nend\nif <touching color (#ffff00)?> then\n    broadcast (next level v)\n    go to x: (-180) y: (-167)\n    set [xv v] to [0]\n    set [yv v] to [0]\n    change [level v] by (1)\nend\nif <touching color (#ff0000)?> then\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    go to x: (-180) y: (-167)\n    set [xv v] to [0]\n    set [yv v] to [0]\n    clear graphic effects\nend\nif <key (left arrow v) pressed?> then\n    point in direction (-90)\n    change [xv v] by (-1)\nend\nif <key (right arrow v) pressed?> then\n    point in direction (90)\n    change [xv v] by (1)\nend\nset [xv v] to ((xv) * (0.85))\nchange x by (xv)\nif <touching color (#000008)?> then\n    change y by (-2)\n    if <touching color (#000008)?> then\n        change y by (1)\n        if <touching color (#000008)?> then\n            change y by (1)\n            if <touching color (#000008)?> then\n                change y by (1)\n                if <touching color (#000008)?> then\n                    change y by (1)\n                    if <touching color (#000008)?> then\n                        change y by (1)\n                        if <touching color (#000008)?> then\n                            change y by (-5)\n                            change x by ((-1) * (xv))\n                            if <<key (up arrow v) pressed?> and <not <(xv) = [0]>>> then\n                                set [mode v] to [walljump]\n                                set [yv v] to [12]\n                                set [xv v] to (((xv) / ([abs v] of (xv) )) * (-10))\n                            else\n                                set [mode v] to [wallslide]\n                                set [xv v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (2)\nend\nchange y by (-3)\nif <touching color (#000008)?> then\n    if <(yv) = [-3]> then\n        if <<key (left arrow v) pressed?> or <key (right arrow v) pressed?>> then\n            set [mode v] to [run]\n        else\n            if <([abs v] of (xv) ) > [.1]> then\n                set [mode v] to [skid]\n            else\n                set [mode v] to [stand]\n            end\n        end\n    end\n    if <key (up arrow v) pressed?> then\n        set [mode v] to [jump]\n        set [yv v] to [10]\n    end\nend\nif <<<<(mode) = [jump]> or <(mode) = [walljump]>> and <(yv) < [0]>> or <<<(mode) = [run]> or <(mode) = [skid]>> and <(yv) < [-3]>>> then\n    set [mode v] to [fall]\nend\nchange y by (3)\nif <(yv) > [-15]> then\n    change [yv v] by (-0.5)\nend\nchange y by (-2)\nif <not <touching color (#000008)?>> then\n    change y by (-1)\n    if <not <touching color (#000008)?>> then\n        change y by (-1)\n        if <not <touching color (#000008)?>> then\n            change y by (-1)\n            if <not <touching color (#000008)?>> then\n                change y by (-1)\n                if <not <touching color (#000008)?>> then\n                    change y by (-1)\n                    if <not <touching color (#000008)?>> then\n                        change y by (5)\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (2)\nchange y by (yv)\nif <touching color (#000008)?> then\n    change y by (-2)\n    if <touching color (#000008)?> then\n        change y by ((-1) * (yv))\n        set [yv v] to [-3]\n    end\n    change y by (2)\nend\nif <touching color (#003fff)?> then\n    set [yv v] to [15]\nend\n\nwhen I receive [level 1 v]\nswitch backdrop to (lvl 1 v)\nset [level v] to [1]\n\ndefine Shift Pressed\nset [shift pressed v] to <key (space v) pressed?>\n\nwhen flag clicked\nforever\n    Shift Pressed\n    if <<(Shift Pressed) = [true]> and <(direction) = [90]>> then\n        set [xv v] to [10]\n    end\n    if <<(Shift Pressed) = [true]> and <(direction) = [-90]>> then\n        set [xv v] to [-10]\n    end\nend\n\nwhen I receive [pen up v]\npen up\nerase all\n\nset [level v] to [69]\n\n@button\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    if <(Level) = [29]> then\n        show\n    else\n        hide\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (level 1 v)\n    end\nend\n\n@pad\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [62]> then\n        show\n        go to (mouse-pointer v)\n    else\n        hide\n    end\nend\n\n@Portal\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [64]> then\n        wait (5) seconds\n        show\n        wait (3) seconds\n        hide\n    else\n        hide\n    end\nend\n\nwhen I receive [hide v]\nhide\n\n@obstacle\n\nwhen flag clicked\ngo to x: (-200) y: (0)\nhide\nforever\n    Clone\nend\n\ndefine Clone\nif <<(Level) = [27]> or <<(Level) = [34]> or <<(Level) = [38]> or <<(Level) = [44]> or <<(Level) = [58]> or <<(Level) = [59]> or <<(Level) = [60]> or <<(Level) = [67]> or <(Level) = [93]>>>>>>>>> then\n    create clone of (_myself_ v)\n    wait (pick random (2) to (4)) seconds\nelse\n    delete this clone\nend\n\nwhen I start as a clone\nif <<(Level) = [27]> or <<(Level) = [34]> or <<(Level) = [38]> or <<(Level) = [44]> or <<(Level) = [58]> or <<(Level) = [59]> or <<(Level) = [60]> or <<(Level) = [67]> or <(Level) = [93]>>>>>>>>> then\n    show\n    repeat until <touching (_edge_ v)?>\n        move (2) steps\n    end\n    delete this clone\nelse\n    hide\n    delete this clone\nend\n\n@Portal2\n\nwhen flag clicked\nhide\nset size to (60) %\nforever\n    if <(Level) = [16]> then\n        show\n        go to x: (-206) y: (150)\n    else\n        hide\n    end\nend\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [random position v]\ngo to x: (88) y: (-125)\n\n@title screen\n\n@title screen2\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (0) y: (0)\nset size to (107.7) %\nshow\nwait (3) seconds\nrepeat (4)\n    change [ghost v] effect by (25)\nend\nhide\n\n