TPT Script Server

This page is used for previewing and submitting scripts for use with the Script Manager

Available Scripts

(2) TPTMulti by LBPHacker
(3) set wifi v2 by jacob1
(4) Script Paste by jacob1
(5) Random Element by jacob1
(6) Magical Merge Master 3000 by nucular
(7) More Fuel Mod-heavy by jward212
(9) Breakpoints (BRPT) by boxmein
(10) Cockroaches! by boxmein
(11) Random tree by ssccsscc
(12) Element with random properties by ssccsscc
(15) Minimalistic Element Dehider by nucular
(16) FPS Gauge by mniip
(17) TPT Radio by jward212
(18) Print Debugger by FeynmanLogomaker
(19) Powered BHOL by jacob1
(20) Light and lamps by electronic_steve
(21) Extremely Durable TTAN by QuentinADay
(22) New Buttons by QuentinADay
(23) Pure Energy by QuentinADay
(25) RCA's HUD XV Update I by RCAProduction
(27) 123456787654 vols by mjpowder
(28) Singularity Bomb by QuentinADay
(29) ES wifi set by electronic_steve
(30) Lua Elements Pack by FeynmanLogomaker
(31) stkm gun by jward212
(32) space building materials by kjack1111
(34) Rust bomb by Damian97
(35) Simple command block by ssccsscc
(36) Everlasting Fusion by QuentinADay
(37) Screenshot Organiser by mecha-man
(38) Napalm mod by cccp3
(39) Rocket fuel mod v0.15 by cccp3
(41) Useful web links by jward212
(42) TPT Logic Gates Mod by iamdumb
(43) ESTools by electronic_steve
(44) Head Crabs-HL2 by jward212
(45) Procedural Save Generator by boxmein
(46) smooth colours for nametag by jward212
(47) ZAKPACK by zak03
(49) Performance Monitor by FeynmanLogomaker
(51) Texter by byzod
(52) Texter default fonts by byzod
(53) Schicko's Font Pack for Texter by Schicko
(54) Realistic Element Names by Atomic10
(55) TPT's Mod V.3 Update 1 by Amy
(56) Temporaryaccount-Decorator by Temporaryaccount
(57) random save loader by jward212
(58) Tmp gradient display by ssccsscc
(59) particle re-orderer by mniip
(60) Electric Glow by jacob1
(61) More Fuel Mod-lite by jward212
(63) Rythidium by janekbe04
(64) Simple FPS GUI by Sfsjunior
(65) Enhanced Element Dehider by ChargedCreeper
(66) Graph of average temp by ssccsscc
(67) Template save loader by jacob1
(68) Lua Text Generator by jBot-42
(70) Pixel's Freezer by Pixelguru26
(71) Thingy | Fusion For Ever by TheChosenEvilOne
(72) op explosions by zolly_bro
(73) Scar by DorkyBobster
(74) ScreenShotMod by lill74
(77) Useful Things by TheEvilChosenOne
(78) Alchemy Mod by _MrN_
(79) Nuke v2 by Fnaf65
(80) Compressor mod by TheChosenEvilOne
(81) Custom Render Mode Loader by jacob1
(82) Spacewars by JosephMA
(83) MOAR - Alpha 0.1 by TheChosenEvilOne
(86) Element Creator by cxi
(88) Soapworm by LBPHacker
(90) Pressure Bomb by God_Kra
(91) SMFB by wntjq69
(92) Potato by cxi
(93) Subatomic Pack (BDS) by TPT_PL
(94) Acidic Pack (BDS) by TPT_PL
(95) Starbound Building Materials by Sanpypr
(96) Factory problems by TPT_PL
(97) Gamma Ray-diation by Kostia4381
(98) Magic by livingfossil
(99) Cross-window Copy/Cut/Paste by LBPHacker
(100) Langton's Ant with variations by LBPHacker
(101) Remote particle creator/deleter by TPT_PL
(102) Force fields by electronic_steve
(103) Reinforced Concrete by 12Me21
(105) TPT_PL's Lua Mod by TPT_PL
(106) Nuke v4 by Fnaf65
(107) CHEMMOD V1 by KevAK
(108) Chemicals by Ligan
(109) VonDaniel's Template by VonDaniel
(110) The Inaccurate Radioactivity Toy Mod by TuDoR2007
(112) textmonsterPack by textmonster404
(113) Meteor by TheScienceKid
(114) Tgpm by TuDoR2007
(115) Civilizations by TPT_PL
(116) RAD-MOD 1.2.1B by Kev_AK
(117) MicroLua by RamiLego4Game
(118) Extra customizable HUD by djy0212
(119) Ingame brush editor by ssccsscc
(120) Window Maker by Paul_31415
(121) CHEM-MOD V1.2B by Kev_AK
(122) Rainbow PHOT by Mrprocom
(123) stronger stickmanv by yuval
(124) 3D Pressure Visualizer by mniip
(125) Arkadian Liquid by JanKaszanka
(126) Fuel by nukers473
(127) Immersive Radioactivity v2.1 by Potbelly
(128) ElementLaunchingTool by juh9870
(129) CHEM-MOD_v1.2.2b by KevAK
(130) Slingshot by Mrprocom
(131) Perlin Noise Generator by DoubleF
(132) Element Replace by TomW1605
(133) Flooder V2 by TheAwesomeMutant
(134) Link Sign GUI by QuanTech
(135) Element dehider by 4e616d65
(136) Subphoton ROM Builder by mad-cow
(137) Hardened Dust by Liftski
(138) Bio-Vir by TheAwesomeMutant
(140) Orbit Simulator by Mrprocom
(141) johnnyou's Font for Texter by johnnyou (49796346)
(142) auto_wifi by phisically
(143) Layering helper by ssccsscc
(144) Layering Helper Extended by LuaMaster
(145) TPT Remade by TuDoR2007
(146) All-seeing sampler by djy0212
(147) Layering helper remastered by ssccsscc
(148) Eraser by thepowdertoy12
(149) EXPLOSIONS by olix3001
(150) Simple rocket fuel mod by ArseniyPlotnikov2006
(151) Pure Fission by Fnaf65
(154) Graph by ssccsscc
(155) Little's Pack! by LittleProgramming
(156) Lead by LoftisGaming
(157) WIFI Tuner by ssccsscc
(158) Previous Brush by TomW1605
(159) HUD Auto-Hider by Tim
(161) Stack tool by thepowdertoy12
(162) Oil and plastic by ArseniyPlotnikov2006
(163) Colored Ember by DUC
(164) Timer by ssccsscc
(165) Bacteria Mod by TuDoR2007
(166) Noise filter by LBPHacker
(167) Future-proof element dehider by LBPHacker
(168) RadioactiveNuke by DreamingWarlord
(169) Only Hot Element by DreamingWarlord
(170) Philosopher's Stone by Godhydra
(171) Conic section generator by LBPHacker
(172) Interface API by ssccsscc
(173) Metals&Materials by Ferrous26
(174) tpt.all by LBPHacker
(175) The Visual Elements Pack by Goblin01, vvv331
(176) Layering Helper Reforged by PowderNotSolid
(177) SNOWified SING by LBPHacker
(178) FPS Chart by Goblin01
(179) TPT font writer by Goblin01
(180) Simple Ruler by PowderNotSolid
(181) Heat Modifier by DreamingWarlord
(182) TPT Remade II by TuDoR2007
(183) Gravity simulator by ArseniyPlotnikov2k6
(184) Unobtainium by christheboss894
(185) TPTMIDI noteblock in tpt by djy0212
(186) DreamingWarlord's Lua Tool by DreamingWarlord
(187) Elements Tooltip by Goblin01
(189) Explodium script by 0d15ea5ebe57c0debadc0ffee0ddf00d
(190) more powered force elements by 6nop6nop
(191) Yzaak1Scifire Modpack by Yzaak1Scifire
(194) Fluor and more modpack! by galaktor
(195) Hot Powder by lieve_blendi
(196) Star by TUANMINHVIETNAM
(197) Heat Powders by lieve_blendi
(200) Tangeriinium (thx 2 cxi 4 code) by LostEditor
(201) Freezer by lieve_blendi
(202) Powder Power! by TPTSortaGuy
(203) PowderPlus v1.4 by PowderPlus Team
(204) fire by ME
(205) Stacked Goo Animations by Maticzpl
(206) Stickman Control for Android Version by PhauloRiquelme
(207) Spark Removal Button by Xyz
(208) More HEAC's! by Maxhd1234
(209) Immersive Radioactivity v3.0 by Potbelly
(210) Subframe Chipmaker Script by Maticzpl
(211) Realistic Propellants by ArseniyPlotnikov2k6
(212) Mass Equals Gravity by Maticzpl
(213) PhiMod v1 by ArolaunTech
(214) PC Controls for Android by Cracker1000
(217) Single-pixel pipe configurator by LBPHacker
(218) Omega Death Laser Gun by Dogeoum
(219) Notifications by Maticzpl
(221) Powderizer by ArolaunTech
(222) ElemDehider 1.2 by Inventor70
(223) Unobtainum V2 by DoomKittyAttack
(224) Organics Mod v0.2B by PowderPlus Team
(225) Gravity distortion by Avolte55
(226) tmp Wifi by PhauloRiquelme
(227) Alchemagica Mod v1.0 by RebMiami
(228) Fan Elements Mod by RebMiami
(229) Impossibilities by ArolaunTech
(230) Realistic Explosives by ArseniyPlotnikov2k6
(231) libactivation by anamorphic
(232) Alloy Brushes by Maticzpl
(233) Gravity bender by pres
(234) Slow Tick by Pixel
(235) Paste ID by Maticzpl
(236) many things by jadenflp2
(237) Territect by Rebmiami
(238) Better Descriptions v1.0.5 by ashyboi2022
(239) LIGHTNING SPRK by GOLmaster10101
(240) Small Bombs by juh9870
(241) Save Shop by aaccbb
(242) Moving solids v1.3.0 Beta by ArolaunTech
(244) Alchemistry by rdococ
(245) ETRD (Formerly PowderIM) by aaccbb
(246) RadonX by Justadirtblock
(248) Water-X by deuterium_oxide
(250) Indestructible INSL by CheekyRand0m
(252) Console's Mod by Console/Compec
(255) Slow motion by LBPHacker
(256) Powered Repeller by Hythonia
(257) Zeta's Electric Tools. by Zetalasis
(258) Azure serum (AZSR) by ALumpOfPowderToy
(259) COLORFULSAND by xert
(260) Lightning Circle by defaultuser0
(261) Powder Future Tech by JonaHungary
(262) TPTGlowingSolids by DestinyDyson
(263) Volcano Bomb by I_am_the_NugsWorld
(264) Neon Lights by Rebmiami
(265) Radioactive Materials by xyz
(266) Eater mod by VIPERGAMEZ
(267) the biology mod by someone
(268) Atomic Physics by qe
(269) Pure Radiation by ronansb
(270) Fake Elements by That_PowderToy_Guy
(271) Tachyons and MISC by RamenNoods
(272) Exotic Particles by rdococ
(273) FPS Slider by aaccbb
(274) Enphosian's Radioactive mod pack by Enphosian
(276) ROM Builder by QnpfvTPz

+ Submit new script!

Title: Author:
Script:
colourRGB = {255,255,255}
FuelMod = {["version"] = 1.9}
local crack
local ol
local f
if fs.exists("Saves/JWsetting.txt") == true then
	f = io.open("Saves/JWsetting.txt", "r")
	buttonable = f:read("*n")
else
	fs.makeDirectory("Saves")
	f = io.open("Saves/JWsetting.txt", "w")
	f:write("1")
	buttonable = 1
end
f:close()

