The Rotating Platformer [Collab] V.2

Instructions: Introducing... The Rotating Platformer!\n(A 04tmoody and I8D collab)\n\n30 levels of absolute challenge as you switch gravity and spin around!\n\nArrow keys to move, of course.\nPress Space to Access The Pause Menu\n\nAll levels are possible, though many are difficult.\n\nGood Luck!\n\nFirst 3 levels were made by me, the other 27 by various people using the editor. Thank You everyone who helped!\n\nShare Levels At the Forum:\nhttps://scratch.mit.edu/discuss/topic/353858/\n\nPhysics and rendering coding by me.\nRotating effect by I8D, along with the menu, and endscreen.\nLevel Editor by me, with the block selection options improved by I8D.\n\nMusic from Megaman X\nThe game is 100% pen.

@Stage\n\nwhen flag clicked\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [win v]\nstop all sounds\nstart sound [Credits Theme v]\nstop [other scripts in sprite v]\nerase all\nwait (5) seconds\nrepeat (100)\n    change [ghost v] effect by (1)\nend\nerase all\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nbroadcast (menu v)\n\nwhen [z v] key pressed\nif <(username) = [_l8d_]> then\n    switch backdrop to (backdrop3 v)\nend\nstop [all v]\n\nwhen I receive [menu v]\nstop all sounds\nstop [other scripts in sprite v]\nforever\n    play sound [Menu Theme v] until done\nend\n\nwhen I receive [play v]\nstop all sounds\nstop [other scripts in sprite v]\nforever\n    play sound [Game Theme v] until done\nend\n\nwhen I receive [level editor v]\nstop all sounds\nstop [other scripts in sprite v]\nforever\n    play sound [Editor Theme v] until done\nend\n\nwhen flag clicked\nset [__pause v] to [0]\n\n@Physics & game(Pen)\n\ndefine Save\nset [save code v] to []\nset [j v] to [0]\nrepeat (length of [level v])\n    change [j v] by (1)\n    set [save code v] to (join (Save Code) (join (item (j) of [level v]) [/]))\nend\ndelete all of [save v]\nadd (Save Code) to [save v]\nhide list [save v]\n\ndefine Load (code)\ndelete all of [level v]\nset [item v] to []\nset [j v] to [0]\nrepeat (length of (code))\n    change [j v] by (1)\n    if <(letter (j) of (code)) = [/]> then\n        add (Item) to [level v]\n        set [item v] to []\n    else\n        set [item v] to (join (Item) (letter (j) of (code)))\n    end\nend\n\nwhen flag clicked\nshow list [save v]\n\nwhen flag clicked\ndelete all of [level codes v]\nadd [1/-50/-50/50/-25/1/50/-50/100/25/2/100/-50/200/0/1/200/-50/250/25/3/250/0/300/25/1/300/-50/400/150/1/500/125/600/150/4/525/225/575/275/] to [level codes v]\nadd [1/-50/-50/50/-25/2/50/-50/75/0/1/75/-50/150/-25/2/150/-50/200/0/1/200/-50/300/-25/8/225/50/275/100/1/300/-50/350/150/2/325/150/350/250/1/300/250/350/300/1/250/350/300/400/4/200/450/250/500/] to [level codes v]\nadd [2/-100/-100/800/-75/1/-50/-50/50/-25/1/150/-50/200/-25/2/225/-50/275/-25/1/300/-50/350/-25/8/450/-50/500/0/1/750/-50/775/50/2/800/-75/825/300/2/725/50/775/100/6/725/100/775/150/1/600/100/625/200/1/200/300/800/325/1/200/200/625/225/4/200/225/225/300/7/400/230/450/280/] to [level codes v]\nadd [1/-78/-53/513/-28/1/-79/152/516/180/2/-78/-33/-24/158/2/115/-33/158/98/7/64/-22/114/28/2/252/14/299/156/5/198/99/248/149/4/304/97/354/147/8/398/-24/448/26/1/487/-34/514/95/3/487/91/516/156/] to [level codes v]\nadd [3/-23/-54/44/-13/3/147/-14/209/23/8/244/66/294/116/1/147/377/197/427/1/-16/375/34/425/7/147/238/197/288/4/-96/259/-61/367/2/28/376/151/424/3/415/29/448/141/3/336/202/363/313/1/-116/362/-45/384/] to [level codes v]\nadd [1/-240/-61/132/-29/1/183/-23/272/7/1/328/18/412/47/3/542/-61/616/-30/6/702/87/752/137/2/-114/-34/-81/95/4/-133/-33/-110/94/1/-71/84/63/301/2/57/190/81/248/3/-90/109/-65/168/1/-239/242/-207/427/8/-204/247/-154/297/5/-231/113/-181/163/1/-71/314/-21/364/] to [level codes v]\nadd [1/-69/-23/201/-3/1/56/1/106/51/1/107/0/157/50/1/109/49/159/99/1/158/51/208/101/1/160/102/210/152/1/301/54/352/104/1/355/3/405/53/1/303/2/353/52/1/-94/307/4/348/1/302/105/352/155/1/354/55/404/105/1/518/273/575/322/6/468/274/518/324/1/574/-16/594/322/4/202/-7/301/51/2/210/53/299/73/6/-73/346/-23/396/5/-238/344/-188/394/1/158/1/208/51/1/308/-21/575/-1/7/520/0/570/50/1/407/4/457/54/8/-240/202/-190/252/1/-73/-1/-19/308/2/-93/124/-73/185/5/-123/6/-73/56/8/-121/-123/-71/-73/7/-13/-123/37/-73/] to [level codes v]\nadd [1/-8/-50/262/-17/2/125/-22/173/88/3/66/-25/129/-5/7/260/-67/302/-25/3/261/210/311/260/2/309/211/425/259/3/422/209/471/260/5/575/213/625/263/8/560/-75/614/-15/1/890/-63/999/229/3/897/227/947/277/5/900/405/950/455/2/1010/279/1077/412/1/991/-61/1206/-6/3/1298/-57/1348/-7/7/1301/104/1351/154/6/1299/604/1349/654/4/189/605/239/655/] to [level codes v]\nadd [1/-50/-50/32/-22/7/-105/-90/-47/-27/1/-124/-48/-101/97/1/-48/15/-28/100/1/-230/56/-121/96/5/-145/204/-94/251/3/-225/100/-175/150/7/112/329/155/371/5/90/264/138/315/1/30/-48/92/246/1/-105/-159/190/-125/1/-186/246/92/266/1/-194/379/39/399/1/-44/311/158/331/1/157/-81/177/536/1/23/401/43/526/1/94/424/114/606/1/-211/595/456/615/6/31/555/90/595/8/110/556/187/597/2/-191/521/-161/599/4/395/534/432/594/1/175/513/458/536/1/-209/505/26/525/1/437/537/457/600/1/-210/523/-190/598/] to [level codes v]\nadd [1/-95/-41/34/-10/1/31/-40/67/99/2/-70/-11/-20/11/6/-16/38/28/93/7/-161/44/-127/74/1/-223/109/-116/156/5/-229/36/-187/80/1/-178/-24/-158/74/1/-239/-86/-130/-65/1/-136/-172/99/-149/3/-81/-152/-30/-132/2/-28/-152/1/-132/4/48/-143/98/-93/] to [level codes v]\nadd [1/-50/-50/100/-21/6/50/-24/100/26/1/-102/-52/-54/193/1/-225/196/-170/556/1/-91/421/19/472/8/-222/562/-170/608/2/-216/616/-164/698/1/-90/477/-25/738/2/-21/483/19/738/6/-89/743/-41/788/1/-85/794/-34/878/2/-222/797/-196/1000/1/-227/708/-198/791/2/-217/1008/707/1051/2/-29/823/496/877/5/593/875/706/1004/2/622/700/670/871/2/436/698/487/817/8/480/489/594/604/2/430/487/482/691/1/669/440/721/693/3/-85/338/-34/417/3/-95/205/-51/283/2/674/382/724/432/2/510/210/563/486/1/673/265/725/373/5/673/211/723/261/1/503/-52/849/-2/1/228/-52/275/112/4/277/-46/327/4/1/332/-48/453/-1/2/459/-47/503/34/] to [level codes v]\nadd [1/-50/-50/187/-30/2/185/-48/281/10/2/276/-32/354/40/3/204/5/285/41/3/5/129/126/151/1/348/5/484/40/7/10/225/120/271/2/-240/473/-1/548/3/0/483/50/533/3/51/482/101/532/3/163/509/229/556/3/152/550/240/589/1/98/621/148/671/8/416/40/466/90/4/-59/549/-9/599/5/646/42/696/92/3/625/-180/702/-127/6/701/-125/751/-75/5/-46/851/240/909/2/-190/1055/870/1075/4/-240/-124/-220/-51/2/-208/-47/-55/104/] to [level codes v]\nadd [1/-11/-63/125/-12/8/74/-2/124/48/3/409/-13/443/58/7/240/-64/290/-14/1/215/207/511/240/2/329/185/390/211/1/580/205/828/239/2/578/184/829/211/3/505/105/582/135/2/505/89/582/109/5/520/286/570/336/2/215/234/351/363/2/230/258/334/278/2/316/269/336/311/2/229/269/249/310/2/250/310/275/346/2/286/309/313/346/3/772/233/828/253/2/799/-77/830/189/1/701/326/770/355/1/492/410/560/440/3/493/435/560/455/1/215/358/352/378/3/700/349/770/369/4/221/383/271/433/] to [level codes v]\nadd [1/-47/-61/341/-23/8/123/-25/173/25/1/342/121/705/165/5/476/197/526/247/3/167/-23/187/27/2/348/-8/379/110/3/401/116/456/140/4/25/-106/75/-56/2/567/-179/606/76/1/684/63/705/126/7/606/-121/656/-71/1/343/-23/380/-3/6/701/87/751/137/] to [level codes v]\nadd [1/-227/-161/752/-101/2/-199/-121/-57/-83/2/-173/-118/-88/-55/2/-153/-80/-114/15/2/-145/11/-87/47/2/-90/37/-16/68/2/-190/36/-135/56/2/-213/48/-176/102/1/-35/57/89/79/1/-121/67/-48/111/1/-182/89/-124/121/1/-229/78/-163/104/1/-72/59/8/97/1/-151/58/-101/108/6/142/-107/193/-56/6/264/5/314/55/1/160/-60/180/-40/1/283/48/303/68/6/373/-47/418/-6/1/389/-11/409/25/1/300/59/363/82/1/371/17/420/43/1/358/35/392/63/3/414/31/477/63/1/470/52/549/72/1/459/-107/559/-77/1/503/-76/523/59/1/520/6/570/56/1/564/-5/621/21/6/596/-51/646/-1/1/531/72/561/140/1/499/133/570/163/1/483/-85/546/-44/1/484/159/522/252/7/-157/177/-107/227/3/227/63/301/90/1/-210/822/-35/842/3/-200/829/-121/866/3/-153/835/-103/885/3/-112/832/-50/866/1/13/817/100/854/1/64/799/158/848/1/33/829/147/874/8/-240/817/-199/863/2/23/679/100/710/2/7/613/45/683/2/28/640/109/685/2/102/626/152/676/1/194/799/283/834/1/250/787/352/852/1/337/803/411/844/2/295/770/315/801/1/594/690/614/1226/1/471/1006/537/1033/1/436/991/486/1041/1/389/986/446/1021/4/274/942/332/1003/4/232/962/295/990/4/305/988/348/1026/2/530/690/668/720/2/564/665/645/701/3/580/638/600/658/3/584/595/604/615/3/619/610/639/630/1/772/1226/792/1294/1/894/1286/914/1345/5/1033/1240/1083/1290/1/1110/1103/1130/1328/1/962/1195/1021/1215/1/1004/940/1867/964/4/1239/1127/1280/1147/4/1226/1090/1250/1136/4/1237/1079/1281/1101/4/1269/1038/1289/1089/4/1226/1026/1277/1046/4/1317/1030/1337/1139/4/1329/1119/1379/1139/4/1331/1080/1376/1100/4/1329/1034/1379/1054/4/1415/1126/1468/1146/4/1410/1035/1430/1134/4/1412/1033/1467/1053/4/1489/1039/1509/1139/4/1493/1131/1564/1151/4/1574/1038/1594/1147/4/1580/1129/1639/1149/4/1581/1086/1637/1106/4/1586/1041/1636/1065/4/1670/1134/1732/1154/4/1690/1046/1710/1140/] to [level codes v]\nadd [1/-58/-53/50/-25/1/117/-19/167/31/1/119/-69/169/-19/2/78/-118/128/-68/2/30/-141/80/-91/4/120/31/170/81/1/67/-14/117/36/1/63/35/113/85/1/63/83/113/133/1/182/77/232/127/1/178/29/228/79/2/-21/-150/29/-100/2/-68/-149/-18/-99/2/-116/-145/-66/-95/8/-64/-64/-30/-44/] to [level codes v]\nadd [1/-50/-50/56/-26/1/49/-52/105/-27/7/125/-102/175/-52/1/129/100/308/128/2/310/72/360/122/2/361/70/411/120/5/340/13/390/63/1/289/-113/488/-71/3/507/-117/557/-67/2/571/-120/621/-70/2/572/-166/622/-116/2/573/-69/623/-19/2/76/77/126/127/3/639/-122/689/-72/8/693/2/743/52/4/1239/11/1270/86/2/1273/-63/1293/150/] to [level codes v]\nadd [1/-111/-52/50/-25/1/-106/-44/-86/305/6/-82/-18/-33/20/8/-88/264/-43/302/1/96/146/116/507/7/62/269/99/313/2/-94/195/-74/215/2/-93/103/-73/123/3/62/475/101/508/1/-134/485/72/510/2/-54/480/-2/500/2/69/152/97/202/1/-125/511/-84/696/2/-144/507/-124/665/8/-238/693/-83/737/1/-12/688/39/1102/2/-32/843/-12/864/2/-34/993/-11/1017/5/-9/1102/40/1148/1/-6/1048/501/1101/2/151/1102/201/1152/2/279/1103/329/1153/3/214 /1103/260/1123/3/90/1102/131/1122/1/446/1102/496/1330/8/406/1112/440/1140/6/413/1294/450/1328/2/429/1220/449/1240/1/189/1294/209/1598/2/209/1385/229/1435/2/208/1492/228/1541/4/195/1598/245/1648/1/-237/1211/-214/1629/2/-216/1309/-196/1330/2/67/1324/117/1374/2/-218/1421/-194/1441/4/-234/1624/-184/1674/3/-227/1202/-207/1630/] to [level codes v]\nadd [1/-27/-77/102/-1/2/-240/-29/-21/0/2/-240/82/-21/110/4/-240/-5/-220/88/1/153/-180/222/1/1/-240/265/173/295/1/565/-94/585/-74/1/-27/-180/-7/-69/1/-16/-180/162/-160/7/-3/-156/47/-106/2/27/238/79/270/2/-91/238/-39/270/1/-240/105/-210/272/8/-205/146/-155/196/1/882/163/968/253/1/812/109/832/129/1/748/57/768/78/1/686/2/706/22/1/622/-47/642/-27/6/477/-169/527/-119/] to [level codes v]\nadd [1/-50/-50/225/-30/1/-230/217/211/237/6/158/165/208/215/1/-32/140/-12/217/3/-9/193/39/213/5/-225/167/-175/217/1/-240/-177/489/-157/7/-18/-158/32/-108/7/39/-32/89/18/2/225/-47/305/-27/7/392/-156/442/-106/4/167/-29/217/21/1/473/-146/493/101/1/138/-33/158/166/] to [level codes v]\nadd [1/-23/-36/51/-8/1/121/0/191/28/1/267/33/335/60/1/418/74/707/102/2/466/98/529/118/2/592/98/651/118/1/746/-16/796/34/1/681/-80/731/-30/7/611/-139/661/-89/2/529/60/591/80/1/-240/30/-158/58/2/-240/16/-158/36/1/-240/51/-220/329/4/-218/61/-168/111/1/-240/322/60/342/6/-75/267/-25/317/2/39/227/61/328/6/-132/267/-82/317/2/-226/152/-206/221/ ] to [level codes v]\nadd [1/-50/-50/50/-25/1/70/-84/120/-34/6/208/-46/258/40/5/306/33/356/83/1/178/-129/198/-66/1/221/-142/241/-81/1/228/-47/279/-27/1/272/1/303/21/1/127/-52/147/27/1/138/8/173/67/3/352/-105/413/-60/3/298/-157/359/-96/3/409/-64/459/-14/3/453/-18/503/32/8/500/27/1063/123/3/1094/-33/1163/225/1/982/-140/1276/-102/5/1040/-89/1090/-39/5/984/-89/1034/-39/5/1101/-90/1151/-40/1/1272/-132/1322/-82/1/1329/-112/1379/-62/1/1373/-56/1475/-36/3/1474/-50/1524/0/3/1537/40/1587/90/3/1604/131/1654/181/3/1670/219/1720/269/7/1752/199/1802/249/1/1697/477/1899/520/3/1903/517/1953/567/2/1891/130/1911/434/5/1909/387/1959/437/1/1912/88/2067/110/3/2066/39/2116/89/7/2118/98/2165/158/2/2037/169/2061/795/4/2062/503/2203/549/] to [level codes v]\nadd [8/-93/-14/-52/37/1/-59/-29/67/-9/1/-60/33/64/53/2/161/55/181/126/2/284/-84/304/10/2/348/91/466/111/2/282/81/302/125/2/162/-88/182/-10/2/348/3/469/23/7/522/33/572/83/4/504/235/604/255/1/494/207/514/280/1/598/203/618/282/3/491/189/550/209/3/596/187/618/207/] to [level codes v]\nadd [1/-50/-50/155/-27/1/106/-94/156/-44/1/216/-33/266/17/1/345/-82/395/-32/1/451/-24/501/26/6/698/-170/842/-141/1/-50/-162/-14/-40/1/-51/-177/-11/-151/5/-20/-157/0/-44/1/535/4/591/24/1/567/15/595/97/2/393/-83/413/-39/2/495/-30/515/8/2/268/-29/288/13/2/159/-93/179/-43/1/464/148/803/168/7/555/13/575/95/5/762/109/799/154/1/253/108/286/230/4/197/204/258/228/6/831/-171/864/-21/1/269/-168/324/-146/2/322/-165/342/-145/1/738/-146/785/-95/1/346/321/441/350/3/192/457/260/484/2/254/308/276/484/1/86/604/344/626/5/43/604/90/659/1/66/341/116/391/7/140/341/190/391/1/100/118/189/139/1/-8/147/42/197/1/-129/110/-58/157/1/-94/-57/-44/-7/7/-218/-170/-168/-120/8/-203/402/-153/452/5/-75/350/-25/400/1/-60/351/-10/401/1/-202/414/-152/464/2/7/508/43/608/4/-202/793/-152/843/7/-201/461/-150/492/5/417/801/467/851/1/373/801/423/851/1/409/478/461/657/8/454/483/504/533/2/405/438/508/482/1/755/460/805/510/1/894/568/944/618/1/1099/638/1149/688/1/1218/465/1268/515/1/1410/557/1460/607/4/1674/595/1721/620/6/1672/616/1724/804/6/1672/413/1724/599/1/1154/239/1196/389/2/1127/126/1159/390/4/1281/20/1331/70/5/1152/190/1197/244/1/1157/132/1254/193/2/1236/22/1286/72/2/1281/-26/1331/24/2/1325/19/1375/69/] to [level codes v]\nadd [1/-73/-16/49/4/8/38/11/87/53/1/525/-180/545/416/2/484/215/531/241/2/510/-165/530/46/6/494/411/545/456/1/93/312/113/653/2/42/442/62/534/2/29/529/77/549/2/38/544/65/564/2/103/591/123/611/7/98/652/148/702/1/183/455/545/475/1/43/48/361/68/1/504/-13/531/49/2/187/472/207/668/1/-30/1064/428/1084/2/208/1032/228/1069/2/351/1040/383/1082/4/428/1034/478/1084/1/179/471/222/670/1/471/461/522/1087/] to [level codes v]\nadd [1/-50/-50/309/-13/8/255/-14/305/36/1/304/-46/339/252/7/257/199/307/249/1/256/472/694/511/6/510/424/560/474/5/-98/429/-48/479/1/-240/291/-36/341/7/-234/344/-184/394/8/-227/926/-177/976/5/-53/926/-3/976/3/-42/599/40/679/3/102/619/693/674/7/785/618/834/675/6/787/921/837/971/3/733/924/783/974/7/897/919/947/968/3/896/964/949/1016/6/894/840/947/891/1/836/673/871/900/2/835/621/869/674/8/840/564/896/620/2/6/479/261/510/1/-225/981/-175/1031/1/-2/930/48/980/1/-44/518/42/604/7/122/814/175/868/5/1110/558/1160/608/4/2165/516/2220/572/1/1010/614/1160/670/1/1008/504/1673/560/5/1160/559/1204/599/5/1245/559/1289/601/5/1366/557/1416/603/7/1414/559/1458/603/5/1456/559/1500/603/5/1200/557/1247/600/7/1284/557/1328/599/5/1325/557/1369/601/5/1498/556/1543/602/7/1541/556/1582/600/8/1580/557/1629/603/7/541/819/591/869/7/333/814/383/864/1/2166/467/2216/517/1/2165/574/2215/624/] to [level codes v]\nadd [1/-68/-47/50/-25/2/-94/104/-17/125/1/-182/-51/-136/-27/2/-136/-47/-67/-27/6/-124/3/-81/44/1/-240/-50/-220/159/2/-225/-51/-177/-11/2/-225/82/-201/105/7/-218/131/-179/169/1/-229/234/102/254/3/-81/224/-37/244/5/62/198/100/234/1/26/176/255/196/2/168/192/201/212/8/222/193/261/231/1/432/199/452/313/1/431/381/451/529/2/394/442/430/462/3/410/508/430/557/5/323/521/356/555/1/301/-44/603/-24/2/422/-29/450/-9/2/581/-25/601/4/4/599/-46/649/-26/2/554/-27/580/-7/] to [level codes v]\nadd [3/-15/-43/79/-11/1/73/-41/371/-12/1/-37/-45/-10/515/1/342/-18/370/516/1/-14/72/279/98/3/273/72/347/99/4/5/-121/55/-71/1/-17/139/28/165/1/81/234/351/260/3/156/91/217/111/2/156/218/217/238/3/295/218/347/238/2/164/254/184/274/2/231/255/251/275/3/294/254/347/274/1/76/357/297/377/2/77/373/297/393/3/291/357/348/377/1/-17/490/348/515/3/-16/476/348/496/7/-6/424/44/474/3/-16/233/88/260/] to [level codes v]\nadd [1/-87/-35/46/-15/6/-87/-18/-37/31/3/42/-38/97/-18/6/42/67/84/110/1/-225/-151/-204/372/2/-206/-21/-154/30/5/-201/99/-163/138/3/-205/78/-185/98/2/-201/206/-181/227/8/-100/251/-60/295/5/116/203/159/298/6/113/158/163/208/3/-200/268/-180/293/8/-200/332/-165/370/1/-1/310/21/486/2/-22/442/-2/484/6/-35/491/15/541/1/-229/496/-209/724/8/-210/618/-163/657/2/67/625/87/701/1/-216/657/-163/687/5/-213/690/-160/727/1/-84/657/-55/686/4/-36/691/-16/711/] to [level codes v]\nadd [1/-50/-50/57/-25/1/137/-165/164/181/2/-75/-79/-47/19/8/-144/-164/-94/-114/2/158/8/249/42/1/-21/83/146/128/3/90/35/142/90/1/-56/165/-32/289/1/-101/238/-51/288/2/-16/123/34/173/5/60/338/109/388/1/-185/412/192/440/2/-80/284/-32/335/2/-185/393/112/418/2/136/174/178/232/3/28/122/144/154/1/158/127/255/180/1/356/101/385/354/1/211/324/363/354/6/278/-151/339/-94/1/157/-164/206/-131/2/158/38/207/132/2/379/151/405/176/2/320/275/362/328/3/232/-27/258/12/1/155/-29/239/13/2/381/222/413/281/3/379/170/440/226/7/387/328/434/378/1/246/465/588/500/1/246/437/291/475/1/248/157/273/180/1/515/75/726/99/4/645/-18/722/81/2/560/60/651/84/1/105/341/151/423/1/513/47/566/81/3/321/259/362/281/2/111/7/141/39/2/380/275/434/331/] to [level codes v]\n\nset [level v] to [30]\nCreate Level (level)\n\nwhen [z v] key pressed\nif <(username) = [_l8d_]> then\n    stop [other scripts in sprite v]\n    erase all\nend\n\nchange [dir v] by (((0) - (dir)) / (10))\n\nset [camera x v] to (x)\nset [camera y v] to (y)\n\nif <<(Gravity) = [2]> or <(Gravity) = [4]>> then\n    set [camera y v] to (((y) - (Camera Y)) / (10))\nend\n\nset [camera x v] to (((x) - (Camera X)) / (10))\n\nwhen I receive [die v]\nset [ded? v] to [1]\nDie\nset [ded? v] to [0]\n\nwhen I receive [play v]\nset [speed v] to [1]\nswitch costume to (costume1 v)\nset size to (5000) %\nswitch costume to (costume2 v)\nhide\npoint in direction (90)\nCreate Level (level)\nset [camera x v] to [0]\nset [camera y v] to [0]\nset [gravity v] to [1]\nset [x v] to [0]\nset [y v] to [0]\nset [yv v] to [0]\nset [ded? v] to [0]\nforever\n    point in direction (dir)\n    render\n    physics\n    if <(__pause) = [1]> then\n        render\n        broadcast (tick v)\n    end\n    wait until <(ded?) = [0]>\nend\n\nwhen I receive [menu v]\nstop [other scripts in sprite v]\n\nwhen I receive [play v]\nforever\n    if <(Gravity) = [1]> then\n        if <([abs v] of ((dir) - (90)) ) < [180]> then\n            change [dir v] by (((90) - (dir)) / (10))\n        else\n            change [dir v] by (((-270) - (dir)) / (10))\n        end\n    end\n    if <(Gravity) = [4]> then\n        if <([abs v] of ((dir) - (180)) ) < [180]> then\n            change [dir v] by (((180) - (dir)) / (10))\n        else\n            change [dir v] by (((-180) - (dir)) / (10))\n        end\n    end\n    if <(Gravity) = [2]> then\n        if <([abs v] of ((dir) - (0)) ) < [180]> then\n            change [dir v] by (((0) - (dir)) / (10))\n        else\n            change [dir v] by (((360) - (dir)) / (10))\n        end\n    end\n    if <(Gravity) = [3]> then\n        if <([abs v] of ((dir) - (270)) ) < [180]> then\n            change [dir v] by (((270) - (dir)) / (10))\n        else\n            change [dir v] by (((-90) - (dir)) / (10))\n        end\n    end\nend\n\ndefine physics\nif <key (left arrow v) pressed?> then\n    Move X by [-8]\nend\nif <key (right arrow v) pressed?> then\n    Move X by [8]\nend\nchange [yv v] by (-2)\nMove Y by (yv)\nif <<key (up arrow v) pressed?> and <(can jump) = [1]>> then\n    set [yv v] to [18]\nend\nGet Collisions\nif <[collisions v] contains [3]?> then\n    set [yv v] to [25]\nend\nGet Collisions\nif <[collisions v] contains [5]?> then\n    set [gravity v] to [1]\nend\nif <[collisions v] contains [6]?> then\n    set [gravity v] to [2]\nend\nif <[collisions v] contains [7]?> then\n    set [gravity v] to [3]\nend\nif <[collisions v] contains [8]?> then\n    set [gravity v] to [4]\nend\nif <<<<(x) < [-240]> or <(y) < [-180]>> or <<(x) > [4560]> or <(y) > [3420]>>> or <[collisions v] contains [2]?>> then\n    broadcast (die v)\nend\nif <[collisions v] contains [4]?> then\n    Win\nend\nchange [camera y v] by (((y) - (Camera Y)) / (5))\nchange [camera x v] by (((x) - (Camera X)) / (5))\n\ndefine Move X by (xv)\nif <(Gravity) = [1]> then\n    change [x v] by (xv)\nend\nif <(Gravity) = [2]> then\n    change [y v] by (() - (xv))\nend\nif <(Gravity) = [3]> then\n    change [x v] by (() - (xv))\nend\nif <(Gravity) = [4]> then\n    change [y v] by (xv)\nend\nGet Collisions\nrepeat until <not <[collisions v] contains [1]?>>\n    Get Collisions\n    if <(Gravity) = [1]> then\n        change [x v] by (() - ((xv) / ([abs v] of (xv) )))\n    end\n    if <(Gravity) = [2]> then\n        change [y v] by ((xv) / ([abs v] of (xv) ))\n    end\n    if <(Gravity) = [3]> then\n        change [x v] by ((xv) / ([abs v] of (xv) ))\n    end\n    if <(Gravity) = [4]> then\n        change [y v] by (() - ((xv) / ([abs v] of (xv) )))\n    end\nend\n\nwhen flag clicked\nstop [other scripts in sprite v]\n\nwhen I receive [skip v]\nwait until <not <mouse down?>>\nWin\n\nstop [other scripts in sprite v]\n\ndefine render\ngo to x: (0) y: (0)\nset [pen x v] to [0]\nset [pen y v] to [0]\npen up\nerase all\nset pen size to (5)\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    if <(item (i) of [level v]) = [1]> then\n        set pen color to (#11b900)\n    end\n    if <(item (i) of [level v]) = [2]> then\n        set pen color to (#ab0000)\n    end\n    if <(item (i) of [level v]) = [3]> then\n        set pen color to (#009dff)\n    end\n    if <(item (i) of [level v]) = [4]> then\n        set pen color to (#ffd000)\n    end\n    if <<(item (i) of [level v]) > [4]> and <(item (i) of [level v]) < [9]>> then\n        set pen color to (#fa00ff)\n        if <(item (i) of [level v]) = [5]> then\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) <>\n            pen down\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n        end\n        if <(item (i) of [level v]) = [6]> then\n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) <>\n            pen down\n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n        end\n        if <(item (i) of [level v]) = [7]> then\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) <>\n            pen down\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n        end\n        if <(item (i) of [level v]) = [8]> then\n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) <>\n            pen down\n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n        end\n    end\n    change [i v] by (1)\n    Draw Rect from ((item (i) of [level v]) - (-5)) ((item ((i) + (1)) of [level v]) - (-5)) to ((item ((i) + (2)) of [level v]) + (-5)) ((item ((i) + (3)) of [level v]) + (-5))\n    change [i v] by (4)\nend\nset pen color to (#fe863d)\nDraw Rect from (x) (y) to ((x) + (25)) ((y) + (25))\nset pen color to (#ffffff)\nDraw Rect from [-240] [-180] to [4560] [3420]\n\ndefine Die\nset [yv v] to [0]\nset [gravity v] to [1]\nrepeat (3)\n    render\n    set pen color to (#fe853d)\n    Draw Rect from (x) (y) to ((x) + (25)) ((y) + (25))\n    broadcast (tick v)\n    wait (0.1) seconds\n    set pen color to (#ffffff)\n    Draw Rect from (x) (y) to ((x) + (25)) ((y) + (25))\n    broadcast (tick v)\n    wait (0.1) seconds\nend\nwait (0.25) seconds\nset [dir v] to (direction)\nrepeat until <<(round (x)) = [0]> and <(round (y)) = [0]>>\n    point in direction (dir)\n    broadcast (tick v)\n    set [yv v] to [0]\n    change [camera x v] by (((x) - (Camera X)) / (3))\n    change [camera y v] by (((y) - (Camera Y)) / (3))\n    change [x v] by (((0) - (x)) / (8))\n    change [y v] by (((0) - (y)) / (8))\n    render\nend\nset [dir v] to [90]\nclear sound effects\n\ndefine Go To (x) (y) <diagonal>\nif <diagonal> then\n    pen up\nend\nChange X by (((x) - (Camera X)) - (pen x))\nChange Y by (((y) - (Camera Y)) - (pen y))\nif <diagonal> then\n    set [new x v] to (x position)\n    set [new y v] to (y position)\n    Change X by (() - (((x) - (Camera X)) - (pen x)))\n    Change Y by (() - (((y) - (Camera Y)) - (pen y)))\n    pen down\n    go to x: (new x) y: (new y)\nend\nset [pen x v] to ((x) - (Camera X))\nset [pen y v] to ((y) - (Camera Y))\n\ndefine Change X by (x)\nmove (x) steps\n\ndefine Change Y by (y)\nturn left (90) degrees\nmove (y) steps\nturn right (90) degrees\n\ndefine Create Level (level)\nset [dir v] to [90]\ndelete all of [level v]\nLoad (item (level) of [level codes v])\nif <(level) > [27]> then\n    set [speed v] to [5]\nelse\n    if <(level) > [18]> then\n        set [speed v] to [4]\n    else\n        if <(level) > [10]> then\n            set [speed v] to [3]\n        else\n            if <(level) > [5]> then\n                set [speed v] to [2]\n            else\n                set [speed v] to [1]\n            end\n        end\n    end\nend\nif <(level) > [30]> then\n    broadcast (Win v)\n    stop [other scripts in sprite v]\n    erase all\nend\n\ndefine Add Block (type) from (x) (y) to (x2) (y2)\nadd (type) to [level v]\nadd (x) to [level v]\nadd (y) to [level v]\nadd (x2) to [level v]\nadd (y2) to [level v]\n\ndefine Draw Rect from (x1) (y1) to (x2) (y2)\npen up\nGo To (x1) (y1) <>\npen down\nGo To (x2) (y1) <>\nGo To (x2) (y2) <>\nGo To (x1) (y2) <>\nGo To (x1) (y1) <>\npen up\n\ndefine Move Y by (yv)\nset [can jump v] to [0]\nif <(Gravity) = [1]> then\n    change [y v] by (yv)\nend\nif <(Gravity) = [2]> then\n    change [x v] by (yv)\nend\nif <(Gravity) = [3]> then\n    change [y v] by (() - (yv))\nend\nif <(Gravity) = [4]> then\n    change [x v] by (() - (yv))\nend\nGet Collisions\nrepeat until <not <[collisions v] contains [1]?>>\n    set [yv v] to [0]\n    if <(yv) < [0]> then\n        set [can jump v] to [1]\n    end\n    Get Collisions\n    if <(Gravity) = [1]> then\n        change [y v] by (() - ((yv) / ([abs v] of (yv) )))\n    end\n    if <(Gravity) = [2]> then\n        change [x v] by (() - ((yv) / ([abs v] of (yv) )))\n    end\n    if <(Gravity) = [3]> then\n        change [y v] by ((yv) / ([abs v] of (yv) ))\n    end\n    if <(Gravity) = [4]> then\n        change [x v] by ((yv) / ([abs v] of (yv) ))\n    end\nend\n\ndefine Get Collisions\ndelete all of [collisions v]\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    change [i v] by (1)\n    if <((x) + (25)) > (item (i) of [level v])> then\n        change [i v] by (1)\n        if <((y) + (25)) > (item (i) of [level v])> then\n            change [i v] by (1)\n            if <(item (i) of [level v]) > (x)> then\n                change [i v] by (1)\n                if <(item (i) of [level v]) > (y)> then\n                    change [i v] by (-4)\n                    add (item (i) of [level v]) to [collisions v]\n                    change [i v] by (4)\n                end\n                change [i v] by (-1)\n            end\n            change [i v] by (-1)\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (4)\nend\n\ndefine Win\nchange [level v] by (1)\nCreate Level (level)\nset [gravity v] to [1]\nset [camera x v] to [0]\nset [camera y v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset [yv v] to [0]\npoint in direction (90)\n\nwhen [space v] key pressed\nset [__pause v] to ((1) - (__pause))\n\nwhen flag clicked\nset [__pause v] to [0]\n\n@Menu & buttons (pen)\n\nwhen flag clicked\nbroadcast (menu v)\n\ndefine create button x (x) y (y) x2 (x2) y2 (y2) broadcast (message)\nif <<<<(mouse x) < (x)> and <(mouse x) > (x2)>> or <<(mouse x) < (x2)> and <(mouse x) > (x)>>> and <<<(mouse y) < (y)> and <(mouse y) > (y2)>> or <<(mouse y) < (y2)> and <(mouse y) > (y)>>>> then\n    set pen color to (#6150ff)\nelse\n    set pen color to (#2d0bea)\nend\nset pen size to (5)\ngo to x: (x) y: (y)\npen down\nif <((y) - (y2)) < [0]> then\n    repeat (((y2) - (y)) / (5))\n        change x by ((x2) - (x))\n        change x by ((0) - ((x2) - (x)))\n        change y by (5)\n    end\n    change x by ((x2) - (x))\n    change x by ((0) - ((x2) - (x)))\nelse\n    repeat (((y) - (y2)) / (5))\n        change x by ((x2) - (x))\n        change x by ((0) - ((x2) - (x)))\n        change y by (-5)\n    end\n    change x by ((x2) - (x))\n    change x by ((0) - ((x2) - (x)))\nend\nset pen color to (#0a007b)\npen up\ngo to x: (x) y: (y)\npen down\ngo to x: (x) y: (y2)\ngo to x: (x2) y: (y2)\ngo to x: (x2) y: (y)\ngo to x: (x) y: (y)\npen up\nif <not <<(message) < [40]> and <(message) > [-1]>>> then\n    if <<<<(mouse x) < (x)> and <(mouse x) > (x2)>> or <<(mouse x) < (x2)> and <(mouse x) > (x)>>> and <<<(mouse y) < (y)> and <(mouse y) > (y2)>> or <<(mouse y) < (y2)> and <(mouse y) > (y)>>>> then\n        set pen color to (#d80000)\n        if <<not <(message) = [menu]>> and <<not <(message) = [edit]>> and <<not <(message) = [play level editor]>> and <<not <(message) = [save]>> and <<not <(message) = [load]>> and <not <(message) = [skip]>>>>>>> then\n            Print (message) at x: (((length of (message)) / (2)) * (-21)) y: [-150] direction: [90] size [2] thickness [3] height [75] width [] spacing [3]\n        end\n        if <mouse down?> then\n            stop [other scripts in sprite v]\n            set [ded? v] to [0]\n            broadcast (message)\n        end\n    end\nelse\n    set pen color to (#d80000)\n    if <<<<(mouse x) < (x)> and <(mouse x) > (x2)>> or <<(mouse x) < (x2)> and <(mouse x) > (x)>>> and <<<(mouse y) < (y)> and <(mouse y) > (y2)>> or <<(mouse y) < (y2)> and <(mouse y) > (y)>>>> then\n        if <mouse down?> then\n            stop [other scripts in sprite v]\n            set [level v] to (message)\n            broadcast (play v)\n            stop [this script v]\n        end\n    end\nend\n\ndefine render shapes\nset pen color to (#00179e)\ngo to x: (-10) y: ((-10) + (([cos v] of (move) ) * (10)))\npen down\ngo to x: (-10) y: ((20) + (([cos v] of (move) ) * (10)))\ngo to x: (10) y: ((5) + (([cos v] of (move) ) * (10)))\ngo to x: (-10) y: ((-10) + (([cos v] of (move) ) * (10)))\npen up\ngo to x: (-25) y: ((-55) + (([cos v] of (move) ) * (15)))\npen down\ngo to x: (-60) y: ((-55) + (([cos v] of (move) ) * (15)))\npen up\ngo to x: (-25) y: ((-65) + (([cos v] of (move) ) * (15)))\npen down\ngo to x: (-60) y: ((-65) + (([cos v] of (move) ) * (15)))\npen up\ngo to x: (-25) y: ((-75) + (([cos v] of (move) ) * (15)))\npen down\ngo to x: (-60) y: ((-75) + (([cos v] of (move) ) * (15)))\npen up\ngo to x: (25) y: ((-65) + (([cos v] of (move) ) * (15)))\npen down\ngo to x: (60) y: ((-65) + (([cos v] of (move) ) * (15)))\npen up\ngo to x: (42) y: ((-80) + (([cos v] of (move) ) * (15)))\npen down\ngo to x: (42) y: ((-50) + (([cos v] of (move) ) * (15)))\npen up\n\nwhen I receive [menu v]\nstop [other scripts in sprite v]\nerase all\nload letters\nset [__pause v] to [0]\nset [level v] to [1]\nset [move v] to [-200]\nrepeat (10)\n    erase all\n    change [move v] by (20)\n    set pen color to (#00faff)\n    Print [The] at x: ((move) + (-50)) y: [150] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\nend\nset [move v] to [200]\nrepeat (10)\n    erase all\n    change [move v] by (-20)\n    set pen color to (#00faff)\n    Print [The] at x: [-50] y: [150] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\n    set pen color to (#aeff00)\n    Print [Rotating] at x: ((move) + (-100)) y: [110] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\nend\nset [move v] to [-200]\nrepeat (10)\n    erase all\n    change [move v] by (20)\n    set pen color to (#00faff)\n    Print [The] at x: [-50] y: [150] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\n    set pen color to (#aeff00)\n    Print [Rotating] at x: [-100] y: [110] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\n    set pen color to (#0077ff)\n    Print [Platformer] at x: ((move) + (-120)) y: [70] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\nend\nset [move v] to [0]\nforever\n    erase all\n    change [move v] by (5)\n    create button x [-75] y ((-20) + (([cos v] of (move) ) * (10))) x2 [75] y2 ((35) + (([cos v] of (move) ) * (10))) broadcast [Play]\n    create button x [-75] y ((-90) + (([cos v] of (move) ) * (15))) x2 [-10] y2 ((-40) + (([cos v] of (move) ) * (15))) broadcast [level select]\n    create button x [75] y ((-90) + (([cos v] of (move) ) * (15))) x2 [10] y2 ((-40) + (([cos v] of (move) ) * (15))) broadcast [level editor]\n    render shapes\n    set pen color to (#00faff)\n    Print [The] at x: ((-50) + (([sin v] of (move) ) * (10))) y: [150] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\n    set pen color to (#aeff00)\n    Print [Rotating] at x: ((-100) + (([cos v] of (move) ) * (20))) y: [110] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\n    set pen color to (#0077ff)\n    Print [Platformer] at x: ((-120) + (([sin v] of (move) ) * (30))) y: [70] direction: [90] size [2] thickness [4] height [75] width [1] spacing [2]\nend\n\nwhen I receive [tick v]\nif <(__pause) = [1]> then\n    create button x [-220] y [170] x2 [-150] y2 [120] broadcast [menu]\n    create button x [-220] y [-160] x2 [-150] y2 [-110] broadcast [skip]\n    set pen color to (#00009a)\n    Print [skip] at x: [-210] y: [-143] direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    set pen color to (#ffffff)\n    Print (join [Level ] (level)) at x: [120] y: [150] direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    arrow\n    if <(ded?) = [1]> then\n        stop [other scripts in sprite v]\n    end\nend\n\ndefine arrow\nset pen color to (#0000aa)\nset pen size to (5)\ngo to x: (-190) y: (130)\npen down\nchange x by (10)\npoint in direction (90)\nrepeat (10)\n    turn left (17) degrees\n    move (3) steps\nend\nchange x by (-19)\npoint in direction (45)\nmove (10) steps\nmove (-10) steps\npoint in direction (135)\nmove (10) steps\nmove (-10) steps\npen up\n\nwhen I receive [level select v]\nstop [other scripts in sprite v]\nwait until <not <mouse down?>>\nforever\n    erase all\n    broadcast (ticky v)\n    get buttons\n    set pen color to (#04ff00)\n    Print [Level Select] at x: [-140] y: [145] direction: [90] size [2] thickness [5] height [75] width [] spacing [2]\nend\n\ndefine Print (message ) at x: (x) y: (y) direction: (direction) size (size) thickness (thickness) height (height) width (width) spacing (spacing)\nset pen size to (thickness)\nset [penloops v] to [0]\npoint in direction (direction)\nrepeat (length of (message ))\n    change [penloops v] by (1)\n    if <[letters v] contains (letter (penloops) of (message ))?> then\n        set [penloops2 v] to [1]\n        go to x: (x) y: (y)\n        move (((penloops) - (1)) * ((size) * ((9) + (spacing)))) steps\n        move ((letter (penloops2) of (item (item # of (letter (penloops) of (message )) in [letters v]) of [letter data v])) * ((size) * ((1) + ((width) / (100))))) steps\n        turn left (90) degrees\n        move ((letter ((penloops2) + (1)) of (item (item # of (letter (penloops) of (message )) in [letters v]) of [letter data v])) * ((size) * ((1) + ((height) / (100))))) steps\n        turn left (-90) degrees\n        set [penx v] to (x position)\n        set [peny v] to (y position)\n        repeat (((length of (item (item # of (letter (penloops) of (message )) in [letters v]) of [letter data v])) / (2)) - (0))\n            go to x: (x) y: (y)\n            move (((penloops) - (1)) * ((size) * ((9) + (spacing)))) steps\n            move ((letter (penloops2) of (item (item # of (letter (penloops) of (message )) in [letters v]) of [letter data v])) * ((size) * ((1) + ((width) / (100))))) steps\n            turn left (90) degrees\n            move ((letter ((penloops2) + (1)) of (item (item # of (letter (penloops) of (message )) in [letters v]) of [letter data v])) * ((size) * ((1) + ((height) / (100))))) steps\n            turn left (-90) degrees\n            set [prevpenx v] to (penx)\n            set [prevpeny v] to (peny)\n            set [penx v] to (x position)\n            set [peny v] to (y position)\n            go to x: (prevpenx) y: (prevpeny)\n            pen down\n            go to x: (penx) y: (peny)\n            pen up\n            change [penloops2 v] by (2)\n        end\n    end\nend\n\ndefine load letters\ndelete all of [letters v]\ndelete all of [letter data v]\nadd [abcdefghijklmnopqrstuvwxyz.1234567890] to list\nadd [004864246480] to [letter data v]\nadd [000868868564046483826000] to [letter data v]\nadd [8668280602206082] to [letter data v]\nadd [00085885835000] to [letter data v]\nadd [88080484040080] to [letter data v]\nadd [880804840400] to [letter data v]\nadd [86682806022060828444] to [letter data v]\nadd [000804848088] to [letter data v]\nadd [4048] to [letter data v]\nadd [8882602002] to [letter data v]\nadd [000804880480] to [letter data v]\nadd [080080] to [letter data v]\nadd [0008408880] to [letter data v]\nadd [00088088] to [letter data v]\nadd [608286682806022060] to [letter data v]\nadd [00087887857404] to [letter data v]\nadd [608286682806022060714480] to [letter data v]\nadd [0008788785740480] to [letter data v]\nadd [88180705147483817000] to [letter data v]\nadd [08884840] to [letter data v]\nadd [080220608288] to [letter data v]\nadd [084088] to [letter data v]\nadd [0820486088] to [letter data v]\nadd [0880448800] to [letter data v]\nadd [0844884440] to [letter data v]\nadd [08880080] to [letter data v]\nadd [4041515040] to [letter data v]\nadd [4048] to [letter data v]\nadd [06286886850080] to [letter data v]\nadd [06286886448381602002] to [letter data v]\nadd [40480484] to [letter data v]\nadd [8808046483816000] to [letter data v]\nadd [6828060464838160100104] to [letter data v]\nadd [06088820] to [letter data v]\nadd [062868860220608206] to [letter data v]\nadd [54240618688620] to [letter data v]\nadd [60828668280602206] to [letter data v]\n\ndefine add (msg) to list\nset [penloops v] to [0]\nrepeat (length of (msg))\n    change [penloops v] by (1)\n    add (letter (penloops) of (msg)) to [letters v]\nend\n\nwhen flag clicked\nload letters\n\nwhen I receive [menu v]\nset [ded? v] to [0]\n\ndefine get buttons\nset [loops v] to [0]\nrepeat (30)\n    change [loops v] by (1)\n    create button x (((((6) - ((loops) - (0))) mod (6)) * (80)) - (240)) y ((([floor v] of (((loops) + (-1)) / (6)) ) * (60)) - (180)) x2 (((((6) - ((loops) - (0))) mod (6)) * (80)) - (160)) y2 ((([floor v] of (((loops) + (-1)) / (6)) ) * (60)) - (120)) broadcast ((31) - (loops))\n    set pen color to (#ffffff)\n    Print ((31) - (loops)) at x: ((((((6) - ((loops) - (1))) - (1)) mod (6)) * (80)) - (215)) y: ((([floor v] of (((loops) + (-1)) / (6)) ) * (60)) - (170)) direction: [90] size [2] thickness [2] height [75] width [] spacing [2]\nend\n\nwhen I receive [play v]\nstop [other scripts in sprite v]\n\nwhen I receive [level editor v]\nstop [other scripts in sprite v]\n\nwhen I receive [level editor tick v]\nif <(Mode) = [2]> then\n    create button x [-160] y [160] x2 [-100] y2 [100] broadcast [edit]\n    set pen color to (#000000)\n    Print [edit] at x: [-150] y: [120] direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\nelse\n    create button x [-240] y [75] x2 [240] y2 [180] broadcast [edit]\n    create button x [-160] y [160] x2 [-100] y2 [100] broadcast [play level editor]\n    set pen color to (#000000)\n    Print [play] at x: [-150] y: [120] direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    create button x [-80] y [160] x2 [-20] y2 [100] broadcast [<]\n    create button x [40] y [160] x2 [100] y2 [100] broadcast [>]\n    create button x [140] y [160] x2 [220] y2 [130] broadcast [save]\n    create button x [140] y [130] x2 [220] y2 [100] broadcast [load]\n    set pen color to (#19009b)\n    Print [save] at x: [157] y: [138] direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    Print [load] at x: [157] y: [108] direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    if <(Edit Type) < [9]> then\n        if <(Edit Type) = [1]> then\n            set pen color to (#11b900)\n        end\n        if <(Edit Type) = [2]> then\n            set pen color to (#ab0000)\n        end\n        if <(Edit Type) = [3]> then\n            set pen color to (#009dff)\n        end\n        if <(Edit Type) = [4]> then\n            set pen color to (#ffd000)\n        end\n        set pen size to (50)\n        go to x: (10) y: (130)\n        pen down\n        pen up\n        if <<(Edit Type) > [4]> and <(Edit Type) < [9]>> then\n            set pen color to (#fa00ff)\n            set pen size to (50)\n            pen down\n            pen up\n            go to x: (10) y: (130)\n            set pen color to (#000000)\n            Print (letter ((Edit Type) - (4)) of [dlur]) at x: [0] y: [115] direction: [90] size [2] thickness [5] height [75] width [] spacing []\n        end\n        arrowsas\n    else\n        arrowsas\n        if <(Edit Type) = [9]> then\n            delete\n        else\n            resize\n        end\n    end\nend\nset [edit type v] to ((((Edit Type) - (1)) mod (10)) + (1))\ncreate button x [-230] y [100] x2 [-170] y2 [160] broadcast [menu]\narrow2\nif <(win) = [1]> then\n    set pen color to (#fafafa)\n    change [win height v] by (5)\n    Print [YOU  WIN] at x: [-180] y: (win height) direction: [90] size [5] thickness [10] height [75] width [] spacing []\nend\n\nwhen I receive [edit v]\nwait until <not <mouse down?>>\nset [mode v] to [1]\nset [x v] to [0]\nset [y v] to [0]\nset [camera x v] to [0]\nset [camera y v] to [0]\nset [dir v] to [90]\npoint in direction (90)\n\nwhen I receive [play level editor v]\nwait until <not <mouse down?>>\nset [dir v] to [90]\nset [camera x v] to [0]\nset [camera y v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset [mode v] to [2]\n\nwhen I receive [< v]\nwait until <not <mouse down?>>\nchange [edit type v] by (-1)\n\nwhen I receive [> v]\nwait until <not <mouse down?>>\nchange [edit type v] by (1)\n\ndefine arrowsas\nset pen color to (#000000)\nset pen size to (5)\ngo to x: (-50) y: (115)\npen down\ngo to x: (-70) y: (130)\ngo to x: (-30) y: (130)\ngo to x: (-70) y: (130)\ngo to x: (-50) y: (145)\npen up\ngo to x: (70) y: (115)\npen down\ngo to x: (90) y: (130)\ngo to x: (50) y: (130)\ngo to x: (90) y: (130)\ngo to x: (70) y: (145)\npen up\n\nwhen I receive [ticky v]\ncreate button x [-220] y [170] x2 [-150] y2 [120] broadcast [menu]\narrow\n\ndefine delete\nset pen color to (#ff0000)\nset pen size to (5)\ngo to x: (0) y: (115)\npen down\ngo to x: (25) y: (145)\npen up\ngo to x: (25) y: (115)\npen down\ngo to x: (0) y: (145)\npen up\n\ndefine resize\nset pen color to (#000000)\nset pen size to (5)\ngo to x: (-10) y: (105)\npen down\ngo to x: (25) y: (140)\ngo to x: (25) y: (115)\ngo to x: (25) y: (140)\ngo to x: (0) y: (140)\ngo to x: (25) y: (115)\npen up\nset pen size to (20)\ngo to x: (16.6) y: (132)\npen down\npen up\n\ndefine arrow2\nset pen color to (#0000aa)\nset pen size to (5)\ngo to x: (-205) y: (118)\npen down\nchange x by (10)\npoint in direction (90)\nrepeat (10)\n    turn left (17) degrees\n    move (3) steps\nend\nchange x by (-19)\npoint in direction (45)\nmove (10) steps\nmove (-10) steps\npoint in direction (135)\nmove (10) steps\nmove (-10) steps\npen up\n\nwhen I receive [level editor tick v]\n\nwhen I receive [tick->win v]\nset [win height v] to [-180]\nset [win v] to [1]\nwait (1) seconds\nset [win v] to [0]\n\nwhen flag clicked\nset [win v] to [0]\n\nset [camera x v] to [0]\n\nwhen I receive [win v]\nset [_aaaa v] to [0]\nset pen color to (#ffffff)\nrepeat (150)\n    erase all\n    change [_aaaa v] by (5)\n    if <<((_AAAA) + (-180)) < [180]> and <[-180] < ((_AAAA) + (-180))>> then\n        Print [YOU WIN] at x: [-240] y: ((_AAAA) + (-180)) direction: [90] size [5] thickness [10] height [75] width [] spacing []\n    end\n    if <<((_AAAA) + (-240)) < [180]> and <[-180] < ((_AAAA) + (-240))>> then\n        Print [Credits] at x: [-240] y: ((_AAAA) + (-240)) direction: [90] size [3] thickness [5] height [75] width [] spacing []\n    end\n    if <<((_AAAA) + (-280)) < [180]> and <[-180] < ((_AAAA) + (-280))>> then\n        Print [04tmoody for the physics code and level] at x: [-240] y: ((_AAAA) + (-280)) direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    end\n    if <<((_AAAA) + (-310)) < [180]> and <[-180] < ((_AAAA) + (-310))>> then\n        Print [editor] at x: [-240] y: ((_AAAA) + (-310)) direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    end\n    if <<((_AAAA) + (-340)) < [180]> and <[-180] < ((_AAAA) + (-340))>> then\n        Print [i8d for menu level select and other] at x: [-240] y: ((_AAAA) + (-340)) direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    end\n    if <<((_AAAA) + (-370)) < [180]> and <[-180] < ((_AAAA) + (-370))>> then\n        Print [improvements] at x: [-240] y: ((_AAAA) + (-370)) direction: [90] size [1] thickness [3] height [75] width [] spacing [3]\n    end\n    if <<((_AAAA) + (-480)) < [180]> and <[-180] < ((_AAAA) + (-480))>> then\n        Print [thanks everyone who made a level] at x: [-240] y: ((_AAAA) + (-480)) direction: [90] size [1.25] thickness [3] height [75] width [] spacing [3]\n    end\nend\n\nset [dir v] to [90]\n\nwhen flag clicked\nset [__pause v] to [0]\n\n@Level Editor (pen)\n\ndefine Save\nset [save code v] to []\nset [j v] to [0]\nrepeat (length of [level v])\n    change [j v] by (1)\n    set [save code v] to (join (Save Code) (join (item (j) of [level v]) [/]))\nend\n\ndefine Load (code)\ndelete all of [level v]\nset [item v] to []\nset [j v] to [0]\nrepeat (length of (code))\n    change [j v] by (1)\n    if <(letter (j) of (code)) = [/]> then\n        add (Item) to [level v]\n        set [item v] to []\n    else\n        set [item v] to (join (Item) (letter (j) of (code)))\n    end\nend\n\ndefine Edit\nif <<(mouse y) < [130]> and <<(mouse x) < [120]> or <[-95] < (mouse y)>>> then\n    if <[9] > (Edit Type)> then\n        pen up\n        if <(Edit Type) = [1]> then\n            set pen color to (#11b900)\n        end\n        if <(Edit Type) = [2]> then\n            set pen color to (#ab0000)\n        end\n        if <(Edit Type) = [3]> then\n            set pen color to (#009dff)\n        end\n        if <(Edit Type) = [4]> then\n            set pen color to (#ffd000)\n        end\n        if <<(Edit Type) > [4]> and <(Edit Type) < [9]>> then\n            set pen color to (#fa00ff)\n        end\n        set pen (transparency v) to (75)\n        Draw Rect from ((mouse x) + (Camera X)) ((mouse y) + (Camera Y)) to (((mouse x) + (Camera X)) + (50)) (((mouse y) + (Camera Y)) + (50)) edit? <>\n        if <mouse down?> then\n            wait until <not <mouse down?>>\n            Add Block (Edit Type) from ((mouse x) + (Camera X)) ((mouse y) + (Camera Y)) to (((mouse x) + (Camera X)) + (50)) (((mouse y) + (Camera Y)) + (50))\n        end\n    end\n    if <(Edit Type) = [9]> then\n        if <mouse down?> then\n            Try to Delete\n        end\n    end\n    if <(Edit Type) = [10]> then\n        if <mouse down?> then\n            Try to Select\n        else\n            set [selected block v] to [0]\n        end\n        if <(Selected Block) > [0]> then\n            set [editor x v] to ((mouse x) + (Camera X))\n            set [editor y v] to ((mouse y) + (Camera Y))\n            replace item (Selected Block) of [level v] with (editor x)\n            replace item ((Selected Block) + (1)) of [level v] with (editor y)\n            Fix Blocks\n        end\n    end\nend\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [camera x v] by (-10)\nend\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [camera x v] by (10)\nend\nif <[0] > (Camera X)> then\n    set [camera x v] to [0]\nend\nif <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n    change [camera y v] by (-10)\nend\nif <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n    change [camera y v] by (10)\nend\nif <[0] > (Camera Y)> then\n    set [camera y v] to [0]\nend\n\ndefine Try to Delete\nset [editor x v] to ((mouse x) + (Camera X))\nset [editor y v] to ((mouse y) + (Camera Y))\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    change [i v] by (1)\n    if <(editor x) > (item (i) of [level v])> then\n        change [i v] by (1)\n        if <(editor y) > (item (i) of [level v])> then\n            change [i v] by (1)\n            if <(item (i) of [level v]) > (editor x)> then\n                change [i v] by (1)\n                if <(item (i) of [level v]) > (editor y)> then\n                    change [i v] by (-4)\n                    repeat (5)\n                        delete (i) of [level v]\n                    end\n                    change [i v] by (4)\n                end\n                change [i v] by (-1)\n            end\n            change [i v] by (-1)\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (4)\nend\n\ndefine Try to Select\nset [editor x v] to ((mouse x) + (Camera X))\nset [editor y v] to ((mouse y) + (Camera Y))\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    change [i v] by (1)\n    if <(editor x) > ((item (i) of [level v]) - (9))> then\n        change [i v] by (1)\n        if <(editor y) > ((item (i) of [level v]) - (9))> then\n            change [i v] by (-1)\n            if <((item (i) of [level v]) + (9)) > (editor x)> then\n                change [i v] by (1)\n                if <((item (i) of [level v]) + (9)) > (editor y)> then\n                    change [i v] by (-1)\n                    set [selected block v] to (i)\n                    change [i v] by (1)\n                end\n                change [i v] by (-1)\n            end\n            change [i v] by (1)\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (2)\n    if <(editor x) > ((item (i) of [level v]) - (9))> then\n        change [i v] by (1)\n        if <(editor y) > ((item (i) of [level v]) - (9))> then\n            change [i v] by (-1)\n            if <((item (i) of [level v]) + (9)) > (editor x)> then\n                change [i v] by (1)\n                if <((item (i) of [level v]) + (9)) > (editor y)> then\n                    change [i v] by (-1)\n                    set [selected block v] to (i)\n                    change [i v] by (1)\n                end\n                change [i v] by (-1)\n            end\n            change [i v] by (1)\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (2)\nend\n\ndefine Fix Blocks\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    change [i v] by (1)\n    if <((Selected Block) mod (5)) = [2]> then\n        if <(item (i) of [level v]) > ((item ((i) + (2)) of [level v]) - (20))> then\n            replace item (i) of [level v] with ((item ((i) + (2)) of [level v]) - (20))\n        end\n        change [i v] by (1)\n        if <(item (i) of [level v]) > ((item ((i) + (2)) of [level v]) - (20))> then\n            replace item (i) of [level v] with ((item ((i) + (2)) of [level v]) - (20))\n        end\n        change [i v] by (-1)\n    else\n        if <(item (i) of [level v]) > ((item ((i) + (2)) of [level v]) - (20))> then\n            replace item ((i) + (2)) of [level v] with ((item (i) of [level v]) + (20))\n        end\n        change [i v] by (1)\n        if <(item (i) of [level v]) > ((item ((i) + (2)) of [level v]) - (20))> then\n            replace item ((i) + (2)) of [level v] with ((item (i) of [level v]) + (20))\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (4)\nend\n\nwhen I receive [save v]\nSave\ndelete all of [save code v]\nadd [Triple Click The Following Code And Press Ctr+c To Copy It] to [save code v]\nadd (Save Code) to [save code v]\nadd [\(Press Space To Close\)] to [save code v]\nhide list [save code v]\nwait until <key (space v) pressed?>\nshow list [save code v]\n\ndefine physics\npoint in direction (dir)\nif <key (left arrow v) pressed?> then\n    Move X by [-8]\nend\nif <key (right arrow v) pressed?> then\n    Move X by [8]\nend\nchange [yv v] by (-2)\nMove Y by (yv)\nif <<key (up arrow v) pressed?> and <(can jump) = [1]>> then\n    set [yv v] to [18]\nend\nGet Collisions\nif <[collisions v] contains [3]?> then\n    set [yv v] to [25]\nend\nGet Collisions\nif <[collisions v] contains [5]?> then\n    set [gravity v] to [1]\nend\nif <[collisions v] contains [6]?> then\n    set [gravity v] to [2]\nend\nif <[collisions v] contains [7]?> then\n    set [gravity v] to [3]\nend\nif <[collisions v] contains [8]?> then\n    set [gravity v] to [4]\nend\nif <<<<(x) < [-240]> or <(y) < [-180]>> or <<(x) > [4560]> or <(y) > [3420]>>> or <[collisions v] contains [2]?>> then\n    broadcast (die2 v)\nend\nif <[collisions v] contains [4]?> then\n    Win\nend\nchange [camera y v] by (((y) - (Camera Y)) / (5))\nchange [camera x v] by (((x) - (Camera X)) / (5))\nif <(Gravity) = [1]> then\n    if <([abs v] of ((dir) - (90)) ) < [180]> then\n        change [dir v] by (((90) - (dir)) / (10))\n    else\n        change [dir v] by (((-270) - (dir)) / (10))\n    end\nend\nif <(Gravity) = [4]> then\n    if <([abs v] of ((dir) - (180)) ) < [180]> then\n        change [dir v] by (((180) - (dir)) / (10))\n    else\n        change [dir v] by (((-180) - (dir)) / (10))\n    end\nend\nif <(Gravity) = [2]> then\n    if <([abs v] of ((dir) - (0)) ) < [180]> then\n        change [dir v] by (((0) - (dir)) / (10))\n    else\n        change [dir v] by (((360) - (dir)) / (10))\n    end\nend\nif <(Gravity) = [3]> then\n    if <([abs v] of ((dir) - (270)) ) < [180]> then\n        change [dir v] by (((270) - (dir)) / (10))\n    else\n        change [dir v] by (((-90) - (dir)) / (10))\n    end\nend\n\ndefine Move X by (xv)\nif <(Gravity) = [1]> then\n    change [x v] by (xv)\nend\nif <(Gravity) = [2]> then\n    change [y v] by (() - (xv))\nend\nif <(Gravity) = [3]> then\n    change [x v] by (() - (xv))\nend\nif <(Gravity) = [4]> then\n    change [y v] by (xv)\nend\nGet Collisions\nrepeat until <not <[collisions v] contains [1]?>>\n    Get Collisions\n    if <(Gravity) = [1]> then\n        change [x v] by (() - ((xv) / ([abs v] of (xv) )))\n    end\n    if <(Gravity) = [2]> then\n        change [y v] by ((xv) / ([abs v] of (xv) ))\n    end\n    if <(Gravity) = [3]> then\n        change [x v] by ((xv) / ([abs v] of (xv) ))\n    end\n    if <(Gravity) = [4]> then\n        change [y v] by (() - ((xv) / ([abs v] of (xv) )))\n    end\nend\n\ndefine Move Y by (yv)\nset [can jump v] to [0]\nif <(Gravity) = [1]> then\n    change [y v] by (yv)\nend\nif <(Gravity) = [2]> then\n    change [x v] by (yv)\nend\nif <(Gravity) = [3]> then\n    change [y v] by (() - (yv))\nend\nif <(Gravity) = [4]> then\n    change [x v] by (() - (yv))\nend\nGet Collisions\nrepeat until <not <[collisions v] contains [1]?>>\n    set [yv v] to [0]\n    if <(yv) < [0]> then\n        set [can jump v] to [1]\n    end\n    Get Collisions\n    if <(Gravity) = [1]> then\n        change [y v] by (() - ((yv) / ([abs v] of (yv) )))\n    end\n    if <(Gravity) = [2]> then\n        change [x v] by (() - ((yv) / ([abs v] of (yv) )))\n    end\n    if <(Gravity) = [3]> then\n        change [y v] by ((yv) / ([abs v] of (yv) ))\n    end\n    if <(Gravity) = [4]> then\n        change [x v] by ((yv) / ([abs v] of (yv) ))\n    end\nend\n\ndefine Get Collisions\ndelete all of [collisions v]\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    change [i v] by (1)\n    if <((x) + (25)) > (item (i) of [level v])> then\n        change [i v] by (1)\n        if <((y) + (25)) > (item (i) of [level v])> then\n            change [i v] by (1)\n            if <(item (i) of [level v]) > (x)> then\n                change [i v] by (1)\n                if <(item (i) of [level v]) > (y)> then\n                    change [i v] by (-4)\n                    add (item (i) of [level v]) to [collisions v]\n                    change [i v] by (4)\n                end\n                change [i v] by (-1)\n            end\n            change [i v] by (-1)\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (4)\nend\n\nset [mode v] to [2]\n\nwhen I receive [die2 v]\nstop [other scripts in sprite v]\ndiee\nbroadcast (level editor v)\n\ndefine diee\nset [yv v] to [0]\nset [gravity v] to [1]\npoint in direction (90)\nrepeat (3)\n    render\n    set pen color to (#fe853d)\n    Draw Rect from (x) (y) to ((x) + (25)) ((y) + (25)) edit? <>\n    wait (0.1) seconds\n    set pen color to (#ffb9b9)\n    Draw Rect from (x) (y) to ((x) + (25)) ((y) + (25)) edit? <>\n    wait (0.1) seconds\nend\nrepeat until <<(round (x)) = [0]> and <(round (y)) = [0]>>\n    set [dir v] to [90]\n    set [yv v] to [0]\n    change [camera x v] by (((x) - (Camera X)) / (3))\n    change [camera y v] by (((y) - (Camera Y)) / (3))\n    change [x v] by (((0) - (x)) / (8))\n    change [y v] by (((0) - (y)) / (8))\n    render\nend\nclear sound effects\n\nwhen I receive [level editor v]\nset [level v] to [1]\nwait until <not <mouse down?>>\nif <(editor?) = [0]> then\n    switch costume to (costume3 v)\n    set size to (5000) %\n    switch costume to (costume2 v)\n    hide\n    point in direction (90)\n    Create Level (level)\n    set [camera x v] to [0]\n    set [camera y v] to [0]\n    set [gravity v] to [1]\n    set [x v] to [0]\n    set [y v] to [0]\n    set [yv v] to [0]\n    set [mode v] to [1]\n    set [edit type v] to [1]\n    show list [save code v]\n    set [editor? v] to [1]\nend\nforever\n    render\n    if <(Mode) = [1]> then\n        if <(mouse y) < [75]> then\n            point in direction (90)\n            Edit\n        end\n    else\n        physics\n    end\n    broadcast (level editor tick v)\nend\n\ndefine render\ngo to x: (0) y: (0)\nset [pen x v] to [0]\nset [pen y v] to [0]\npen up\nerase all\nset pen size to (5)\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    if <(item (i) of [level v]) = [1]> then\n        set pen color to (#11b900)\n    end\n    if <(item (i) of [level v]) = [2]> then\n        set pen color to (#ab0000)\n    end\n    if <(item (i) of [level v]) = [3]> then\n        set pen color to (#009dff)\n    end\n    if <(item (i) of [level v]) = [4]> then\n        set pen color to (#ffd000)\n    end\n    if <<(item (i) of [level v]) > [4]> and <(item (i) of [level v]) < [9]>> then\n        set pen color to (#fa00ff)\n        if <(item (i) of [level v]) = [5]> then\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) <>\n            pen down\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n        end\n        if <(item (i) of [level v]) = [6]> then\n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) <>\n            pen down\n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n        end\n        if <(item (i) of [level v]) = [7]> then\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) <>\n            pen down\n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n        end\n        if <(item (i) of [level v]) = [8]> then\n            Go To ((item ((i) + (1)) of [level v]) + (15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) <>\n            pen down\n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (2)) of [level v]) + (15)) \n            Go To ((item ((i) + (3)) of [level v]) + (-15)) (((item ((i) + (2)) of [level v]) + (item ((i) + (4)) of [level v])) / (2)) \n            Go To (((item ((i) + (1)) of [level v]) + (item ((i) + (3)) of [level v])) / (2)) ((item ((i) + (4)) of [level v]) + (-15)) \n        end\n    end\n    change [i v] by (1)\n    Draw Rect from ((item (i) of [level v]) - (-5)) ((item ((i) + (1)) of [level v]) - (-5)) to ((item ((i) + (2)) of [level v]) + (-5)) ((item ((i) + (3)) of [level v]) + (-5)) edit? <<(Mode) = [1]> and <(Edit Type) = [10]>>\n    change [i v] by (4)\nend\nset pen color to (#fe863d)\nDraw Rect from (x) (y) to ((x) + (25)) ((y) + (25)) edit? <>\nset pen color to (#ffffff)\nDraw Rect from [-240] [-180] to [4560] [3420] edit? <>\n\nwhen I receive [level editor resume v]\nforever\n    render\n    if <(Mode) = [1]> then\n        Edit\n    else\n        physics\n    end\n    broadcast (level editor tick v)\nend\n\nwhen I receive [load v]\nwait until <not <mouse down?>>\nask [Enter Save Code:] and wait\nif <not <(answer) = []>> then\n    Load (answer)\nend\n\nwhen I receive [menu v]\nerase all\nset [test v] to [1]\nwait until <not <mouse down?>>\nstop [other scripts in sprite v]\n\nset [test v] to [0]\n\nwhen flag clicked\nset [editor? v] to [0]\n\nwhen flag clicked\nshow list [save code v]\n\nwhen flag clicked\nset [__pause v] to [0]\n\ndefine Create Level (level)\ndelete all of [level v]\nAdd Block [1] from [-50] [-50] to [50] [-25]\n\ndefine Add Block (type) from (x) (y) to (x2) (y2)\nadd (type) to [level v]\nadd (x) to [level v]\nadd (y) to [level v]\nadd (x2) to [level v]\nadd (y2) to [level v]\n\ndefine Draw Rect from (x1) (y1) to (x2) (y2) edit? <edit?>\npen up\nGo To (x1) (y1) <>\npen down\nGo To (x2) (y1) <>\nGo To (x2) (y2) <>\nGo To (x1) (y2) <>\nGo To (x1) (y1) <>\npen up\nif <edit?> then\n    set pen color to (#cecece)\n    set pen (transparency v) to (25)\n    set pen size to (12)\n    Go To (x1) (y1) <>\n    pen down\n    pen up\n    Go To (x2) (y2) <>\n    pen down\n    pen up\n    set pen size to (5)\nend\n\ndefine Move Y by (yv)\nset [can jump v] to [0]\nif <(Gravity) = [1]> then\n    change [y v] by (yv)\nend\nif <(Gravity) = [2]> then\n    change [x v] by (yv)\nend\nif <(Gravity) = [3]> then\n    change [y v] by (() - (yv))\nend\nif <(Gravity) = [4]> then\n    change [x v] by (() - (yv))\nend\nGet Collisions\nrepeat until <not <[collisions v] contains [1]?>>\n    set [yv v] to [0]\n    if <(yv) < [0]> then\n        set [can jump v] to [1]\n    end\n    Get Collisions\n    if <(Gravity) = [1]> then\n        change [y v] by (() - ((yv) / ([abs v] of (yv) )))\n    end\n    if <(Gravity) = [2]> then\n        change [x v] by (() - ((yv) / ([abs v] of (yv) )))\n    end\n    if <(Gravity) = [3]> then\n        change [y v] by ((yv) / ([abs v] of (yv) ))\n    end\n    if <(Gravity) = [4]> then\n        change [x v] by ((yv) / ([abs v] of (yv) ))\n    end\nend\n\ndefine Get Collisions\ndelete all of [collisions v]\nset [i v] to [1]\nrepeat until <(i) > (length of [level v])>\n    change [i v] by (1)\n    if <((x) + (25)) > (item (i) of [level v])> then\n        change [i v] by (1)\n        if <((y) + (25)) > (item (i) of [level v])> then\n            change [i v] by (1)\n            if <(item (i) of [level v]) > (x)> then\n                change [i v] by (1)\n                if <(item (i) of [level v]) > (y)> then\n                    change [i v] by (-4)\n                    add (item (i) of [level v]) to [collisions v]\n                    change [i v] by (4)\n                end\n                change [i v] by (-1)\n            end\n            change [i v] by (-1)\n        end\n        change [i v] by (-1)\n    end\n    change [i v] by (4)\nend\n\ndefine Win\nset [gravity v] to [1]\nset [camera x v] to [0]\nset [camera y v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset [yv v] to [0]\npoint in direction (90)\nset [win v] to [1]\nbroadcast (tick->win v)\n\ndefine Go To (x) (y) <diagonal>\nif <diagonal> then\n    pen up\nend\nChange X by (((x) - (Camera X)) - (pen x))\nChange Y by (((y) - (Camera Y)) - (pen y))\nif <diagonal> then\n    set [new x v] to (x position)\n    set [new y v] to (y position)\n    Change X by (() - (((x) - (Camera X)) - (pen x)))\n    Change Y by (() - (((y) - (Camera Y)) - (pen y)))\n    pen down\n    go to x: (new x) y: (new y)\nend\nset [pen x v] to ((x) - (Camera X))\nset [pen y v] to ((y) - (Camera Y))\n\ndefine Change Y by (y)\nturn left (90) degrees\nmove (y) steps\nturn right (90) degrees\n\ndefine Change X by (x)\nmove (x) steps\n\n@fps\n\nwhen flag clicked\nset [fps temp v] to [0]\nforever\n    change [fps temp v] by (1)\n    if <(timer) > [1]> then\n        set [fps v] to (fps temp)\n        set [fps temp v] to [0]\n        reset timer\n    end\n    wait (0) seconds\nend\n\nwhen flag clicked\nset [__pause v] to [0]\n\n