local ult = 0 addHook("NetVars", function(net) ult = net($) end) COM_AddCommand("ultimatemode", function (p, a) if a == "0" CONS_Printf(p, "Ultimate Mode has been turned off; load a new map or re-load the current map for this to take full effect.") ult = 0 elseif a == "1" CONS_Printf(p, "Ultimate Mode has been turned on; load a new map or re-load the current map for this to take full effect.") ult = 1 else CONS_Printf(p, "Turns Ultimate Mode on or off. This toggle works in Multiplayer. Type 'ultimatemode 1' to turn it on, or 'ultimatemode 0' to turn it off.") end end, COM_ADMIN) addHook("PlayerThink", function(p) if ult == 1 and p.rings > 0 p.rings = 0 end end) addHook("PlayerThink", function(p) if ult == 1 and p.lives > 1 and p.lives ~= 127 p.lives = 1 end end) addHook("PlayerSpawn", function(p) if leveltime > 35 and ult == 1 P_DamageMobj(p.mo, nil, nil, 1, 128) end end) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_RING) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_COIN) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_RING_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_PITY_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_ATTRACT_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_FORCE_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_ARMAGEDDON_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_WHIRLWIND_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_ELEMENTAL_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_FLAMEAURA_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_BUBBLEWRAP_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_THUNDERCOIN_BOX) addHook("MobjThinker", function(m) if ult == 1 P_RemoveMobj(m) end end, MT_STARPOST) addHook("MobjSpawn", function(m) if ult == 1 m.info.speed = (5*FRACUNIT) end end, MT_GOLDBUZZ) addHook("MobjSpawn", function(m) if ult == 1 m.info.speed = (10*FRACUNIT) end end, MT_REDBUZZ) addHook("MobjSpawn", function(m) if ult == 1 m.info.speed = (2*FRACUNIT) end end, MT_JETTBOMBER) addHook("MobjSpawn", function(m) if ult == 1 m.info.speed = (2*FRACUNIT) end end, MT_JETGUNNER) addHook("MobjThinker", function(m) if ult == 1 and m.reactiontime == 140 m.reactiontime = 70 end end, MT_CANNONLAUNCHER) addHook("MobjThinker", function(m) if ult == 1 and m.reactiontime == 70 m.reactiontime = 35 end end, MT_ROBOHOOD) addHook("MobjThinker", function(m) if ult == 1 and m.reactiontime == 350 m.reactiontime = 175 end end, MT_JETTGUNNER) addHook("MobjThinker", function(m) if ult == 1 and m.reactiontime == 1050 m.reactiontime = 525 end end, MT_CYBRAKDEMON)