Grass: A Scrolling Platformer

Instructions: Hello and Welcome to Grass: A Scrolling Platformer! You have missed a class and have to do a very dangerous and long run with obstacles. Get past, or else you will have loads of assignments! Click the green flag 3x before starting. Have fun! Please love and favorite and follow! I spent a lot of time on this! 100% possible. \nEvery comment that is or is similar to "Impossible" = 1 report XD\nOMG 400 VIEWS!!!

@Stage\n\nwhen flag clicked\nforever\n    set volume to (75) %\n    play sound [TheFatRat - Infinite Power! v] until done\nend\n\n@Blank\n\ndefine ()\n[B]\n[l]\n[a]\n[n]\n[k]\n\n@Player\n\nwhen I receive [play v]\nshow\nforever\n    Platforming Engine [5]\nend\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <touching (level 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 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 ([floor v] of ((4) + ((frame) mod (8))) )\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 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 <not <[special v] contains (username)?>> 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\n    else\n        if <<(jump key) = [0]> and <(falling?) < [999999999999999999999999999999999999999999999999999999999999999999]>> then\n            set [speed y v] to [14]\n            set [falling? v] to [6]\n            set [jump key v] to [1]\n        end\n    end\nelse\n    set [jump key v] to [0]\nend\nif <<(y position) < [-180]> or <touching (danger v)?>> then\n    go to x: (0) y: (0)\n    point in direction (90)\n    set [scrollx v] to [0]\n    set [speed y v] to [0]\nend\nif <(username) = [Onnk4967]> then\n    I am the creator\nend\nSet Costume\nScrolling Blocks\n\ndefine Reset Player\nshow\nset size to (40) %\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 [0]\nhide\n\ndefine Scrolling Blocks\nchange [scrollx v] by (x position)\nset x to (0)\n\nwhen flag clicked\ndelete all of [special v]\nadd [griffpatch] to [special v]\nadd [Onnk4967] to [special v]\nadd [Will_Wam] to [special v]\nadd [WazzoTV] to [special v]\nadd [hamster46] to [special v]\nadd [StratfordJames] to [special v]\nadd [TheGreenFlash] to [special v]\nadd [huntedskelly] to [special v]\nadd [sharkyshar] to [special v]\nadd [GoldenEagleStudios] to [special v]\nadd [-ChxticStudios-] to [special v]\nhide\nbroadcast (Delete All Clones v) and wait\nbroadcast (SetUp v) and wait\nbroadcast (Level Loop v)\nbroadcast (Play 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\ndefine I am the creator\ngo to [_stage_ v]\n\nwhen I receive [actual hello v]\nwait (2.7) seconds\nTalk (join [Hello ] (Username))\nrepeat until <touching (goal v)?>\n    wait (1) seconds\n    change [time v] by (1)\nend\nset [win v] to [True]\nTalk (join (join [You win!!! Congrats! The time you took is : ] (Time)) [ seconds])\n\ndefine Talk ()\nset [talk1 v] to [1]\nset [talk2 v] to []\nrepeat (length of ())\n    set [talk2 v] to (join (Talk2) (letter (Talk1) of ()))\n    change [talk1 v] by (1)\n    say (Talk2) for (0.3) seconds\nend\n\nwhen flag clicked\nset [win v] to [False]\n\n@Level\n\nwhen I receive [level loop v]\nforever\n    set x to ((Level_X) - (ScrollX))\nend\n\nwhen I receive [setup v]\nFind Costume Number\nshow\nclear graphic effects\ngo to x: (0) y: (0)\nset [level_x v] to [-24000]\nswitch costume to (secret1 v)\nCreate\nhide\n\ndefine Find Costume Number\nset [level costumes v] to [1]\nswitch costume to (secret1 v)\nnext costume\nrepeat until <(costume [number v]) = [1]>\n    change [level costumes v] by (1)\n    next costume\nend\n\nwhen I receive [delete all clones v]\nset [level_x v] to [0]\n\ndefine Create\nwait (1) seconds\nrepeat ((Level Costumes) - (4))\n    create clone of (_myself_ v)\n    change [level_x v] by (480)\n    next costume\nend\ngo to x: (0) y: (0)\n\n@Clouds\n\nwhen flag clicked\nforever\n    hide\n    wait (pick random (0.7) to (1.2)) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nshow\nswitch costume to (pick random (1) to (5))\nset [ghost v] effect to (pick random (60) to (80))\ngo to x: (-352) y: (pick random (100) to (188))\nset size to (pick random (70) to (100)) %\npoint in direction (90)\nrepeat until <(x position) > [185]>\n    move (3) steps\nend\ndelete this clone\n\n@Sprite1\n\nwhen flag clicked\ngo to [front v] layer\nshow\nwait (9) seconds\nhide\n\nwhen I receive [hello v]\nset [time v] to [0]\nrepeat (200)\n    go to x: (0) y: (0)\nend\nbroadcast (Actual Hello v)\n\n@Focus\n\nwhen flag clicked\nwait (9) seconds\ngo to [front v] layer\ngo to x: (0) y: (0)\nshow\n\n@Danger\n\nwhen I receive [level loop v]\nforever\n    set x to ((Level_X) - (ScrollX))\nend\n\nwhen I receive [setup v]\nFind Costume Number\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 (costume1 v)\nnext costume\nrepeat until <(costume [number v]) = [1]>\n    change [level costumes v] by (1)\n    next costume\nend\n\nwhen I receive [delete all clones v]\nset [level_x v] to [0]\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\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nchange [ghost v] effect by (100)\n\ndefine Thumbnail\nclear graphic effects\ngo to [front v] layer\nshow\n\nwhen flag clicked\nif <not <[1] = <[1] = [1]>>> then\n    set [username v] to [Forkphorus Player]\nelse\n    if <not <(username) = []>> then\n        set [username v] to (username)\n    else\n        set [username v] to [Scratcher who has not logged in]\n    end\nend\nbroadcast (Hello v)\n\ndefine This Block Is Cool\nIt Really Is!\n\ndefine It Really Is!\nThis Block Is Cool\n\nwhen flag clicked\nif <(username) = [kaj]> then\n    Do Not Hack Me!!!!!!!!!!!\nend\n\ndefine Do Not Hack Me!!!!!!!!!!!\nWhy Kaj? Why?\n\ndefine Why Kaj? Why?\nDo Not Hack Me!!!!!!!!!!!\n\nwhen flag clicked\nforever\n    if <<<(☁ Highscore \(Time\)) > (Time)> and <(x position) = [0]>> and <(Win) = [True]>> then\n        set [☁ highscore \(time\) v] to (Time)\n        stop [other scripts in sprite v]\n        stop [this script v]\n    end\nend\n\n@Goal\n\nwhen I receive [level loop v]\nforever\n    set x to ((Level_X) - (ScrollX))\nend\n\nwhen I receive [setup v]\nFind Costume Number\nshow\nclear graphic effects\ngo to x: (0) y: (0)\nset [level_x v] to [0]\nswitch costume to (costume1 v)\nCreate Costumes\nhide\n\ndefine Find Costume Number\nset [level costumes v] to [1]\nswitch costume to (costume1 v)\nnext costume\nrepeat until <(costume [number v]) = [1]>\n    change [level costumes v] by (1)\n    next costume\nend\n\nwhen I receive [delete all clones v]\nset [level_x v] to [0]\n\ndefine Create Costumes\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\n