--petrol
local antifrzz = elements.allocate("JWARD", "AFRZ")
local petrolgas = elements.allocate("JWARD", "PTLV")
local petrol = elements.allocate("JWARD", "PTRL")
elements.element(elements.JWARD_PT_PTRL, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_PTRL, "Name", "PTRL")
elements.property(elements.JWARD_PT_PTRL, "Description", "Petrol. Highly flammable liquid.")
elements.property(elements.JWARD_PT_PTRL, "Colour", 0x0A4A5C)
elements.property(elements.JWARD_PT_PTRL, "MenuSection", SC_LIQUID)
elements.property(elements.JWARD_PT_PTRL, "Gravity", 0.6)
elements.property(elements.JWARD_PT_PTRL, "Flammable", 0)
elements.property(elements.JWARD_PT_PTRL, "Explosive", 0)
elements.property(elements.JWARD_PT_PTRL, "Loss", 0.8)
elements.property(elements.JWARD_PT_PTRL, "AirLoss", 0.94)
elements.property(elements.JWARD_PT_PTRL, "AirDrag", 0.02)
elements.property(elements.JWARD_PT_PTRL, "Advection", 0.8)
elements.property(elements.JWARD_PT_PTRL, "Weight", 12)
elements.property(elements.JWARD_PT_PTRL, "Diffusion", 0)
elements.property(elements.JWARD_PT_PTRL, "Meltable", 0)
elements.property(elements.JWARD_PT_PTRL, "Hardness", 0)
elements.property(elements.JWARD_PT_PTRL, "Falldown", 2)
elements.property(elements.JWARD_PT_PTRL, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_PTRL, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_PTRL, "Temperature", 295.15)
elements.property(elements.JWARD_PT_PTRL, "HeatConduct", 78)
elements.property(elements.JWARD_PT_PTRL, "HighTemperature", 333.15)
elements.property(elements.JWARD_PT_PTRL, "HighTemperatureTransition", elements.JWARD_PT_PTLV)
elements.property(elements.JWARD_PT_PTRL, "LowTemperature", 225.15)
elements.property(elements.JWARD_PT_PTRL, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
function PTRL(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local cal = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if cal == tpt.element('acel') and reaction == kerosene then
		sim.partChangeType(i, tpt.element('JETB'))
	end
end
tpt.element_func(PTRL,petrol)

elements.element(elements.JWARD_PT_PTLV, elements.element(elements.DEFAULT_PT_HYGN))
elements.property(elements.JWARD_PT_PTLV, "Name", "PTLV")
elements.property(elements.JWARD_PT_PTLV, "Description", "petrol gas")
elements.property(elements.JWARD_PT_PTLV, "Colour", 0x0A4A5C)
elements.property(elements.JWARD_PT_PTLV, "MenuVisible", 0)
elements.property(elements.JWARD_PT_PTLV, "Gravity", -0.02)
elements.property(elements.JWARD_PT_PTLV, "Flammable", 500)
elements.property(elements.JWARD_PT_PTLV, "Explosive", 1)
elements.property(elements.JWARD_PT_PTLV, "Loss", 0.75)
elements.property(elements.JWARD_PT_PTLV, "AirLoss", 0.97)
elements.property(elements.JWARD_PT_PTLV, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_PTLV, "Advection", 1)
elements.property(elements.JWARD_PT_PTLV, "Weight", 0)
elements.property(elements.JWARD_PT_PTLV, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_PTLV, "Meltable", 0)
elements.property(elements.JWARD_PT_PTLV, "Hardness", 0)
elements.property(elements.JWARD_PT_PTLV, "Falldown", 0)
elements.property(elements.JWARD_PT_PTLV, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_PTLV, "State", ST_GAS)
elements.property(elements.JWARD_PT_PTLV, "Temperature", 343.15)
elements.property(elements.JWARD_PT_PTLV, "HeatConduct", 80)
elements.property(elements.JWARD_PT_PTLV, "LowTemperature", 333.14)
elements.property(elements.JWARD_PT_PTLV, "LowTemperatureTransition", elements.JWARD_PT_PTRL)
function PTLV(i,x,y,s,n)
end
tpt.element_func(PTLV,petrolgas)

elements.element(elements.JWARD_PT_AFRZ, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_AFRZ, "Name", "AFRZ")
elements.property(elements.JWARD_PT_AFRZ, "Description", "antifreeze, keeps your fuel nice and toasty. methnol")
elements.property(elements.JWARD_PT_AFRZ, "Colour", 0x0C3F5B)
elements.property(elements.JWARD_PT_AFRZ, "MenuSection", SC_LIQUID)
elements.property(elements.JWARD_PT_AFRZ, "Gravity", 0.6)
elements.property(elements.JWARD_PT_AFRZ, "Flammable", 65)
elements.property(elements.JWARD_PT_AFRZ, "Explosive", 0)
elements.property(elements.JWARD_PT_AFRZ, "Loss", 0.8)
elements.property(elements.JWARD_PT_AFRZ, "AirLoss", 0.94)
elements.property(elements.JWARD_PT_AFRZ, "AirDrag", 0.02)
elements.property(elements.JWARD_PT_AFRZ, "Advection", 0.8)
elements.property(elements.JWARD_PT_AFRZ, "Weight", 12)
elements.property(elements.JWARD_PT_AFRZ, "Diffusion", 0)
elements.property(elements.JWARD_PT_AFRZ, "Meltable", 0)
elements.property(elements.JWARD_PT_AFRZ, "Hardness", 0)
elements.property(elements.JWARD_PT_AFRZ, "Falldown", 2)
elements.property(elements.JWARD_PT_AFRZ, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_AFRZ, "Temperature", 295.15)
elements.property(elements.JWARD_PT_AFRZ, "HeatConduct", 78)
elements.property(elements.JWARD_PT_AFRZ, "Properties", elem.TYPE_LIQUID+elem.PROP_DEADLY)
function AFRZ(i,x,y,s,n)
	local warm = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local warm2 = tpt.get_property("temp",x,y)
	if warm == tpt.element('sprk') or warm == tpt.element('ligh') then
		sim.partChangeType(i, tpt.element('fire'))
	end
	if warm2 < 276 then
		if warm == petrol then
			tpt.set_property('temp', 296 ,x, y)
		end
		if warm == tpt.el.desl.id then
			tpt.set_property('temp', 296 ,x, y)
		end
		if warm == BioDiesel then
			tpt.set_property('temp', 296 ,x, y)
		end
		if warm == jetfuel then
			tpt.set_property('temp', 296 ,x, y)
		end
		if warm == tpt.el.ice.id then
			tpt.set_property('temp', 296 ,x, y)
		end
	end
	if warm == tpt.el.wtrv.id and warm2 > 1100 then
		if crack == 0 then
			sim.partChangeType(i, tpt.element('hygn'))
		else
			sim.partChangeType(i, tpt.element('co2'))
		end
	end
end
tpt.element_func(AFRZ, tpt.element('AFRZ'))

--diesel & bio diesel
local Dieselgas = elements.allocate("JWARD", "DSLV")
local potash_lye = elements.allocate("JWARD", "PLYE")
local cooking_oil = elements.allocate("JWARD", "COIL")
local BioDiesel = elements.allocate("JWARD", "BDSL")

elements.element(elements.JWARD_PT_DSLV, elements.element(elements.DEFAULT_PT_HYGN))
elements.property(elements.JWARD_PT_DSLV, "Name", "DSLV")
elements.property(elements.JWARD_PT_DSLV, "Description", "diesel gas")
elements.property(elements.JWARD_PT_DSLV, "Colour", 0x440000)
elements.property(elements.JWARD_PT_DSLV, "MenuVisible", 0)
elements.property(elements.JWARD_PT_DSLV, "Gravity", -0.02)
elements.property(elements.JWARD_PT_DSLV, "Flammable", 550)
elements.property(elements.JWARD_PT_DSLV, "Explosive", 1)
elements.property(elements.JWARD_PT_DSLV, "Loss", 0.75)
elements.property(elements.JWARD_PT_DSLV, "AirLoss", 0.97)
elements.property(elements.JWARD_PT_DSLV, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_DSLV, "Advection", 1)
elements.property(elements.JWARD_PT_DSLV, "Weight", 0)
elements.property(elements.JWARD_PT_DSLV, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_DSLV, "Meltable", 0)
elements.property(elements.JWARD_PT_DSLV, "Hardness", 0)
elements.property(elements.JWARD_PT_DSLV, "Falldown", 0)
elements.property(elements.JWARD_PT_DSLV, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_DSLV, "State", ST_GAS)
elements.property(elements.JWARD_PT_DSLV, "Temperature", 483.15)
elements.property(elements.JWARD_PT_DSLV, "HeatConduct", 80)
elements.property(elements.JWARD_PT_DSLV, "LowTemperature", 473.15)
elements.property(elements.JWARD_PT_DSLV, "LowTemperatureTransition", elements.DEFAULT_PT_DESL)
function DSLV(i,x,y,s,n)
end
tpt.element_func(DSLV,Dieselgas)


elements.element(elements.JWARD_PT_COIL, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_COIL, "Name", "COIL")
elements.property(elements.JWARD_PT_COIL, "Description", "Cooking oil, bubbles when heated.")
elements.property(elements.JWARD_PT_COIL, "Colour", 0xA57214)
elements.property(elements.JWARD_PT_COIL, "MenuSection", 7)
elements.property(elements.JWARD_PT_COIL, "Gravity", 0.6)
elements.property(elements.JWARD_PT_COIL, "Flammable", 1)
elements.property(elements.JWARD_PT_COIL, "Explosive", 0)
elements.property(elements.JWARD_PT_COIL, "Loss", 1)
elements.property(elements.JWARD_PT_COIL, "AirLoss", 0.91)
elements.property(elements.JWARD_PT_COIL, "AirDrag", 0.02)
elements.property(elements.JWARD_PT_COIL, "Advection", 0.9)
elements.property(elements.JWARD_PT_COIL, "Weight", 10)
elements.property(elements.JWARD_PT_COIL, "Meltable", 0)
elements.property(elements.JWARD_PT_COIL, "Hardness", 86)
elements.property(elements.JWARD_PT_COIL, "Falldown", 2)
elements.property(elements.JWARD_PT_COIL, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_COIL, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_COIL, "Temperature", 295.15)
elements.property(elements.JWARD_PT_COIL, "HeatConduct", 100)
function COIL(i,x,y,s,n)
	local cx = math.random(-3,3)
	local cy = math.random(-5,1)
	local reaction = tpt.get_property("temp",x,y)
	local bioo = tpt.get_property("type",x + math.random(-2,2), y + math.random(-2,2))
	local biooo = tpt.get_property("type",x + cy, y + cx)
	if cy == 1 then
		if reaction > 363.15 then
			tpt.set_property('vy', -1, x, y)
		end
	else
		tpt.set_property('vy', 1, x, y)
	end
	if biooo == potash_lye and bioo == antifrzz then
		if cy == 1 then
			sim.partChangeType(i, tpt.element('GLCR'))
		else
			sim.partChangeType(i, tpt.element('BDSL'))
		end
	end
	if biooo == potash_lye and bioo == tpt.el.watr.id and reaction > 290 and reaction < 330 then
		sim.partChangeType(i, tpt.element('SOAP'))
		tpt.delete(x + cx,y + cy)
	end
end
tpt.element_func(COIL, tpt.element('COIL'))

elements.element(elements.JWARD_PT_BDSL, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_BDSL, "Name", "BDSL")
elements.property(elements.JWARD_PT_BDSL, "Description", "Bio Diesel. Made from cooking oil.")
elements.property(elements.JWARD_PT_BDSL, "Colour", 0x331000)
elements.property(elements.JWARD_PT_BDSL, "MenuSection", SC_LIQUID)
elements.property(elements.JWARD_PT_BDSL, "Gravity", 0.6)
elements.property(elements.JWARD_PT_BDSL, "Flammable", 0)
elements.property(elements.JWARD_PT_BDSL, "Explosive", 0)
elements.property(elements.JWARD_PT_BDSL, "Loss", 0.8)
elements.property(elements.JWARD_PT_BDSL, "AirLoss", 0.94)
elements.property(elements.JWARD_PT_BDSL, "AirDrag", 0.02)
elements.property(elements.JWARD_PT_BDSL, "Advection", 0.8)
elements.property(elements.JWARD_PT_BDSL, "Weight", 12)
elements.property(elements.JWARD_PT_BDSL, "Diffusion", 0)
elements.property(elements.JWARD_PT_BDSL, "Meltable", 0)
elements.property(elements.JWARD_PT_BDSL, "Hardness", 0)
elements.property(elements.JWARD_PT_BDSL, "Falldown", 2)
elements.property(elements.JWARD_PT_BDSL, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_BDSL, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_BDSL, "Temperature", 295.15)
elements.property(elements.JWARD_PT_BDSL, "HeatConduct", 99)
elements.property(elements.JWARD_PT_BDSL, "HighTemperature", 403.15)
elements.property(elements.JWARD_PT_BDSL, "HighTemperatureTransition", elements.JWARD_PT_DSLV)
function BDSL(i,x,y,s,n)
	local findcoil = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local otherfind = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if findcoil == cooking_oil then
		tpt.set_property('life', 2 ,x, y)
	elseif findcoil == tpt.el.acel.id then
		if otherfind == tpt.el.desl.id then
			sim.partChangeType(i, tpt.element('desl'))
		end
	end
	if otherfind == tpt.el.sprk.id or otherfind == tpt.el.ligh.id then
		sim.partChangeType(i, tpt.element('fire'))
	end
end
tpt.element_func(BDSL, tpt.element('BDSL'))

function desl(i,x,y,s,n)
	if buttonable == 1 and tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1)) == tpt.el.brel.id then
		if crack == 0 then
			sim.partChangeType(i, petrol)
		else
			sim.partChangeType(i, tpt.element('PRPN'))
		end
	end
end
tpt.element_func(desl,tpt.el.desl.id)

