Indigo Island - A Platformer

Instructions: Welcome to Indigo Island! You have gotten lost in the vast beaches of this mysterious island, with no way to get back! You must brave the bushes and thorns and make your way back home. Good luck! :)\n\nPress PLAY to begin.\nUse the arrow keys to navigate (the UP arrow allows you to jump).\nAvoid the cacti strategically.\n\nSee inside for explanations of each script!\n\nAs always, let me know if you find any errors/bugs :)\n\n

@Stage\n\n@Sprite1\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (0)\nshow\nstart sound [Sea Waves-SoundBible.com-946156036.mp3 v]\nrepeat (30)\n    wait (0.5) seconds\n    next costume\nend\n\nwhen I receive [message1 v]\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nwhen flag clicked\nwait (3) seconds\nforever\n    play sound [bensound-love.mp3 v] until done\nend\n\n@Sprite4\n\nwhen this sprite clicked\nrepeat (16)\n    wait (0.1) seconds\n    change [ghost v] effect by (5)\nend\nbroadcast (message1 v)\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nwait (4) seconds\nrepeat (16)\n    wait (0.1) seconds\n    change [ghost v] effect by (-5)\nend\n\n@Sprite3\n\nwhen flag clicked\nset [touchingground? v] to [no]\nset [y speed v] to [0]\ngo to x: (0) y: (150)\nset [ghost v] effect to (100)\nswitch costume to (falling v)\ngo to [front v] layer\nshow\nforever\n    if <key (right arrow v) pressed?> then\n        switch costume to (goingright v)\n    else\n        if <key (left arrow v) pressed?> then\n            switch costume to (goingleft v)\n        else\n            if <key (up arrow v) pressed?> then\n                switch costume to (jumping v)\n            else\n                switch costume to (falling v)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nwhen I receive [message1 v]\nrepeat (15)\n    change [ghost v] effect by (-5)\nend\nrepeat (10)\n    set y to (150)\nend\n\ndefine Touching ground\nrepeat until <not <<<touching color (#fff4e6)?> or <touching color (#e5f5c7)?>> or <<touching color (#b3e45a)?> or <<touching color (#7f7f7f)?> or <touching color (#cccccc)?>>>>>\n    change y by (1)\n    set [y speed v] to [0]\nend\n\ndefine Check touching green\nchange y by (-5)\nif <<<touching color (#e5f5c7)?> or <touching color (#b3e45a)?>> or > then\n    change [scrollvalue v] by (160)\n    set y to (150)\nend\nchange y by (5)\n\ndefine Check touching ground\nchange y by (-7)\nif <<<touching color (#fff4e6)?> or <touching color (#b3e45a)?>> or <<touching color (#e5f5c7)?> or <<touching color (#7f7f7f)?> or <<touching color (#cccccc)?> or >>>> then\n    set [touchingground? v] to [yes]\nelse\n    set [touchingground? v] to [no]\nend\nchange y by (7)\n\nwhen flag clicked\nforever\n    change y by (Y speed)\n    change [y speed v] by (-1)\n    Touching ground\n    Check touching ground\n    Check touching green\nend\n\nwhen [up arrow v] key pressed\nif <(touchingground?) = [yes]> then\n    set [jumpspeed v] to [3.6]\n    repeat (10)\n        change [y speed v] by (jumpspeed)\n        change [jumpspeed v] by (-0.4)\n    end\n    set [jumpspeed v] to [0]\nend\n\n@sand\n\nwhen I start as a clone\nset [ghost v] effect to (100)\nchange [firstclone v] by (1)\nshow\nif <(firstclone) = [1]> then\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\nend\nset [ghost v] effect to (0)\nscroll\n\ngo [backward v] (1) layers\n\nwhen I receive [message1 v]\nrepeat (8)\n    create clone of (_myself_ v)\n    change [scrollorder v] by (1)\n    next costume\n    go to [front v] layer\nend\nforever\n    if <(nonspecificgoleft) = [1]> then\n        change [scrollvalue v] by (changeby)\n    end\n    if <(nonspecificgoright) = [1]> then\n        change [scrollvalue v] by ((changeby) * (-1))\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Scrollvalue) < [-3390]> then\n        set [scrollvalue v] to [-3390]\n    end\n    if <(Scrollvalue) > [60]> then\n        set [scrollvalue v] to [60]\n    end\nend\n\ndefine scroll\nforever\n    set x to ((Scrollvalue) + ((480) * (scrollorder)))\nend\n\nwhen flag clicked\nset [firstclone v] to [0]\ngo to x: (0) y: (-10)\ngo to [front v] layer\nswitch costume to (costume1 v)\nhide\ngo to [front v] layer\nset [scrollvalue v] to [0]\nset [scrollorder v] to [0]\n\n@Sprite6\n\nhide\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nwhen flag clicked\ngo to x: (-427) y: (1)\nset [goleft v] to [0]\nset [ghost v] effect to (100)\ngo to [front v] layer\nshow\nforever\n    if <key (left arrow v) pressed?> then\n        set [goleft v] to [1]\n    else\n        set [goleft v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    set [nonspecificgoleft v] to (goleft)\nend\n\nwhen I receive [message1 v]\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\n@Sprite7\n\nwhen flag clicked\ngo to x: (-4) y: (1)\nset [goright v] to [0]\ngo to [front v] layer\nset [ghost v] effect to (100)\nshow\nforever\n    if <key (right arrow v) pressed?> then\n        set [goright v] to [1]\n    else\n        set [goright v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    set [nonspecificgoright v] to (goright)\nend\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nhide\n\nwhen I receive [message1 v]\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\n@Sprite8\n\nwhen flag clicked\ngo [backward v] (4565465465) layers\n\nwhen flag clicked\nset [changeby v] to [4]\n\nwhen I start as a clone\nchange [clone test v] by (1)\nshow\ngo [backward v] (123321) layers\nforever\n    set x to (((Scrollvalue) / (4)) + ((480) * (backscrollorder)))\nend\n\nwhen flag clicked\nset [clone test v] to [0]\nset [backscrollvalue v] to [0]\nset [backscrollorder v] to [0]\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nhide\nrepeat (3)\n    create clone of (_myself_ v)\n    change [backscrollorder v] by (1)\n    next costume\nend\nforever\n    if <(nonspecificgoleft) = [1]> then\n        change [backscrollvalue v] by ((changeby) - (3))\n    end\n    if <(nonspecificgoright) = [1]> then\n        change [backscrollvalue v] by (((changeby) * (-1)) + (5))\n    end\nend\n\nbroadcast (message1 v)\n\n@Sprite2\n\nwhen flag clicked\nhide\n\n@Sprite5\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (-222) y: (163)\nset volume to (100) %\nstart sound [Sea Waves-SoundBible.com-946156036.mp3 v]\nshow\nforever\n    go to [front v] layer\n    go to [front v] layer\nend\n\nwhen flag clicked\nwait (3) seconds\nforever\n    play sound [bensound-love.mp3 v] until done\nend\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        next costume\n        wait (0.05) seconds\n        go to [front v] layer\n        go to [front v] layer\n    else\n        switch costume to (costume1 v)\n        go to [front v] layer\n        go to [front v] layer\n    end\nend\n\nwhen this sprite clicked\nif <(volume) = [0]> then\n    set volume to (100) %\n    go to [front v] layer\n    go to [front v] layer\nelse\n    set volume to (0) %\n    go to [front v] layer\n    go to [front v] layer\nend\n\nwhen I receive [message1 v]\ngo to x: (-171) y: (158)\n\n