No Variable Platformer [ Engine ]

Instructions:                    ★NO VARIABLE PLATFORMER★\n\n▶ Hello everyone, so yeah this is a platformer with no variables or lists which makes it very laggy. This is not my best project but i a bit proud of it. You can use this scripts for any project as long as you give credit.\n\n▶If you enjoyed feel free to to like and fav, or maybe a follow?\n\n▶Play here for better experience:\nhttps://turbowarp.org/505068545?interpolate\n\n▶Credits:\nMe for all of the code\nsome guy in itch.io for the art\n\nMusic: Ashes Remain - On my lyrics

@Stage\n\n@Blank\n\n@Player\n\nwhen flag clicked\nbroadcast (Reset v)\nforever\n    Platformer Physics [12] [-1] [0.7] [2]\nend\n\ndefine Platformer Physics (jump height) (gravity) (friction) (running speed)\nchange y by ((tempo) - (60))\nif <touching (platform v)?> then\n    repeat ([ceiling v] of ([abs v] of ((tempo) - (60)) ) )\n        if <touching (platform v)?> then\n            change y by ((([abs v] of ((tempo) - (60)) ) / ((tempo) - (60))) * (-1))\n        end\n    end\n    if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <not <(tempo) > [60]>>> then\n        set tempo to ((jump height) + (60))\n        switch costume to (up v)\n    else\n        set tempo to (60)\n    end\nelse\n    change tempo by (gravity)\nend\nif <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n    change volume by ((running speed) * (-1))\n    switch costume to (left v)\nend\nif <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n    change volume by (running speed)\n    switch costume to (right v)\nend\nif <not <key (any v) pressed?>> then\n    switch costume to (middle v)\nend\nchange x by ((volume) - (50))\nif <touching (platform v)?> then\n    repeat (([abs v] of ((volume) - (50)) ) + (1))\n        if <touching (platform v)?> then\n            change y by (1)\n        end\n    end\n    if <touching (platform v)?> then\n        repeat ([ceiling v] of ([abs v] of ((tempo) - (60)) ) )\n            if <touching (platform v)?> then\n                change y by ((([abs v] of ((tempo) - (60)) ) / ((tempo) - (60))) * (-1))\n            end\n        end\n        set volume to (50) %\n    end\nend\nset volume to ((((volume) - (50)) * (friction)) + (50)) %\n\ndefine Reset (x) (y)\ngo to x: (x) y: (y)\nset tempo to (60)\n\nwhen flag clicked\nforever\n    if <<touching (water v)?> or <touching (spike v)?>> then\n        broadcast (Reset v)\n    end\n    if <<(x position) = [-242]> and <<key (a v) pressed?> or <key (left arrow v) pressed?>>> then\n        broadcast (Left v)\n    else\n        if <<(x position) = [242]> and <<key (d v) pressed?> or <key (right arrow v) pressed?>>> then\n            broadcast (Right v)\n        end\n    end\nend\n\nwhen I receive [left v]\nReset [242] (y position)\nstop [this script v]\n\nwhen I receive [right v]\nif <([costume # v] of [platform v]) = [5]> then\n    Reset [242] (y position)\nelse\n    Reset [-242] (y position)\nend\nstop [this script v]\n\nwhen I receive [reset v]\nReset [0] [0]\n\n@Platform\n\nwhen I receive [left v]\nif <not <(costume [number v]) = [1]>> then\n    switch costume to (previous costume v)\n    wait (0.1) seconds\nend\n\nwhen I receive [right v]\nif <not <(costume [number v]) = [5]>> then\n    switch costume to (next costume v)\n    wait (0.1) seconds\nend\n\nwhen flag clicked\nswitch costume to (1 v)\n\nwhen I receive [reset v]\nswitch costume to (1 v)\n\n@Water\n\nwhen I start as a clone\nset [ghost v] effect to (0)\nset size to (600) %\ngo to x: (480) y: (-133)\nset size to (400) %\nforever\n    Move Water\nend\n\ndefine Move Water\nset size to (600) %\nchange x by (-3)\nif <(x position) < [-479]> then\n    set x to ((x position) * (-1))\nend\nset size to (400) %\n\nwhen flag clicked\nset [ghost v] effect to (0)\ngo to x: (0) y: (-133)\ncreate clone of (_myself_ v)\nforever\n    Move Water\nend\n\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (-133)\nswitch costume to (blank v)\nset size to (400) %\nswitch costume to (thumb v)\nset [ghost v] effect to (100)\nshow\nforever\n    go to [front v] layer\nend\n\n@Spike\n\nwhen flag clicked\ngo to x: (0) y: (-133)\nshow\nforever\n    switch costume to ([costume name v] of [platform v])\nend\n\n