Inconsistency || Platformer
@Stage\n\nwhen I receive [intro done v]\n\nwhen flag clicked\nswitch backdrop to (1 v)\n\nwhen flag clicked\n\nwhen I receive [play scene v]\nwait (3) seconds\nstop all sounds\nset volume to (50) %\nclear graphic effects\nforever\n    play sound (pick random (2) to (3)) until done\nend\n\nwhen I receive [play scene v]\nwait until <(Level) = [10]>\nset volume to (0) %\n\nclear graphic effects\n\nwhen flag clicked\nwait until <(Level) = [2]>\nswitch backdrop to (2 v)\nwait until <(Level) = [2]>\nswitch backdrop to (2 v)\nwait until <(Level) = [3]>\nswitch backdrop to (3 v)\nwait until <(Level) = [4]>\nswitch backdrop to (4 v)\nwait until <(Level) = [6]>\nswitch backdrop to (5 v)\nwait until <(Level) = [7]>\nswitch backdrop to (2 v)\n\nstop all sounds\nset volume to (50) %\n\nwait until <(Level) = [4]>\n\n@Intro\n\ndefine Particle (amount)\nrepeat (amount)\n    create clone of (_myself_ v)\nend\n\ndefine Smooth Glide To X: (x) Y: (y) Size: (size) Dir: (dir) & Speed: (speed) || Costume: (costume)\nrepeat until <<<(x position) = (x)> and <(y position) = (y)>> and <<(size) = (size)> and <(round (direction)) = (dir)>>>\n    switch costume to (pos hack v)\n    change x by (((x) - (x position)) / (speed))\n    change y by (((y) - (y position)) / (speed))\n    turn right (((dir) - (direction)) / (speed)) degrees\n    switch costume to (costume)\n    change size by (((size) - (size)) / (speed))\nend\n\nwhen flag clicked\nbroadcast (Intro v)\n\nwhen I start as a clone\nshow\nif <(id) = [1]> then\n    go to x: (0) y: (200)\n    Smooth Glide To X: [0] Y: [-240] Size: [100] Dir: [90] & Speed: [5] || Costume: [Stripe 1]\nelse\n    if <(id) = [2]> then\n        go to x: (0) y: (200)\n        Smooth Glide To X: [0] Y: [-240] Size: [100] Dir: [90] & Speed: [5] || Costume: [Stripe 2]\n    else\n        if <(id) = [3]> then\n            go to x: (0) y: (0)\n            switch costume to (logo v)\n            go to [front v] layer\n            show\n            point in direction (-45)\n            set [ghost v] effect to (100)\n            set size to (0) %\n            repeat (20)\n                change size by (((120) - (size)) / (5))\n                change [ghost v] effect by (-10)\n                turn right (((92) - (direction)) / (5)) degrees\n            end\n            repeat (23)\n                change size by (((100) - (size)) / (5))\n                change y by (((0) - (y position)) / (5))\n            end\n            wait (0.5) seconds\n            Smooth Glide To X: [0] Y: [40] Size: [100] Dir: [90] & Speed: [6] || Costume: [Logo]\n        else\n            if <(id) = [5]> then\n                go to [front v] layer\n                go to x: (0) y: (0)\n                Smooth Glide To X: [0] Y: [100] Size: [90] Dir: [90] & Speed: [5] || Costume: [Text]\n            else\n                if <(id) = [6]> then\n                    go to [front v] layer\n                    go to x: (0) y: (200)\n                    Smooth Glide To X: [0] Y: [-240] Size: [90] Dir: [90] & Speed: [5] || Costume: [Stripe 3]\n                else\n                    if <(id) = [7]> then\n                        go to [front v] layer\n                        go to x: (0) y: (200)\n                        Smooth Glide To X: [0] Y: [-240] Size: [90] Dir: [90] & Speed: [5] || Costume: [Stripe 4]\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I start as a clone\nif <(id) = [4]> then\n    show\n    switch costume to (particle v)\n    set [brightness v] effect to (0)\n    set [ghost v] effect to (100)\n    set [1 v] to (pick random (-15) to (15))\n    set [2 v] to (pick random (-15) to (15))\n    set [3 v] to (pick random (-50) to (50))\n    set size to (pick random (50) to (300)) %\n    go to x: (0) y: (0)\n    repeat (25)\n        go to [front v] layer\n        switch costume to (thing 1 v)\n        change [ghost v] effect by (-7.5)\n        set size to ((size) * (.9)) %\n        change x by (1)\n        change y by (2)\n        turn right (3) degrees\n        set [1 v] to ((1) * (0.9))\n        set [2 v] to ((2) * (0.9))\n        switch costume to (pick random (6) to (7))\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(id) = [4]> then\n    forever\n        change [yv v] by (-0.1)\n        change y by (YV)\n    end\nend\n\nwhen I receive [play scene v]\nif <(id) = [1]> then\n    delete this clone\nelse\n    if <(id) = [2]> then\n        delete this clone\n    else\n        if <(id) = [3]> then\n            delete this clone\n        else\n            if <(id) = [5]> then\n                delete this clone\n            else\n                if <(id) = [6]> then\n                    repeat (10)\n                        change [ghost v] effect by (10)\n                    end\n                    wait (0.5) seconds\n                    delete this clone\n                else\n                    if <(id) = [7]> then\n                        repeat (10)\n                            change [ghost v] effect by (10)\n                        end\n                        wait (0.5) seconds\n                        delete this clone\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [intro v]\nset volume to (100) %\nstart sound [Test v]\nwait (0.3) seconds\nset [id v] to [1]\nset [sequence # v] to [1]\ncreate clone of (_myself_ v)\nwait (0.3) seconds\nset [id v] to [2]\nset [sequence # v] to [2]\ncreate clone of (_myself_ v)\nwait (0.3) seconds\nset [id v] to [3]\nset [sequence # v] to [3]\ncreate clone of (_myself_ v)\nwait (1) seconds\nset [id v] to [4]\nset [sequence # v] to [4]\nParticle [20]\nwait (1) seconds\nset [id v] to [5]\nset [sequence # v] to [5]\ncreate clone of (_myself_ v)\nwait (2) seconds\nset [id v] to [6]\nset [sequence # v] to [6]\ncreate clone of (_myself_ v)\nwait (0.3) seconds\nset [id v] to [7]\nset [sequence # v] to [7]\ncreate clone of (_myself_ v)\nwait (5) seconds\nrepeat (100)\n    change volume by (-1)\nend\n\nbroadcast (Hide v)\n\nwhen I receive [hide v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nwait (0.5) seconds\ndelete this clone\n\nwhen I receive [intro v]\nwait (6.5) seconds\nbroadcast (Play Scene v)\n\nset volume to (100) %\n\n@Player\n\nwhen I receive [animation v]\nset size to (2) %\nrepeat (100)\n    change size by (((100) - (size)) / (10))\nend\n\nwhen I receive [move player v]\nchange x by (Move X)\nchange y by (Move Y)\n\nwhen I receive [move player v]\nif <not <touching (danger v)?>> then\n    change x by (Move X)\n    change y by (Move Y)\nend\n\nwhen flag clicked\nset [level v] to [0]\nset volume to (100) %\nset [deaths v] to [0]\nhide\n\ndefine Platformer Physics (speed) (friction) (jump height)\nif <(Can Move?) = [1]> then\n    Ground Touch <(Y Velocity) > [0]>\n    switch costume to (idle v)\n    if <not <touching (water v)?>> then\n        if <not <touching (ladders v)?>> then\n            if <(Gravity) = [1]> then\n                change [y velocity v] by (-1)\n            else\n                change [y velocity v] by (1)\n            end\n        end\n    end\n    if <touching (ladders v)?> then\n        Ladders\n    end\n    if <(STICK X) > [0.3]> then\n        change [x velocity v] by (speed)\n    end\n    if <(STICK X) < [-0.3]> then\n        change [x velocity v] by ((0) - (speed))\n    end\n    set [x velocity v] to ((X Velocity) * (friction))\n    change x by (X Velocity)\n    set [slope v] to [0]\n    if  then\n        repeat until <<not <<touching (level v)?> or <touching (coinlock v)?>>> or <(Slope) = [-8]>>\n            change [slope v] by (-1)\n            change y by (1)\n        end\n    end\n    if  then\n        change y by (Slope)\n        repeat until <not >\n            change x by ((0) - (([abs v] of (X Velocity) ) / (X Velocity)))\n        end\n        set [x velocity v] to [0]\n    end\n    change y by (Y Velocity)\n    if  then\n        repeat until <not >\n            change y by ((([abs v] of (Y Velocity) ) / (Y Velocity)) * (-1))\n        end\n        set [falling? v] to [-1]\n        set [y velocity v] to [0]\n    end\n    change y by (-1)\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <(STICK BUTTON) > [0]>> and <<<touching (level v)?> or <touching (coinlock v)?>> or <<touching (jumpplatform v)?> or <touching (jump through v)?>>>> then\n        if <(Jump) = [0]> then\n            set [falling? v] to [6]\n            set [jump v] to [1]\n            if <not <touching (water v)?>> then\n                if <(Gravity) = [1]> then\n                    set [y velocity v] to (jump height)\n                else\n                    set [y velocity v] to [-12.8]\n                end\n            end\n            if <(Falling?) < [7]> then\n                if <<touching (left v)?> or <touching (right v)?>> then\n                    start sound (pick random (34) to (36))\n                else\n                    start sound (pick random (27) to (33))\n                end\n            end\n        end\n    else\n        set [jump v] to [0]\n    end\n    change y by (1)\n    if <touching (water v)?> then\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <(STICK BUTTON) > [0]>> then\n            if <(Y Velocity) < [11]> then\n                change [y velocity v] by (0.8)\n            end\n        end\n        if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>> then\n            change [y velocity v] by (-0.8)\n        end\n        if <touching (water v)?> then\n            if <not <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>>> then\n                change [y velocity v] by (-0.1)\n            end\n        end\n    end\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (jump rings v)?>> then\n        set [y velocity v] to [13]\n    end\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (small jump rings v)?>> then\n        set [y velocity v] to [8]\n    end\n    if <not <touching (water v)?>> then\n        if <(Gravity) = [1]> then\n            if <(Y Velocity) > [0]> then\n                switch costume to (jump v)\n            end\n            if <(Y Velocity) < [-1]> then\n                switch costume to (fall v)\n            end\n        else\n            if <(Y Velocity) > [0]> then\n                switch costume to (fall v)\n            end\n            if <(Y Velocity) < [-1]> then\n                switch costume to (jump v)\n            end\n        end\n    end\nend\n\ndefine Detection\nif <<(x position) > [230]> and <not <(Level) = [7]>>> then\n    broadcast (Swich to black v)\n    broadcast (Create Clone v)\n    broadcast (Next v)\n    broadcast (Animation v)\n    broadcast (Start Keys v)\n    broadcast (Lock v)\n    broadcast (Reset orb v)\n    broadcast (Next Level v)\n    start sound [Checkpoint v]\n    set size to (100) %\n    set [level v] to ((Level) + (1))\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    Spawn Position\nend\nif <<<touching (danger v)?> or <<touching (saws v)?> or <<(y position) < [-170]> or >>> and <not <(CHEAT) = [1]>>> then\n    broadcast (Particles v)\n    broadcast (Lock v)\n    broadcast (Start Keys v)\n    broadcast (Animation v)\n    broadcast (Reset orb v)\n    broadcast (Next v)\n    start sound [Goofy sound effects v]\n    switch costume to (idle v)\n    if <<(Level) = []> or > then\n        broadcast (Reset v)\n    end\n    Respawn Position\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\nend\nif <touching (bouncy v)?> then\n    start sound [Big Boing v]\n    set [y velocity v] to [18]\nend\nif <touching (trampolines v)?> then\n    set [y velocity v] to [18]\nend\nif <(Can Move?) = [1]> then\n    if <(STICK X) < [-0.3]> then\n        point in direction (-90)\n    end\n    if <(STICK X) > [0.3]> then\n        point in direction (90)\n    end\nend\nif <touching (bounce part v)?> then\n    if <(Level) = [8]> then\n        set [y velocity v] to [18]\n    else\n        set [y velocity v] to [17.5]\n    end\n    start sound [spring v]\nend\nif <touching (left v)?> then\n    change [x velocity v] by (-1.1)\nend\nif <touching (right v)?> then\n    change [x velocity v] by (1.1)\nend\n\nwhen I receive [intro done v]\nset [speed? v] to [0]\nset [win? v] to [0]\nset [can move? v] to [1]\npoint in direction (90)\nset rotation style [left-right v]\nset size to (100) %\nset [cheat v] to [0]\nwait (0.1) seconds\nshow\nswitch costume to (idle v)\ngo to x: (-215) y: (-16)\nset [level v] to [1]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nset [gravity v] to [1]\nforever\n    if <touching (slippery v)?> then\n        Platformer Physics [2.2] [0.83] [14]\n        Detection\n    else\n        Platformer Physics [1.9] [0.8] [12.8]\n        Detection\n    end\n    Ground Touch <(Y Velocity) > [0]>\nend\n\nwhen flag clicked\nforever\n    Cheats Menu\nend\n\ndefine Cheats Menu\nif <<<key (1 v) pressed?> and <<(username) = [250119code2]> or <(username) = [250119test2]>>> and <not <(CHEAT) = [1]>>> then\n    set [cheat v] to [1]\n    wait (0.3) seconds\nelse\n    if <<key (1 v) pressed?> and <(CHEAT) = [1]>> then\n        set [cheat v] to [0]\n        wait (0.3) seconds\n    end\nend\nif <<key (up arrow v) pressed?> and <(CHEAT) = [1]>> then\n    set [y velocity v] to [8]\nend\nif <<key (down arrow v) pressed?> and <(CHEAT) = [1]>> then\n    set [y velocity v] to [-6]\nend\n\nwhen flag clicked\nforever\n    set [x v] to (round (x position))\n    set [y v] to (round (y position))\nend\n\nwhen I receive [restart v]\nbroadcast (Create Clone v)\nif <<(Level) = []> or > then\n    broadcast (Reset v)\nend\nstart sound [Crunch v]\nset [deaths v] to ((DEATHS) + (1))\ncreate clone of (_myself_ v)\npoint in direction (90)\ngo to x: (-215) y: (-60)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\nwhen I receive [transition v]\npoint in direction (90)\ngo to x: (-215) y: (-70)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\nwhen flag clicked\nforever\n    if <(username) = [250119code2]> then\nend\n\nwhen flag clicked\nforever\n    if <(username) = [250119code2]> then\nend\n\nwhen I receive [intro done v]\ngo to [front v] layer\n\nwhen flag clicked\nforever\n    wait until <touching (water v)?>\n    set [y velocity v] to ((Y Velocity) / (2))\n    wait until <not <touching (water v)?>>\nend\n\ngo [forward v] (1) layers\n\nwhen I receive [jump v]\nset [y velocity v] to [10]\n\nwhen I receive [intro done v]\nset [level v] to [1]\n\ndefine Respawn Position\nwait (0) seconds\nbroadcast (Animation v)\nset [speed? v] to [0]\nif  then\n    go to x: (-215) y: ((-16) + (30))\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif <<(Level) = [2]> or > then\n    go to x: (-215) y: ((0) + (30))\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif <<(Level) = [3]> or > then\n    go to x: (-215) y: (0)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif <<(Level) = [4]> or > then\n    go to x: (-215) y: (-63)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif <<(Level) = [5]> or > then\n    go to x: (-215) y: (0)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\n\ndefine Ladders\nif <touching (ladders v)?> then\n    if <touching (ladders v)?> then\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            if <not <touching (level v)?>> then\n                set [y velocity v] to [6.5]\n            end\n        end\n    end\n    if <touching (ladders v)?> then\n        if <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n            if <not <touching (level v)?>> then\n                set [y velocity v] to [-6.5]\n            end\n        end\n    end\nend\nif <not <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <[] = [1]>> or <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <[] = [1]>>>> then\n    set [y velocity v] to [0]\nend\n\ngo to x: (-215) y: (-55)\n\nwhen flag clicked\nforever\n    wait until <touching (low gravity v)?>\n    broadcast (Show Blue v)\n    wait until <not <touching (low gravity v)?>>\n    broadcast (Out v)\nend\n\ngo [forward v] (5) layers\n\nwhen flag clicked\nforever\n    wait until <touching (high gravity v)?>\n    broadcast (Show Red v)\n    wait until <not <touching (high gravity v)?>>\n    broadcast (Hide Red v)\nend\n\nwhen I receive [win v]\nhide\n\nwhen I receive [animation v]\nset size to (2) %\nrepeat (100)\n    change size by (((100) - (size)) / (10))\nend\n\nwhen flag clicked\nforever\n    wait until <touching (water v)?>\n    broadcast (Water v)\n    start sound [In Water v]\n    wait until <not <touching (water v)?>>\n    if <(x position) > [-215]> then\n        set [y velocity v] to [7.5]\n    end\nend\n\nstop all sounds\nplay sound [Drum Roll v] until done\nstart sound [Clash v]\nwait (0.65) seconds\nstart sound [Qualified v]\n\nstart sound [T7 v]\n\nwhen [space v] key pressed\n\nbroadcast (Particles v)\nbroadcast (Lock v)\nbroadcast (Start Keys v)\nbroadcast (Animation v)\nbroadcast (Reset orb v)\nbroadcast (Next v)\nstart sound [Respawn v]\nswitch costume to (idle v)\nif <<(Level) = []> or > then\n    broadcast (Reset v)\nend\nRespawn Position\nset size to (100) %\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\nwait (1) seconds\n\nwhen I receive [hide v]\ngo to x: (0) y: ((50) + (25))\npoint in direction (90)\nset size to (100) %\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\nhide\n\nwhen I receive [count v]\n\nshow\n\nwhen flag clicked\nwait until <touching (slime v)?>\nif <(Win?) = [0]> then\n    set [can move? v] to [0]\n    broadcast (GAME OVER v)\n    start sound (pick random (11) to (16))\n    start sound [Eliminated v]\n    wait (2) seconds\n    hide\nend\n\nwhen I receive [win v]\nstart sound [Qualified v]\nset [win? v] to [1]\n\nwhen I receive [game over v]\nhide\nset [lost v] to [1]\n\nwhen flag clicked\nset [lost v] to [0]\n\nwhen flag clicked\nforever\n    if <<<touching (right v)?> or <touching (left v)?>> and <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>>> then\n        play sound (pick random (20) to (25)) until done\n    end\nend\n\nif <touching (left v)?> then\n    change x by (-4.8)\nend\nif <touching (right v)?> then\n    change x by (4.8)\nend\n\nset [can move? v] to [1]\n\nset [can move? v] to [0]\n\nwhen I receive [be still v]\nswitch costume to (idle v)\n\nwhen I receive [speed up v]\n\nif <(Speed?) = [1]> then\n    Platformer Physics [2] [0.8] [14]\n    Detection\nend\n\nset size to (100) %\n\ndefine Spawn Position\nwait (0) seconds\nbroadcast (Animation v)\nset [speed? v] to [0]\nif  then\n    go to x: (-215) y: (-16)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif  then\n    go to x: (-215) y: (0)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif  then\n    go to x: (-215) y: (0)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif <<(Level) = [4]> or > then\n    go to x: (-215) y: (-60)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif  then\n    go to x: (-215) y: (0)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif  then\n    go to x: (-215) y: (25)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\nif  then\n    go to x: (-215) y: (25)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\n\ndefine Ground Touch <up?>\nchange [falling? v] by (1)\nif <touching (jump through v)?> then\n    if <<touching (jump through v)?> and <not <up?>>> then\n        set [slope v] to [0]\n        repeat until <<(Slope) > (([abs v] of (Y Velocity) ) + (2))> or <not <touching (jump through v)?>>>\n            change y by (1)\n            change [slope v] by (1)\n        end\n        if <not <touching (jump through v)?>> then\n            change y by ((0) - (round (Slope)))\n            repeat until <not <touching (jump through v)?>>\n                change y by (1)\n                switch costume to (idle v)\n                set [falling? v] to [0]\n                set [y velocity v] to [0]\n            end\n        else\n            if <(Slope) > (([abs v] of (Y Velocity) ) + (2))> then\n                change y by ((0) - (round (Slope)))\n            end\n        end\n    end\nend\n\nif <touching (jump through v)?> then\n    repeat until <not <touching (jump through v)?>>\n        change y by ((([abs v] of (Y Velocity) ) / (Y Velocity)) * (-1))\n    end\n    set [y velocity v] to [0]\nend\n\ndefine Jump\nchange y by (-1)\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <touching (jump through v)?>> then\n    set [falling? v] to [6]\n    set [jump v] to [1]\n    if <not <touching (water v)?>> then\n        set [y velocity v] to [12.8]\n    end\n    if <(Falling?) < [7]> then\n        start sound (pick random (27) to (33))\n        wait until <not <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <touching (jump through v)?>>>\n    end\nend\nchange y by (1)\n\nforever\n    Jump\nend\n\ndefine Gravity\nif <touching (gravityup v)?> then\n    start sound [Switch v]\n    set [gravity v] to [2]\n    wait until <not <touching (gravityup v)?>>\nend\nif <touching (gravitydown v)?> then\n    start sound [Switch v]\n    set [gravity v] to [1]\n    wait until <not <touching (gravitydown v)?>>\nend\n\nwhen flag clicked\nforever\n    Gravity\nend\n\n\n    go to x: (-215) y: (0)\n    point in direction (90)\n    set size to (100) %\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [gravity v] to [1]\nend\n\nwhen I receive [animation start v]\nhide\n\n@Level\n\nwhen flag clicked\nhide\n\ngo [backward v] (3) layers\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\nend\n\nwhen I receive [animation start v]\nhide\n\n@JumpPlatform\n\nwhen flag clicked\nhide\n\ngo [backward v] (3) layers\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\n    set [ghost v] effect to (100)\nend\n\nwhen I receive [animation start v]\nhide\n\n@Danger\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nshow\ngo to [back v] layer\ngo to [back v] layer\nforever\n    switch costume to (Level)\nend\n\ngo to [back v] layer\n\ngo [backward v] (1) layers\n\nwhen I receive [animation start v]\nhide\n\n@Jump Through\n\nwhen flag clicked\nhide\n\ngo [backward v] (3) layers\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\n    set [ghost v] effect to (100)\nend\n\nwhen I receive [animation start v]\nhide\n\n@GravityUp\n\nwhen flag clicked\nhide\n\ngo [backward v] (3) layers\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\nend\n\nwhen I receive [animation start v]\nhide\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        set [brightness v] effect to (100)\n        repeat (10)\n            change [brightness v] effect by (-10)\n        end\n        wait until <not <touching (player v)?>>\n    end\nend\n\n@GravityDown\n\nwhen flag clicked\nhide\n\ngo [backward v] (3) layers\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\nend\n\nwhen I receive [animation start v]\nhide\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        set [brightness v] effect to (100)\n        repeat (10)\n            change [brightness v] effect by (-10)\n        end\n        wait until <not <touching (player v)?>>\n    end\nend\n\n@Glow\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nshow\ngo to [back v] layer\nforever\n    switch costume to (Level)\nend\n\ngo [forward v] (4) layers\n\ngo to [back v] layer\n\nwhen I receive [animation start v]\nhide\n\n@Saws\n\nwhen flag clicked\nbroadcast (Next Level v)\n\ndefine Clone At X: (x) (y) At Size (size)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\nset size to (size) %\n\nwhen I receive [next level v]\nif  then\n    delete this clone\nend\nif <(Level) = [6]> then\n    Clone At X: [100] [-70] At Size [60]\nend\n\nwhen I start as a clone\npoint in direction (90)\ngo to [back v] layer\nset [move x v] to [0]\nset [move y v] to [0]\nshow\ngo [forward v] (12) layers\nforever\n    set [move x v] to ((Move X) * (0.9))\n    set [move y v] to ((Move Y) * (0.9))\n    change x by (Move X)\n    change y by (Move Y)\n    turn right ((Move X) * (2)) degrees\n    turn right ((Move Y) * (2)) degrees\nend\n\nturn right (4) degrees\n\nClone At X: [0] [0] At Size [100]\n\nwhen I start as a clone\nforever\n    if <<(Level) = [4]> or <<(Level) = [6]> or >> then\n        turn right (5) degrees\n    end\nend\n\nwhen I receive [intro done v]\nif  then\n    delete this clone\nend\n\nif <(Level) = [1]> then\n    Clone At X: [-122] [130] At Size [100]\nend\n\nbroadcast (Next Level v)\n\nforever\n    repeat (38)\n        set [move y v] to [-3]\n    end\n    wait (0.8) seconds\n    repeat (38)\n        set [move y v] to [3]\n    end\n    wait (0.8) seconds\nend\n\n@Front Deco\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nshow\nforever\n    switch costume to (Level)\nend\n\ngo to [front v] layer\n\nwhen I receive [animation start v]\nhide\n\ngo to [front v] layer\n\ngo [backward v] (20) layers\n\n@FakeLevel\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (ShakeX) y: (ShakeY)\n    switch costume to (Level)\nend\n\nwhen I receive [intro done v]\nforever\nend\n\nwait (pick random (10) to (15)) seconds\nrepeat (10)\n    set [shakex v] to (pick random (-2) to (2))\n    set [shakey v] to (pick random (-2) to (2))\nend\nset [shakex v] to [0]\nset [shakey v] to [0]\n\nwhen I receive [intro done v]\nforever\n    if <touching (player v)?> then\n        change [ghost v] effect by (16)\n    else\n        change [ghost v] effect by (-10)\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nforever\n    go [forward v] (5) layers\nend\n\nwhen I receive [show v]\nclear graphic effects\nstop [all v]\n\ngo [forward v] (5) layers\n\nwhen I receive [intro done v]\n\n@TITLE\n\nwhen flag clicked\nset [screen v] to [1]\ngo [backward v] (99) layers\nhide\n\nwhen I receive [play scene v]\ngo [forward v] (4) layers\nforever\n    if <(SCREEN) = [1]> then\n        change [titleturn v] by (1)\n    end\n    if <(SCREEN) = [1]> then\n        show\n    else\n        hide\n    end\n    if <(SCREEN) = [0]> then\n        go [backward v] (6) layers\n    end\nend\n\n@Water\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nshow\nforever\n    set y to (([sin v] of ((timer) * (100)) ) * (5))\n    set [ghost v] effect to (55)\n    switch costume to (Level)\nend\n\nwhen I receive [intro done v]\nshow\nwait (5) seconds\nwait until <(Level) = [9]>\nwait (2) seconds\nrepeat (29)\n    go [forward v] (1) layers\nend\n\ngo [forward v] (10) layers\n\nrepeat (29)\n    go [forward v] (5) layers\nend\n\nwhen I receive [animation start v]\nhide\n\n@Transitions\n\nwhen I receive [died v]\n\ncreate clone of (_myself_ v)\n\ndefine thing\nswitch costume to (hax v)\nset size to (size) %\nchange size by (((4100) - (size)) / (4))\nset [size v] to (size)\nswitch costume to (thing v)\n\ndefine other thing\nswitch costume to (hax v)\nset size to (size) %\nchange size by (((410) - (size)) / (6))\nset [size v] to (size)\nswitch costume to (weird thing v)\n\nwhen flag clicked\nhide\nforever\n    go to [front v] layer\n    go to [front v] layer\nend\n\nwhen I start as a clone\nset [transition> v] to [1]\ngo to x: (0) y: (0)\nset size to (0) %\nshow\nset [size v] to [100]\nrepeat until <(size) > [4080]>\n    thing\nend\nset size to (10) %\nset [size v] to [10]\nrepeat until <(size) > [400]>\n    other thing\nend\nhide\nbroadcast (Move v)\nset [transition> v] to [0]\ndelete this clone\n\n@Ladders\n\nwhen I receive [intro done v]\nshow\ngo to [back v] layer\ngo to x: (0) y: (0)\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nhide\n\n@next\n\nwhen I receive [next level v]\n\ngo to [front v] layer\nswitch costume to (pick random (1) to (2))\nset [ghost v] effect to (-100)\ngo to [front v] layer\nshow\ngo to x: (550) y: (0)\nrepeat (20)\n    change x by (((x position) - (0)) / (-5))\nend\nwait (0.5) seconds\nrepeat (20)\n    change x by (((x position) - (-550)) / (-5))\nend\nwait (0) seconds\nset [ghost v] effect to (15)\nwait (0) seconds\nset [ghost v] effect to (40)\ngo to [front v] layer\nwait (0) seconds\nset [ghost v] effect to (75)\nwait (0) seconds\nset [ghost v] effect to (90)\ngo to [front v] layer\nwait (0) seconds\nset [ghost v] effect to (100)\ngo to [front v] layer\n\nstart sound [Next v]\n\nwhen flag clicked\nhide\n\n@Play Button\n\nwhen I receive [play scene v]\nshow\nwait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <not <(IN) = [1]>>>\nset [screen v] to [0]\nstart sound [Selected v]\nbroadcast (Transition v)\nbroadcast (Intro Done v)\nbroadcast (Next v)\n\nwhen I receive [play scene v]\nforever\n    if <touching (mouse-pointer v)?> then\n        if <<(SCREEN) = [1]> and <<not <(IN) = [1]>> and <not <(IN2) = [1]>>>> then\n            set volume to (100) %\n            start sound [Hover v]\n            wait until <not <touching (mouse-pointer v)?>>\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [play scene v]\nset [screen v] to [1]\nshow\nforever\n    if <(SCREEN) = [1]> then\n        show\n    else\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        change size by (((80) - (size)) / (5))\n        set [brightness v] effect to (5)\n        switch costume to (costume2 v)\n    else\n        change size by (((75) - (size)) / (5))\n        set [brightness v] effect to (0)\n        switch costume to (costume1 v)\n    end\nend\n\nwhen I receive [animation start v]\n\n@Instructions\n\nwhen I receive [play scene v]\nset [in v] to [0]\nshow\nwait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <not <(IN) = [1]>>>\nbroadcast (IN v)\n\nwhen I receive [play scene v]\nforever\n    if <touching (mouse-pointer v)?> then\n        if <<(SCREEN) = [1]> and <<not <(IN) = [1]>> and <not <(IN2) = [1]>>>> then\n            set volume to (100) %\n            start sound [Hover v]\n            wait until <not <touching (mouse-pointer v)?>>\n        end\n    end\nend\n\nwhen flag clicked\nset [screen v] to [1]\nhide\n\nwhen I receive [play scene v]\nshow\nforever\n    if <(SCREEN) = [1]> then\n        show\n    else\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        change size by (((80) - (size)) / (5))\n        switch costume to (costume3 v)\n        set [brightness v] effect to (5)\n        if <mouse down?> then\n            if <(IN) = [0]> then\n                broadcast (IN v)\n                set [in v] to [1]\n            end\n        end\n    else\n        switch costume to (costume1 v)\n        change size by (((75) - (size)) / (5))\n        set [brightness v] effect to (0)\n    end\nend\n\n@Credits\n\nwhen I receive [play scene v]\nset [in2 v] to [0]\nshow\nwait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <not <(IN2) = [1]>>>\nbroadcast (IN v)\n\nwhen I receive [play scene v]\nforever\n    if <touching (mouse-pointer v)?> then\n        if <<(SCREEN) = [1]> and <<not <(IN) = [1]>> and <not <(IN2) = [1]>>>> then\n            set volume to (100) %\n            start sound [Hover v]\n            wait until <not <touching (mouse-pointer v)?>>\n        end\n    end\nend\n\nwhen flag clicked\nset [screen v] to [1]\nhide\n\nwhen I receive [play scene v]\nshow\nforever\n    if <(SCREEN) = [1]> then\n        show\n    else\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        change size by (((80) - (size)) / (5))\n        switch costume to (costume3 v)\n        set [brightness v] effect to (5)\n        if <mouse down?> then\n            if <(IN2) = [0]> then\n                broadcast (IN2 v)\n                set [in2 v] to [1]\n            end\n        end\n    else\n        switch costume to (costume1 v)\n        change size by (((75) - (size)) / (5))\n        set [brightness v] effect to (0)\n    end\nend\n\n@Transition\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\nwhen I receive [transition v]\ngo to [front v] layer\nset [ghost v] effect to (0)\nwait (.2) seconds\nrepeat (20)\n    go to [front v] layer\n    change [ghost v] effect by (5)\nend\n\n@CreditsButton\n\nwhen flag clicked\nset [in2 v] to [0]\nhide\n\nwhen I receive [in2 v]\nset [in2 v] to [1]\nif <(SCREEN) = [1]> then\n    show\n    clear graphic effects\n    set size to (10) %\n    go to [front v] layer\n    repeat (20)\n        go to [front v] layer\n        change size by (((100) - (size)) / (5))\n    end\n    wait until <<mouse down?> and <touching (mouse-pointer v)?>>\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    hide\n    set [in2 v] to [0]\nend\n\nwhen flag clicked\nforever\n    if <(IN2) = [0]> then\n        go [backward v] (5) layers\n    end\nend\n\n@title screen\n\nwhen flag clicked\nset [screen v] to [0]\nset [in v] to [0]\nhide\n\nwhen I receive [in v]\nset [in v] to [1]\nif <(SCREEN) = [1]> then\n    show\n    clear graphic effects\n    set size to (10) %\n    go to [front v] layer\n    repeat (20)\n        go to [front v] layer\n        change size by (((100) - (size)) / (5))\n    end\n    wait until <<mouse down?> and <touching (mouse-pointer v)?>>\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    hide\n    set [in v] to [0]\nend\n\nwhen flag clicked\nforever\n    if <(IN) = [0]> then\n        go [backward v] (5) layers\n    end\nend\n\n@Message\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\nswitch backdrop to (1 v)\n\nwhen I receive [intro done v]\n\nwhen I receive [intro done v]\nwait until <(Level) = [2]>\n\nswitch costume to (2 v)\nbroadcast (Be still v)\nset [can move? v] to [0]\nwait (1) seconds\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-16)\nend\nwait (0.8) seconds\nwait until <<key (any v) pressed?> or <mouse down?>>\nset [can move? v] to [1]\nrepeat (10)\n    change [ghost v] effect by (16)\nend\n\ngo to x: (0) y: (-10)\nset [can move? v] to [0]\nwait (0.5) seconds\nswitch backdrop to (1 v)\nshow\nset [ghost v] effect to (100)\nswitch backdrop to (1 v)\nrepeat (10)\n    change [ghost v] effect by (-16)\n    switch backdrop to (1 v)\nend\nwait (0.8) seconds\nwait until <<key (any v) pressed?> or <mouse down?>>\nset [can move? v] to [1]\nrepeat (10)\n    change [ghost v] effect by (16)\nend\n\n@Particle\n\ndefine Particle (amount)\nrepeat (amount)\n    set [clone id v] to [Particle]\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nshow\nif <(Clone ID) = [Particle]> then\n    switch costume to (particle v)\n    set [brightness v] effect to (0)\n    set [ghost v] effect to (20)\n    set [a v] to (pick random (-15) to (15))\n    set [b v] to (pick random (-15) to (15))\n    set [c v] to (pick random (-50) to (50))\n    set size to (pick random (100) to (150)) %\n    repeat (25)\n        go to [front v] layer\n        switch costume to (size hack  v)\n        change [ghost v] effect by (0)\n        set size to ((size) * (0.9)) %\n        change x by (a)\n        change y by (b)\n        turn right (c) degrees\n        set [a v] to ((a) * (0.85))\n        set [b v] to ((b) * (0.85))\n        switch costume to (particle v)\n    end\n    delete this clone\nend\n\nwhen I receive [particles v]\n\nif  then\n    delete this clone\nend\ngo to (player v)\nParticle [40]\n\n@Slippery\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nshow\ngo to x: (0) y: (0)\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\n    set [ghost v] effect to (100)\nend\n\ngo [backward v] (3) layers\n\nwhen I receive [animation start v]\nhide\n\nwhen I receive [intro done v]\nforever\n    wait until <touching (player v)?>\n    broadcast (Speed Up v)\n    wait until <not <touching (player v)?>>\nend\n\nbroadcast (Speed Up v)\n\n@Stick\n\nwhen flag clicked\nforever\n    hide\nend\n\ndefine Keyboard controls\nset [stick x v] to <<key (right arrow v) pressed?> or <key (d v) pressed?>>\nchange [stick x v] by ((0) - <<key (left arrow v) pressed?> or <key (a v) pressed?>>)\nset [stick y v] to <<key (up arrow v) pressed?> or <key (w v) pressed?>>\nchange [stick y v] by ((0) - <<key (down arrow v) pressed?> or <key (s v) pressed?>>)\nif <key (space v) pressed?> then\n    change [stick button v] by (1)\nelse\n    set [stick button v] to [0]\nend\n\ndefine Stick Activated\nswitch costume to (ready v)\ncreate clone of (_myself_ v)\nswitch costume to (stick v)\ncreate clone of (_myself_ v)\nswitch costume to (base active v)\nset [stick button v] to []\nrepeat until <(distance to [mouse-pointer v]) > ((size) * (1.5))>\n    Detect Stick Movement\n    Detect Stick Button\nend\nbroadcast (Deactivate stick v)\n\ndefine Detect Stick Movement\nset [stick x v] to (((mouse x) - (x position)) / (range))\nset [stick y v] to (((mouse y) - (y position)) / (range))\nif <([abs v] of (STICK X) ) > [1]> then\n    set [stick x v] to ((STICK X) / ([abs v] of (STICK X) ))\nend\nif <([abs v] of (STICK Y) ) > [1]> then\n    set [stick y v] to ((STICK Y) / ([abs v] of (STICK Y) ))\nend\n\ndefine Detect Stick Button\nif <mouse down?> then\n    if <(STICK BUTTON) > []> then\n        change [stick button v] by (1)\n    end\nelse\n    set [stick button v] to [0]\nend\n\nwhen I receive [deactivate stick v]\ndelete this clone\n\nwhen I start as a clone\nif <(costume [name v]) = [Stick]> then\n    go [forward v] (1) layers\n    set [ghost v] effect to (0)\n    forever\n        go to (stick v)\n        change x by ((STICK X) * (range))\n        change y by ((STICK Y) * (range))\n    end\nend\ngo to x: (170) y: (-110)\nwait until <not <mouse down?>>\nswitch costume to (base active v)\nforever\n    if <mouse down?> then\n        set [ghost v] effect to (25)\n    else\n        set [ghost v] effect to (75)\n    end\nend\n\nwhen I receive [intro done v]\nwait (1) seconds\nhide\nwait until <mouse down?>\nshow\ngo to [front v] layer\nset size to (80) %\nset [ghost v] effect to (80)\nset [range v] to ((size) / (2.5))\nforever\n    switch costume to (base v)\n    go to x: (-170) y: (-110)\n    repeat until <not <mouse down?>>\n        Keyboard controls\n    end\n    repeat until <mouse down?>\n        Keyboard controls\n    end\n    if <(distance to [mouse-pointer v]) < (size)> then\n        Stick Activated\n    end\nend\n\nwhen flag clicked\nforever\n    Keyboard controls\nend\n\n@Shine\n\nwhen flag clicked\nbroadcast (Next Level v)\n\ndefine Clone At X: (x) (y) At Size (size)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\nset size to (size) %\n\nwhen I receive [next level v]\nif  then\n    delete this clone\nend\nif <(Level) = [3]> then\n    Clone At X: [-111] [-35] At Size [100]\n    Clone At X: [147] [58] At Size [100]\nend\n\nwhen I start as a clone\npoint in direction (90)\ngo to [back v] layer\nset [move x v] to [0]\nset [move y v] to [0]\nshow\ngo [forward v] (12) layers\nforever\n    turn right (2) degrees\nend\n\nwhen I receive [intro done v]\nif  then\n    delete this clone\nend\nif <(Level) = [2]> then\n    Clone At X: [-111] [-35] At Size [100]\n    Clone At X: [147] [58] At Size [100]\nend\n\nbroadcast (Next Level v)\n\n@Sprite1\n\nwhen flag clicked\ngo to x: (128) y: (145)\nforever\n    go to [front v] layer\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [intro done v]\nhide\nforever\n    switch costume to (pick random (1) to (4))\n    wait (pick random (0) to (2)) seconds\n    show\n    set [ghost v] effect to (100)\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    wait (2) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\nend\n\n@Charpy Detector\n\nwhen flag clicked\nforever\n    if <(username) = [theCharpy]> then\n        change [☁ charpydetector v] by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(username) = [250119code2]> then\n    else\n    end\nend\n\nset [☁ charpydetector v] to [0]\n\nshow variable [☁ charpydetector v]\n\nhide variable [☁ charpydetector v]\n\n
Wleocme to the best platformer on scratch!\nUse the arrow keys to move\nGo to the right side of the screen to BEAT the LEVEL!\nI spent 200+ hours working on this\n\n13/01/2023 Update:\n• Things have been changed\n• Changes have been made to things\n• More specifically, in game changes\n• These changes change things