Platformer Maker v2.5
@Stage\n\n@Things\n\nwhen I receive [start v]\nswitch costume to (tile v)\nerase all\nset [snap size v] to (((size) / (100)) * (2))\nforever\n    go to (mouse-pointer v)\n    go to x: ((round ((x position) / (snap size))) * (snap size)) y: ((round ((y position) / (snap size))) * (snap size))\n    set [ghost v] effect to (50)\n    if <mouse down?> then\n        if <not <<(costume [name v]) = [Spawn Point]> or <(costume [name v]) = [Exit]>>> then\n            if <<<(spawn x) = (x position)> and <(spawn y) = (y position)>> or <<(exit y) = (x position)> and <(exit y) = (y position)>>> then\n                if <<(spawn x) = (x position)> and <(spawn y) = (y position)>> then\n                    set [spawn x v] to [9999]\n                else\n                    set [exit x v] to [9999]\n                end\n            else\n                clear graphic effects\n                stamp\n            end\n        else\n            if <(costume [name v]) = [Spawn Point]> then\n                if <(spawn x) = [9999]> then\n                    clear graphic effects\n                    stamp\n                    set [spawn x v] to (x position)\n                    set [spawn y v] to (y position)\n                else\n                    go to x: (spawn x) y: (spawn y)\n                    switch costume to (eraser v)\n                    clear graphic effects\n                    stamp\n                    go to (mouse-pointer v)\n                    go to x: ((round ((x position) / (snap size))) * (snap size)) y: ((round ((y position) / (snap size))) * (snap size))\n                    switch costume to (spawn point v)\n                    clear graphic effects\n                    stamp\n                    set [spawn x v] to (x position)\n                    set [spawn y v] to (y position)\n                end\n            else\n                if <(exit x) = [9999]> then\n                    clear graphic effects\n                    stamp\n                    set [exit x v] to (x position)\n                    set [exit y v] to (y position)\n                else\n                    go to x: (exit x) y: (exit y)\n                    switch costume to (eraser v)\n                    clear graphic effects\n                    stamp\n                    go to (mouse-pointer v)\n                    go to x: ((round ((x position) / (snap size))) * (snap size)) y: ((round ((y position) / (snap size))) * (snap size))\n                    switch costume to (exit v)\n                    clear graphic effects\n                    stamp\n                    set [exit x v] to (x position)\n                    set [exit y v] to (y position)\n                end\n            end\n        end\n    end\n    if <key (space v) pressed?> then\n        next costume\n        wait until <not <key (space v) pressed?>>\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [ready v]\nhide\n\nwhen [e v] key pressed\nshow\n\nwhen I receive [start v]\n\ndefine save game\nset [game save v] to []\nforever\n    if <mouse down?> then\n        set [game save v] to (join (game save) (join ((x position) + (240)) ((240) + (y position))))\n        wait until <not <mouse down?>>\n    end\n    if <key (space v) pressed?> then\n        set [game save v] to (join (game save) [999999])\n        wait until <not <key (space v) pressed?>>\n    end\nend\n\ndefine decode (game)\nerase all\nset [num v] to [1]\nshow\nswitch costume to (tile v)\nstop [other scripts in sprite v]\nrepeat ((length of (game save)) / (6))\n    if <(join (letter (num) of (game)) (join (letter ((num) + (1)) of (game)) (join (letter ((num) + (2)) of (game)) (join (letter ((num) + (3)) of (game)) (join (letter ((num) + (4)) of (game)) (join (letter ((num) + (5)) of (game)) [])))))) = [999999]> then\n        next costume\n    else\n        go to x: ((join (letter (num) of (game)) (join (letter ((num) + (1)) of (game)) (letter ((num) + (2)) of (game)))) - (240)) y: ((join (letter (letter ((num) + (3)) of (game)) of (game)) (join (letter ((num) + (5)) of (game)) (letter ((num) + (6)) of (game)))) - (240))\n        clear graphic effects\n        stamp\n    end\n    change [num v] by (6)\nend\n\ndecode (game save)\n\ngo to x: (-240) y: (-32)\n\nset [num v] to (game)\n\nset [game save v] to [6565]\n\ngo to x: ((16) * ((join (letter (num) of (game)) (letter ((num) + (1)) of (game))) - (50))) y: (((16) * (join (letter ((num) + (2)) of (game)) (letter ((num) + (3)) of (game)))) - (50))\nclear graphic effects\nstamp\n\nchange [num v] by (4)\n\nsave game\n\nwhen I receive [start v]\nshow\nforever\n    play sound [Inferno2 v] until done\n    play sound [Inferno3 v] until done\n    play sound [Inferno4 v] until done\nend\n\n@Player\n\nwhen I receive [ready v]\nshow\nset x to (-240)\nset y to (70)\nif <not <(spawn x) = [9999]>> then\n    go to x: (spawn x) y: (spawn y)\nend\nswitch backdrop to (1 v)\nforever\n    if <<<(x position) > [238]> and <(exit x) = [9999]>> or <touching color (#2aaa00)?>> then\n        next backdrop\n        set x to (-240)\n        set y to (70)\n        set [yv v] to [0]\n        set [xv v] to [0]\n        if <not <(spawn x) = [9999]>> then\n            go to x: (spawn x) y: (spawn y)\n        end\n    end\n    if <<touching color (#ff0000)?> or <(y position) < [-178]>> then\n        go to x: (-240) y: (70)\n        set x to (-240)\n        set y to (70)\n        set [yv v] to [0]\n        set [xv v] to [0]\n        if <not <(spawn x) = [9999]>> then\n            go to x: (spawn x) y: (spawn y)\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [ready v]\nshow\nset [xv v] to [0]\nset [yv v] to [0]\nswitch backdrop to (1 v)\nforever\n    if <key (right arrow v) pressed?> then\n        change [xv v] by (0.75)\n        point in direction (90)\n    end\n    if <key (left arrow v) pressed?> then\n        change [xv v] by (-0.75)\n        point in direction (-90)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <touching color (#404040)?> then\n        change y by (1)\n        if <touching color (#424242)?> then\n            change y by (1)\n            if <touching color (#424242)?> then\n                change y by (1)\n                if <touching color (#404040)?> then\n                    change y by (1)\n                    if <touching color (#404040)?> then\n                        change y by (1)\n                        if <touching color (#404040)?> then\n                            change x by ((Xv) * (-1))\n                            change y by (-5)\n                            if <key (up arrow v) pressed?> then\n                                if <(Xv) > [0]> then\n                                    set [xv v] to [-5]\n                                else\n                                    set [xv v] to [5]\n                                end\n                                set [yv v] to [5]\n                            else\n                                set [xv v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-0.5)\n    change y by (Yv)\n    if <touching color (#404040)?> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    if <touching color (#ffd400)?> then\n        set [yv v] to [9]\n    end\n    change y by (-1)\n    if <touching color (#404040)?> then\n        if <key (up arrow v) pressed?> then\n            set [yv v] to [6]\n        end\n    end\n    change y by (1)\nend\n\nwhen [r v] key pressed\nbroadcast (Ready v)\n\nwhen [1 v] key pressed\nswitch costume to (green v)\n\nwhen [2 v] key pressed\nswitch costume to (red v)\n\nwhen [3 v] key pressed\nswitch costume to (blue v)\n\nwhen [4 v] key pressed\nswitch costume to (orange v)\n\nwhen [5 v] key pressed\nswitch costume to (purple v)\n\nwhen [e v] key pressed\nhide\nstop [other scripts in sprite v]\n\nwhen flag clicked\nset [exit x v] to [9999]\nset [spawn x v] to [9999]\n\n@Game Save\n\nwhen I receive [ready v]\nset size to (90) %\n\nwhen flag clicked\nset size to (1000) %\n\nwhen [f v] key pressed\nif <(size) = [90]> then\nend\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\nend\n\n@Intro\n\nwhen flag clicked\nerase all\nhide\nstart sound [Crystal Dolphin  v]\nwait (1) seconds\nswitch costume to (avatar v)\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nset size to (1) %\nrepeat (25)\n    change size by (4)\nend\nchange size by (-1)\ncreate clone of (_myself_ v)\ngo to x: (0) y: (0)\nglide (0.5) secs to x: (-55) y: (0)\nwait (1) seconds\nswitch costume to (avatar2 v)\nwait (0.1) seconds\nswitch costume to (avatar3 v)\nwait (0.1) seconds\nswitch costume to (avatar4 v)\nwait (0.1) seconds\nswitch costume to (avatar3 v)\nwait (0.1) seconds\nswitch costume to (avatar2 v)\nwait (0.1) seconds\nswitch costume to (avatar v)\nwait (0.2) seconds\nrepeat (25)\n    change size by (-4)\nend\nhide\nwait (1) seconds\nbroadcast (Start v)\n\nwhen I start as a clone\nset size to (100) %\nset [ghost v] effect to (100)\nswitch costume to (logo v)\ngo to x: (0) y: (0)\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\nwait (1.5) seconds\nrepeat (25)\n    change size by (-4)\nend\ndelete this clone\n\n
Press space to change what you are holding.\n\nPress R to play your game or restart. (You will spawn on the left.)\n\nE is to edit.\n\nPress the numbers 1-5 to change your skin.\n\nPress the green flag to reset your stage.\n\nGreen is the exit.\nBlue is the Spawn Point.\n\nIf there is no Spawn then you will start on the left.\nThat is the same for the exit - you end at the right.