elements.element(elements.JWARD_PT_PLYE, elements.element(elements.DEFAULT_PT_BCOL))
elements.property(elements.JWARD_PT_PLYE, "Name", "PLYE")
elements.property(elements.JWARD_PT_PLYE, "Description", "potash lye")
elements.property(elements.JWARD_PT_PLYE, "Colour", 0xCCCCCC)
elements.property(elements.JWARD_PT_PLYE, "MenuSection", 8)
elements.property(elements.JWARD_PT_PLYE, "Gravity", .35)
elements.property(elements.JWARD_PT_PLYE, "Flammable", 0)
elements.property(elements.JWARD_PT_PLYE, "Explosive", 0)
elements.property(elements.JWARD_PT_PLYE, "Loss", 0.15)
elements.property(elements.JWARD_PT_PLYE, "AirLoss", 0.96)
elements.property(elements.JWARD_PT_PLYE, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_PLYE, "Advection", 0.4)
elements.property(elements.JWARD_PT_PLYE, "Weight", 60)
elements.property(elements.JWARD_PT_PLYE, "Diffusion", 0)
elements.property(elements.JWARD_PT_PLYE, "Falldown", 1)
elements.property(elements.JWARD_PT_PLYE, "Hardness", 0)
elements.property(elements.JWARD_PT_PLYE, "HeatConduct", 62)
elements.property(elements.JWARD_PT_PLYE, "Properties", elem.PROP_DEADLY)
elements.property(elements.JWARD_PT_PLYE, "HighTemperature", 679.15)
elements.property(elements.JWARD_PT_PLYE, "HighTemperatureTransition", elements.DEFAULT_PT_LAVA)
function PLYE(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if reaction == tpt.el.acid.id then
		sim.partChangeType(i, tpt.element('SLTW'))
	end
end
tpt.element_func(PLYE, tpt.element('PLYE'))

function ACIDBASE(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	--add metals
	if reaction == potash_lye then
		sim.partChangeType(i, tpt.element('SLTW'))
	end
	if buttonable == 0 then
		if reaction == tpt.element('C4') or reaction == tpt.element('NITR') or reaction == tpt.element('GUN') or reaction == tpt.element('RBDM') or reaction == tpt.element('LRBD') then 
			sim.partChangeType(i, tpt.element('fire')) 
		elseif reaction == tpt.el.wtrv.id then 
			sim.partChangeType(i, tpt.element('CAUS')) 
		end
	else
		if reaction == tpt.element('GLCR') then
			sim.partChangeType(i, tpt.element('NITR')) 
		end
	end
end
tpt.element_func(ACIDBASE, tpt.element('acid'), 1)

function TTAN(i,x,y,s,n)
	if buttonable == 1 then
		local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
		local randomval = math.random(0,100)
		if reaction == tpt.el.acid.id then
			if randomval == 1 then
				sim.partChangeType(i, tpt.element('SLTW'))
			elseif randomval == 0 then
				sim.partChangeType(i, tpt.element('hygn'))
			end
		end
	end
end
tpt.element_func(TTAN, tpt.element('ttan'))

function IRON(i,x,y,s,n)
	if buttonable == 1 then
		local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
		local randomval = math.random(0,20)
		if reaction == tpt.el.acid.id then
			if randomval == 1 then
				sim.partChangeType(i, tpt.element('SLTW'))
			elseif randomval == 0 then
				sim.partChangeType(i, tpt.element('hygn'))
			end
		elseif reaction == tpt.el.gas.id then 
			sim.partChangeType(i, tpt.element('metl'))
		end
	end
end
tpt.element_func(IRON, tpt.element('iron'))

function BRMT(i,x,y,s,n)
	if buttonable == 1 then
		local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
		local randomval = math.random(0,10)
		if reaction == tpt.el.acid.id then
			if randomval == 1 then
				sim.partChangeType(i, tpt.element('SLTW'))
			elseif randomval == 0 then
				sim.partChangeType(i, tpt.element('hygn'))
			end
		end
	end
end
tpt.element_func(BRMT, tpt.element('brmt'))

function BMTL(i,x,y,s,n)
	if buttonable == 1 then
		local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
		local randomval = math.random(0,10)
		if reaction == tpt.el.acid.id then
			if randomval == 1 then
				sim.partChangeType(i, tpt.element('SLTW'))
			elseif randomval == 0 then
				sim.partChangeType(i, tpt.element('hygn'))
			end
		end
	end
end
tpt.element_func(BMTL, tpt.element('BMTL'))

function PLUT(i,x,y,s,n)
	if buttonable == 1 then
		local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
		local randomval = math.random(0,20)
		if reaction == tpt.el.acid.id then
			if randomval == 1 then
				sim.partChangeType(i, tpt.element('SLTW'))
			elseif randomval == 0 then
				sim.partChangeType(i, tpt.element('hygn'))
			end
		end
	end
end
tpt.element_func(PLUT, tpt.element('plut'))

function URAN(i,x,y,s,n)
	if buttonable == 1 then
		local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
		local randomval = math.random(0,20)
		if reaction == tpt.el.acid.id then
			if randomval == 1 then
				sim.partChangeType(i, tpt.element('SLTW'))
			elseif randomval == 0 then
				sim.partChangeType(i, tpt.element('hygn'))
			end
		end
	end
end
tpt.element_func(URAN, tpt.element('uran'))

function RBDM(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if reaction == tpt.el.acid.id then
		sim.partChangeType(i, tpt.element('coal'))
	end
end
tpt.element_func(RBDM, tpt.element('rbdm'))

function LRBD(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if reaction == tpt.el.acid.id then
		sim.partChangeType(i, tpt.element('coal'))
	end
end
tpt.element_func(LRBD, tpt.element('lrbd'))

--o0o NITROGEN o0o--
local nitrogen = elements.allocate("JWARD", "N2")
local Diazane = elements.allocate("JWARD", "N2H4")
local DinitrogenTetroxide = elements.allocate("JWARD", "N2O4")
local nitrous = elements.allocate("JWARD", "N2O")
local LiquidNitrous = elements.allocate("JWARD", "LN2O")
local anfoness = elements.allocate("JWARD", "ANFO")
local liquidTNT = elements.allocate("JWARD", "LTNT")

elements.element(elements.JWARD_PT_LN2O, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_LN2O, "Name", "LN2O")
elements.property(elements.JWARD_PT_LN2O, "Description", "Liquid Nitrous Oxide. Burns very quickly and very hot.")
elements.property(elements.JWARD_PT_LN2O, "Colour", 0x33C1F5)
elements.property(elements.JWARD_PT_LN2O, "MenuSection", 7)
elements.property(elements.JWARD_PT_LN2O, "Gravity", 0.8)
elements.property(elements.JWARD_PT_LN2O, "Flammable", 6000)
elements.property(elements.JWARD_PT_LN2O, "Explosive", 0)
elements.property(elements.JWARD_PT_LN2O, "Loss", 0.5)
elements.property(elements.JWARD_PT_LN2O, "AirLoss", 0.94)
elements.property(elements.JWARD_PT_LN2O, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_LN2O, "Advection", 0.7)
elements.property(elements.JWARD_PT_LN2O, "Weight", 43)
elements.property(elements.JWARD_PT_LN2O, "Diffusion", 0)
elements.property(elements.JWARD_PT_LN2O, "Meltable", 0)
elements.property(elements.JWARD_PT_LN2O, "Hardness", 0)
elements.property(elements.JWARD_PT_LN2O, "Falldown", 2)
elements.property(elements.JWARD_PT_LN2O, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_LN2O, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_LN2O, "Temperature", 174)
elements.property(elements.JWARD_PT_LN2O, "HeatConduct", 58)
elements.property(elements.JWARD_PT_LN2O, "HighTemperature", 185)
elements.property(elements.JWARD_PT_LN2O, "HighTemperatureTransition", elements.JWARD_PT_N2O)
elements.property(elements.JWARD_PT_LN2O, "LowTemperature", 160.15)
elements.property(elements.JWARD_PT_LN2O, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)

elements.element(elements.JWARD_PT_N2O, elements.element(elements.DEFAULT_PT_CO2))
elements.property(elements.JWARD_PT_N2O, "Name", "N2O")
elements.property(elements.JWARD_PT_N2O, "Description", "Nitrous Oxide. Highly flammable RACE CAR oxidizer!!!.")
elements.property(elements.JWARD_PT_N2O, "Colour", 0x43DAFF)
elements.property(elements.JWARD_PT_N2O, "MenuSection", 6)
elements.property(elements.JWARD_PT_N2O, "Gravity", 0)
elements.property(elements.JWARD_PT_N2O, "Flammable", 5000)
elements.property(elements.JWARD_PT_N2O, "Explosive", 0)
elements.property(elements.JWARD_PT_N2O, "Loss", 0.7)
elements.property(elements.JWARD_PT_N2O, "AirLoss", 0.91)
elements.property(elements.JWARD_PT_N2O, "AirDrag", 0.02)
elements.property(elements.JWARD_PT_N2O, "Advection", 0.9)
elements.property(elements.JWARD_PT_N2O, "Weight", 0)
elements.property(elements.JWARD_PT_N2O, "Diffusion", 1.5)
elements.property(elements.JWARD_PT_N2O, "Meltable", 0)
elements.property(elements.JWARD_PT_N2O, "Hardness", 0)
elements.property(elements.JWARD_PT_N2O, "Falldown", 0)
elements.property(elements.JWARD_PT_N2O, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_N2O, "State", ST_GAS)
elements.property(elements.JWARD_PT_N2O, "Temperature", 295.15)
elements.property(elements.JWARD_PT_N2O, "HeatConduct", 80)
elements.property(elements.JWARD_PT_N2O, "LowTemperature", 185.67)
elements.property(elements.JWARD_PT_N2O, "LowTemperatureTransition", elements.JWARD_PT_LN2O)
function N2O(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if reaction == tpt.el.fire.id or reaction == tpt.el.plsm.id then
		if crack == 0 then
			sim.partChangeType(i, tpt.element('N2'))
			sim.pressure((x/4),(y/4), 100)
		else
			sim.partChangeType(i, tpt.element('plsm'))
			sim.pressure((x/4),(y/4), 100)
		end
	end
end
tpt.element_func(N2O,nitrous)

elements.element(elements.JWARD_PT_N2O4, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_N2O4, "Name", "N2O4")
elements.property(elements.JWARD_PT_N2O4, "Description", "Dinitrogen Tetroxide rocket oxidizer")
elements.property(elements.JWARD_PT_N2O4, "Colour", 0x30CEC6)
elements.property(elements.JWARD_PT_N2O4, "MenuSection", 5)
elements.property(elements.JWARD_PT_N2O4, "Gravity", 0.8)
elements.property(elements.JWARD_PT_N2O4, "Flammable", 30)
elements.property(elements.JWARD_PT_N2O4, "Explosive", 1)
elements.property(elements.JWARD_PT_N2O4, "Loss", 0.7)
elements.property(elements.JWARD_PT_N2O4, "AirLoss", 0.91)
elements.property(elements.JWARD_PT_N2O4, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_N2O4, "Advection", 0.6)
elements.property(elements.JWARD_PT_N2O4, "Weight", 46)
elements.property(elements.JWARD_PT_N2O4, "Diffusion", 1.5)
elements.property(elements.JWARD_PT_N2O4, "Meltable", 0)
elements.property(elements.JWARD_PT_N2O4, "Hardness", 0)
elements.property(elements.JWARD_PT_N2O4, "Falldown", 2)
elements.property(elements.JWARD_PT_N2O4, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_N2O4, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_N2O4, "Temperature", 295.15)
elements.property(elements.JWARD_PT_N2O4, "HeatConduct", 78)
elements.property(elements.JWARD_PT_N2O4, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
elements.property(elements.JWARD_PT_N2O4, "LowTemperature", 261.9)
function N2O4(i,x,y,s,n)
	local rocket = tpt.get_property("type",x+math.random(-2,2),y+math.random(-2,2))
	if rocket == Diazane or rocket == tpt.element('plsm') or rocket == tpt.element('fire') or rocket == tpt.element('thdr') then
		if crack == 1 then
			sim.partChangeType(i, tpt.element('plsm'))
			sim.pressure((x/4),(y/4), 250)
		else
			sim.partChangeType(i, tpt.element('n2'))
			sim.pressure((x/4),(y/4), 250)
		end
	end
end
tpt.element_func(N2O4,DinitrogenTetroxide)

elements.element(elements.JWARD_PT_LTNT, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_LTNT, "Name", "LTNT")
elements.property(elements.JWARD_PT_LTNT, "Description", "liquid TNT")
elements.property(elements.JWARD_PT_LTNT, "Colour", 0xBF605A)
elements.property(elements.JWARD_PT_LTNT, "MenuSection", 5)
elements.property(elements.JWARD_PT_LTNT, "Gravity", 1)
elements.property(elements.JWARD_PT_LTNT, "Flammable", 20)
elements.property(elements.JWARD_PT_LTNT, "Explosive", 1)
elements.property(elements.JWARD_PT_LTNT, "Loss", 0.7)
elements.property(elements.JWARD_PT_LTNT, "AirLoss", 0.91)
elements.property(elements.JWARD_PT_LTNT, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_LTNT, "Advection", 0.8)
elements.property(elements.JWARD_PT_LTNT, "Weight", 46)
elements.property(elements.JWARD_PT_LTNT, "Diffusion", 0)
elements.property(elements.JWARD_PT_LTNT, "Meltable", 0)
elements.property(elements.JWARD_PT_LTNT, "Hardness", 0)
elements.property(elements.JWARD_PT_LTNT, "Falldown", 2)
elements.property(elements.JWARD_PT_LTNT, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_LTNT, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_LTNT, "Temperature", 363.25)
elements.property(elements.JWARD_PT_LTNT, "HeatConduct", 83)
elements.property(elements.JWARD_PT_LTNT, "LowTemperatureTransition", elements.DEFAULT_PT_TNT)
elements.property(elements.JWARD_PT_LTNT, "LowTemperature", 353.25)
function LTNT(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local atemp = sim.partProperty(i,'temp')
	if reaction == tpt.el.fire.id or reaction == tpt.el.embr.id or reaction == tpt.el.thdr.id or reaction == tpt.el.sprk.id then
		sim.partChangeType(i, tpt.element('embr'))
		sim.pressure((x/4),(y/4), 255)
	end
	if atemp > 513.15 then
		sim.partChangeType(i, tpt.element('coal'))
	end
end
tpt.element_func(LTNT, tpt.element('LTNT'))


elements.element(elements.JWARD_PT_N2H4, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_N2H4, "Name", "N2H4")
elements.property(elements.JWARD_PT_N2H4, "Description", "Hydrazine rocket fuel")
elements.property(elements.JWARD_PT_N2H4, "Colour", 0xB6F064)
elements.property(elements.JWARD_PT_N2H4, "MenuSection", 5)
elements.property(elements.JWARD_PT_N2H4, "Gravity", 1)
elements.property(elements.JWARD_PT_N2H4, "Flammable", 1)
elements.property(elements.JWARD_PT_N2H4, "Explosive", 1)
elements.property(elements.JWARD_PT_N2H4, "Loss", 0.7)
elements.property(elements.JWARD_PT_N2H4, "AirLoss", 0.91)
elements.property(elements.JWARD_PT_N2H4, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_N2H4, "Advection", 0.8)
elements.property(elements.JWARD_PT_N2H4, "Weight", 46)
elements.property(elements.JWARD_PT_N2H4, "Diffusion", 1.5)
elements.property(elements.JWARD_PT_N2H4, "Meltable", 0)
elements.property(elements.JWARD_PT_N2H4, "Hardness", 0)
elements.property(elements.JWARD_PT_N2H4, "Falldown", 2)
elements.property(elements.JWARD_PT_N2H4, "Properties", TYPE_LIQUID)
elements.property(elements.JWARD_PT_N2H4, "State", ST_LIQUID)
elements.property(elements.JWARD_PT_N2H4, "Temperature", 295.15)
elements.property(elements.JWARD_PT_N2H4, "HeatConduct", 83)
elements.property(elements.JWARD_PT_N2H4, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
elements.property(elements.JWARD_PT_N2H4, "LowTemperature", 275.15)
N2H4Update = function(i, x, y, s, n)
	local clife = sim.partProperty(i,'life')
	if clife > 1 then
		for cx = -1, 1, 2 do
			for cy = -1, 1, 2 do
				if ol == 1 then
					tpt.create(x + cx, y + cy, 'fire')
				end 
				if ol == 0 then
					tpt.create(x + cx, y + cy, 'N2')
				end
				if ol == -1 then
					tpt.create(x + cx, y + cy, 'HYGN')
		   		end
				tpt.set_property('temp', 3000, x, y)
			end
		end
		tpt.set_property('life', clife - 1, x, y)
	elseif clife == 1 then
		tpt.set_property('type', 0, x, y)
	elseif s > 0 then
		for cx = -1, 1, 2 do
			for cy = -1, 1, 2 do
				if tpt.get_property('type', x + cx, y + cy) == 4 or tpt.get_property('type', x + cx, y + cy) == 49 then
					tpt.set_property('life', 500, x, y)
					return true
				end
			end
		end
	end
end
tpt.element_func(N2H4Update, tpt.element('N2H4'))

elements.element(elements.JWARD_PT_N2, elements.element(elements.DEFAULT_PT_CO2))
elements.property(elements.JWARD_PT_N2, "Name", "N2")
elements.property(elements.JWARD_PT_N2, "Description", "Nitrogen Gas.")
elements.property(elements.JWARD_PT_N2, "Colour", 0x5E52FF)
elements.property(elements.JWARD_PT_N2, "MenuSection", SC_GAS)
elements.property(elements.JWARD_PT_N2, "Gravity", 0)
elements.property(elements.JWARD_PT_N2, "Flammable", 0)
elements.property(elements.JWARD_PT_N2, "Explosive", 1)
elements.property(elements.JWARD_PT_N2, "Loss", 0.3)
elements.property(elements.JWARD_PT_N2, "AirLoss", 0.99)
elements.property(elements.JWARD_PT_N2, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_N2, "Advection", 2.0)
elements.property(elements.JWARD_PT_N2, "Weight", 0)
elements.property(elements.JWARD_PT_N2, "Diffusion", 2.75)
elements.property(elements.JWARD_PT_N2, "State", ST_GAS)
elements.property(elements.JWARD_PT_N2, "Properties", elem.TYPE_GAS)
elements.property(elements.JWARD_PT_N2, "LowTemperatureTransition", elements.DEFAULT_PT_LN2)
elements.property(elements.JWARD_PT_N2, "LowTemperature", 76)
elements.property(elements.JWARD_PT_N2, "HeatConduct", 80)
function N2(i,x,y,s,n)
	if tpt.get_property("tmp", i) == 0 then
		tpt.set_property("tmp", 1, i)
    end
end
tpt.element_func(N2, tpt.element('N2'))

function LN2(i,x,y,s,nt)
	if tpt.get_property("tmp", i) == 1 then
		if sim.partProperty(i,'temp') >= 77 then
			tpt.set_property("type","N2",i)
		end
	end
	if tpt.get_property("tmp", i) == 0 then
		if sim.partProperty(i,'temp') >= 77 then
			tpt.set_property("type","none",i)
		end
	end
end
tpt.element_func(LN2, tpt.element('ln2'))

elements.element(elements.JWARD_PT_ANFO, elements.element(elements.DEFAULT_PT_BCOL))
elements.property(elements.JWARD_PT_ANFO, "Name", "ANFO")
elements.property(elements.JWARD_PT_ANFO, "Description", "anfo explosive")
elements.property(elements.JWARD_PT_ANFO, "Colour", 0xFFCECA)
elements.property(elements.JWARD_PT_ANFO, "MenuSection", 5)
elements.property(elements.JWARD_PT_ANFO, "Gravity", 0.54)
elements.property(elements.JWARD_PT_ANFO, "Flammable", 0)
elements.property(elements.JWARD_PT_ANFO, "Explosive", 0)
elements.property(elements.JWARD_PT_ANFO, "Loss", 0)
elements.property(elements.JWARD_PT_ANFO, "AirLoss", 0.96)
elements.property(elements.JWARD_PT_ANFO, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_ANFO, "Advection", 0)
elements.property(elements.JWARD_PT_ANFO, "Weight", 75)
elements.property(elements.JWARD_PT_ANFO, "Diffusion", 0)
elements.property(elements.JWARD_PT_ANFO, "Falldown", 1)
elements.property(elements.JWARD_PT_ANFO, "Hardness", 0)
elements.property(elements.JWARD_PT_ANFO, "HeatConduct", 62)
elements.property(elements.JWARD_PT_ANFO, "Properties", elem.TYPE_PART+elem.PROP_DEADLY)
elements.property(elements.JWARD_PT_ANFO, "State", ST_SOLID)
function ANFO(i,x,y,s,n)
	local cx = math.random(-1,1)
	local reaction = tpt.get_property("type",x+cx,y+math.random(-1,1))
	local atemp = sim.partProperty(i,'temp')
	if reaction == tpt.el.acid.id then
		if crack == 1 then
			sim.partChangeType(i, tpt.element('salt'))
		else
			sim.partChangeType(i, tpt.element('acid'))
		end
	end
	if reaction == tpt.el.fire.id then
		if cx == 1 then
			sim.partChangeType(i, tpt.element('hygn'))
			sim.pressure((x/4),(y/4), 250)
		elseif cx == 0 then
			sim.partChangeType(i, tpt.element('oxyg'))
			sim.pressure((x/4),(y/4), 250)
		elseif cx == -1 then
			sim.partChangeType(i, tpt.element('N2O'))
		end
	end
	if atemp > 483.15 then
		if crack == 1 then
			sim.partChangeType(i, tpt.element('wtrv'))
		else
			sim.partChangeType(i, tpt.element('N2O'))
		end
	end
end
tpt.element_func(ANFO, tpt.element('ANFO'))

--extra
local solidhydrogen = elements.allocate("JWARD", "SHYG")
local liquidhydrogen = elements.allocate("JWARD", "LHYG")
local propane = elements.allocate("JWARD", "PRPN")
local Glycerol = elements.allocate("JWARD", "GLCR")

elements.element(elements.JWARD_PT_SHYG, elements.element(elements.DEFAULT_PT_ACEL))
elements.property(elements.JWARD_PT_SHYG, "Colour", 0x7395FE)
elements.property(elements.JWARD_PT_SHYG, "Name", "SHYG")
elements.property(elements.JWARD_PT_SHYG, "Description", "solid hydrogen")
elements.property(elements.JWARD_PT_SHYG, "HeatConduct", 83)
elements.property(elements.JWARD_PT_SHYG, "Flammable", 0)
elements.property(elements.JWARD_PT_SHYG, "Temperature", 10.15)
elements.property(elements.JWARD_PT_SHYG, "MenuSection", 9)
function SHYG(i,x,y)
	local dis = sim.partProperty(i,'temp')
	if dis > 20.15 then
		sim.partChangeType(i, tpt.element('HYGN'))
	elseif dis > 13.15 then
		sim.partChangeType(i, tpt.element('LHYG'))	
	end
	if sim.pressure((x/4),(y/4)) > 255 then
		sim.partChangeType(i, tpt.element('Metl'))
		tpt.set_property("ctype",tpt.element('SHYG'),i)
	end
end
tpt.element_func(SHYG,solidhydrogen)

elements.element(elements.JWARD_PT_LHYG, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_LHYG, "Colour", 0x5070FF)
elements.property(elements.JWARD_PT_LHYG, "Name", "LHYG")
elements.property(elements.JWARD_PT_LHYG, "Description", "liquid hydrogen")
elements.property(elements.JWARD_PT_LHYG, "HeatConduct", 83)
elements.property(elements.JWARD_PT_LHYG, "Flammable", 2)
elements.property(elements.JWARD_PT_LHYG, "Temperature", 15.15)
elements.property(elements.JWARD_PT_LHYG, "HighTemperature", 20.15)
elements.property(elements.JWARD_PT_LHYG, "HighTemperatureTransition", elements.DEFAULT_PT_HYGN)
elements.property(elements.JWARD_PT_LHYG, "LowTemperature", 13.15)
elements.property(elements.JWARD_PT_LHYG, "LowTemperatureTransition", elements.JWARD_PT_SHYG)

elements.element(elements.JWARD_PT_GLCR, elements.element(elements.DEFAULT_PT_BCOL))
elements.property(elements.JWARD_PT_GLCR, "Name", "GLCR")
elements.property(elements.JWARD_PT_GLCR, "Description", "Glycerol, mix with acid to make nitr")
elements.property(elements.JWARD_PT_GLCR, "Colour", 0xE1E1E1)
elements.property(elements.JWARD_PT_GLCR, "MenuSection", 7)
elements.property(elements.JWARD_PT_GLCR, "Gravity", 0.94)
elements.property(elements.JWARD_PT_GLCR, "Flammable", 0)
elements.property(elements.JWARD_PT_GLCR, "Explosive", 0)
elements.property(elements.JWARD_PT_GLCR, "Loss", 0)
elements.property(elements.JWARD_PT_GLCR, "AirLoss", 0.96)
elements.property(elements.JWARD_PT_GLCR, "AirDrag", 0.04)
elements.property(elements.JWARD_PT_GLCR, "Advection", 0)
elements.property(elements.JWARD_PT_GLCR, "Weight", 75)
elements.property(elements.JWARD_PT_GLCR, "Diffusion", 0)
elements.property(elements.JWARD_PT_GLCR, "Falldown", 2)
elements.property(elements.JWARD_PT_GLCR, "Hardness", 0)
elements.property(elements.JWARD_PT_GLCR, "HeatConduct", 72)
elements.property(elements.JWARD_PT_GLCR, "Properties", elem.TYPE_LIQUID)
elements.property(elements.JWARD_PT_GLCR, "State", ST_LIQUID)
function GLCR(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local dis = sim.partProperty(i,'temp')
	if reaction == tpt.element('fire') and dis > 373.15 then
		sim.partChangeType(i, tpt.element('fire'))
	end
	if reaction == tpt.element('GLCR') then
		tpt.set_property('vy', 0, x, y)
		tpt.set_property('vx', math.random(-1,1), x, y)
	elseif reaction == tpt.element('ACID') then
		sim.partChangeType(i, tpt.element('NITR'))
	end
end
tpt.element_func(GLCR,Glycerol)

elements.element(elements.JWARD_PT_PRPN, elements.element(elements.DEFAULT_PT_HYGN))
elements.property(elements.JWARD_PT_PRPN, "Name", "PRPN")
elements.property(elements.JWARD_PT_PRPN, "Description", "Propane. Explodes very easily.")
elements.property(elements.JWARD_PT_PRPN, "Colour", 0xF4A26A)
elements.property(elements.JWARD_PT_PRPN, "MenuSection", 5)
elements.property(elements.JWARD_PT_PRPN, "Gravity", -0.02)
elements.property(elements.JWARD_PT_PRPN, "Flammable", 2500)
elements.property(elements.JWARD_PT_PRPN, "Explosive", 1)
elements.property(elements.JWARD_PT_PRPN, "Loss", 0.75)
elements.property(elements.JWARD_PT_PRPN, "AirLoss", 0.97)
elements.property(elements.JWARD_PT_PRPN, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_PRPN, "Advection", 1)
elements.property(elements.JWARD_PT_PRPN, "Weight", 0)
elements.property(elements.JWARD_PT_PRPN, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_PRPN, "Meltable", 0)
elements.property(elements.JWARD_PT_PRPN, "Hardness", 0)
elements.property(elements.JWARD_PT_PRPN, "Falldown", 0)
elements.property(elements.JWARD_PT_PRPN, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_PRPN, "State", ST_GAS)
elements.property(elements.JWARD_PT_PRPN, "Temperature", 295.15)
elements.property(elements.JWARD_PT_PRPN, "HeatConduct", 95)
elements.property(elements.JWARD_PT_PRPN, "HighTemperature", 2379.15)
elements.property(elements.JWARD_PT_PRPN, "HighTemperatureTransition", tpt.el.fire.id)
elements.property(elements.JWARD_PT_PRPN, "LowTemperatureTransition", NT)
function PRPN(i,x,y,s,n)
	local warm = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local warm2 = sim.partProperty(i,'temp')
	if warm == tpt.el.acid.id or warm == tpt.el.caus.id then
		sim.partChangeType(i, tpt.element('ptrl'))
		tpt.set_property('temp', (warm2 + 1), x, y)
	end
	if warm == tpt.el.wtrv.id and warm2 > 1100 then
		sim.partChangeType(i, tpt.element('co2'))
	end
end
tpt.element_func(PRPN,propane)

--kerosene
local KEROSENEGAS = elements.allocate("JWARD", "KERV")
local KEROSENE = elements.allocate("JWARD", "KERO")
elements.element(elements.JWARD_PT_KERO, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_KERO, "Name", "KERO")
elements.property(elements.JWARD_PT_KERO, "Description", "KERO BURNS HOT AND QUICK")
elements.property(elements.JWARD_PT_KERO, "Colour", 0x01B3D7)
elements.property(elements.JWARD_PT_KERO, "MenuSection", 5)
elements.property(elements.JWARD_PT_KERO, "Gravity", .04)
elements.property(elements.JWARD_PT_KERO, "Flammable", 0)
elements.property(elements.JWARD_PT_KERO, "Explosive", 0)
elements.property(elements.JWARD_PT_KERO, "Loss", 1)
elements.property(elements.JWARD_PT_KERO, "AirLoss", .90)
elements.property(elements.JWARD_PT_KERO, "AirDrag", .01)
elements.property(elements.JWARD_PT_KERO, "Advection", .80)
elements.property(elements.JWARD_PT_KERO, "Weight", 5)
elements.property(elements.JWARD_PT_KERO, "State", ST_liquid)
elements.property(elements.JWARD_PT_KERO, "Properties", elem.TYPE_LIQUID+elem.PROP_DEADLY)
elements.property(elements.JWARD_PT_KERO, "HighTemperature", 393.15)
elements.property(elements.JWARD_PT_KERO, "HighTemperatureTransition", elements.JWARD_PT_KERV)
function KERO(i,x,y,s,n)
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local cal = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if cal == tpt.element('acel') and reaction == petrol then
		sim.partChangeType(i, tpt.element('JETB'))
	end
end
tpt.element_func(KERO,KEROSENE)

elements.element(elements.JWARD_PT_KERV, elements.element(elements.DEFAULT_PT_HYGN))
elements.property(elements.JWARD_PT_KERV, "Name", "KERV")
elements.property(elements.JWARD_PT_KERV, "Description", "kerosene gas")
elements.property(elements.JWARD_PT_KERV, "Colour", 0x01B3D7)
elements.property(elements.JWARD_PT_KERV, "MenuVisible", 0)
elements.property(elements.JWARD_PT_KERV, "Gravity", -0.02)
elements.property(elements.JWARD_PT_KERV, "Flammable", 4500)
elements.property(elements.JWARD_PT_KERV, "Explosive", 1)
elements.property(elements.JWARD_PT_KERV, "Loss", 0.75)
elements.property(elements.JWARD_PT_KERV, "AirLoss", 0.97)
elements.property(elements.JWARD_PT_KERV, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_KERV, "Advection", 1)
elements.property(elements.JWARD_PT_KERV, "Weight", 0)
elements.property(elements.JWARD_PT_KERV, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_KERV, "Meltable", 0)
elements.property(elements.JWARD_PT_KERV, "Hardness", 0)
elements.property(elements.JWARD_PT_KERV, "Falldown", 0)
elements.property(elements.JWARD_PT_KERV, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_KERV, "State", ST_GAS)
elements.property(elements.JWARD_PT_KERV, "Temperature", 403.15)
elements.property(elements.JWARD_PT_KERV, "HeatConduct", 195)
elements.property(elements.JWARD_PT_KERV, "LowTemperature", 393.15)
elements.property(elements.JWARD_PT_KERV, "LowTemperatureTransition", elements.JWARD_PT_KERO)
function KERV(i,x,y,s,n)
end
tpt.element_func(KERV,KEROSENEGAS)

--jetfuel
local JETFUEL = elements.allocate("JWARD", "JETB")
elements.element(elements.JWARD_PT_JETB, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_JETB, "Name", "JETB")
elements.property(elements.JWARD_PT_JETB, "Description", "Jet type b, fuel-blend of Kero and Ptrl for jet engines")
elements.property(elements.JWARD_PT_JETB, "Colour", 0x676601)
elements.property(elements.JWARD_PT_JETB, "MenuSection", 5)
elements.property(elements.JWARD_PT_JETB, "Gravity", .04)
elements.property(elements.JWARD_PT_JETB, "Flammable", 5000)
elements.property(elements.JWARD_PT_JETB, "Explosive", 1)
elements.property(elements.JWARD_PT_JETB, "Loss", 0.8)
elements.property(elements.JWARD_PT_JETB, "AirLoss", 0.94)
elements.property(elements.JWARD_PT_JETB, "AirDrag", 0.02)
elements.property(elements.JWARD_PT_JETB, "Advection", 0.8)
elements.property(elements.JWARD_PT_JETB, "HighTemperature", 353.15)
elements.property(elements.JWARD_PT_JETB, "Weight", 13)
elements.property(elements.JWARD_PT_JETB, "State", ST_liquid)
elements.property(elements.JWARD_PT_JETB, "Properties", elem.TYPE_LIQUID+elem.PROP_DEADLY)
elements.property(elements.JWARD_PT_JETB, "LowTemperature", 225.15)
elements.property(elements.JWARD_PT_JETB, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
function JETB(i,x,y,s,n)
end
tpt.element_func(JETB,JETFUEL)

--tar
local TARGAS = elements.allocate("JWARD", "TARV")
local TAR = elements.allocate("JWARD", "TAR")
elements.element(elements.JWARD_PT_TAR, elements.element(elements.DEFAULT_PT_SOAP))
elements.property(elements.JWARD_PT_TAR, "Name", "TAR")
elements.property(elements.JWARD_PT_TAR, "Description", "tar hard to burn")
elements.property(elements.JWARD_PT_TAR, "Colour", 0x0D0D03)
elements.property(elements.JWARD_PT_TAR, "MenuSection", 5)
elements.property(elements.JWARD_PT_TAR, "Gravity", .1)
elements.property(elements.JWARD_PT_TAR, "Flammable", 1)
elements.property(elements.JWARD_PT_TAR, "Explosive", 0)
elements.property(elements.JWARD_PT_TAR, "Loss", 1)
elements.property(elements.JWARD_PT_TAR, "AirLoss", .5)
elements.property(elements.JWARD_PT_TAR, "AirDrag", .01)
elements.property(elements.JWARD_PT_TAR, "Advection", .01)
elements.property(elements.JWARD_PT_TAR, "Diffusion", 0.01)
elements.property(elements.JWARD_PT_TAR, "State", ST_liquid)
elements.property(elements.JWARD_PT_TAR, "Weight", 50)
elements.property(elements.JWARD_PT_TAR, "Properties", elem.TYPE_LIQUID+elem.PROP_DEADLY)
elements.property(elements.JWARD_PT_TAR, "HighTemperature", 873.15)
elements.property(elements.JWARD_PT_TAR, "HighTemperatureTransition", elements.JWARD_PT_TARV)
function TAR(i,x,y,s,n)
    local otherfind = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if buttonable == 1 and otherfind == tpt.el.brel.id then
		if ol == 0 then
			sim.partChangeType(i, petrol)
		elseif ol == 1 then
			sim.partChangeType(i, tpt.element('PRPN'))
		elseif ol == -1 then
			sim.partChangeType(i, tpt.element('CRST'))
		end
	end
end
tpt.element_func(TAR,tpt.element('TAR'))

elements.element(elements.JWARD_PT_TARV, elements.element(elements.DEFAULT_PT_HYGN))
elements.property(elements.JWARD_PT_TARV, "Name", "TARV")
elements.property(elements.JWARD_PT_TARV, "Description", "tar gas")
elements.property(elements.JWARD_PT_TARV, "Colour", 0x4C2D20)
elements.property(elements.JWARD_PT_TARV, "MenuVisible", 0)
elements.property(elements.JWARD_PT_TARV, "Gravity", -0.02)
elements.property(elements.JWARD_PT_TARV, "Flammable", 100)
elements.property(elements.JWARD_PT_TARV, "Explosive", 0)
elements.property(elements.JWARD_PT_TARV, "Loss", 0.75)
elements.property(elements.JWARD_PT_TARV, "AirLoss", 0.97)
elements.property(elements.JWARD_PT_TARV, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_TARV, "Advection", 1)
elements.property(elements.JWARD_PT_TARV, "Weight", 0)
elements.property(elements.JWARD_PT_TARV, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_TARV, "Meltable", 0)
elements.property(elements.JWARD_PT_TARV, "Hardness", 0)
elements.property(elements.JWARD_PT_TARV, "Falldown", 0)
elements.property(elements.JWARD_PT_TARV, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_TARV, "State", ST_GAS)
elements.property(elements.JWARD_PT_TARV, "Temperature", 403.15)
elements.property(elements.JWARD_PT_TARV, "HeatConduct", 195)
elements.property(elements.JWARD_PT_TARV, "LowTemperature", 873.15)
elements.property(elements.JWARD_PT_TARV, "LowTemperatureTransition", elements.JWARD_PT_TAR)

--wax
local WAXGAS = elements.allocate("JWARD", "WAXV")
elements.element(elements.JWARD_PT_WAXV, elements.element(elements.DEFAULT_PT_HYGN))
elements.property(elements.JWARD_PT_WAXV, "Name", "WAXV")
elements.property(elements.JWARD_PT_WAXV, "Description", "wax gas")
elements.property(elements.JWARD_PT_WAXV, "Colour", 0xF0F0BB)
elements.property(elements.JWARD_PT_WAXV, "MenuSection", SC_GAS)
elements.property(elements.JWARD_PT_WAXV, "Gravity", -0.02)
elements.property(elements.JWARD_PT_WAXV, "Flammable", 500)
elements.property(elements.JWARD_PT_WAXV, "Explosive", 0)
elements.property(elements.JWARD_PT_WAXV, "Loss", 0.75)
elements.property(elements.JWARD_PT_WAXV, "AirLoss", 0.97)
elements.property(elements.JWARD_PT_WAXV, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_WAXV, "Advection", 1)
elements.property(elements.JWARD_PT_WAXV, "Weight", 0)
elements.property(elements.JWARD_PT_WAXV, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_WAXV, "Meltable", 0)
elements.property(elements.JWARD_PT_WAXV, "Hardness", 0)
elements.property(elements.JWARD_PT_WAXV, "Falldown", 0)
elements.property(elements.JWARD_PT_WAXV, "Properties", TYPE_GAS)
elements.property(elements.JWARD_PT_WAXV, "State", ST_GAS)
elements.property(elements.JWARD_PT_WAXV, "Temperature", 833.15)
elements.property(elements.JWARD_PT_WAXV, "HeatConduct", 195)
elements.property(elements.JWARD_PT_WAXV, "LowTemperature", 823.15)
elements.property(elements.JWARD_PT_WAXV, "LowTemperatureTransition", elements.DEFAULT_PT_WAX)

--coke
local CoalCoke = elements.allocate("JWARD", "COKE")
elements.element(elements.JWARD_PT_COKE, elements.element(elements.DEFAULT_PT_BCOL))
elements.property(elements.JWARD_PT_COKE, "Name", "COKE")
elements.property(elements.JWARD_PT_COKE, "Description", "COAL COKE. Burns for a long time and hot.")
elements.property(elements.JWARD_PT_COKE, "Colour", 0xAAAAAA)
elements.property(elements.JWARD_PT_COKE, "MenuSection", 5)
elements.property(elements.JWARD_PT_COKE, "Gravity", .35)
elements.property(elements.JWARD_PT_COKE, "Flammable", 0)
elements.property(elements.JWARD_PT_COKE, "Explosive", 0)
elements.property(elements.JWARD_PT_COKE, "Loss", 0.15)
elements.property(elements.JWARD_PT_COKE, "AirLoss", 0.96)
elements.property(elements.JWARD_PT_COKE, "AirDrag", 0.03)
elements.property(elements.JWARD_PT_COKE, "Advection", 0.4)
elements.property(elements.JWARD_PT_COKE, "Weight", 78)
elements.property(elements.JWARD_PT_COKE, "Falldown", 1)
COKEUpdate = function(i, x, y, s, n)
	local function ignore(i,x,y)
		local clife = sim.partProperty(i,'life')
			if buttonable == 1 then
				local ry = math.random(-1,1)
				local reactionc = tpt.get_property("ctype",x+ol,y+ry)
				local reaction = tpt.get_property("type",x+ol,y+ry)
				if reaction == tpt.element('lava') and reactionc == tpt.element('iron') then
					sim.partChangeType(i, tpt.element('metl'))
				end
			end
		if clife > 1 then
			for cx = -1, 1, 2 do
				for cy = -1, 1, 2 do
					tpt.create(x + cx, y + cy, 'fire')
					tpt.set_property('temp', 1700, x, y)
				end
			end
			tpt.set_property('life', clife - 1, x, y)
		elseif clife == 1 then
			tpt.set_property('type', 0, x, y)
		elseif s > 0 then
			for cx = -1, 1, 2 do
				for cy = -1, 1, 2 do
					if tpt.get_property('type', x + cx, y + cy) == 4 or tpt.get_property('type', x + cx, y + cy) == 49 then
						tpt.set_property('life', 500, x, y)
						return true
					end
				end
			end
		end
	end
	pcall(ignore, i, x, y)
end
tpt.element_func(COKEUpdate, tpt.element('coke'))

COALUpdate = function(i, x, y, s, n)
	local dis = sim.partProperty(i,'temp')
	if dis > 1273.15 then
		if buttonable == 1 or buttonablest == 0 then
			sim.partChangeType(i, tpt.element('coke'))
			tpt.set_property('life', 0, x, y)
			tpt.create(x, y + 1, 'CRTV')
			tpt.create(x, y - 1, 'TARV')
		end
	end
end
tpt.element_func(COALUpdate, tpt.element('coal'))

BCOLUpdate = function(i, x, y, s, n)
	local dis = sim.partProperty(i,'temp')
	if dis > 1273.15 then
		if buttonable == 1 or buttonablest == 0 then
			sim.partChangeType(i, tpt.element('coke'))
			tpt.set_property('life', 0, x, y)
			tpt.create(x, y + 1, 'CRTV')
			tpt.create(x, y - 1, 'TARV')
		end
	end
end
tpt.element_func(BCOLUpdate, tpt.element('bcol'))


local CreosoteGas = elements.allocate("JWARD", "CRTV")
elements.element(elements.JWARD_PT_CRTV, elements.element(elements.DEFAULT_PT_BOYL))
elements.property(elements.JWARD_PT_CRTV, "Name", "CRTV")
elements.property(elements.JWARD_PT_CRTV, "Description", "creosote gas")
elements.property(elements.JWARD_PT_CRTV, "Colour", 0x585117)
elements.property(elements.JWARD_PT_CRTV, "MenuVisible", 0)
elements.property(elements.JWARD_PT_CRTV, "Gravity", -0.02)
elements.property(elements.JWARD_PT_CRTV, "Explosive", 0)
elements.property(elements.JWARD_PT_CRTV, "Loss", 0.75)
elements.property(elements.JWARD_PT_CRTV, "Flammable", 100)
elements.property(elements.JWARD_PT_CRTV, "AirDrag", 0.01)
elements.property(elements.JWARD_PT_CRTV, "Advection", 1)
elements.property(elements.JWARD_PT_CRTV, "Weight", 0)
elements.property(elements.JWARD_PT_CRTV, "Diffusion", 0.7)
elements.property(elements.JWARD_PT_CRTV, "Hardness", 0)
elements.property(elements.JWARD_PT_CRTV, "Falldown", 0)
elements.property(elements.JWARD_PT_CRTV, "Properties", elem.TYPE_GAS)
elements.property(elements.JWARD_PT_CRTV, "State", ST_GAS)
elements.property(elements.JWARD_PT_CRTV, "Temperature", 883.15)
elements.property(elements.JWARD_PT_CRTV, "HeatConduct", 81)
function CRTV(i,x,y,s,n)
	dis = sim.partProperty(i,'temp')
	if dis < 873.15 then
		sim.partChangeType(i, tpt.element('CRST'))
	end
end
tpt.element_func(CRTV,CreosoteGas)

local Creosote = elements.allocate("JWARD", "CRST")
elements.element(elements.JWARD_PT_CRST, elements.element(elements.DEFAULT_PT_SOAP))
elements.property(elements.JWARD_PT_CRST, "Name", "CRST")
elements.property(elements.JWARD_PT_CRST, "Description", "creosote ")
elements.property(elements.JWARD_PT_CRST, "Colour", 0x0F0E04)
elements.property(elements.JWARD_PT_CRST, "MenuSection", SC_LIQUID)
elements.property(elements.JWARD_PT_CRST, "Gravity", .04)
elements.property(elements.JWARD_PT_CRST, "Flammable", 0)
elements.property(elements.JWARD_PT_CRST, "Explosive", 0)
elements.property(elements.JWARD_PT_CRST, "Loss", 1)
elements.property(elements.JWARD_PT_CRST, "AirLoss", .5)
elements.property(elements.JWARD_PT_CRST, "AirDrag", .01)
elements.property(elements.JWARD_PT_CRST, "Advection", .01)
elements.property(elements.JWARD_PT_CRST, "Weight", 35)
elements.property(elements.JWARD_PT_CRST, "State", ST_liquid)
elements.property(elements.JWARD_PT_CRST, "Properties", elem.TYPE_LIQUID)
elements.property(elements.JWARD_PT_CRST, "HighTemperature", 873)
elements.property(elements.JWARD_PT_CRST, "HighTemperatureTransition", elements.JWARD_PT_CRTV)


--crude oil 
function OIL(i,x,y,s,n)
    local otherfind = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	if buttonable == 1 and otherfind == tpt.el.brel.id then
		if crack == 0 then
			sim.partChangeType(i, petrol)
		else
			sim.partChangeType(i, tpt.element('PRPN'))
		end
	end
end
tpt.element_func(OIL,tpt.element('oil'))

local OILCRUDE = elements.allocate("JWARD", "OILC")
elements.element(elements.JWARD_PT_OILC, elements.element(elements.DEFAULT_PT_GEL))
elements.property(elements.JWARD_PT_OILC, "Name", "OILC")
elements.property(elements.JWARD_PT_OILC, "Description", "Crude oil can be distilled, didn't name it coil for a reason")
elements.property(elements.JWARD_PT_OILC, "Colour", 0x35350D)
elements.property(elements.JWARD_PT_OILC, "MenuSection", 7)
elements.property(elements.JWARD_PT_OILC, "Gravity", .04)
elements.property(elements.JWARD_PT_OILC, "Flammable", 50)
elements.property(elements.JWARD_PT_OILC, "Explosive", 0)
elements.property(elements.JWARD_PT_OILC, "Loss", 1)
elements.property(elements.JWARD_PT_OILC, "AirLoss", .5)
elements.property(elements.JWARD_PT_OILC, "AirDrag", .01)
elements.property(elements.JWARD_PT_OILC, "Advection", .01)
elements.property(elements.JWARD_PT_OILC, "Weight", 5)
elements.property(elements.JWARD_PT_OILC, "State", ST_liquid)
elements.property(elements.JWARD_PT_OILC, "Properties", elem.TYPE_LIQUID+elem.PROP_DEADLY)
function OILC(i,x,y,s,n)
	local dis = sim.partProperty(i,'temp')
	if dis > 973.15 then
		tpt.set_property('tmp', math.random(1,9), x, y)
	end
	local oillife = sim.partProperty(i,'tmp')
	if oillife == 9 then
		sim.partChangeType(i, tpt.element('crtv'))
		oillife = nil
	elseif oillife == 8 then
		sim.partChangeType(i, tpt.element('gas'))
		oillife = nil
	elseif oillife == 7 then
		sim.partChangeType(i, tpt.element('kerv'))
		oillife = nil
	elseif oillife == 6 then
		sim.partChangeType(i, tpt.element('ptlv'))
		oillife = nil
	elseif oillife == 5 then
		sim.partChangeType(i, tpt.element('dslv'))
		oillife = nil
	elseif oillife == 4 then
		sim.partChangeType(i, tpt.element('waxv'))
		oillife = nil
	elseif oillife == 3 then
		sim.partChangeType(i, tpt.element('coke'))
		oillife = nil
	elseif oillife == 2 then
		sim.partChangeType(i, tpt.element('tarv'))
		oillife = nil
	elseif oillife == 1 then
		sim.partChangeType(i, tpt.element('PRPN'))
		oillife = nil
	end
end
tpt.element_func(OILC,OILCRUDE)

--better states of matter
function BSM(i,x,y,s,n)
	local stctype = sim.partProperty(i,'ctype')
	local sttemp = sim.partProperty(i,'temp')
	if stctype == tpt.element('nble') and sttemp > 1 then
		sim.partChangeType(i, tpt.el.nble.id)
	end
	if sttemp > 255.15 then
		if stctype == tpt.element('desl') then
			sim.partChangeType(i, tpt.el.desl.id)
		elseif stctype == tpt.element('ptrl') then
			sim.partChangeType(i, tpt.element('ptrl'))
		end
	end
end
tpt.element_func(BSM,tpt.el.ice.id)

LAVAUpdate = function(i, x, y, s, n)
	if buttonable == 1 then
		local dis = sim.partProperty(i,'ctype')
		local dis2 = tpt.get_property('type',x+math.random(-1,1),y+math.random(-1,1))
		if dis2 == tpt.element('coke') and dis == tpt.element('iron') then
			sim.partChangeType(i, tpt.el.metl.id)
		end
	end
end
tpt.element_func(LAVAUpdate, tpt.el.lava.id)

function BSMp(i,x,y,s,n)
	local stctype = sim.partProperty(i,'ctype')
	local sttemp = sim.partProperty(i,'temp')
	if stctype == tpt.element('nble') and sttemp > 1 then
		sim.partChangeType(i, tpt.el.nble.id)
	end
	if stctype == tpt.element('desl') and sttemp > 255.15 then
		sim.partChangeType(i, tpt.el.desl.id)
	end
	if stctype == tpt.element('ptrl') and sttemp > 225.15 then
		sim.partChangeType(i, tpt.element('ptrl'))
	end
end
tpt.element_func(BSMp,tpt.el.snow.id)

function BSMM(i,x,y,s,n)
	local stctype = sim.partProperty(i,'ctype')
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local randomval = math.random(0,20)
	if reaction == tpt.el.acid.id then
		if randomval == 1 then
			sim.partChangeType(i, tpt.element('SLTW'))
		elseif randomval == 0 then
			sim.partChangeType(i, tpt.element('hygn'))
		end
	end
	if stctype == tpt.element('merc') and tpt.get_property('temp', x, y) > 234 then
		sim.partChangeType(i, tpt.el.merc.id)
		tpt.set_property('tmp', 22, x, y)
	end
	if stctype == tpt.element('SHYG') and sim.pressure((x/4),(y/4)) < 255 then
		sim.partChangeType(i, tpt.element('SHYG'))
	end
end
tpt.element_func(BSMM,tpt.el.metl.id)

function BSMMY(i,x,y,s,n)
	local sttemp = sim.partProperty(i,'temp')
	if buttonablest == 0 and sttemp < 234 then
		sim.partChangeType(i, tpt.el.metl.id)
		tpt.set_property('ctype', tpt.el.merc.id, x, y)
	end
end
tpt.element_func(BSMMY,tpt.el.merc.id)

function BSMWT(i,x,y,s,n)
	local stctype = sim.partProperty(i,'ctype')
	local sttemp = sim.partProperty(i,'temp')
	local reaction = tpt.get_property("type",x+math.random(-1,1),y+math.random(-1,1))
	local cy = math.random(1,3)
	if stctype == tpt.element('deut') and sttemp < 376 then
		sim.partChangeType(i, tpt.el.deut.id)
	end
	if sttemp > 1100 then
		if reaction == tpt.element('KERV') or reaction == tpt.element('WAXV') or reaction == tpt.element('DSLV') or reaction == tpt.element('PTLV') then
			if cy == 1 then
				sim.partChangeType(i, tpt.element('HYGN'))
			else
				sim.partChangeType(i, tpt.element('CO2'))
			end
		end
		if reaction == tpt.element('PRPN') or reaction == tpt.element('AFRZ') then
			sim.partChangeType(i, tpt.element('HYGN'))
		end
	end
end
tpt.element_func(BSMWT,tpt.el.wtrv.id)

function BSMDWT(i,x,y,s,n)
	local stctype = sim.partProperty(i,'ctype')
	if stctype == tpt.element('deut') then
		sim.partChangeType(i, tpt.el.deut.id)
	end
end
tpt.element_func(BSMDWT,tpt.el.dstw.id)

function BSMDT(i,x,y,s,n)
	local function ignore(i,x,y)
		local sttemp = sim.partProperty(i,'temp')
		if buttonablest == 0 and sttemp > 376 then
			sim.partChangeType(i, tpt.el.wtrv.id)
			tpt.set_property('ctype', tpt.el.deut.id, x, y)
		end
	end
	pcall(ignore, i, x, y)
end
tpt.element_func(BSMDT,tpt.el.deut.id)

function BSMP(i,x,y,s,n)
	local sttemp = sim.partProperty(i,'temp')
	local BSMchance
	if buttonablest == 0 and sttemp < 260 then
		BSMchance = math.random(1,3)
	else
		BSMchance = 0
	end
	if BSMchance == 1 then
		sim.partChangeType(i, tpt.el.clst.id)
	elseif BSMchance == 2 then
		sim.partChangeType(i, tpt.el.ice.id)
		tpt.set_property('ctype', tpt.el.pste.id, x, y)
	elseif BSMchance == 3 then
		sim.partChangeType(i, tpt.el.ice.id)
		tpt.set_property('ctype', tpt.el.watr.id, x, y)
	end
end
tpt.element_func(BSMP,tpt.el.pste.id)

--button
--http://powdertoy.co.uk/Wiki/W/Lua.html
topress = 0
local thx = 0

function tick()
	crack = math.random(0,1)
	ol = math.random(-1,1)
	if nil == HL2Mod then
		--thanks message
		if thx == 1 then
			tpt.message_box("thanks "..tpt.get_name().." for your purchase, ","construction or theft of one or more of jward's mods")
			thx = 0
		end	
		--check for other mods so JW icon can move to alt spot
		if tpt.version.jacob1s_mod or elem.DEFAULT_PT_IRNX == 181 or nil ~= TPTMP then	
			--JW button hide if HUD is off
			if  tpt.hud() == 1 then
				--JW button hide to see info about powder effect
				if  tpt.mousex >= 613 and tpt.mousey >= 1 and tpt.mousex <= 627 and tpt.mousey <= 14 then
				else
					--JW button in alt spot
					tpt.drawrect(597, 1, 14, 14, 204, 204, 204)
					tpt.fillrect(597, 1, 14, 14, 0, 0, 0, 255)
					tpt.drawtext(598, 5, "JW", colourRGB[1], colourRGB[2], colourRGB[3], 255)
					--green line to tell if antisave breaking is on in alt spot
					if buttonable == 0 then
						tpt.drawline(598, 13, 610, 13, 0, 255, 0)
					else
						tpt.drawline(598, 13, 610, 13, 255, 0, 0)
					end
					topress = 1
					--JW icon in alt spot highlight on hover
					if tpt.mousex >= 597 and tpt.mousey >= 1 and tpt.mousex <= 611 and tpt.mousey <= 14 then
						tpt.drawrect(597, 1, 14, 14, 255, 255, 255)
					else
						--dull when lua script manager is open
						if MANAGER ~= nil then
							if MANAGER.hidden == true then
								tpt.fillrect(597, 1, 14, 14, 0, 0, 0, 0)
							else
								tpt.fillrect(597, 1, 14, 14, 0, 0, 0, 90)
								tpt.drawrect(597, 1, 14, 14, 90, 90, 90)
							end 
						end
					end
				end
			end
		else
			--JW icon in normal spot
			tpt.drawrect(613, 113, 14, 14, 204, 204, 204)
			tpt.fillrect(613, 113, 14, 14, 0, 0, 0, 255)
			tpt.drawtext(614, 117, "JW", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			--green line to tell if antisave breaking is on in normal spot
			if buttonable == 0 then
				tpt.drawline(614, 125, 626, 125, 0, 255, 0)
			else
				tpt.drawline(614, 125, 626, 125, 255, 0, 0)
			end
			topress = 2
			--highlight when hover in normal spot
			if tpt.mousex >= 613 and tpt.mousey >= 113 and tpt.mousex <= 627 and tpt.mousey <= 124 then
				tpt.drawrect(613, 113, 14, 14, 255, 255, 255)
				tpt.drawtext(500, 117, "JWARD's Mod options", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			else
				--dull when lua script manager is open
				if MANAGER ~= nil then
					if MANAGER.hidden == true then
						tpt.fillrect(613, 113, 14, 14, 0, 0, 0, 0)
					else
						tpt.fillrect(613, 113, 14, 14, 0, 0, 0, 90)
						tpt.drawrect(613, 113, 14, 14, 90, 90, 90)
					end
				end
			end
		end
		if toopress == 1 then
			--invert shade when JW button is pressed, alt spot
			if topress == 1 then
				tpt.fillrect(596, 0, 16, 16, 255, 255, 255, 255)
				tpt.drawtext(598, 5, "JW", 0, 0, 0, 255)
			end
			--invert shade when JW button is pressed, normal spot
			if topress == 2 then
				tpt.fillrect(612, 112, 16, 16, 255, 255, 255, 255)
				tpt.drawtext(614, 117, "JW", 0, 0, 0, 255)
			end
			--elements menu 
			if items == 1 then
				tpt.fillrect(150, 174, 16, 15, 255, 255, 255, 255)
				tpt.drawline(153, 176, 158, 181, 0, 0, 0)
				tpt.drawline(163, 176, 158, 181, 0, 0, 0)
				tpt.drawline(153, 181, 158, 186, 0, 0, 0)
				tpt.drawline(163, 181, 158, 186, 0, 0, 0)
				tpt.drawrect(0, 205, 600, 175, 255, 255, 255)
				tpt.fillrect(0, 205, 600, 175, 0, 0, 0, 255)
				tpt.drawtext(25, 210, "JWARD's Mods' elements", colourRGB[1], colourRGB[2], colourRGB[3], 255)
				tpt.drawtext(6, 229, "Fuel mod:", 255, 255, 255, 255)
				--close button in elements menu 
				tpt.drawrect(5, 208, 14, 14, 204, 204, 204)
				tpt.drawline(17, 215, 12, 210, 255, 255, 255)
				tpt.drawline(7, 215, 12, 210, 255, 255, 255)
				tpt.drawline(17, 220, 12, 215, 255, 255, 255)
				tpt.drawline(7, 220, 12, 215, 255, 255, 255)
				if  tpt.mousex >= 5 and tpt.mousey >= 208 and tpt.mousex <= 19 and tpt.mousey <= 222 and items == 1 then
					tpt.drawrect(5, 208, 14, 14, 255, 255, 255)
				end
				--anfo
				tpt.fillrect(50, 225, 28, 15, 255, 206, 202, 255)
				tpt.drawtext(52, 229, "ANFO", 0, 0, 0, 255)
				if  tpt.mousex >= 50 and tpt.mousey >= 225 and tpt.mousex <= 78 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(49, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 1 then
					tpt.drawrect(49, 224, 30, 17, 255, 0, 0)
				end
				--PRPN
				tpt.fillrect(83, 225, 28, 15, 244, 162, 106, 255)
				tpt.drawtext(85, 229, "PRPN", 0, 0, 0, 255)
				if  tpt.mousex >= 83 and tpt.mousey >= 225 and tpt.mousex <= 111 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(82, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 2 then
					tpt.drawrect(82, 224, 30, 17, 255, 0, 0)
				end
				--COKE
				tpt.fillrect(116, 225, 28, 15, 170, 170, 170, 255)
				tpt.drawtext(118, 229, "COKE", 0, 0, 0, 255)
				if  tpt.mousex >= 116 and tpt.mousey >= 225 and tpt.mousex <= 144 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(115, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 3 then
					tpt.drawrect(115, 224, 30, 17, 255, 0, 0)
				end
				--OILC
				tpt.fillrect(149, 225, 28, 15, 53, 53, 13, 255)
				tpt.drawtext(153, 229, "OILC", 255, 255, 255, 255)
				if  tpt.mousex >= 149 and tpt.mousey >= 225 and tpt.mousex <= 177 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(148, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 4 then
					tpt.drawrect(148, 224, 30, 17, 255, 0, 0)
				end
				--plye
				tpt.fillrect(182, 225, 28, 15, 204, 204, 204, 255)
				tpt.drawtext(186, 229, "PLYE", 0, 0, 0, 255)
				if  tpt.mousex >= 182 and tpt.mousey >= 225 and tpt.mousex <= 210 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(181, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 5 then
					tpt.drawrect(181, 224, 30, 17, 255, 0, 0)
				end
				--JETB	
				tpt.fillrect(215, 225, 28, 15, 103, 102, 1, 255)
				tpt.drawtext(217, 229, "JETB", 255, 255, 255, 255)
				if  tpt.mousex >= 215 and tpt.mousey >= 225 and tpt.mousex <= 243 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(214, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 6 then
					tpt.drawrect(214, 224, 30, 17, 255, 0, 0)
				end
				--kerosene
				tpt.fillrect(248, 225, 28, 15, 1, 179, 255, 255)
				tpt.drawtext(250, 229, "KERO", 0, 0, 0, 255)
				if  tpt.mousex >= 248 and tpt.mousey >= 225 and tpt.mousex <= 276 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(247, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 7 then
					tpt.drawrect(247, 224, 30, 17, 255, 0, 0)
				end
				--N2H4	
				tpt.fillrect(281, 225, 28, 15, 182, 240, 100, 255)
				tpt.drawtext(283, 229, "N2H4", 0, 0, 0, 255)
				if  tpt.mousex >= 281 and tpt.mousey >= 225 and tpt.mousex <= 309 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(280, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 8 then
					tpt.drawrect(280, 224, 30, 17, 255, 0, 0)
				end
				--N2O4
				tpt.fillrect(314, 225, 28, 15, 48, 206, 198, 255)
				tpt.drawtext(316, 229, "N2O4", 0, 0, 0, 255)
				if  tpt.mousex >= 314 and tpt.mousey >= 225 and tpt.mousex <= 342 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(313, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 9 then
					tpt.drawrect(313, 224, 30, 17, 255, 0, 0)
				end	
				--TAR
				tpt.fillrect(347, 225, 28, 15, 13, 13, 3, 255)	
				tpt.drawtext(352, 229, "TAR", 255, 255, 255, 255)
				if  tpt.mousex >= 347 and tpt.mousey >= 225 and tpt.mousex <= 375 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(346, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 10 then
					tpt.drawrect(346, 224, 30, 17, 255, 0, 0)
				end
				--AFRZ
				tpt.fillrect(380, 225, 28, 15, 12, 63, 91, 255)
				tpt.drawtext(382, 229, "AFRZ", 255, 255, 255, 255)
				if  tpt.mousex >= 380 and tpt.mousey >= 225 and tpt.mousex <= 408 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(379, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 11 then
					tpt.drawrect(379, 224, 30, 17, 255, 0, 0)
				end
				--N2O
				tpt.fillrect(413, 225, 28, 15, 67, 218, 255, 255)
				tpt.drawtext(418, 229, "N2O", 0, 0, 0, 255)
				if  tpt.mousex >= 413 and tpt.mousey >= 225 and tpt.mousex <= 441 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(412, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 12 then
					tpt.drawrect(412, 224, 30, 17, 255, 0, 0)
				end
				--N2	
				tpt.fillrect(446, 225, 28, 15, 94, 82, 255, 255)
				tpt.drawtext(454, 229, "N2", 0, 0, 0, 255)
				if  tpt.mousex >= 446 and tpt.mousey >= 225 and tpt.mousex <= 474 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(445, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 13 then
					tpt.drawrect(445, 224, 30, 17, 255, 0, 0)
				end
				--PTRL	
				tpt.fillrect(479, 225, 28, 15, 10, 74, 92, 255)
				tpt.drawtext(482, 229, "PTRL", 255, 255, 255, 255)
				if  tpt.mousex >= 479 and tpt.mousey >= 225 and tpt.mousex <= 507 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(478, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 14 then
					tpt.drawrect(478, 224, 30, 17, 255, 0, 0)
				end
				--COIL
				tpt.fillrect(512, 225, 28, 15, 165, 114, 20, 255)
				tpt.drawtext(515, 229, "COIL", 0, 0, 0, 255)
				if  tpt.mousex >= 512 and tpt.mousey >= 225 and tpt.mousex <= 540 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(511, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 15 then
					tpt.drawrect(511, 224, 30, 17, 255, 0, 0)
				end
				--GLCR
				tpt.fillrect(545, 225, 28, 15, 225, 225, 225, 255)
				tpt.drawtext(548, 229, "GLCR", 0, 0, 0, 255)
				if  tpt.mousex >= 545 and tpt.mousey >= 225 and tpt.mousex <= 573 and tpt.mousey <= 240 and items == 1 then
					tpt.drawrect(544, 224, 30, 17, 255, 0, 0)
				end
				if redrect == 16 then
					tpt.drawrect(544, 224, 30, 17, 255, 0, 0)
				end
				--BDSL
				tpt.fillrect(6, 245, 28, 15, 51, 16, 0, 255)
				tpt.drawtext(8, 249, "BDSL", 255, 255, 255, 255)
				if  tpt.mousex >= 6 and tpt.mousey >= 245 and tpt.mousex <= 34 and tpt.mousey <= 260 and items == 1 then
					tpt.drawrect(5, 244, 30, 17, 255, 0, 0)
				end
				if redrect == 17 then
					tpt.drawrect(5, 244, 30, 17, 255, 0, 0)
				end
				--LN2O
				tpt.fillrect(39, 245, 28, 15, 51, 193, 245, 255)
				tpt.drawtext(41, 249, "LN2O", 0, 0, 0, 255)
				if  tpt.mousex >= 39 and tpt.mousey >= 245 and tpt.mousex <= 67 and tpt.mousey <= 260 and items == 1 then
					tpt.drawrect(38, 244, 30, 17, 255, 0, 0)
				end
				if redrect == 18 then
					tpt.drawrect(38, 244, 30, 17, 255, 0, 0)
				end
				--CRST
				tpt.fillrect(72, 245, 28, 15, 15, 14, 4, 255)
				tpt.drawtext(74, 249, "CRST", 255, 255, 255, 255)
				if  tpt.mousex >= 72 and tpt.mousey >= 245 and tpt.mousex <= 100 and tpt.mousey <= 260 and items == 1 then
					tpt.drawrect(71, 244, 30, 17, 255, 0, 0)
				end
				if redrect == 19 then
					tpt.drawrect(71, 244, 30, 17, 255, 0, 0)
				end
			end
			--mod options menu
			tpt.drawrect(0, 0, 200, 200, 255, 255, 255)
			tpt.fillrect(0, 0, 200, 200, 0, 0, 0, 255)
			tpt.drawtext(10, 5, "JWARD's Mod options "..FuelMod.version, colourRGB[1], colourRGB[2], colourRGB[3], 255)
			--close
			tpt.drawrect(10, 174, 60, 16, 204, 204, 204)
			tpt.drawtext(25, 178, "Close", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			if  tpt.mousex >= 10 and tpt.mousey >= 174 and tpt.mousex <= 70 and tpt.mousey <= 190 then
				tpt.drawrect(10, 174, 60, 16, 255, 255, 255)
			end
			--antisave breaking
			if buttonable == 1 then
				tpt.drawrect(10, 150, 15, 15, 204, 204, 204)
				tpt.drawrect(35, 150, 15, 15, 255, 255, 255)
			else
				tpt.drawrect(35, 150, 15, 15, 204, 204, 204)
				tpt.drawrect(10, 150, 15, 15, 255, 255, 255)
			end
			tpt.drawtext(13, 154, "on", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			tpt.drawtext(37, 154, "off", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			tpt.drawtext(10, 140, "antisave breaking", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			if  tpt.mousex >= 10 and tpt.mousey >= 150 and tpt.mousex <= 25 and tpt.mousey <= 165 then
				tpt.drawrect(10, 150, 15, 15, 255, 255, 255)
			end
			if  tpt.mousex >= 35 and tpt.mousey >= 150 and tpt.mousex <= 50 and tpt.mousey <= 165 then
				tpt.drawrect(35, 150, 15, 15, 255, 255, 255)
			end
			--THanKs
			tpt.drawrect(80, 174, 60, 16, 204, 204, 204)
			tpt.drawtext(88, 178, ">THanKs<", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			if  tpt.mousex >= 80 and tpt.mousey >= 174 and tpt.mousex <= 140 and tpt.mousey <= 190 then
				tpt.drawrect(80, 174, 60, 16, 255, 255, 255)
			end
			--better states of matter
			tpt.drawtext(13, 127, "on", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			tpt.drawtext(37, 127, "off", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			if buttonablest == 1 then
				tpt.drawrect(10, 123, 15, 15, 204, 204, 204)
				tpt.drawrect(35, 123, 15, 15, 255, 255, 255)
			else
				tpt.drawrect(35, 123, 15, 15, 204, 204, 204)
				tpt.drawrect(10, 123, 15, 15, 255, 255, 255)
			end
			tpt.drawtext(10, 114, "better states of matter", colourRGB[1], colourRGB[2], colourRGB[3], 255)
			if  tpt.mousex >= 10 and tpt.mousey >= 123 and tpt.mousex <= 25 and tpt.mousey <= 138 then
				tpt.drawrect(10, 123, 15, 15, 255, 255, 255)
			end
			if  tpt.mousex >= 35 and tpt.mousey >= 123 and tpt.mousex <= 50 and tpt.mousey <= 138 then
				tpt.drawrect(35, 123, 15, 15, 255, 255, 255)
			end
			--elements
			tpt.drawrect(150, 174, 16, 15, 204, 204, 204)
			tpt.drawline(153, 176, 158, 181, 255, 255, 255)
			tpt.drawline(163, 176, 158, 181, 255, 255, 255)
			tpt.drawline(153, 181, 158, 186, 255, 255, 255)
			tpt.drawline(163, 181, 158, 186, 255, 255, 255)
			if  tpt.mousex >= 150 and tpt.mousey >= 174 and tpt.mousex <= 166 and tpt.mousey <= 189 then
				tpt.drawrect(150, 174, 16, 15, 255, 255, 255)
			end
		end
	end
end
function pressthingy()
	if HL2Mod == nil then
		if topress == 1 then
			 if tpt.mousex >= 597 and tpt.mousey >= 1 and tpt.mousex <= 611 and tpt.mousey <= 14 and tpt.hud() == 1 then
				 open = 1
				 windowclick = 1
			 end
		 end
		 if topress == 2 then
			 if tpt.mousex >= 613 and tpt.mousey >= 113 and tpt.mousex <= 627 and tpt.mousey <= 124 then
				open = 1
				windowclick = 1
			 end
		 end
		 if  tpt.mousex >= 0 and tpt.mousey >= 0 and tpt.mousex <= 200 and tpt.mousey <= 200 and windowclick == 1 then
			open = 1
		 end
		 if open == 1 then
			 if  tpt.mousex >= 10 and tpt.mousey >= 174 and tpt.mousex <= 70 and tpt.mousey <= 190 then
				open = 0
				toopress = 0
				windowclick = 0
			 end
			 if  tpt.mousex >= 80 and tpt.mousey >= 174 and tpt.mousex <= 140 and tpt.mousey <= 190 then
				thx = 1
			 end
			 if  tpt.mousex >= 150 and tpt.mousey >= 174 and tpt.mousex <= 166 and tpt.mousey <= 189 then
				items = 1
			 end
			 if  tpt.mousex >= 5 and tpt.mousey >= 208 and tpt.mousex <= 19 and tpt.mousey <= 222 and items == 1 then
				items = 0
			 end
			 if  tpt.mousex >= 50 and tpt.mousey >= 225 and tpt.mousex <= 78 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_ANFO"
				redrect = 1
			 end
			 if  tpt.mousex >= 83 and tpt.mousey >= 225 and tpt.mousex <= 111 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_PRPN"
				redrect = 2
			 end
			 if  tpt.mousex >= 116 and tpt.mousey >= 225 and tpt.mousex <= 144 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_COKE"
				redrect = 3
			 end
			 if  tpt.mousex >= 149 and tpt.mousey >= 225 and tpt.mousex <= 177 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_OILC"
				redrect = 4
			 end
			 if  tpt.mousex >= 182 and tpt.mousey >= 225 and tpt.mousex <= 210 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_PLYE"
				redrect = 5
			 end
			 if  tpt.mousex >= 215 and tpt.mousey >= 225 and tpt.mousex <= 243 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_JETB"
				redrect = 6
			 end
			 if  tpt.mousex >= 248 and tpt.mousey >= 225 and tpt.mousex <= 276 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_KERO"
				redrect = 7
			 end
			 if  tpt.mousex >= 281 and tpt.mousey >= 225 and tpt.mousex <= 309 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_N2H4"
				redrect = 8
			 end
			 if  tpt.mousex >= 314 and tpt.mousey >= 225 and tpt.mousex <= 342 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_N2O4"
				redrect = 9
			 end
			 if  tpt.mousex >= 347 and tpt.mousey >= 225 and tpt.mousex <= 375 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_TAR"
				redrect = 10
			 end
			 if  tpt.mousex >= 380 and tpt.mousey >= 225 and tpt.mousex <= 408 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_AFRZ"
				redrect = 11
			 end
			 if  tpt.mousex >= 413 and tpt.mousey >= 225 and tpt.mousex <= 441 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_N2O"
				redrect = 12
			 end
			 if  tpt.mousex >= 446 and tpt.mousey >= 225 and tpt.mousex <= 474 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_N2"
				redrect = 13
			 end
			 if  tpt.mousex >= 479 and tpt.mousey >= 225 and tpt.mousex <= 507 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_PTRL"
				redrect = 14
			 end
			 if  tpt.mousex >= 512 and tpt.mousey >= 225 and tpt.mousex <= 540 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_COIL"
				redrect = 15
			 end
			 if  tpt.mousex >= 545 and tpt.mousey >= 225 and tpt.mousex <= 573 and tpt.mousey <= 240 and items == 1 then
				tpt.selectedl="JWARD_PT_GLCR"
				redrect = 16
			 end
			 if  tpt.mousex >= 6 and tpt.mousey >= 245 and tpt.mousex <= 34 and tpt.mousey <= 260 and items == 1 then
				tpt.selectedl="JWARD_PT_BDSL"
				redrect = 17
			 end
			 if  tpt.mousex >= 39 and tpt.mousey >= 245 and tpt.mousex <= 67 and tpt.mousey <= 260 and items == 1 then
				tpt.selectedl="JWARD_PT_LN2O"
				redrect = 18
			 end
			 if  tpt.mousex >= 72 and tpt.mousey >= 245 and tpt.mousex <= 100 and tpt.mousey <= 260 and items == 1 then
				tpt.selectedl="JWARD_PT_CRST"
				redrect = 19
			end
			if  tpt.mousex >= 35 and tpt.mousey >= 123 and tpt.mousex <= 50 and tpt.mousey <= 138 then
				buttonablest = 1
			end
			if  tpt.mousex >= 10 and tpt.mousey >= 123 and tpt.mousex <= 25 and tpt.mousey <= 138 then
				buttonablest = 0
			end
			if  tpt.mousex >= 10 and tpt.mousey >= 150 and tpt.mousex <= 25 and tpt.mousey <= 165 then
				buttonable = 0
				f = io.open("Saves/JWsetting.txt", "w")
				f:write("0")
				f:close()
			end
			if  tpt.mousex >= 35 and tpt.mousey >= 150 and tpt.mousex <= 50 and tpt.mousey <= 165 then
				buttonable = 1
				f = io.open("Saves/JWsetting.txt", "w")
				f:write("1")
				f:close()
			 end
			--off
			if buttonable == 0 then
				elements.property(elements.DEFAULT_PT_ACID, "Flammable", 40)
				elements.property(elements.DEFAULT_PT_ACID, "Diffusion", 0)
				elements.property(elements.DEFAULT_PT_ACID, "Gravity", 0.1)
				elements.property(elements.DEFAULT_PT_ACID, "Description", "Dissolves almost everything.")
				elements.property(elements.DEFAULT_PT_LO2, "Flammable", 5000)
				elements.property(elements.DEFAULT_PT_INSL, "Hardness", 10)
				elements.property(elements.DEFAULT_PT_INSL, "Flammable", 7)
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperature", 77)
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperatureTransition", elements.DEFAULT_PT_NONE)
				elements.property(elements.DEFAULT_PT_WATR, "Hardness", 20)
				elements.property(elements.DEFAULT_PT_WATR, "Weight", 30)
				elements.property(elements.DEFAULT_PT_DSTW, "Hardness", 20)
				elements.property(elements.DEFAULT_PT_DSTW, "Weight", 30)
				elements.property(elements.DEFAULT_PT_SLTW, "Hardness", 20)
				elements.property(elements.DEFAULT_PT_SLTW, "Weight", 35)
				elements.property(elements.DEFAULT_PT_BUBW, "Hardness", 20)
				elements.property(elements.DEFAULT_PT_BUBW, "Weight", 30)
				elements.property(elements.DEFAULT_PT_GAS, "HighPressureTransition", elements.DEFAULT_PT_OIL)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperature", 0)
				elements.property(elements.DEFAULT_PT_GAS, "HotAir", 0.001)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperatureTransition", DEFAULT_PT_GAS)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperatureTransition", elements.DEFAULT_PT_FIRE)
				elements.property(elements.DEFAULT_PT_GAS, "Temperature", 273.15)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperature", 573)
				elements.property(elements.DEFAULT_PT_GAS, "HighPressure", 6)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperature", 333)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperatureTransition", elements.DEFAULT_PT_GAS)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperature", NT)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperatureTransition", ITL)
				elements.property(elements.DEFAULT_PT_DESL, "Weight", 15)
				elements.property(elements.DEFAULT_PT_DESL, "HighPressure", 2)
				elements.property(elements.DEFAULT_PT_NITR, "Hardness", 3)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperature", NT)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperatureTransition", ITL)
				elements.property(elements.DEFAULT_PT_MWAX, "HighTemperatureTransition", elements.DEFAULT_PT_FIRE)
			end
			--on
			if buttonable == 1 then
				elements.property(elements.DEFAULT_PT_ACID, "Flammable", 0)
				elements.property(elements.DEFAULT_PT_LO2, "Flammable", 0)
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperature", 76)
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperatureTransition", elements.JWARD_PT_N2)
				elements.property(elements.DEFAULT_PT_WATR, "Hardness", 0.25)
				elements.property(elements.DEFAULT_PT_WATR, "Weight", 32)
				elements.property(elements.DEFAULT_PT_DSTW, "Hardness", 0)
				elements.property(elements.DEFAULT_PT_DSTW, "Weight", 32)
				elements.property(elements.DEFAULT_PT_SLTW, "Hardness", 0)
				elements.property(elements.DEFAULT_PT_SLTW, "Weight", 32)
				elements.property(elements.DEFAULT_PT_BUBW, "Hardness", 0)
				elements.property(elements.DEFAULT_PT_BUBW, "Weight", 32)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperatureTransition", NT)
				elements.property(elements.DEFAULT_PT_DESL, "HighTemperatureTransition", elements.JWARD_PT_DSLV)
				elements.property(elements.DEFAULT_PT_DESL, "HighTemperature", 473.15)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperature", 255.15)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
				elements.property(elements.DEFAULT_PT_DESL, "Weight", 12)
				elements.property(elements.DEFAULT_PT_DESL, "HighPressure", 256)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperature", 20.15)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperatureTransition", elements.JWARD_PT_LHYG)
				elements.property(elements.DEFAULT_PT_TNT, "HighTemperatureTransition", elements.JWARD_PT_LTNT)
				elements.property(elements.DEFAULT_PT_TNT, "HighTemperature", 353.25)
				elements.property(elements.DEFAULT_PT_DMND, "MenuSection", 9)
				elements.property(elements.DEFAULT_PT_MORT, "MenuVisible", 1)
				elements.property(elements.DEFAULT_PT_MORT, "MenuSection", 8)
				elements.property(elements.DEFAULT_PT_INSL, "Hardness", 0)
				elements.property(elements.DEFAULT_PT_NITR, "Hardness", 0)
				elements.property(elements.DEFAULT_PT_INSL, "Flammable", 0)
				elements.property(elements.DEFAULT_PT_ACID, "Weight", 32)
				elements.property(elements.DEFAULT_PT_ACID, "Diffusion", 1.2)
				elements.property(elements.DEFAULT_PT_ACID, "Description", "Bubbling caustic liquid.")
				elements.property(elements.DEFAULT_PT_ACID, "Gravity", 0.62)
				elements.property(elements.DEFAULT_PT_GAS, "HighPressureTransition", 256)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperature", 573.15)
				elements.property(elements.DEFAULT_PT_GAS, "HotAir", 0)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperatureTransition", elements.DEFAULT_PT_OIL)
				elements.property(elements.DEFAULT_PT_GAS, "Temperature", 583.15)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperature", 10000)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperature", 573.15)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperatureTransition", elements.DEFAULT_PT_GAS)
				elements.property(elements.DEFAULT_PT_MWAX, "HighTemperatureTransition", elements.JWARD_PT_WAXV)
				elements.property(elements.DEFAULT_PT_MWAX, "HighTemperature", 643.15)
				elements.property(elements.DEFAULT_PT_WAX, "HeatConduct", 25)
			end
			--on
			if buttonablest == 0 then
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperature", 76)
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperatureTransition", elements.JWARD_PT_N2)
				elements.property(elements.DEFAULT_PT_GAS, "HighPressureTransition", 256)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperature", 573.15)
				elements.property(elements.DEFAULT_PT_GAS, "HotAir", 0)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperatureTransition", elements.DEFAULT_PT_OIL)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperatureTransition", NT)
				elements.property(elements.DEFAULT_PT_GAS, "Temperature", 583.15)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperature", 10000)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperature", 573.15)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperatureTransition", elements.DEFAULT_PT_GAS)
				elements.property(elements.DEFAULT_PT_DESL, "HighTemperatureTransition", elements.JWARD_PT_DSLV)
				elements.property(elements.DEFAULT_PT_DESL, "HighTemperature", 473.15)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperature", 255.15)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperature", 20.15)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperatureTransition", elements.JWARD_PT_LHYG)
				elements.property(elements.DEFAULT_PT_NBLE, "LowTemperature", 1)
				elements.property(elements.DEFAULT_PT_NBLE, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
				elements.property(elements.DEFAULT_PT_COAL, "HighPressure", 122)
				elements.property(elements.DEFAULT_PT_COAL, "HighPressureTransition", elements.DEFAULT_PT_DMND)
				elements.property(elements.DEFAULT_PT_BCOL, "HighPressure", 122)
				elements.property(elements.DEFAULT_PT_BCOL, "HighPressureTransition", elements.DEFAULT_PT_DMND)
				elements.property(elements.JWARD_PT_COKE, "HighPressure", 122)
				elements.property(elements.JWARD_PT_COKE, "HighPressureTransition", elements.DEFAULT_PT_DMND)
				elements.property(elements.JWARD_PT_COKE, "HighTemperature", 4373.15)
				elements.property(elements.JWARD_PT_COKE, "HighTemperatureTransition", elements.DEFAULT_PT_CO2)
				elements.property(elements.DEFAULT_PT_URAN, "HighTemperature", 1405)
				elements.property(elements.DEFAULT_PT_URAN, "HighTemperatureTransition", elements.DEFAULT_PT_LAVA)
				elements.property(elements.DEFAULT_PT_PLUT, "HighTemperature", 912)
				elements.property(elements.DEFAULT_PT_PLUT, "HighTemperatureTransition", elements.DEFAULT_PT_LAVA)
				elements.property(elements.DEFAULT_PT_DEUT, "LowTemperature", 276)
				elements.property(elements.DEFAULT_PT_DEUT, "LowTemperatureTransition", elements.DEFAULT_PT_ICE)
				elements.property(elements.DEFAULT_PT_TNT, "HighTemperatureTransition", elements.JWARD_PT_LTNT)
				elements.property(elements.DEFAULT_PT_TNT, "HighTemperature", 353.25)
			end
			--off
			if buttonablest == 1 then
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperature", 77)
				elements.property(elements.DEFAULT_PT_LN2, "HighTemperatureTransition", elements.DEFAULT_PT_NONE)
				elements.property(elements.DEFAULT_PT_GAS, "HighPressureTransition", elements.DEFAULT_PT_OIL)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperature", 0)
				elements.property(elements.DEFAULT_PT_GAS, "HotAir", 0.001)
				elements.property(elements.DEFAULT_PT_GAS, "LowTemperatureTransition", DEFAULT_PT_GAS)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperatureTransition", elements.DEFAULT_PT_FIRE)
				elements.property(elements.DEFAULT_PT_GAS, "Temperature", 273.15)
				elements.property(elements.DEFAULT_PT_GAS, "HighTemperature", 573)
				elements.property(elements.DEFAULT_PT_GAS, "HighPressure", 6)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperature", 333)
				elements.property(elements.DEFAULT_PT_OIL, "HighTemperatureTransition", elements.DEFAULT_PT_GAS)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperature", NT)
				elements.property(elements.DEFAULT_PT_DESL, "LowTemperatureTransition", ITL)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperature", NT)
				elements.property(elements.DEFAULT_PT_HYGN, "LowTemperatureTransition", ITL)
				elements.property(elements.DEFAULT_PT_NBLE, "LowTemperature", NT)
				elements.property(elements.DEFAULT_PT_NBLE, "LowTemperatureTransition", ITL)
				elements.property(elements.DEFAULT_PT_COAL, "HighPressure", 256)
				elements.property(elements.DEFAULT_PT_COAL, "HighPressureTransition", elements.DEFAULT_PT_COAL)
				elements.property(elements.DEFAULT_PT_BCOL, "HighPressure", 256)
				elements.property(elements.DEFAULT_PT_BCOL, "HighPressureTransition", elements.DEFAULT_PT_BCOL)
				elements.property(elements.JWARD_PT_COKE, "HighPressure", 256)
				elements.property(elements.JWARD_PT_COKE, "HighPressureTransition", elements.JWARD_PT_COKE)
				elements.property(elements.JWARD_PT_COKE, "HighTemperature", 10000)
				elements.property(elements.JWARD_PT_COKE, "HighTemperatureTransition", elements.JWARD_PT_COKE)
				elements.property(elements.DEFAULT_PT_URAN, "HighTemperature", NT)
				elements.property(elements.DEFAULT_PT_URAN, "HighTemperatureTransition", NT)
				elements.property(elements.DEFAULT_PT_PLUT, "HighTemperature", NT)
				elements.property(elements.DEFAULT_PT_PLUT, "HighTemperatureTransition", NT)
				elements.property(elements.DEFAULT_PT_DEUT, "LowTemperature", NT)
				elements.property(elements.DEFAULT_PT_DEUT, "LowTemperatureTransition", NT)
			end
			tpt.set_pause(1)
			toopress = 1
			return false
		else
			toopress = 0
			return true
		end
	end
end

tpt.register_mouseclick(pressthingy)
tpt.register_mouseclick(tick)
tpt.register_step(tick)

Description:

Changelog: