if not RandomShieldGoldenMonitors rawset(_G, "RandomShieldGoldenMonitors", { [MT_PITY_GOLDBOX] = MT_PITY_GOLDBOX, [MT_WHIRLWIND_GOLDBOX] = MT_WHIRLWIND_GOLDBOX, [MT_FLAMEAURA_GOLDBOX] = MT_FLAMEAURA_GOLDBOX, [MT_FORCE_GOLDBOX] = MT_FORCE_GOLDBOX, [MT_BUBBLEWRAP_GOLDBOX] = MT_BUBBLEWRAP_GOLDBOX, [MT_ELEMENTAL_GOLDBOX] = MT_ELEMENTAL_GOLDBOX, [MT_ATTRACT_GOLDBOX] = MT_ATTRACT_GOLDBOX, [MT_THUNDERCOIN_GOLDBOX] = MT_THUNDERCOIN_GOLDBOX, [MT_ARMAGEDDON_GOLDBOX] = MT_ARMAGEDDON_GOLDBOX }) end rawset(_G, "RandomGoldenPowerupMonitors", { [MT_SNEAKERS_GOLDBOX] = MT_SNEAKERS_GOLDBOX, [MT_INVULN_GOLDBOX] = MT_INVULN_GOLDBOX }) //I'm dumb so these have to be a thing rawset(_G, "RandomPowerupMonitorsCheck", { [MT_SNEAKERS_BOX] = MT_SNEAKERS_BOX, [MT_INVULN_BOX] = MT_INVULN_BOX }) rawset(_G, "RandomRingMonitorsCheck", { [MT_RING_BOX] = MT_RING_BOX, }) rawset(_G, "RandomPowerupMonitors", { [1] = MT_SNEAKERS_BOX, [2] = MT_INVULN_BOX }) if not RandomShieldMonitors rawset(_G, "RandomShieldMonitors", { [1] = MT_PITY_BOX, [2] = MT_WHIRLWIND_BOX, [3] = MT_FLAMEAURA_BOX, [4] = MT_FORCE_BOX, [5] = MT_BUBBLEWRAP_BOX, [6] = MT_ELEMENTAL_BOX, [7] = MT_ATTRACT_BOX, [8] = MT_THUNDERCOIN_BOX, [9] = MT_ARMAGEDDON_BOX }) end //XD if not RandomRingMonitors rawset(_G, "RandomRingMonitors", { [1] = MT_RING_BOX }) end rawset(_G, "RandomMonitorAddPowerup", function(MT) RandomPowerupMonitorsCheck[MT] = MT RandomPowerupMonitors[#RandomPowerupMonitors+1] = MT print("added mobj type "+MT+" to the random monitor powerup list") end) rawset(_G, "RandomMonitorAddShield", function(MT) RandomShieldMonitors[#RandomShieldMonitors+1] = MT print("added mobj type "+MT+" to the random monitor shield list") end) rawset(_G, "RandomMonitorAddRing", function(MT) RandomRingMonitorsCheck[MT] = MT RandomRingMonitors[#RandomRingMonitors+1] = MT print("added mobj type "+MT+" to the random monitor ring list") end) //RandomMonitorAddShield(MT) //RandomMonitorAddPowerup(MT) //RandomMonitorAddRing(MT) //MT being the mobj type for your monitor addHook("MobjSpawn", function(o) if (o.type == MT_1UP_BOX or o.type == MT_RING_BOX or o.type == MT_SNEAKERS_BOX or o.type == MT_INVULN_BOX) return end if (RandomShieldGoldenMonitors[o.type]) return end if (RandomPowerupMonitors[o.type]) return end if (o.type == MT_EGGMAN_BOX) return end if (o.flags & MF_MONITOR) o.type = RandomShieldMonitors[P_RandomRange(1, #RandomShieldMonitors)] end end) addHook("MobjSpawn", function(o) if (o.type == MT_1UP_BOX or o.type == MT_RING_BOX) return end if (RandomGoldenPowerupMonitors[o.type]) return end if (RandomShieldGoldenMonitors[o.type]) return end if (o.type == MT_EGGMAN_BOX) return end if (o.flags & MF_MONITOR) and (RandomPowerupMonitorsCheck[o.type]) o.type = RandomPowerupMonitors[P_RandomRange(1, #RandomPowerupMonitors)] end end) addHook("MobjSpawn", function(o) if (o.type == MT_1UP_BOX) return end if (RandomGoldenPowerupMonitors[o.type]) return end if (RandomShieldGoldenMonitors[o.type]) return end if (o.type == MT_EGGMAN_BOX) return end if (o.flags & MF_MONITOR) and (RandomRingMonitorsCheck[o.type]) o.type = RandomRingMonitors[P_RandomRange(1, #RandomRingMonitors)] end end)