Century || A Platformer || 100 levels

Instructions: No hate, but I’m open to feedback.\nPlease don’t post things like “too easy”. Post things that I or other people actually might care about.\nCharacter might appear distorted or glitched. I don’t know why.\nMy first platformer. Hope you like it. \n100% possible, but really hard\nEvery level is about the same, but it gets a little harder after each one. Thanks to @Ziyu3 for the engine. I edited it a lot.\nIf you beat this, wow\n\nFirst 30 Winners: \n@DragonTamer2124\n@katiebobby\n@ArtCollex\n@Sickz_\n@DX3V\n@hhhhhhhhhhlll\n@28reedt\n@Jaxprogrammer\n@burnttoast312\n@In_War_Dont_BotherMe\n@DRAGONLORES\n@NoobUncleProductions\n@Molly76543\n@a_big_boy_L\n@LionCoder10\n@Cats_Are_Amazing__\n@Battlecatguy926\n@Coolggcoo\n@toadydog\n@gabeth\n@catboi_2020\n@Battler2021\n@margol387\n@Waterburrer\n@unknown2467\n@animalscratcher555\n@crystaltj\n@Gushaw\n@FernMann01\n@PlaykietheGamer\n

@Stage\n\nwhen flag clicked\nforever\n    play sound [music v] until done\nend\n\n@Player\n\nwhen flag clicked\nbroadcast (del v)\nset [yv v] to [0]\nset [xv v] to [0]\nset [level v] to [1]\nswitch costume to (ball v)\nset size to (50) %\npoint in direction (90)\nshow\nset [ghost v] effect to (0)\ngo to x: (-211) y: (0)\nforever\n    omega\nend\n\ndefine omega\nif <not <touching (sprite1 v)?>> then\n    switch costume to (join [ball] (<key (right arrow v) pressed?> + (<key (left arrow v) pressed?> * (-1))))\n    change [xv v] by ((<key (left arrow v) pressed?> * (-3)) + (<key (right arrow v) pressed?> * (3)))\nend\nset [xv v] to ((Xv) * (0.7))\nchange x by (Xv)\ndetect slope: (8) (15) (13)\nchange [yv v] by (-1)\nchange y by (Yv)\nif <touching (sprite1 v)?> then\n    out2 <(Yv) > [0]>\nend\nchange y by (-1)\nif <<touching (sprite1 v)?> and <<key (up arrow v) pressed?> or <key (space v) pressed?>>> then\n    start sound [Jump v]\n    set [yv v] to [15]\nend\nif <touching (sprite4 v)?> then\n    set [yv v] to [18]\nend\nchange y by (1)\nif <<touching (death v)?> or <(y position) < [-178]>> then\n    go to x: (-220) y: (0)\n    point in direction (90)\n    set [yv v] to [0]\n    set [xv v] to [0]\nend\nif <(x position) > [239]> then\n    change [level v] by (1)\n    hide\n    go to x: (-220) y: (0)\n    point in direction (90)\n    set [yv v] to [0]\n    set [xv v] to [0]\n    broadcast (message1 v) and wait\n    show\nend\n\nwhen I receive [del v]\ndelete this clone\n\ndefine out <boolean1>\nset [i v] to [0]\nif <boolean1> then\n    repeat until <<not <touching (sprite1 v)?>> or <(i) > [8]>>\n        change [i v] by (1)\n        change x by (-1)\n    end\nelse\n    if <[0] > (Xv)> then\n        repeat until <<not <touching (sprite1 v)?>> or <(i) > [8]>>\n            change [i v] by (1)\n            change x by (1)\n        end\n    end\nend\n\ndefine out2 <boolean1>\nset [i v] to [0]\nif <boolean1> then\n    repeat until <<not <touching (sprite1 v)?>> or <(i) > [24]>>\n        change [i v] by (1)\n        change y by (-1)\n    end\n    set [yv v] to [-1]\nelse\n    repeat until <<not <touching (sprite1 v)?>> or <(i) > [24]>>\n        change [i v] by (1)\n        change y by (1)\n    end\n    set [yv v] to [0]\nend\n\ndefine detect slope: (maxslope) (walljump) (jumpheight)\nset [i v] to [0]\nrepeat until <<(i) > (maxslope)> or <not <touching (sprite1 v)?>>>\n    change [i v] by (1)\n    change y by (1)\nend\nset [i2 v] to (i)\nif <touching (sprite1 v)?> then\n    out <(Xv) > [0]>\n    change y by ((0) - (i2))\n    if <<key (up arrow v) pressed?> or <key (space v) pressed?>> then\n        start sound [Jump v]\n        if <(Xv) > [0]> then\n            set [xv v] to ((0) - (walljump))\n        else\n            set [xv v] to (walljump)\n        end\n        set [yv v] to (jumpheight)\n    else\n        set [xv v] to [0]\n    end\nend\n\n@Sprite1\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\n\nwhen I receive [message1 v]\nswitch costume to (join [costume] (level))\n\n@Death\n\nwhen flag clicked\ngo to [front v] layer\nshow\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\n\nwhen I receive [message1 v]\nswitch costume to (join [costume] (level))\n\n@Sprite4\n\nwhen flag clicked\ngo [backward v] (0) layers\nwait (0) seconds\ngo to [front v] layer\nshow\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\n\nwhen I receive [message1 v]\nswitch costume to (join [costume] (level))\n\n@Sprite2\n\nwhen flag clicked\nforever\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\n    go to x: (0) y: (0)\nend\n\n