Minecraft Platformer 4

Instructions: New NinjaRun™ game is out!\n3RD] https://scratch.mit.edu/projects/361869605/\nV2Pin] Check this regularly for updates. ↓↓↓↓↓↓↓↓↓↓↓\n1] ↓↓↓↓↓↓↓↓↓↓↓\nAfter all of those dozens of  comments on NinjaRun™, I listened and finally made NinjaRun 2™! PART 3 OUT!\n2] ↓↓↓↓↓↓↓↓↓↓↓\n\nNote: This is my platforming engine, I made this from scratch, and used my own.

@Stage\n\nwhen flag clicked\nset [level v] to [1]\n\nwhen flag clicked\nforever\n    switch backdrop to (Level)\nend\n\nwhen flag clicked\nset volume to (100) %\nstart sound [bensound-dubstep v]\n\nwhen I receive [end v]\nrepeat (50)\n    change volume by (-2)\nend\nstop all sounds\nset volume to (100) %\nrepeat (10)\n    play sound [Alan Walker - Force v] until done\nend\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\nstop all sounds\nset volume to (100) %\nrepeat (10)\n    play sound [Jim Yosef - Firefly \[NCS Release\] v] until done\nend\n\n@Blank\n\n@Intro\n\ndefine SmoothMove (x) (y) (dir) (size) (butteriness)\nrepeat until <<(round (x position)) = (x)> and <<(round (y position)) = (y)> and <<(round (direction)) = (dir)> and <(round (size)) = (size)>>>>\n    change x by (((x) - (x position)) / (butteriness))\n    change y by (((y) - (y position)) / (butteriness))\n    turn right (((dir) - (direction)) / (butteriness)) degrees\n    change size by (((size) - (size)) / (butteriness))\nend\n\nwhen flag clicked\nhide\nreset timer\nReset\nMakeClone [Wall1]\nMakeClone [Wall2]\nwait (0.75) seconds\nMakeClone [Pierce]\nwait (0.5) seconds\nMakeClone [Logo]\nwait (2.3) seconds\nMakeClone [W]\nwait (0.1) seconds\nMakeClone [o]\nwait (0.1) seconds\nMakeClone [r]\nwait (0.1) seconds\nMakeClone [k]\nwait (0.1) seconds\nMakeClone [s]\nwait (0.1) seconds\nMakeClone [h]\nwait (0.1) seconds\nMakeClone [o2]\nwait (0.1) seconds\nMakeClone [p]\nwait (0.1) seconds\nMakeClone [X]\nwait (3) seconds\nMakeClone [End]\n\ndefine Reset\ndelete this clone\n\ndefine MakeClone (id)\nset [cloneid v] to (id)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(CloneID) = [Wall1]> then\n    set size to (100) %\n    point in direction (90)\n    go to x: (0) y: (180)\n    show\n    switch costume to (wall1 v)\n    SmoothMove (x position) [0] (direction) (size) [10]\n    wait until <[11] < (timer)>\n    SmoothMove (x position) [150] (direction) (size) [5]\n    broadcast (Menu v)\n    broadcast (END v)\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [Wall2]> then\n    set size to (100) %\n    point in direction (90)\n    go to x: (0) y: (-180)\n    show\n    switch costume to (wall2 v)\n    SmoothMove (x position) [0] (direction) (size) [10]\n    wait until <[11] < (timer)>\n    SmoothMove (x position) [-150] (direction) (size) [5]\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [Pierce]> then\n    point in direction (90)\n    show\n    switch costume to (pierce v)\n    set size to (500) %\n    go to x: (-500) y: (0)\n    set size to (100) %\n    SmoothMove [0] (y position) (direction) (size) [2.5]\n    wait until <[7.5] < (timer)>\n    repeat until <(round (x position)) = [500]>\n        set size to (500) %\n        change x by (((500) - (x position)) / (2.5))\n        set size to (100) %\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [Logo]> then\n    set size to (25) %\n    point in direction (90)\n    go to x: (0) y: (180)\n    show\n    switch costume to (logo v)\n    SmoothMove (x position) [0] (direction) [100] [2.5]\n    repeat (4)\n        Particles [50]\n        wait (0.35) seconds\n    end\n    set [y v] to [12.5]\n    repeat (5)\n        turn right (6) degrees\n    end\n    repeat until <touching (_edge_ v)?>\n        change x by (7.5)\n        change y by (y)\n        change [y v] by (-1)\n    end\n    delete this clone\nend\n\ndefine Particles (amount)\nset [cloneid v] to [Parts]\nrepeat (amount)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(CloneID) = [Parts]> then\n    go to [front v] layer\n    set [ghost v] effect to (35)\n    set size to (pick random (50) to (85)) %\n    point in direction (90)\n    go to x: (pick random (-25) to (25)) y: (pick random (-25) to (25))\n    show\n    switch costume to (pick random (5) to (7))\n    set [py v] to (pick random (10.0) to (12.5))\n    set [px v] to (pick random (-10) to (10))\n    set [pd v] to (pick random (-15) to (15))\n    repeat until <touching (_edge_ v)?>\n        change x by (px)\n        change y by (py)\n        turn right (pd) degrees\n        change [py v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [W]> then\n    set size to (25) %\n    show\n    go to x: (-107) y: (-180)\n    switch costume to (w v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [o]> then\n    set size to (25) %\n    show\n    go to x: (-75) y: (-180)\n    switch costume to (o v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [r]> then\n    set size to (25) %\n    show\n    go to x: (-50) y: (-180)\n    switch costume to (r v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [k]> then\n    set size to (25) %\n    show\n    go to x: (-25) y: (-180)\n    switch costume to (k v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [s]> then\n    set size to (25) %\n    show\n    go to x: (0) y: (-180)\n    switch costume to (s v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [h]> then\n    set size to (25) %\n    show\n    go to x: (25) y: (-180)\n    switch costume to (h v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [o2]> then\n    set size to (25) %\n    show\n    go to x: (50) y: (-180)\n    switch costume to (o2 v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [p]> then\n    set size to (25) %\n    show\n    go to x: (75) y: (-180)\n    switch costume to (p v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [X]> then\n    set size to (25) %\n    show\n    go to x: (107) y: (-180)\n    switch costume to (x v)\n    point in direction (180)\n    SmoothMove (x position) [0] [90] [100] [3.5]\n    wait (1.5) seconds\n    set [ly v] to [13.5]\n    repeat until <touching (_edge_ v)?>\n        change x by (-6)\n        change y by (ly)\n        change [ly v] by (-1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(CloneID) = [End]> then\n    clear graphic effects\n    set size to (5) %\n    go to x: (0) y: (250)\n    show\n    switch costume to (end v)\n    SmoothMove (x position) [0] [90] [125] [7.5]\n    wait (1) seconds\n    repeat (25)\n        change [ghost v] effect by (4)\n    end\n    delete this clone\nend\n\n@Player\n\ndefine Platform (jump height) (gravity) (friction) (running speed)\nswitch costume to (still v)\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    switch costume to (moving right&left v)\n    change [x velocity v] by (running speed)\nend\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    switch costume to (moving left v)\n    change [x velocity v] by ((running speed) * (-1))\nend\nset [x velocity v] to ((X Velocity) * (friction))\nchange x by (X Velocity)\nif <<touching (level v)?> or <touching (edgecollisionbug v)?>> then\n    set [slope v] to [0]\n    repeat until <<(Slope) = [8]> or <not <<touching (level v)?> or <touching (edgecollisionbug v)?>>>>\n        change [slope v] by (1)\n        change y by (1)\n    end\n    if <<touching (level v)?> or <touching (edgecollisionbug v)?>> then\n        change y by ((Slope) * (-1))\n        repeat ([ceiling v] of ([abs v] of (X Velocity) ) )\n            if <<touching (level v)?> or <touching (edgecollisionbug v)?>> then\n                change x by ((([abs v] of (X Velocity) ) / (X Velocity)) * (-1))\n            end\n        end\n    end\n    if <<<mouse down?> and <(mouse y) > (y position)>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n        if <(x position) > [-215]> then\n            set [y velocity v] to [10]\n            if <(X Velocity) > [0]> then\n                set [x velocity v] to [-15]\n            else\n                set [x velocity v] to [15]\n            end\n        else\n            set [x velocity v] to [0]\n        end\n    end\nend\nchange y by (Y Velocity)\nif <<touching (level v)?> or <touching (edgecollisionbug v)?>> then\n    repeat ([ceiling v] of ([abs v] of (Y Velocity) ) )\n        if <<touching (level v)?> or <touching (edgecollisionbug v)?>> then\n            change y by ((([abs v] of (Y Velocity) ) / (Y Velocity)) * (-1))\n        end\n    end\n    if <<(([abs v] of (Y Velocity) ) / (Y Velocity)) = [-1]> and <<<mouse down?> and <(mouse y) > (y position)>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>>> then\n        set [y velocity v] to (jump height)\n    else\n        set [y velocity v] to [0]\n    end\nelse\n    change [y velocity v] by (-1)\nend\nNext Level Or Restart Level\nif <touching (receive elemental powers!! v)?> then\n    broadcast (Receive elemental powers!! v)\nend\n\nwhen flag clicked\nif <(Level) = [9]> then\n    broadcast (Go front v)\nend\n\nwhen I receive [go front v]\ngo to x: (-218) y: (60)\n\nwhen I receive [play game v]\nif <(Play) = [play]> then\n    show\n    set [timer v] to [0]\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    broadcast (Player To level placement v)\n    \n        \n            Platform (11.5) (-1) (0.7) (3)\n            Looks\n            Dead?\n        end\n    end\nelse\n    stop [other scripts in sprite v]\nend\n\nwhen I start as a clone\ngo to [back v] layer\nclear graphic effects\nswitch costume to (trails  v)\nrepeat (10)\n    go to [back v] layer\n    change [ghost v] effect by (10)\n    change size by (-1.5)\nend\ndelete this clone\n\ndefine Looks\nif <<mouse down?> or <<<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>>> then\n    if <<<mouse down?> and <(mouse y) > (y position)>> or <<<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>> and <<key (up arrow v) pressed?> or <key (w v) pressed?>>>> then\n        if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            switch costume to (jumpingright&left v)\n            point in direction (90)\n        end\n        if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n            switch costume to (jumpingright&left v)\n            point in direction (-90)\n        end\n    else\n        if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            switch costume to (moving right&left v)\n            point in direction (90)\n        end\n        if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n            switch costume to (moving right&left v)\n            point in direction (-90)\n        end\n        if <<<mouse down?> and <(mouse y) > (y position)>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n            switch costume to (jumping v)\n        end\n    end\nelse\n    switch costume to (still v)\nend\nset size to (30) %\n\ndefine Restart Level\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nbroadcast (Player To level placement v)\n\ndefine Next Level Or Restart Level\nif <key (r v) pressed?> then\n    Restart Level\nend\nif <key (n v) pressed?> then\n    if <(Speedrun Mode) = [Off]> then\n        if <not <[cannotskiplevel v] contains (Level)?>> then\n            if <(Timer) = [0]> then\n                Next level\n                change [level v] by (1)\n                wait (0.1) seconds\n                set [timer v] to [15]\n                broadcast (Timer v)\n                broadcast (Player To level placement v)\n            end\n        else\n            broadcast (Cannot skip level v)\n        end\n    else\n        broadcast (Cannot skip level v)\n    end\nend\n\nwhen I receive [timer v]\nrepeat until <(Timer) < [1]>\n    wait (1) seconds\n    change [timer v] by (-1)\nend\n\ndefine Dead?\nif <<<touching (spikes v)?> or <touching (lava v)?>> or <<touching (saws v)?> or <(y position) < [-170]>>> then\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    broadcast (Dead v)\n    broadcast (Enemy Moves v)\n    broadcast (Player To level placement v)\nelse\n    if <touching (enemy v)?> then\n        if <(EnemyDead?) = [0]> then\n            set [x velocity v] to [0]\n            set [y velocity v] to [0]\n            broadcast (Dead v)\n            broadcast (Enemy Moves v)\n            broadcast (Player To level placement v)\n        end\n    end\nend\n\ndefine Next level\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nbroadcast (Player To level placement v)\nbroadcast (NEXT LEVEL v)\n\nwhen I receive [player to level placement v]\nif <<(Level) = [16]> or <<(Level) = [17]> or <(Level) = [24]>>> then\n    go to x: (-220) y: (150)\n    clear graphic effects\nelse\n    if <(Level) = [4]> then\n        go to x: (-220) y: (150)\n        clear graphic effects\n    else\n        go to x: (-215) y: (60)\n        clear graphic effects\n    end\n    stop [this script v]\nend\nstop [this script v]\n\nwhen flag clicked\nhide\ndelete all of [cannotskiplevel v]\nadd [4] to [cannotskiplevel v]\n\nwhen I receive [play game v]\nforever\n    if <not <[cannotskiplevel v] contains (Level)?>> then\n        if <(x position) > [230]> then\n            broadcast (NEXT LEVEL v)\n            change [level v] by (1)\n            wait (0.2) seconds\n            set [x velocity v] to [0]\n            set [y velocity v] to [0]\n        end\n    end\nend\n\nwhen I receive [stop player v]\nif <(Speedrun Mode) = [Off]> then\n    repeat (50)\n        if <<(Level) = [16]> or <<(Level) = [17]> or <(Level) = [24]>>> then\n            go to x: (-220) y: (150)\n            clear graphic effects\n        else\n            if <(Level) = [4]> then\n                go to x: (-220) y: (150)\n                clear graphic effects\n            else\n                go to x: (-215) y: (60)\n                clear graphic effects\n            end\n        end\n    end\n    wait (0.08) seconds\nend\nif <<(Level) = [16]> or <<(Level) = [17]> or <(Level) = [24]>>> then\n    go to x: (-220) y: (150)\n    clear graphic effects\nelse\n    if <(Level) = [4]> then\n        go to x: (-220) y: (150)\n        clear graphic effects\n    else\n        go to x: (-215) y: (60)\n        clear graphic effects\n    end\nend\nstop [this script v]\n\nwhen I receive [play game v]\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I receive [next level v]\nbroadcast (Player To level placement v)\n\nwhen I receive [next level v]\nbroadcast (Player To level placement v)\n\nwhen I receive [win v]\ngo to x: (0) y: (0)\nstop [other scripts in sprite v]\n\n@Level\n\ndefine Next Level\ngo to x: (0) y: (0)\nswitch costume to (Level)\n\nwhen flag clicked\ngo [backward v] (2) layers\n\nwhen I receive [play game v]\nforever\n    Next Level\nend\n\nwhen flag clicked\ndelete all of [high ground v]\nadd [15] to [high ground v]\nadd [16] to [high ground v]\nadd [17] to [high ground v]\nadd [24] to [high ground v]\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\n\nwhen I receive [next level v]\nbroadcast (Player To level placement v)\n\nwhen I receive [next level v]\nbroadcast (Player To level placement v)\n\n@Thumnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nclear graphic effects\nswitch costume to (tn v)\nset size to (100) %\nset [ghost v] effect to (100)\nforever\n    set [stop detector v] to ((timer) + (0.1))\nend\n\nwhen I receive [win v]\nbroadcast (Win2 v)\nstop [this script v]\n\nwhen I receive [play game v]\nforever\n    broadcast (Set up Enemy v)\nend\n\nwhen [timer v] > (Stop Detector)\ngo to x: (0) y: (0)\nswitch costume to (tn v)\nset [ghost v] effect to (100)\nshow\ngo to [front v] layer\nclear graphic effects\nset size to (100) %\nshow\ngo to [front v] layer\nrepeat (10)\n    go to [front v] layer\n    change [ghost v] effect by (-10)\nend\n\nwhen I start as a clone\nforever\n    if <(cloneid) = [2]> then\n        forever\n            glide (1) secs to x: (60) y: (150)\n            wait (10) seconds\n            glide (1) secs to x: (60) y: (80)\n            wait (5) seconds\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(cloneid) = [1]> then\n        set [ghost v] effect to (150)\n        repeat (15)\n            change [ghost v] effect by (-10)\n        end\n        stop [this script v]\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(cloneid) = [3]> then\n        forever\n            glide (0.8) secs to x: (-315) y: (5)\n            glide (0.8) secs to x: (-315) y: (0)\n        end\n    end\nend\n\nwhen I receive [win2 v]\ngo to [front v] layer\nshow\ngo to x: (0) y: (0)\nswitch costume to (win screen v)\nset [cloneid v] to [1]\ncreate clone of (_myself_ v)\nswitch costume to (follow v)\nclear graphic effects\ngo to x: (121) y: (-180)\nset [cloneid v] to [2]\ncreate clone of (_myself_ v)\nswitch costume to (love&fav v)\nclear graphic effects\ngo to x: (0) y: (0)\nset [cloneid v] to [3]\ncreate clone of (_myself_ v)\nhide\n\n@Spikes\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (20) y: (-26)\ngo [backward v] (28) layers\nforever\n    switch costume to (Level)\nend\n\n@Cloud/Snow\n\nwhen I start as a clone\nif <(Cloneid) = [cloud]> then\n    hide\n    go to [back v] layer\n    set [speed v] to (pick random (-4.5) to (-5.5))\n    set [brightness v] effect to (pick random (-2) to (2))\n    set size to (pick random (95) to (105)) %\n    go to x: (225) y: (pick random (80) to (170))\n    repeat until <(x position) < [-225]>\n        change x by (speed)\n    end\n    repeat (55)\n        change [ghost v] effect by (8)\n    end\n    delete this clone\nend\n\nwhen I receive [play game v]\nhide\nif <(Level) < [16]> then\n    forever\n        wait (pick random (pick random (1) to (1.5)) to (pick random (1.6) to (2.1))) seconds\n        set [ghost v] effect to (pick random (20) to (50))\n        switch costume to (pick random (1) to (2))\n        set [cloneid v] to [cloud]\n        create clone of (_myself_ v)\n    end\nelse\n    broadcast (Snow v)\nend\n\nwhen I receive [snow v]\nstop [other scripts in sprite v]\ngo to [back v] layer\nhide\nset [ghost v] effect to (100)\nforever\n    clear graphic effects\n    go to (random position v)\n    set y to (200)\n    switch costume to (snow v)\n    set [cloneid v] to [snow]\n    create clone of (_myself_ v)\n    wait (0.25) seconds\nend\n\nwhen I start as a clone\nshow\ngo to [back v] layer\nclear graphic effects\nif <(Cloneid) = [snow]> then\n    forever\n        change x by (pick random (-1) to (1))\n        change y by (-2.5)\n        if <<(y position) < [-170]> or <<touching (fake v)?> or <<<touching (level v)?> or <<touching (spikes v)?> or <touching (saws v)?>>> or <touching (lava v)?>>>> then\n            delete this clone\n        end\n    end\nend\n\nwhen I start as a clone\nif <(Cloneid) = [snow]> then\n    repeat (5)\n        change [ghost v] effect by (-10)\n    end\n    repeat (5)\n        change [ghost v] effect by (10)\n    end\nend\n\nwhen I receive [level transition done v]\nif <(Level) < [16]> then\n    go to [back v] layer\n    stop [this script v]\nelse\n    if <(Level) = [17]> then\n        broadcast (Snow v)\n    end\nend\n\nwhen flag clicked\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\n\n@Lava\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\ngo [backward v] (1) layers\nswitch costume to (1 v)\nforever\n    set [ghost v] effect to (0)\n    set [brightness v] effect to (0)\n    set y to (([cos v] of ((timer) * (150)) ) * (5))\nend\n\nwhen I receive [next level v]\ngo [backward v] (1) layers\nswitch costume to (Level)\n\n@Text\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo [backward v] (6) layers\n\nwhen I receive [play game v]\nshow\ngo to x: (0) y: (0)\nforever\n    switch costume to (Level)\nend\n\n@Gem\n\nwhen flag clicked\nhide\n\nwhen I receive [receive elemental powers!! v]\nhide\nstop [other scripts in sprite v]\n\nwhen I receive [level transition done v]\nif <(Level) > [4]> then\n    hide\nelse\n    forever\n        show\n        switch costume to (fire gem v)\n        go to [front v] layer\n        go to (player v)\n        change x by (([direction v] of [player v]) / (4.5))\n    end\nend\n\nwhen I receive [next level v]\nhide\nstop [other scripts in sprite v]\n\nwhen I receive [level transition done v]\nforever\n    if <(Level) = [28]> then\n        go to x: (200) y: (146)\n        show\n        switch costume to (ice gem v)\n        if <touching (player v)?> then\n            broadcast (Add data to board v)\n            broadcast (Win v)\n        end\n    else\n        hide\n        stop [this script v]\n    end\nend\n\n@Menu\n\nwhen flag clicked\npoint in direction (90)\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [menu v]\nshow\ncreate clone of (_myself_ v)\n\nwhen I receive [play game v]\nhide\n\nwhen I start as a clone\nswitch costume to (costume2 v)\ngo to [front v] layer\ngo to x: (0) y: (140)\nshow\npoint in direction (90)\nforever\n    point in direction (([sin v] of ((timer) * (500)) ) + (90))\nend\n\nwhen I receive [instructions  v]\ndelete this clone\n\nwhen I receive [leaderboard board v]\ndelete this clone\n\n@Play\n\nwhen I start as a clone\nif <(Clone ID) = [Instructions_B]> then\n    forever\n        if <touching (mouse-pointer v)?> then\n            change size by (((120) - (size)) / (3))\n            set [brightness v] effect to (20)\n            point in direction (([sin v] of ((timer) * (350)) ) + (90))\n            if <mouse down?> then\n                wait until <not <mouse down?>>\n                broadcast (Delete And Hide v)\n                broadcast (Instructions  v)\n            end\n        else\n            point in direction (90)\n            set size to ((size) + (((100) - (size)) / (3))) %\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\nwhen flag clicked\nset [play v] to []\ngo to x: (0) y: (35)\nhide\n\nwhen I receive [menu v]\nbroadcast (Delete Timer nums v)\nif <(Play) = [not]> then\n    wait (0) seconds\nend\nshow\nclear graphic effects\nswitch costume to (speedrun v)\ngo to x: (0) y: (-40)\nset [clone id v] to [speedrun_B]\ncreate clone of (_myself_ v)\nset [clone id v] to [Instructions_B]\nswitch costume to (instructions v)\ngo to x: (195) y: (-145)\ncreate clone of (_myself_ v)\nset [clone id v] to [Play_B]\nswitch costume to (play with story mode v)\ngo to x: (0) y: (45)\ncreate clone of (_myself_ v)\nswitch costume to ( v)\n\nwhen I start as a clone\nif <(Clone ID) = [speedrun_B]> then\n    forever\n        if <touching (mouse-pointer v)?> then\n            change size by (((120) - (size)) / (3))\n            set [brightness v] effect to (20)\n            point in direction (([sin v] of ((timer) * (350)) ) + (90))\n            if <mouse down?> then\n                wait until <not <mouse down?>>\n                set [speedrun mode v] to [On]\n                set [play v] to [play]\n                broadcast (Delete And Hide v)\n                broadcast (Play game v)\n            end\n        else\n            point in direction (90)\n            set size to ((size) + (((100) - (size)) / (3))) %\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\nwhen I receive [delete and hide v]\nhide\ndelete this clone\n\nwhen I receive [instructions  v]\nshow\nset [clone id v] to [Instructions]\nset [ghost v] effect to (100)\ngo to x: (400) y: (0)\nswitch costume to (instructions board v)\nset [play v] to [not]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone ID) = [Instructions]> then\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    glide (1) secs to x: (0) y: (0)\n    forever\n        point in direction (([sin v] of ((timer) * (150)) ) + (90))\n        if <mouse down?> then\n            wait until <not <mouse down?>>\n            set [play v] to [not]\n            wait (0.1) seconds\n            broadcast (Delete And Hide v)\n            broadcast (Menu v)\n            stop [this script v]\n        end\n    end\nend\n\nwhen I start as a clone\nif <(Clone ID) = [Play_B]> then\n    forever\n        if <touching (mouse-pointer v)?> then\n            set size to ((size) + (((120) - (size)) / (3))) %\n            set [brightness v] effect to (20)\n            point in direction (([cos v] of ((timer) * (350)) ) + (90))\n            if <mouse down?> then\n                wait until <not <mouse down?>>\n                set [speedrun mode v] to [Off]\n                set [play v] to [play]\n                broadcast (Play game v)\n                broadcast (Delete And Hide v)\n                stop [this script v]\n            end\n        else\n            point in direction (90)\n            set size to ((size) + (((100) - (size)) / (3))) %\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\n@Saws\n\nwhen I receive [play game v]\nshow\n\nwhen I receive [next level v]\nhide\nshow\n\nwhen I receive [play game v]\nforever\n    change [rotate v] by (1)\n    point in direction ((90) + (([sin v] of ((Rotate) * (2)) ) * (300)))\n    if <(Level) = [1]> then\n        Position [-110] [-120]\n    end\n    if <(Level) = [2]> then\n        Position [0] [-65]\n    else\n        hide\n    end\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [saw layer v]\ngo to [back v] layer\n\nwhen I receive [play game v]\nbroadcast (Saw Layer v)\n\n@Fire\n\nwhen I start as a clone\ngo to (player v)\nset rotation style [left-right v]\npoint in direction ([direction v] of [player v])\nclear graphic effects\nshow\nrepeat until \n    move (13) steps\nend\nhide\ndelete this clone\n\nwhen I start as a clone\nforever\n    if <touching (enemy v)?> then\n        if <(EnemyDead?) = [0]> then\n            wait (0.01) seconds\n            delete this clone\n        end\n    end\nend\n\nwhen I start as a clone\n\n    \n        if <touching (enemy v)?> then\n            wait (0.01) seconds\n            delete this clone\n        end\n    end\nend\n\nwhen I receive [dead v]\ndelete this clone\n\nwhen I receive [receive elemental powers!! v]\ngo to [back v] layer\nhide\nforever\n    if <<key (space v) pressed?> or <<(Mobile shoot) = [1]> and <mouse down?>>> then\n        create clone of (_myself_ v)\n        wait until <not <<key (space v) pressed?> or <<(Mobile shoot) = [0]> and <mouse down?>>>>\n        wait (0.3) seconds\n    end\nend\n\n@Mobile control for fire\n\nwhen flag clicked\nset [mobile shoot v] to [0]\ngo to x: (0) y: (0)\nswitch costume to (hitbox v)\ngo to [front v] layer\nset [ghost v] effect to (100)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [mobile shoot v] to [1]\n    else\n        set [mobile shoot v] to [0]\n    end\nend\n\n@Enemy\n\nwhen flag clicked\nhide\n\nwhen I receive [enemy moves v]\nif <(Level) = [2]> then\n    broadcast (Delete Enemy Clones v)\n    Direction [10] X [200] Y [100]\n    set [clonefix v] to [1]\n    Clone at [200] [100]\nelse\n    if <(Level) = [5]> then\n        broadcast (Delete Enemy Clones v)\n        Direction [10] X [200] Y [100]\n        set [clonefix v] to [1]\n        Clone at [200] [100]\n        set [clonefix v] to [2]\n        Clone at [150] [100]\n    else\n        if <(Level) = [9]> then\n            go to x: (200) y: (50)\n            broadcast (Delete Enemy Clones v)\n            Direction [10] X [200] Y [100]\n            set [clonefix v] to [1]\n            Clone at [200] [50]\n        else\n            if <(Level) = [11]> then\n                go to x: (200) y: (50)\n                broadcast (Delete Enemy Clones v)\n                Direction [10] X [200] Y [100]\n                set [clonefix v] to [1]\n                Clone at [200] [100]\n                set [clonefix v] to [2]\n                Clone at [150] [100]\n            else\n                if <(Level) = [12]> then\n                    broadcast (Delete Enemy Clones v)\n                    Direction [10] X [200] Y [100]\n                    set [clonefix v] to [1]\n                    Clone at [200] [100]\n                else\n                    if <(Level) = [13]> then\n                        broadcast (Delete Enemy Clones v)\n                        Direction [10] X [200] Y [100]\n                        set [clonefix v] to [1]\n                        Clone at [200] [100]\n                        set [clonefix v] to [2]\n                        Clone at [150] [100]\n                    else\n                        if <(Level) = [21]> then\n                            broadcast (Delete Enemy Clones v)\n                            Direction [10] X [200] Y [100]\n                            set [clonefix v] to [1]\n                            Clone at [200] [100]\n                            set [clonefix v] to [2]\n                            Clone at [150] [100]\n                        else\n                            hide\n                            set [ghost v] effect to (100)\n                            go to x: (200) y: (100)\n                            set [clonefix v] to []\n                            set [xv\(enemy\) v] to [0]\n                            set [yv\(enemy\) v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Touch Ground <something above>\nset [enemydead? v] to [0]\nchange [enemy in air? v] by (1)\nif <touching (level v)?> then\n    repeat until <not <touching (level v)?>>\n        if <something above> then\n            change y by (-1)\n        else\n            change y by (1)\n            set [enemy in air? v] to [0]\n        end\n    end\n    set [yv\(enemy\) v] to [0]\nend\nif <touching (danger detection for enemy v)?> then\n    if <(enemy in air?) < [4]> then\n        set [yv\(enemy\) v] to [15]\n        set [xv\(enemy\) v] to [-7]\n    end\nend\n\ndefine Enemy Physics (value)\nchange [xv\(enemy\) v] by (value)\nset [xv\(enemy\) v] to ((xv\(enemy\)) * (0.88))\nchange x by (xv\(enemy\))\nif <touching (level v)?> then\n    change x by ((0) - (xv\(enemy\)))\n    if <(xv\(enemy\)) > [0]> then\n        set [xv\(enemy\) v] to [-5]\n    else\n        set [xv\(enemy\) v] to [5]\n    end\n    set [yv\(enemy\) v] to [12]\nend\nif <<<touching (fire v)?> or <touching (spikes v)?>> or <<touching (saws v)?> or <touching (lava v)?>>> then\n    set [enemydead? v] to [1]\n    repeat (20)\n        change [ghost v] effect by (5)\n        change y by (2)\n        turn right (5) degrees\n    end\n    hide\n    delete this clone\nend\n\nwhen I receive [start v]\nbroadcast (Enemy Moves v)\nstop [other scripts in sprite v]\n\nwhen I receive [next level v]\nif <(Speedrun Mode) = [Off]> then\n    wait (2) seconds\nend\nbroadcast (Delete Enemy Clones v)\nbroadcast (Enemy Moves v)\nstop [this script v]\n\nwhen I receive [play game v]\nbroadcast (Enemy Moves v)\nbroadcast (Delete Enemy Clones v)\n\nwhen I receive [dead v]\nset [ghost v] effect to (100)\nhide\n\nwhen I receive [enemy moves v]\n\ndefine Direction (di) X (x) Y (y)\nshow\npoint in direction (di)\nset [xv\(enemy\) v] to [0]\nset [yv\(enemy\) v] to [0]\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\ndefine Clone at (x) (y)\ngo to x: (x) y: (y)\nclear graphic effects\nshow\ncreate clone of (_myself_ v)\nhide\n\nwhen I receive [play game v]\ndelete this clone\n\nwhen I start as a clone\nif <(Clonefix) = [1]> then\n    clear graphic effects\n    repeat (3)\n        point in direction (0)\n    end\n    repeat (9)\n        turn right (10) degrees\n    end\n    forever\n        change [yv\(enemy\) v] by (-1)\n        change y by (yv\(enemy\))\n        Touch Ground <(yv\(enemy\)) > [0]>\n        if <([x position v] of [player v]) > (x position)> then\n            Enemy Physics [0.55]\n        else\n            Enemy Physics [-0.55]\n        end\n        if <<<touching (fire v)?> or <touching (spikes v)?>> or <<touching (saws v)?> or <touching (lava v)?>>> then\n            broadcast (Dead v)\n            broadcast (Delete Enemy Clones v)\n        end\n    end\nend\n\nwhen I receive [delete enemy clones v]\ndelete this clone\n\nwhen I start as a clone\nif <(Clonefix) = [2]> then\n    clear graphic effects\n    repeat (3)\n        point in direction (0)\n    end\n    repeat (9)\n        turn right (10) degrees\n    end\n    forever\n        change [yv\(enemy\) v] by (-1)\n        change y by (yv\(enemy\))\n        Touch Ground <(yv\(enemy\)) > [0]>\n        if <([x position v] of [player v]) > (x position)> then\n            Enemy Physics [0.55]\n        else\n            Enemy Physics [-0.55]\n        end\n        if <<<touching (fire v)?> or <touching (spikes v)?>> or <<touching (saws v)?> or <touching (lava v)?>>> then\n            broadcast (Dead v)\n            broadcast (Delete Enemy Clones v)\n        end\n    end\nend\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\n\n@EdgeCollisionBug\n\nwhen I receive [receive elemental powers!! v]\nchange [level v] by (1)\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo [backward v] (1) layers\nset [level v] to [1]\n\nwhen I receive [play game v]\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\nend\n\n@Fake\n\nwhen I receive [level transition done v]\nclear graphic effects\nif <(Level) = [20]> then\n    switch costume to (fake1 v)\n    show\n    forever\n        if <touching (player v)?> then\n            set [ghost v] effect to (50)\n        else\n            set [ghost v] effect to (0)\n        end\n    end\nelse\n    if <(Level) = [25]> then\n        switch costume to (fake3 v)\n        show\n        forever\n            if <touching (player v)?> then\n                set [ghost v] effect to (50)\n            else\n                set [ghost v] effect to (0)\n            end\n        end\n    else\n        if <(Level) = [27]> then\n            switch costume to (fake2 v)\n            show\n            forever\n                if <touching (player v)?> then\n                    set [ghost v] effect to (50)\n                else\n                    set [ghost v] effect to (0)\n                end\n            end\n        else\n            hide\n            stop [this script v]\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [dead v]\nif <<<(Level) = [20]> or <(Level) = [25]>> or <(Level) = [27]>> then\n    clear graphic effects\n    show\n    go to x: (0) y: (0)\nelse\n    hide\nend\n\nwhen I receive [next level v]\nbroadcast (Player To level placement v)\n\nchange [level v] by (-1)\n\n@Danger detection for enemy\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\nwhen I receive [level transition done v]\nswitch costume to (Level)\n\n@Cloud Top Speedruns\n\nwhen flag clicked\nSetup DATA [abcdefghijklmnopqrstuvwxyz1234567890-=\[\];'#,./<>?:@~{}+_\)\(*&^%$£"]\nforever\n    set [# v] to [1]\n    Get (☁ Cloud 1) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 1) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (1) of [top speedruns v])>> then\n        replace item (1) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 2) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 2) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (2) of [top speedruns v])>> then\n        replace item (2) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 3) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 3) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (3) of [top speedruns v])>> then\n        replace item (3) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 4) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 4) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (4) of [top speedruns v])>> then\n        replace item (4) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 5) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 5) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (5) of [top speedruns v])>> then\n        replace item (5) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 6) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 6) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (6) of [top speedruns v])>> then\n        replace item (6) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 7) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 7) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (7) of [top speedruns v])>> then\n        replace item (7) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 8) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 8) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (8) of [top speedruns v])>> then\n        replace item (8) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 9) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 9) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (9) of [top speedruns v])>> then\n        replace item (9) of [top speedruns v] with (Comparison)\n    end\n    set [# v] to [1]\n    Get (☁ Cloud 10) from data\n    set [comparison v] to (Outputted value)\n    Get (☁ Cloud 10) from data\n    set [comparison v] to (join (Comparison) (join [ - ] (Outputted value)))\n    if <not <(Comparison) = (item (10) of [top speedruns v])>> then\n        replace item (10) of [top speedruns v] with (Comparison)\n    end\nend\n\ndefine Get (value) from data\nset [outputted value v] to []\nforever\n    set [letters v] to (join (letter (#) of (value)) (letter ((#) + (1)) of (value)))\n    if <(Letters) < [1]> then\n        change [# v] by (2)\n        stop [this script v]\n    end\n    set [outputted value v] to (join (Outputted value) (item (Letters) of [data v]))\n    change [# v] by (2)\nend\n\ndefine Setup DATA (chars)\ndelete all of [data v]\nrepeat (9)\n    add [] to [data v]\nend\nset [# v] to [1]\nrepeat (length of (chars))\n    add (letter (#) of (chars)) to [data v]\n    change [# v] by (1)\nend\n\ndefine Turn (score) into data\nset [# v] to [1]\nrepeat (length of (score))\n    set [letters v] to (item # of (letter (#) of (score)) in [data v])\n    set [data v] to (join (DATA) (Letters))\n    change [# v] by (1)\nend\nset [data v] to (join (DATA) [00])\n\ndefine Add DATA to leaderboard\nset [data v] to []\nTurn (username) into data\nTurn (Speedrun Timer) into data\n\ndefine Reset\nset [data v] to []\nTurn [WorkshopX] into data\nTurn [10:45:9] into data\nset [☁ cloud 10 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 9 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 8 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 7 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 6 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 5 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 4 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 3 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 2 v] to (DATA)\nwait (0.1) seconds\nset [☁ cloud 1 v] to (DATA)\nstop [this script v]\n\nwhen I receive [play game v]\nset [minutes v] to [0]\nset [milliseconds v] to [0]\nset [seconds v] to [0]\nforever\n    if <(Speedrun Mode) = [On]> then\n        if <(Milliseconds) = [9]> then\n            set [milliseconds v] to [0]\n        else\n            wait (0.0985) seconds\n            change [milliseconds v] by (1)\n        end\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [play game v]\nforever\n    if <(Speedrun Mode) = [On]> then\n        if <(Seconds) = [60]> then\n            change [minutes v] by (1)\n            set [seconds v] to [0]\n        else\n            wait (0.984) seconds\n            change [seconds v] by (1)\n            if <<(Seconds) < [10]> or <(Seconds) = [0]>> then\n                set [seconds v] to (join [0] (Seconds))\n            end\n        end\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [play game v]\nif <(Speedrun Mode) = [On]> then\n    forever\n        set [speedrun timer v] to (join (Minutes) (join (join [:] (Seconds)) (join [:] (Milliseconds))))\n    end\nelse\n    stop [this script v]\nend\n\nwhen I receive [add data to board v]\n\nwhen I receive [win v]\nbroadcast (Add data to board v)\nbroadcast (Add data to board v)\n\nwhen flag clicked\nshow list [top speedruns v]\n\nwhen I receive [win2 v]\nbroadcast (Add data to board v)\nbroadcast (Add data to board v)\n\ndefine DATA ADDED\nhide list [top speedruns v]\nAdd DATA to leaderboard\nset [# v] to [1]\nGet (☁ Cloud 1) from data\nGet (☁ Cloud 1) from data\nif <(Speedrun Timer) < (Outputted value)> then\n    set [☁ cloud 10 v] to (☁ Cloud 9)\n    wait (0.1) seconds\n    set [☁ cloud 9 v] to (☁ Cloud 8)\n    wait (0.1) seconds\n    set [☁ cloud 8 v] to (☁ Cloud 7)\n    wait (0.1) seconds\n    set [☁ cloud 7 v] to (☁ Cloud 6)\n    wait (0.1) seconds\n    set [☁ cloud 6 v] to (☁ Cloud 5)\n    wait (0.1) seconds\n    set [☁ cloud 5 v] to (☁ Cloud 4)\n    wait (0.1) seconds\n    set [☁ cloud 4 v] to (☁ Cloud 3)\n    wait (0.1) seconds\n    set [☁ cloud 3 v] to (☁ Cloud 2)\n    wait (0.1) seconds\n    set [☁ cloud 2 v] to (☁ Cloud 1)\n    wait (0.1) seconds\n    set [☁ cloud 1 v] to (DATA)\nelse\n    set [# v] to [1]\n    Get (☁ Cloud 2) from data\n    Get (☁ Cloud 2) from data\n    if <(Speedrun Timer) < (Outputted value)> then\n        set [☁ cloud 10 v] to (☁ Cloud 9)\n        wait (0.1) seconds\n        set [☁ cloud 9 v] to (☁ Cloud 8)\n        wait (0.1) seconds\n        set [☁ cloud 8 v] to (☁ Cloud 7)\n        wait (0.1) seconds\n        set [☁ cloud 7 v] to (☁ Cloud 6)\n        wait (0.1) seconds\n        set [☁ cloud 6 v] to (☁ Cloud 5)\n        wait (0.1) seconds\n        set [☁ cloud 5 v] to (☁ Cloud 4)\n        wait (0.1) seconds\n        set [☁ cloud 4 v] to (☁ Cloud 3)\n        wait (0.1) seconds\n        set [☁ cloud 3 v] to (☁ Cloud 2)\n        wait (0.1) seconds\n        set [☁ cloud 2 v] to (DATA)\n    else\n        set [# v] to [1]\n        Get (☁ Cloud 3) from data\n        Get (☁ Cloud 3) from data\n        if <(Speedrun Timer) < (Outputted value)> then\n            set [☁ cloud 10 v] to (☁ Cloud 9)\n            wait (0.1) seconds\n            set [☁ cloud 9 v] to (☁ Cloud 8)\n            wait (0.1) seconds\n            set [☁ cloud 8 v] to (☁ Cloud 7)\n            wait (0.1) seconds\n            set [☁ cloud 7 v] to (☁ Cloud 6)\n            wait (0.1) seconds\n            set [☁ cloud 6 v] to (☁ Cloud 5)\n            wait (0.1) seconds\n            set [☁ cloud 5 v] to (☁ Cloud 4)\n            wait (0.1) seconds\n            set [☁ cloud 4 v] to (☁ Cloud 3)\n            wait (0.1) seconds\n            set [☁ cloud 3 v] to (DATA)\n        else\n            set [# v] to [1]\n            Get (☁ Cloud 4) from data\n            Get (☁ Cloud 4) from data\n            if <(Speedrun Timer) < (Outputted value)> then\n                set [☁ cloud 10 v] to (☁ Cloud 9)\n                wait (0.1) seconds\n                set [☁ cloud 9 v] to (☁ Cloud 8)\n                wait (0.1) seconds\n                set [☁ cloud 8 v] to (☁ Cloud 7)\n                wait (0.1) seconds\n                set [☁ cloud 7 v] to (☁ Cloud 6)\n                wait (0.1) seconds\n                set [☁ cloud 6 v] to (☁ Cloud 5)\n                wait (0.1) seconds\n                set [☁ cloud 5 v] to (☁ Cloud 4)\n                wait (0.1) seconds\n                set [☁ cloud 4 v] to (DATA)\n            else\n                set [# v] to [1]\n                Get (☁ Cloud 5) from data\n                Get (☁ Cloud 5) from data\n                if <(Speedrun Timer) < (Outputted value)> then\n                    set [☁ cloud 10 v] to (☁ Cloud 9)\n                    wait (0.1) seconds\n                    set [☁ cloud 9 v] to (☁ Cloud 8)\n                    wait (0.1) seconds\n                    set [☁ cloud 8 v] to (☁ Cloud 7)\n                    wait (0.1) seconds\n                    set [☁ cloud 7 v] to (☁ Cloud 6)\n                    wait (0.1) seconds\n                    set [☁ cloud 6 v] to (☁ Cloud 5)\n                    wait (0.1) seconds\n                    set [☁ cloud 5 v] to (DATA)\n                else\n                    set [# v] to [1]\n                    Get (☁ Cloud 6) from data\n                    Get (☁ Cloud 6) from data\n                    if <(Speedrun Timer) < (Outputted value)> then\n                        set [☁ cloud 10 v] to (☁ Cloud 9)\n                        wait (0.1) seconds\n                        set [☁ cloud 9 v] to (☁ Cloud 8)\n                        wait (0.1) seconds\n                        set [☁ cloud 8 v] to (☁ Cloud 7)\n                        wait (0.1) seconds\n                        set [☁ cloud 7 v] to (☁ Cloud 6)\n                        wait (0.1) seconds\n                        set [☁ cloud 6 v] to (DATA)\n                    else\n                        set [# v] to [1]\n                        Get (☁ Cloud 7) from data\n                        Get (☁ Cloud 7) from data\n                        if <(Speedrun Timer) < (Outputted value)> then\n                            set [☁ cloud 10 v] to (☁ Cloud 9)\n                            wait (0.1) seconds\n                            set [☁ cloud 9 v] to (☁ Cloud 8)\n                            wait (0.1) seconds\n                            set [☁ cloud 8 v] to (☁ Cloud 7)\n                            wait (0.1) seconds\n                            set [☁ cloud 7 v] to (DATA)\n                        else\n                            set [# v] to [1]\n                            Get (☁ Cloud 8) from data\n                            Get (☁ Cloud 8) from data\n                            if <(Speedrun Timer) < (Outputted value)> then\n                                set [☁ cloud 10 v] to (☁ Cloud 9)\n                                wait (0.1) seconds\n                                set [☁ cloud 9 v] to (☁ Cloud 8)\n                                wait (0.1) seconds\n                                set [☁ cloud 8 v] to (DATA)\n                            else\n                                set [# v] to [1]\n                                Get (☁ Cloud 9) from data\n                                Get (☁ Cloud 9) from data\n                                if <(Speedrun Timer) < (Outputted value)> then\n                                    set [☁ cloud 10 v] to (☁ Cloud 9)\n                                    wait (0.1) seconds\n                                    set [☁ cloud 9 v] to (DATA)\n                                else\n                                    set [# v] to [1]\n                                    Get (☁ Cloud 10) from data\n                                    Get (☁ Cloud 10) from data\n                                    if <(Speedrun Timer) < (Outputted value)> then\n                                        set [☁ cloud 10 v] to (DATA)\n                                    else\n                                        stop [this script v]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nDATA ADDED\n\n@Cannot Skip Level\n\nwhen flag clicked\nswitch costume to (1 v)\ngo to [back v] layer\nset [ghost v] effect to (0)\n\n@Top Speedruns Board\n\ndefine Font [Bubblegum Sans]  Write: (text) At x (x) y (y) Size (size) Colour (c) Brightness (b) Spacing (s)\nshow\ngo to [front v] layer\ngo to x: (x) y: (y)\nset size to (size) %\nset [color v] effect to (c)\nset [brightness v] effect to (b)\nset [counter v] to [1]\nrepeat (length of (text))\n    switch costume to (letter (Counter) of (text))\n    create clone of (_myself_ v)\n    change x by ((s) * (size))\n    change [counter v] by (1)\nend\nhide\n\nwhen I receive [text v]\nrepeat (2)\n    Font [Bubblegum Sans]  Write: (join [1st ] (item (1) of [top speedruns v])) At x [-180] y [120] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [2nd ] (item (2) of [top speedruns v])) At x [-180] y [60] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [3rd ] (item (3) of [top speedruns v])) At x [-180] y [0] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [4th ] (item (4) of [top speedruns v])) At x [-180] y [-60] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [5th ] (item (5) of [top speedruns v])) At x [-180] y [-120] Size [30] Colour [0] Brightness [100] Spacing [0.3]\nend\n\nwhen I receive [text2 v]\nrepeat (2)\n    Font [Bubblegum Sans]  Write: (join [6th ] (item (6) of [top speedruns v])) At x [-180] y [110] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [7th ] (item (7) of [top speedruns v])) At x [-180] y [50] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [8th ] (item (8) of [top speedruns v])) At x [-180] y [-10] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [9th ] (item (9) of [top speedruns v])) At x [-180] y [-70] Size [30] Colour [0] Brightness [100] Spacing [0.3]\n    Font [Bubblegum Sans]  Write: (join [10th ] (item (10) of [top speedruns v])) At x [-195] y [-130] Size [30] Colour [0] Brightness [100] Spacing [0.3]\nend\n\nwhen I receive [text2 v]\nbroadcast (Delete L v)\n\nwhen I receive [text v]\nbroadcast (Delete L v)\n\nwhen I receive [delete l v]\ndelete this clone\n\nwhen I receive [n/a v]\nFont [Bubblegum Sans]  Write: [n/a] At x [-30] y [-65] Size [100] Colour [0] Brightness [-100] Spacing [0.25]\n\n@Timer\n\ndefine Font [Bubblegum Sans]  Write: (text) At x (x) y (y) Size (size) Colour (c) Brightness (b) Spacing (spacing)\nshow\ngo to x: (x) y: (y)\nset size to (size) %\nset [color v] effect to (c)\nset [brightness v] effect to (b)\nset [i v] to [1]\nrepeat (length of (text))\n    switch costume to (letter (i) of (text))\n    create clone of (_myself_ v)\n    change x by ((spacing) * (size))\n    change [i v] by (1)\nend\nhide\n\nwhen I receive [delete timer nums v]\ndelete this clone\n\nwhen I receive [play game v]\nforever\n    if <(Speedrun Mode) = [On]> then\n        broadcast (Delete Timer nums v)\n        Font [Bubblegum Sans]  Write: (Speedrun Timer) At x [50] y [-150] Size [80] Colour [0] Brightness [100] Spacing [0.4]\n        hide\n    else\n        if <(Speedrun Mode) = [Off]> then\n            stop [other scripts in sprite v]\n            stop [this script v]\n        end\n    end\nend\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\nrepeat (10)\n    broadcast (Delete Timer nums v)\n    go to [front v] layer\nend\nwait (0.4) seconds\nif <(Speedrun Mode) = [On]> then\n    Font [Bubblegum Sans]  Write: (join (Speedrun Timer) []) At x [-80] y [-75] Size [80] Colour [0] Brightness [-100] Spacing [0.4]\nelse\n    broadcast (N/A v)\nend\n\n@Object placer\n\nforever\n    show\n    go to (mouse-pointer v)\n    if <mouse down?> then\n        stop [this script v]\n    end\nend\n\n@Level Designer\n\n@Receive elemental powers!!\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [4]> then\n        switch costume to (pillar v)\n        go to x: (180) y: (11)\n        show\n        if <touching (player v)?> then\n            set [player has got elemental powers? v] to [true]\n        else\n            set [player has got elemental powers? v] to [false]\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [receive elemental powers!! v]\nhide\nset [player has got elemental powers? v] to [true]\nstop [other scripts in sprite v]\nbroadcast (NEXT LEVEL v)\nstop [this script v]\n\n@LevelTransition\n\nwhen I receive [next level v]\nif <(Speedrun Mode) = [Off]> then\n    broadcast (Stop player v)\n    forever\n        show\n        go to x: (0) y: (0)\n        go to [front v] layer\n        change [ghost v] effect by (-100)\n        wait (1.7) seconds\n        if <[leveltransition v] contains (Level)?> then\n            broadcast (Level Transition Done v)\n            repeat (20)\n                change [ghost v] effect by (5)\n                change x by (20)\n            end\n        else\n            broadcast (Level Transition Done v)\n            repeat (20)\n                change [ghost v] effect by (5)\n                change x by (-20)\n            end\n        end\n        hide\n        stop [this script v]\n    end\nelse\n    broadcast (Stop player v)\n    broadcast (Level Transition Done v)\nend\n\nwhen flag clicked\nset [ghost v] effect to (100)\ndelete all of [leveltransition v]\nadd [1] to [leveltransition v]\nadd [3] to [leveltransition v]\nadd [5] to [leveltransition v]\nadd [7] to [leveltransition v]\nadd [9] to [leveltransition v]\nadd [11] to [leveltransition v]\nadd [13] to [leveltransition v]\nadd [15] to [leveltransition v]\nadd [17] to [leveltransition v]\nadd [19] to [leveltransition v]\nadd [21] to [leveltransition v]\nadd [23] to [leveltransition v]\nadd [25] to [leveltransition v]\nadd [27] to [leveltransition v]\nadd [29] to [leveltransition v]\n\nwhen I receive [play game v]\nbroadcast (Level Transition Done v)\n\nwhen I receive [win v]\nbroadcast (Add data to board v)\n\n@Cannot\n\nwhen I receive [cannot skip level v]\nif <key (n v) pressed?> then\n    clear graphic effects\n    go to [front v] layer\n    show\n    wait (1.5) seconds\n    hide\nend\n\nwhen flag clicked\nhide\n\n