local zone = nil local CHAOS_TOKEN_NAMES = { "Elder Sign", "+1", "0", "-1", "-2", "-3", "-4", "-5", "-6", "-7", "-8", "Skull", "Cultist", "Tablet", "Elder Thing", "Auto-fail", "Bless", "Curse", "Frost" } -- general code function onSave() return JSON.encode(zone and zone.getGUID() or nil) end function onLoad(savedData) if savedData ~= "" and savedData ~= nil then zone = getObjectFromGUID(JSON.decode(savedData)) end setMenu(zone == nil) end -- context menu functions function enable() local scale = self.getScale() zone = spawnObject({ type = "ScriptingTrigger", position = self.getPosition() + Vector(0, 2.5 + 0.11, 0), rotation = self.getRotation(), scale = { scale.x * 2, 5, scale.z * 2 } }) setMenu(false) end function disable() if zone ~= nil then zone.destruct() end setMenu(true) end -- core functions function setMenu(isEnabled) self.clearContextMenu() if isEnabled then self.addContextMenuItem("Enable", enable) else self.addContextMenuItem("Disable", disable) end end function onObjectEnterScriptingZone(entering, object) if zone ~= entering or object == self or object.type == "Deck" or object.type == "Card" then return end local name = object.getName() for _, entry in ipairs(CHAOS_TOKEN_NAMES) do if entry == name then return end end object.destruct() end function onPickUp() disable() end