{ "GUID": "0f0680", "Name": "Custom_Model_Bag", "Transform": { "posX": 0.269900024, "posY": 1.4922266, "posZ": 28.77701, "rotX": 359.920166, "rotY": 270.000519, "rotZ": 0.0169453211, "scaleX": 0.6494761, "scaleY": 0.09070112, "scaleZ": 0.6494761 }, "Nickname": "Future Reflections", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj", "DiffuseURL": "https://i.imgur.com/T97bYDU.pnghttps://i.imgur.com/T97bYDU.png", "NormalURL": "", "ColliderURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj", "Convex": true, "MaterialIndex": 3, "TypeIndex": 6, "CustomShader": { "SpecularColor": { "r": 1.0, "g": 1.0, "b": 1.0 }, "SpecularIntensity": 0.0, "SpecularSharpness": 2.0, "FresnelStrength": 0.0 }, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "-- Utility memory bag by Directsun\r\n-- Version 2.5.2\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor + 4\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={-1.25,0.1,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={-1.25,0.3,-7}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={1.25,0.3,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={1.25,0.3,-8}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={1.25,0.3,-7}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-1.25,0.3,-8}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj, move)\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={1.35,1,6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-1.25,1,6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n--- self.createButton({\r\n--- label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n--- position={-2.8,0.3,0}, rotation={0,0,0}, height=350, width=800,\r\n--- font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n--- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n\tlocal angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n\tlocal z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend", "LuaScriptState": "{\"ml\":{\"004d53\":{\"lock\":false,\"pos\":{\"x\":-3.5339,\"y\":2.4522,\"z\":-14.974},\"rot\":{\"x\":359.9886,\"y\":270,\"z\":0.0024}},\"0151be\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.627,\"z\":11.4601},\"rot\":{\"x\":0.0156,\"y\":180.9005,\"z\":0.0802}},\"01961e\":{\"lock\":false,\"pos\":{\"x\":-3.9276,\"y\":1.7636,\"z\":5.7572},\"rot\":{\"x\":359.9197,\"y\":270.0193,\"z\":180.0168}},\"0ccc8d\":{\"lock\":false,\"pos\":{\"x\":1.7009,\"y\":1.5583,\"z\":14.2781},\"rot\":{\"x\":359.9551,\"y\":225.0036,\"z\":0.0687}},\"0de2c4\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3599,\"z\":-67.8206},\"rot\":{\"x\":0.0208,\"y\":270.009,\"z\":0.0168}},\"0f46eb\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":269.9961,\"z\":0.0168}},\"15105c\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"16df70\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"17a00f\":{\"lock\":false,\"pos\":{\"x\":-36.7732,\"y\":1.6463,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":180.0168}},\"1c3aab\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"1d61c6\":{\"lock\":false,\"pos\":{\"x\":12.2483,\"y\":1.475,\"z\":35.9866},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0169}},\"1da958\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3645,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":179.9921,\"z\":359.9792}},\"208c4d\":{\"lock\":false,\"pos\":{\"x\":-16.6335,\"y\":1.3638,\"z\":-54.6166},\"rot\":{\"x\":0.0218,\"y\":266.5908,\"z\":0.0155}},\"226716\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3596,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":269.9998,\"z\":0.0168}},\"231320\":{\"lock\":false,\"pos\":{\"x\":-3.9272,\"y\":1.7973,\"z\":5.7576},\"rot\":{\"x\":359.9197,\"y\":270.0057,\"z\":180.0168}},\"24bf26\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.2665,\"z\":-84.818},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"26c67a\":{\"lock\":false,\"pos\":{\"x\":0.5742,\"y\":1.6277,\"z\":-9.8657},\"rot\":{\"x\":359.9197,\"y\":270.002,\"z\":0.0168}},\"26f88d\":{\"lock\":false,\"pos\":{\"x\":-16.639,\"y\":1.3603,\"z\":-66.8114},\"rot\":{\"x\":0.0208,\"y\":270.0166,\"z\":0.0168}},\"270c8f\":{\"lock\":false,\"pos\":{\"x\":-26.2998,\"y\":1.2734,\"z\":-61.2407},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"28eca9\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6327,\"z\":-15.28},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"298237\":{\"lock\":false,\"pos\":{\"x\":-22.6146,\"y\":1.3701,\"z\":-65.5964},\"rot\":{\"x\":0.0168,\"y\":180.0003,\"z\":359.9792}},\"2b0bee\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"2b7ea2\":{\"lock\":false,\"pos\":{\"x\":-10.4852,\"y\":1.0777,\"z\":73.5727},\"rot\":{\"x\":359.9792,\"y\":89.9769,\"z\":359.9832}},\"2bf3e1\":{\"lock\":false,\"pos\":{\"x\":-2.6887,\"y\":1.6191,\"z\":-5.0485},\"rot\":{\"x\":359.9197,\"y\":270.0182,\"z\":0.0168}},\"2c2feb\":{\"lock\":false,\"pos\":{\"x\":-26.9465,\"y\":1.619,\"z\":0.0429},\"rot\":{\"x\":359.9201,\"y\":270.0127,\"z\":0.0168}},\"2e2f73\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6281,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":180.0168}},\"307044\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3553,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":269.9782,\"z\":0.0168}},\"31fffc\":{\"lock\":false,\"pos\":{\"x\":-23.6766,\"y\":1.6258,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"34592b\":{\"lock\":false,\"pos\":{\"x\":-3.7823,\"y\":1.4788,\"z\":-27.0319},\"rot\":{\"x\":359.9201,\"y\":270.0278,\"z\":0.0168}},\"3701d9\":{\"lock\":false,\"pos\":{\"x\":-10.4852,\"y\":1.0764,\"z\":68.9727},\"rot\":{\"x\":359.9792,\"y\":89.9804,\"z\":359.9832}},\"3742e4\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2688,\"z\":-76.9454},\"rot\":{\"x\":359.9792,\"y\":89.9993,\"z\":359.9832}},\"376a06\":{\"lock\":false,\"pos\":{\"x\":1.696,\"y\":1.56,\"z\":14.24},\"rot\":{\"x\":0,\"y\":45,\"z\":0}},\"389792\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3668,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":359.9792}},\"3c5886\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6417,\"z\":15.19},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0168}},\"3c7b42\":{\"lock\":false,\"pos\":{\"x\":-23.6767,\"y\":1.6133,\"z\":-3.8301},\"rot\":{\"x\":359.9832,\"y\":0.0051,\"z\":359.9201}},\"3ddfeb\":{\"lock\":false,\"pos\":{\"x\":-16.6394,\"y\":1.3546,\"z\":-86.0186},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"3f60eb\":{\"lock\":false,\"pos\":{\"x\":-19.2948,\"y\":1.3714,\"z\":-65.5815},\"rot\":{\"x\":0.0208,\"y\":269.9986,\"z\":0.0168}},\"41bfc7\":{\"lock\":false,\"pos\":{\"x\":-16.6532,\"y\":1.3615,\"z\":-62.4536},\"rot\":{\"x\":0.0211,\"y\":269.0246,\"z\":0.0164}},\"43239b\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6394,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"44d1ab\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.355,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0322,\"z\":0.0168}},\"4ad11b\":{\"lock\":false,\"pos\":{\"x\":-16.6373,\"y\":1.3569,\"z\":-78.1785},\"rot\":{\"x\":0.0209,\"y\":269.8461,\"z\":0.0167}},\"4d3ac8\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.2757,\"z\":-53.4369},\"rot\":{\"x\":359.9792,\"y\":90.0003,\"z\":359.9832}},\"4e809f\":{\"lock\":false,\"pos\":{\"x\":-22.617,\"y\":1.3133,\"z\":-61.2414},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"52127f\":{\"lock\":false,\"pos\":{\"x\":-2.7248,\"y\":1.599,\"z\":0.3733},\"rot\":{\"x\":359.9197,\"y\":269.9999,\"z\":0.0168}},\"543164\":{\"lock\":false,\"pos\":{\"x\":-16.6421,\"y\":1.3592,\"z\":-70.2847},\"rot\":{\"x\":0.0209,\"y\":269.8676,\"z\":0.0167}},\"55012a\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6372,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":180.0168}},\"554be6\":{\"lock\":false,\"pos\":{\"x\":-30.2244,\"y\":1.6247,\"z\":3.8599},\"rot\":{\"x\":359.9832,\"y\":0.0071,\"z\":359.92}},\"55e98a\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"565f15\":{\"lock\":false,\"pos\":{\"x\":-22.6158,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"5b38c6\":{\"lock\":false,\"pos\":{\"x\":-26.9136,\"y\":1.6179,\"z\":-3.626},\"rot\":{\"x\":359.9201,\"y\":270.0271,\"z\":0.0168}},\"5d16e3\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3619,\"z\":-61.231},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"6330da\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3645,\"z\":-52.152},\"rot\":{\"x\":0.0208,\"y\":270.0314,\"z\":0.0168}},\"646860\":{\"lock\":false,\"pos\":{\"x\":-10.3191,\"y\":1.0818,\"z\":87.1778},\"rot\":{\"x\":359.9792,\"y\":89.9741,\"z\":359.9832}},\"6bd479\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3576,\"z\":-75.7054},\"rot\":{\"x\":0.0208,\"y\":270.0208,\"z\":0.0168}},\"6e30b0\":{\"lock\":false,\"pos\":{\"x\":-10.4363,\"y\":1.0818,\"z\":87.5054},\"rot\":{\"x\":359.9792,\"y\":89.9739,\"z\":359.9832}},\"7234af\":{\"lock\":false,\"pos\":{\"x\":-25.1063,\"y\":1.6197,\"z\":11.1563},\"rot\":{\"x\":0.0683,\"y\":135.1794,\"z\":0.0448}},\"72caa1\":{\"lock\":false,\"pos\":{\"x\":-16.6392,\"y\":1.3606,\"z\":-65.5811},\"rot\":{\"x\":0.0208,\"y\":269.9983,\"z\":0.0168}},\"75298f\":{\"lock\":false,\"pos\":{\"x\":-3.956,\"y\":1.5975,\"z\":-10.4412},\"rot\":{\"x\":359.9197,\"y\":270.025,\"z\":0.0168}},\"779aa6\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.3549,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0096,\"z\":0.0168}},\"7929dd\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6303,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"7af9ff\":{\"lock\":false,\"pos\":{\"x\":-26.2999,\"y\":1.2688,\"z\":-76.9454},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"7f7566\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":180.0001,\"z\":359.9792}},\"825d74\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6202,\"z\":-11.51},\"rot\":{\"x\":0.0169,\"y\":179.9742,\"z\":0.0799}},\"848191\":{\"lock\":false,\"pos\":{\"x\":-27.2223,\"y\":1.6194,\"z\":0.1067},\"rot\":{\"x\":0.0799,\"y\":89.9749,\"z\":359.9831}},\"84a141\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3576,\"z\":-75.7054},\"rot\":{\"x\":0.0208,\"y\":270.0334,\"z\":0.0168}},\"8551e1\":{\"lock\":false,\"pos\":{\"x\":-3.956,\"y\":1.5975,\"z\":-10.4412},\"rot\":{\"x\":359.9197,\"y\":270.0032,\"z\":0.0168}},\"855920\":{\"lock\":false,\"pos\":{\"x\":-23.7787,\"y\":1.6157,\"z\":3.6187},\"rot\":{\"x\":0.0166,\"y\":180.1407,\"z\":0.08}},\"875dca\":{\"lock\":false,\"pos\":{\"x\":-16.6336,\"y\":1.3569,\"z\":-78.1716},\"rot\":{\"x\":0.0218,\"y\":266.6161,\"z\":0.0155}},\"888fcc\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3657,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0035,\"z\":0.0168}},\"8b0a9e\":{\"lock\":false,\"pos\":{\"x\":-16.639,\"y\":1.361,\"z\":-64.3414},\"rot\":{\"x\":0.0208,\"y\":269.9907,\"z\":0.0168}},\"8e8dcf\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":359.9792}},\"8f57db\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3133,\"z\":-61.2414},\"rot\":{\"x\":0.0168,\"y\":179.9999,\"z\":359.9792}},\"90cfdb\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3554,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":270.0007,\"z\":0.0168}},\"92c727\":{\"lock\":false,\"pos\":{\"x\":-26.3001,\"y\":1.2734,\"z\":-61.241},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}},\"92cda8\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0209,\"y\":269.6944,\"z\":0.0167}},\"969654\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4338},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"972bf0\":{\"lock\":false,\"pos\":{\"x\":-10.4852,\"y\":1.0804,\"z\":82.7727},\"rot\":{\"x\":359.9792,\"y\":89.9804,\"z\":359.9832}},\"97e7a1\":{\"lock\":false,\"pos\":{\"x\":-2.7248,\"y\":1.6208,\"z\":0.3733},\"rot\":{\"x\":359.9197,\"y\":270.0001,\"z\":0.0168}},\"9cd95a\":{\"lock\":false,\"pos\":{\"x\":-16.6335,\"y\":1.3615,\"z\":-62.4568},\"rot\":{\"x\":0.0218,\"y\":266.5908,\"z\":0.0155}},\"9e80b9\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3638,\"z\":-54.6207},\"rot\":{\"x\":0.0208,\"y\":269.9772,\"z\":0.0168}},\"a01d1c\":{\"lock\":false,\"pos\":{\"x\":-10.4852,\"y\":1.0791,\"z\":78.1727},\"rot\":{\"x\":359.9792,\"y\":89.9802,\"z\":359.9832}},\"a09177\":{\"lock\":false,\"pos\":{\"x\":-2.6886,\"y\":1.6191,\"z\":-5.0469},\"rot\":{\"x\":359.9197,\"y\":269.9995,\"z\":0.0168}},\"a13075\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3064,\"z\":-84.8185},\"rot\":{\"x\":0.0208,\"y\":269.9926,\"z\":0.0168}},\"a6ca48\":{\"lock\":false,\"pos\":{\"x\":-26.2999,\"y\":1.2711,\"z\":-69.0603},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"a7606b\":{\"lock\":false,\"pos\":{\"x\":-16.6466,\"y\":1.3592,\"z\":-70.295},\"rot\":{\"x\":0.0218,\"y\":266.5696,\"z\":0.0155}},\"a95b8c\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3064,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":179.9999,\"z\":359.9792}},\"aaeac7\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.36,\"z\":-67.8206},\"rot\":{\"x\":0.0208,\"y\":270.0258,\"z\":0.0168}},\"ab52dc\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.2665,\"z\":-84.818},\"rot\":{\"x\":359.9792,\"y\":90.0128,\"z\":359.9832}},\"b675fd\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3596,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"ba989d\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6281,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"bb1f89\":{\"lock\":false,\"pos\":{\"x\":-25.0849,\"y\":1.6131,\"z\":-11.4046},\"rot\":{\"x\":359.9554,\"y\":224.9996,\"z\":0.0684}},\"bde4a6\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3641,\"z\":-53.3904},\"rot\":{\"x\":0.0208,\"y\":269.9887,\"z\":0.0168}},\"be9e91\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2711,\"z\":-69.0606},\"rot\":{\"x\":359.9792,\"y\":89.9998,\"z\":359.9832}},\"c0e7b1\":{\"lock\":false,\"pos\":{\"x\":-16.6414,\"y\":1.3546,\"z\":-86.0129},\"rot\":{\"x\":0.0218,\"y\":266.5644,\"z\":0.0155}},\"c1aa7a\":{\"lock\":false,\"pos\":{\"x\":-26.2995,\"y\":1.2665,\"z\":-84.8178},\"rot\":{\"x\":359.9792,\"y\":90.0001,\"z\":359.9832}},\"c2ef97\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4381},\"rot\":{\"x\":0.0168,\"y\":179.9999,\"z\":359.9792}},\"c72f87\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":269.9951,\"z\":0.0168}},\"cbce2b\":{\"lock\":false,\"pos\":{\"x\":0.1527,\"y\":1.6285,\"z\":-9.2222},\"rot\":{\"x\":359.9197,\"y\":270.0159,\"z\":0.0168}},\"ccf9a8\":{\"lock\":false,\"pos\":{\"x\":-27.2589,\"y\":1.6173,\"z\":-7.4508},\"rot\":{\"x\":0.0799,\"y\":90.0004,\"z\":359.9831}},\"ce1703\":{\"lock\":false,\"pos\":{\"x\":-19.2958,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":269.9961,\"z\":0.0168}},\"d17c37\":{\"lock\":false,\"pos\":{\"x\":-26.9457,\"y\":1.6213,\"z\":7.5712},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":0.0169}},\"d3d270\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0207,\"z\":0.0168}},\"d4082a\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9962,\"z\":0.0168}},\"d6fdbf\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3619,\"z\":-61.231},\"rot\":{\"x\":0.0208,\"y\":270.024,\"z\":0.0168}},\"d70f9e\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.2757,\"z\":-53.4368},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}},\"d7ba40\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6225,\"z\":-3.83},\"rot\":{\"x\":359.9832,\"y\":0.0105,\"z\":359.92}},\"d8e1ad\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3569,\"z\":-78.1756},\"rot\":{\"x\":0.0208,\"y\":270.0207,\"z\":0.0168}},\"d9f2c7\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3554,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":269.9983,\"z\":0.0168}},\"d9fb86\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"dcceb8\":{\"lock\":false,\"pos\":{\"x\":12.2502,\"y\":1.4727,\"z\":27.9861},\"rot\":{\"x\":359.9201,\"y\":270.0878,\"z\":0.0168}},\"de216f\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3622,\"z\":-60.001},\"rot\":{\"x\":0.0208,\"y\":270.0149,\"z\":0.0168}},\"e04b48\":{\"lock\":false,\"pos\":{\"x\":-16.6404,\"y\":1.3576,\"z\":-75.7053},\"rot\":{\"x\":0.0208,\"y\":270.0152,\"z\":0.0168}},\"e1786c\":{\"lock\":false,\"pos\":{\"x\":-16.6394,\"y\":1.3546,\"z\":-86.0186},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"e86318\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6349,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":180.0168}},\"f0d3cc\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3642,\"z\":-53.3904},\"rot\":{\"x\":0.0208,\"y\":270.0119,\"z\":0.0168}},\"f30100\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6372,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"f48116\":{\"lock\":false,\"pos\":{\"x\":12.2503,\"y\":1.4703,\"z\":19.9865},\"rot\":{\"x\":359.9201,\"y\":270.0402,\"z\":0.0168}},\"f69811\":{\"lock\":false,\"pos\":{\"x\":1.6964,\"y\":1.5583,\"z\":14.2788},\"rot\":{\"x\":359.9551,\"y\":224.998,\"z\":0.0687}},\"f7a65d\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3645,\"z\":-52.152},\"rot\":{\"x\":0.0208,\"y\":270.0303,\"z\":0.0168}},\"f7bef5\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":270.0453,\"z\":0.0168}},\"f94187\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3622,\"z\":-60.001},\"rot\":{\"x\":0.0208,\"y\":270.0422,\"z\":0.0168}},\"fc1612\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0098,\"z\":0.0168}},\"fc27ff\":{\"lock\":false,\"pos\":{\"x\":-26.2991,\"y\":1.2721,\"z\":-65.5814},\"rot\":{\"x\":359.9792,\"y\":90.0019,\"z\":359.9832}},\"fc34bd\":{\"lock\":false,\"pos\":{\"x\":-10.4561,\"y\":1.0831,\"z\":91.8885},\"rot\":{\"x\":359.9792,\"y\":89.9725,\"z\":359.9832}},\"fc63ca\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.368,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"ffa2b2\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.355,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":269.9994,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "f48116", "Name": "Custom_Model_Bag", "Transform": { "posX": 12.2503023, "posY": 1.47031641, "posZ": 19.9865055, "rotX": 359.9201, "rotY": 270.0402, "rotZ": 0.0168170426, "scaleX": 2.21, "scaleY": 0.46, "scaleZ": 2.42 }, "Nickname": "2: Resistance is Futile", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", "DiffuseURL": "https://i.imgur.com/FIIkB8x.png", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 6, "CustomShader": { "SpecularColor": { "r": 1.0, "g": 1.0, "b": 1.0 }, "SpecularIntensity": 0.0, "SpecularSharpness": 2.0, "FresnelStrength": 0.0 }, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "-- Utility memory bag by Directsun\r\n-- Version 2.5.2\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor + 2\r\n objPos.z = objPos.z * globalScaleFactor * 0.9\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=500, width=500,\r\n color=color,\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={-0.6,0.1,-2.1}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={-0.6,0.3,-2.5}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0.6,0.3,-2.1}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0.6,0.3,-2.9}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0.6,0.3,-2.5}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-0.6,0.3,-2.9}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj, move)\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n--- self.createButton({\r\n--- label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n--- position={-2.8,0.3,0}, rotation={0,0,0}, height=350, width=800,\r\n--- font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n--- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n\tlocal angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n\tlocal z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"0151be\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.627,\"z\":11.4601},\"rot\":{\"x\":0.0156,\"y\":180.9005,\"z\":0.0802}},\"231320\":{\"lock\":false,\"pos\":{\"x\":-3.9272,\"y\":1.7973,\"z\":5.7576},\"rot\":{\"x\":359.9197,\"y\":270.0057,\"z\":180.0168}},\"28eca9\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6327,\"z\":-15.28},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"2bf3e1\":{\"lock\":false,\"pos\":{\"x\":-2.6887,\"y\":1.6191,\"z\":-5.0485},\"rot\":{\"x\":359.9197,\"y\":270.0182,\"z\":0.0168}},\"31fffc\":{\"lock\":false,\"pos\":{\"x\":-23.6766,\"y\":1.6258,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"3c5886\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6417,\"z\":15.19},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0168}},\"3c7b42\":{\"lock\":false,\"pos\":{\"x\":-23.6767,\"y\":1.6133,\"z\":-3.8301},\"rot\":{\"x\":359.9832,\"y\":0.0051,\"z\":359.9201}},\"43239b\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6394,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"554be6\":{\"lock\":false,\"pos\":{\"x\":-30.2244,\"y\":1.6247,\"z\":3.8599},\"rot\":{\"x\":359.9832,\"y\":0.0071,\"z\":359.92}},\"5b38c6\":{\"lock\":false,\"pos\":{\"x\":-26.9136,\"y\":1.6179,\"z\":-3.626},\"rot\":{\"x\":359.9201,\"y\":270.0271,\"z\":0.0168}},\"7234af\":{\"lock\":false,\"pos\":{\"x\":-25.1063,\"y\":1.6197,\"z\":11.1563},\"rot\":{\"x\":0.0683,\"y\":135.1794,\"z\":0.0448}},\"75298f\":{\"lock\":false,\"pos\":{\"x\":-3.956,\"y\":1.5975,\"z\":-10.4412},\"rot\":{\"x\":359.9197,\"y\":270.025,\"z\":0.0168}},\"7929dd\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6303,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"825d74\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6202,\"z\":-11.51},\"rot\":{\"x\":0.0169,\"y\":179.9742,\"z\":0.0799}},\"848191\":{\"lock\":false,\"pos\":{\"x\":-27.2223,\"y\":1.6194,\"z\":0.1067},\"rot\":{\"x\":0.0799,\"y\":89.9749,\"z\":359.9831}},\"855920\":{\"lock\":false,\"pos\":{\"x\":-23.7787,\"y\":1.6157,\"z\":3.6187},\"rot\":{\"x\":0.0166,\"y\":180.1407,\"z\":0.08}},\"97e7a1\":{\"lock\":false,\"pos\":{\"x\":-2.7248,\"y\":1.6208,\"z\":0.3733},\"rot\":{\"x\":359.9197,\"y\":270.0001,\"z\":0.0168}},\"ba989d\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6281,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"bb1f89\":{\"lock\":false,\"pos\":{\"x\":-25.0849,\"y\":1.6131,\"z\":-11.4046},\"rot\":{\"x\":359.9554,\"y\":224.9996,\"z\":0.0684}},\"ccf9a8\":{\"lock\":false,\"pos\":{\"x\":-27.2589,\"y\":1.6173,\"z\":-7.4508},\"rot\":{\"x\":0.0799,\"y\":90.0004,\"z\":359.9831}},\"d17c37\":{\"lock\":false,\"pos\":{\"x\":-26.9457,\"y\":1.6213,\"z\":7.5712},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":0.0169}},\"d7ba40\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6225,\"z\":-3.83},\"rot\":{\"x\":359.9832,\"y\":0.0105,\"z\":359.92}},\"e86318\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6349,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":180.0168}},\"f30100\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6372,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":180.0168}},\"f69811\":{\"lock\":false,\"pos\":{\"x\":1.6964,\"y\":1.5583,\"z\":14.2788},\"rot\":{\"x\":359.9551,\"y\":224.998,\"z\":0.0687}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "0151be", "Name": "Custom_Tile", "Transform": { "posX": -30.2243, "posY": 1.62696886, "posZ": 11.4601021, "rotX": 0.0155812474, "rotY": 180.9005, "rotZ": 0.08019009, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "231320", "Name": "Deck", "Transform": { "posX": -3.927227, "posY": 1.79733253, "posZ": 5.75760651, "rotX": 359.919739, "rotY": 270.005737, "rotZ": 180.016815, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 564900, 564900, 565000, 560800, 565500, 565500, 564400, 564400, 565500, 561300, 564100, 540200, 564100, 564200, 561200, 564600, 564700, 564800, 564500, 564500, 564200, 564300, 561200, 561200, 565100, 565200, 565200, 565200, 565300, 565300, 564900, 564300, 560800, 565400, 565400, 565600, 565600, 560800, 565000 ], "CustomDeck": { "5649": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072206339/C95B94B2313E0D9A279CAFB8027F574E0CB80B27/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5650": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072228086/7896788A03A104199ED3AAC7E29094F0F355F44C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5655": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072290613/CD5817E1EFE3532848F6EB8A0EFF1704DBB747DE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5644": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229217842/2A757F68DC8ACB98D7625238AC03529EA58D8C86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5613": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069942489/CB6DAEF1C6A5E848EBFE723FE9A834A2E8A94582/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5641": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216595/84195802FDBE84707421AC798185ECFFB1056958/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5402": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283087742234926/118FC01E906D188F40355C1FDA90442E167F7ADC/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5642": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229215495/47313373B627194D02F4E951DCA91828E58A24E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5646": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072088689/0A703205956CB1EFB53C8D75EB895EDE371CEF28/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5647": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072099649/51B9B5EC0FE7730F8ACC2D524182359AAC68E47E/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5648": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072121365/D1E298D0E05613BB4A157B797DB5B37BC4D88B0D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5645": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072072728/E0CB1AE43457CD7C27601992B273DA5405F83393/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5643": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216286/D9810FFB8E628686666F722D853EB5AE1AB1D502/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5651": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072238885/96B7E82AA6CF36AC8E034C1BE03E0DACBCA8DDFA/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5652": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072251065/35D01E3C46DA1F581C9B8AA135CD175CD6155FE3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5653": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072271771/0AE57D350FDF6C86AE84751640A1B54065458B57/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5654": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352067609500/883E2F71E5C41CF431690B3C5031D07912134F8D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5656": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072305181/61CD2F9733232E493E2C111F99B2E4EFCE8B032F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "6105ad", "Name": "CardCustom", "Transform": { "posX": -3.72739458, "posY": 1.62297118, "posZ": 8.886109, "rotX": 359.917175, "rotY": 269.986969, "rotZ": 0.436542779, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Swarm", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564900, "SidewaysCard": false, "CustomDeck": { "5649": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072206339/C95B94B2313E0D9A279CAFB8027F574E0CB80B27/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4bc4b3", "Name": "CardCustom", "Transform": { "posX": -3.691763, "posY": 1.75232518, "posZ": 9.05882549, "rotX": 0.0297866687, "rotY": 269.935577, "rotZ": 4.88295841, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Swarm", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564900, "SidewaysCard": false, "CustomDeck": { "5649": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072206339/C95B94B2313E0D9A279CAFB8027F574E0CB80B27/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "905761", "Name": "CardCustom", "Transform": { "posX": -3.53912377, "posY": 2.06807, "posZ": 9.516599, "rotX": 357.5045, "rotY": 270.043854, "rotZ": 354.602417, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Abduction", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565000, "SidewaysCard": false, "CustomDeck": { "5650": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072228086/7896788A03A104199ED3AAC7E29094F0F355F44C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "43e803", "Name": "CardCustom", "Transform": { "posX": -3.29568458, "posY": 1.662234, "posZ": 10.1947584, "rotX": 359.855652, "rotY": 268.8159, "rotZ": 356.989075, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Fear Itself", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560800, "SidewaysCard": false, "CustomDeck": { "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "167a9d", "Name": "CardCustom", "Transform": { "posX": -3.417237, "posY": 1.60412657, "posZ": 14.5590239, "rotX": 359.9198, "rotY": 270.053284, "rotZ": 0.0146810412, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Evils", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565500, "SidewaysCard": false, "CustomDeck": { "5655": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072290613/CD5817E1EFE3532848F6EB8A0EFF1704DBB747DE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "41ebb4", "Name": "CardCustom", "Transform": { "posX": -3.431736, "posY": 1.71876073, "posZ": 11.6422405, "rotX": 359.708282, "rotY": 269.995056, "rotZ": 357.369476, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Evils", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565500, "SidewaysCard": false, "CustomDeck": { "5655": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072290613/CD5817E1EFE3532848F6EB8A0EFF1704DBB747DE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "609759", "Name": "CardCustom", "Transform": { "posX": -3.40614271, "posY": 1.67238176, "posZ": 13.5506191, "rotX": 359.894867, "rotY": 269.485352, "rotZ": 357.8257, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Struggle)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564400, "SidewaysCard": false, "CustomDeck": { "5644": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229217842/2A757F68DC8ACB98D7625238AC03529EA58D8C86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e92441", "Name": "CardCustom", "Transform": { "posX": -3.84814978, "posY": 1.65582037, "posZ": 10.3710423, "rotX": 359.9184, "rotY": 269.93158, "rotZ": 357.281982, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Struggle)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564400, "SidewaysCard": false, "CustomDeck": { "5644": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229217842/2A757F68DC8ACB98D7625238AC03529EA58D8C86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3600ca", "Name": "CardCustom", "Transform": { "posX": -3.82329082, "posY": 1.69590569, "posZ": 11.1067352, "rotX": 359.923, "rotY": 269.983459, "rotZ": 357.246124, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Evils", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565500, "SidewaysCard": false, "CustomDeck": { "5655": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072290613/CD5817E1EFE3532848F6EB8A0EFF1704DBB747DE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3c22bf", "Name": "CardCustom", "Transform": { "posX": 17.0199585, "posY": 1.29453766, "posZ": 90.53848, "rotX": 0.0208065081, "rotY": 270.005219, "rotZ": 0.0167722814, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Memories", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561300, "SidewaysCard": false, "CustomDeck": { "5613": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069942489/CB6DAEF1C6A5E848EBFE723FE9A834A2E8A94582/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "46dd89", "Name": "CardCustom", "Transform": { "posX": 13.5085888, "posY": 1.29326153, "posZ": 90.53541, "rotX": 0.020813467, "rotY": 269.983856, "rotZ": 0.0167663563, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Conundrum)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564100, "SidewaysCard": false, "CustomDeck": { "5641": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216595/84195802FDBE84707421AC798185ECFFB1056958/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1e5b78", "Name": "CardCustom", "Transform": { "posX": 17.0366421, "posY": 1.29381609, "posZ": 88.0527649, "rotX": 0.0208083242, "rotY": 269.999451, "rotZ": 0.0167702585, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Chained by the Past", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 540200, "SidewaysCard": false, "CustomDeck": { "5402": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283087742234926/118FC01E906D188F40355C1FDA90442E167F7ADC/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "cb663d", "Name": "CardCustom", "Transform": { "posX": 13.4889278, "posY": 1.29249227, "posZ": 87.93184, "rotX": 0.0208127014, "rotY": 269.9839, "rotZ": 0.016764069, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Conundrum)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564100, "SidewaysCard": false, "CustomDeck": { "5641": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216595/84195802FDBE84707421AC798185ECFFB1056958/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "297975", "Name": "CardCustom", "Transform": { "posX": 13.5648069, "posY": 1.29182088, "posZ": 85.54404, "rotX": 0.02080259, "rotY": 270.0197, "rotZ": 0.01677827, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Fear)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564200, "SidewaysCard": false, "CustomDeck": { "5642": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229215495/47313373B627194D02F4E951DCA91828E58A24E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d909f8", "Name": "CardCustom", "Transform": { "posX": 16.9867172, "posY": 1.29308748, "posZ": 85.6254959, "rotX": 0.0208082441, "rotY": 270.000977, "rotZ": 0.0167714227, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Courage Fails", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561200, "SidewaysCard": false, "CustomDeck": { "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4f1dbc", "Name": "CardCustom", "Transform": { "posX": 10.189064, "posY": 1.28883994, "posZ": 90.5920258, "rotX": 0.0208064988, "rotY": 270.005371, "rotZ": 0.01677224, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Invasion", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564600, "SidewaysCard": false, "CustomDeck": { "5646": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072088689/0A703205956CB1EFB53C8D75EB895EDE371CEF28/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "72b6e2", "Name": "CardCustom", "Transform": { "posX": 10.2361832, "posY": 1.2880851, "posZ": 87.9551, "rotX": 0.0208079983, "rotY": 270.0003, "rotZ": 0.0167704225, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Aggressor", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564700, "SidewaysCard": false, "CustomDeck": { "5647": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072099649/51B9B5EC0FE7730F8ACC2D524182359AAC68E47E/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1f9c32", "Name": "CardCustom", "Transform": { "posX": 10.2513247, "posY": 1.28734779, "posZ": 85.41715, "rotX": 0.0208068248, "rotY": 270.004028, "rotZ": 0.0167717673, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Defender", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564800, "SidewaysCard": false, "CustomDeck": { "5648": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072121365/D1E298D0E05613BB4A157B797DB5B37BC4D88B0D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9819b5", "Name": "CardCustom", "Transform": { "posX": 10.2486076, "posY": 1.286598, "posZ": 82.85902, "rotX": 0.0208023917, "rotY": 270.019165, "rotZ": 0.016777277, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Hunting Mi-Go", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564500, "SidewaysCard": false, "CustomDeck": { "5645": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072072728/E0CB1AE43457CD7C27601992B273DA5405F83393/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "0c079e", "Name": "CardCustom", "Transform": { "posX": 10.2802238, "posY": 1.28591478, "posZ": 80.48581, "rotX": 0.02080227, "rotY": 270.0191, "rotZ": 0.0167773142, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Hunting Mi-Go", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564500, "SidewaysCard": false, "CustomDeck": { "5645": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072072728/E0CB1AE43457CD7C27601992B273DA5405F83393/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "846575", "Name": "CardCustom", "Transform": { "posX": 13.4955425, "posY": 1.29102516, "posZ": 82.91137, "rotX": 0.020802334, "rotY": 270.0197, "rotZ": 0.0167769566, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Fear)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564200, "SidewaysCard": false, "CustomDeck": { "5642": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229215495/47313373B627194D02F4E951DCA91828E58A24E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "90f09c", "Name": "CardCustom", "Transform": { "posX": 13.49228, "posY": 1.29034078, "posZ": 80.57748, "rotX": 0.0208063256, "rotY": 270.007019, "rotZ": 0.0167736039, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Flee)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564300, "SidewaysCard": false, "CustomDeck": { "5643": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216286/D9810FFB8E628686666F722D853EB5AE1AB1D502/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "8ab418", "Name": "CardCustom", "Transform": { "posX": 17.0359077, "posY": 1.29236376, "posZ": 83.09193, "rotX": 0.02080769, "rotY": 270.000977, "rotZ": 0.01677091, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Courage Fails", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561200, "SidewaysCard": false, "CustomDeck": { "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1457cc", "Name": "CardCustom", "Transform": { "posX": 17.0371132, "posY": 1.29163492, "posZ": 80.60073, "rotX": 0.0208076742, "rotY": 270.000977, "rotZ": 0.01677064, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Courage Fails", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561200, "SidewaysCard": false, "CustomDeck": { "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "af4082", "Name": "CardCustom", "Transform": { "posX": 6.79006433, "posY": 1.28761756, "posZ": 90.63321, "rotX": 0.0208036024, "rotY": 270.015717, "rotZ": 0.0167765021, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Alien Machinations", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565100, "SidewaysCard": false, "CustomDeck": { "5651": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072238885/96B7E82AA6CF36AC8E034C1BE03E0DACBCA8DDFA/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e4ec1a", "Name": "CardCustom", "Transform": { "posX": 6.806109, "posY": 1.28685439, "posZ": 88.00607, "rotX": 0.0208037719, "rotY": 270.014954, "rotZ": 0.0167758018, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Close Encounter", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565200, "SidewaysCard": false, "CustomDeck": { "5652": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072251065/35D01E3C46DA1F581C9B8AA135CD175CD6155FE3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "79b2a7", "Name": "CardCustom", "Transform": { "posX": 6.829252, "posY": 1.285397, "posZ": 82.99851, "rotX": 0.0208039414, "rotY": 270.014984, "rotZ": 0.0167759284, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Close Encounter", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565200, "SidewaysCard": false, "CustomDeck": { "5652": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072251065/35D01E3C46DA1F581C9B8AA135CD175CD6155FE3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a0efe0", "Name": "CardCustom", "Transform": { "posX": 6.813473, "posY": 1.286107, "posZ": 85.4437943, "rotX": 0.0208040252, "rotY": 270.014923, "rotZ": 0.016776517, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Close Encounter", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565200, "SidewaysCard": false, "CustomDeck": { "5652": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072251065/35D01E3C46DA1F581C9B8AA135CD175CD6155FE3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "485cd6", "Name": "CardCustom", "Transform": { "posX": 6.819341, "posY": 1.28465974, "posZ": 80.49232, "rotX": 0.0208123513, "rotY": 269.9847, "rotZ": 0.01676496, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Unearthly Experimentation", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565300, "SidewaysCard": false, "CustomDeck": { "5653": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072271771/0AE57D350FDF6C86AE84751640A1B54065458B57/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "fed215", "Name": "CardCustom", "Transform": { "posX": 6.86987162, "posY": 1.28398514, "posZ": 78.1250839, "rotX": 0.0208128411, "rotY": 269.98468, "rotZ": 0.0167644769, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Unearthly Experimentation", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565300, "SidewaysCard": false, "CustomDeck": { "5653": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072271771/0AE57D350FDF6C86AE84751640A1B54065458B57/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "383c5e", "Name": "CardCustom", "Transform": { "posX": 10.3380585, "posY": 1.28525257, "posZ": 78.15218, "rotX": 0.0208036955, "rotY": 270.015564, "rotZ": 0.0167770386, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Swarm", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564900, "SidewaysCard": false, "CustomDeck": { "5649": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072206339/C95B94B2313E0D9A279CAFB8027F574E0CB80B27/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a4a2af", "Name": "CardCustom", "Transform": { "posX": 13.5407667, "posY": 1.28964376, "posZ": 78.13633, "rotX": 0.02080584, "rotY": 270.007019, "rotZ": 0.0167724341, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Flee)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564300, "SidewaysCard": false, "CustomDeck": { "5643": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216286/D9810FFB8E628686666F722D853EB5AE1AB1D502/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1d3f88", "Name": "CardCustom", "Transform": { "posX": 16.9228973, "posY": 1.29086125, "posZ": 78.09906, "rotX": 0.0208074916, "rotY": 270.0022, "rotZ": 0.0167713016, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Fear Itself", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560800, "SidewaysCard": false, "CustomDeck": { "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9c354d", "Name": "CardCustom", "Transform": { "posX": 3.4335413, "posY": 1.2856226, "posZ": 87.98264, "rotX": 0.0208104588, "rotY": 269.993, "rotZ": 0.0167686827, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Unknowable Motives", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565400, "SidewaysCard": false, "CustomDeck": { "5654": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352067609500/883E2F71E5C41CF431690B3C5031D07912134F8D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6994a5", "Name": "CardCustom", "Transform": { "posX": 3.408963, "posY": 1.28636837, "posZ": 90.56104, "rotX": 0.0208105221, "rotY": 269.992981, "rotZ": 0.0167688187, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Unknowable Motives", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565400, "SidewaysCard": false, "CustomDeck": { "5654": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352067609500/883E2F71E5C41CF431690B3C5031D07912134F8D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7b403c", "Name": "CardCustom", "Transform": { "posX": 3.44184232, "posY": 1.28488624, "posZ": 85.4565659, "rotX": 0.0208047219, "rotY": 270.0119, "rotZ": 0.0167747252, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Pinned Down", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565600, "SidewaysCard": false, "CustomDeck": { "5656": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072305181/61CD2F9733232E493E2C111F99B2E4EFCE8B032F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3f269f", "Name": "CardCustom", "Transform": { "posX": 3.418608, "posY": 1.28415906, "posZ": 83.00111, "rotX": 0.0208044741, "rotY": 270.011932, "rotZ": 0.0167745538, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Pinned Down", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565600, "SidewaysCard": false, "CustomDeck": { "5656": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072305181/61CD2F9733232E493E2C111F99B2E4EFCE8B032F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "ca9673", "Name": "CardCustom", "Transform": { "posX": 16.96289, "posY": 1.29020953, "posZ": 75.8231, "rotX": 0.02080872, "rotY": 269.997559, "rotZ": 0.0167696439, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Fear Itself", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560800, "SidewaysCard": false, "CustomDeck": { "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9dbd4f", "Name": "CardCustom", "Transform": { "posX": 6.88341, "posY": 1.283279, "posZ": 75.69508, "rotX": 0.0208105538, "rotY": 269.991943, "rotZ": 0.0167678762, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Abduction", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565000, "SidewaysCard": false, "CustomDeck": { "5650": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072228086/7896788A03A104199ED3AAC7E29094F0F355F44C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "28eca9", "Name": "CardCustom", "Transform": { "posX": -30.2243, "posY": 1.63271511, "posZ": -15.28, "rotX": 359.9201, "rotY": 270.0, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Brain Cylinder Containment", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 567200, "SidewaysCard": false, "CustomDeck": { "5672": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288867668/D5B8998D33D560A1BFB1F8EF8CAD4BAEBD89DA64/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288867966/0B41E42FC781A07EDBE648B966CAF727D4C546FB/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "2bf3e1", "Name": "Deck", "Transform": { "posX": -2.68872714, "posY": 1.6191169, "posZ": -5.048496, "rotX": 359.919739, "rotY": 270.0182, "rotZ": 0.0168126114, "scaleX": 0.7133587, "scaleY": 1.0, "scaleZ": 0.7133587 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 566000, 565800, 566200 ], "CustomDeck": { "5660": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072632319/B5A504B459362C0EB57A0DE43E39B5F15EB721F0/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072647240/3B0F24BDA64899BBE32C24574ADD1B713C04A923/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5658": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072631164/0B597F38927097366E6381BEB75B2609A6C2133F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072631426/599CD0647D8ABAA32CBC9A18F1AB4334ED740C84/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5662": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072630291/58127183F30AD107269E76CA06F751CB2BDEAD74/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072809444/9B724B9CBE973A320DBBD3F50AF26AC218870F00/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "2e490a", "Name": "CardCustom", "Transform": { "posX": 10.2716751, "posY": 1.4767586, "posZ": -13.669919, "rotX": 359.9203, "rotY": 270.018066, "rotZ": 0.01634182, "scaleX": 0.7133587, "scaleY": 1.0, "scaleZ": 0.7133587 }, "Nickname": "Act 3a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566000, "SidewaysCard": false, "CustomDeck": { "5660": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072632319/B5A504B459362C0EB57A0DE43E39B5F15EB721F0/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072647240/3B0F24BDA64899BBE32C24574ADD1B713C04A923/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "8a5e9b", "Name": "CardCustom", "Transform": { "posX": 10.2269258, "posY": 1.51891828, "posZ": -13.4542112, "rotX": 359.9173, "rotY": 270.0038, "rotZ": 0.015206716, "scaleX": 0.7133587, "scaleY": 1.0, "scaleZ": 0.7133587 }, "Nickname": "Act 2a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565800, "SidewaysCard": false, "CustomDeck": { "5658": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072631164/0B597F38927097366E6381BEB75B2609A6C2133F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072631426/599CD0647D8ABAA32CBC9A18F1AB4334ED740C84/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1c5fec", "Name": "CardCustom", "Transform": { "posX": -2.68854523, "posY": 1.67737138, "posZ": -5.04852962, "rotX": 359.935577, "rotY": 270.0, "rotZ": 0.0139463991, "scaleX": 0.7133587, "scaleY": 1.0, "scaleZ": 0.7133587 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566200, "SidewaysCard": false, "CustomDeck": { "5662": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072630291/58127183F30AD107269E76CA06F751CB2BDEAD74/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072809444/9B724B9CBE973A320DBBD3F50AF26AC218870F00/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "31fffc", "Name": "CardCustom", "Transform": { "posX": -23.6766, "posY": 1.62581253, "posZ": -7.700001, "rotX": 359.9201, "rotY": 270.0, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Operation Theater", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 567500, "SidewaysCard": false, "CustomDeck": { "5675": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288870228/531662C7DE418976EA052C1A2D415A319574AE1B/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288870450/8138691C9DBE245E05469EF00D39A7F2818217A2/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3c5886", "Name": "CardCustom", "Transform": { "posX": -30.2243, "posY": 1.64167, "posZ": 15.19, "rotX": 359.9201, "rotY": 269.999878, "rotZ": 0.01683978, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Alien Bilge", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 566800, "SidewaysCard": false, "CustomDeck": { "5668": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288859854/1CEF62D64C5A7013D42130F670FE87FFA5C5BA86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288859678/9DB40E66A12734D0678F94C46E96FFA1DF9C53C3/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3c7b42", "Name": "Custom_Tile", "Transform": { "posX": -23.6767, "posY": 1.61334538, "posZ": -3.8301, "rotX": 359.983154, "rotY": 0.005071008, "rotZ": 359.920074, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "43239b", "Name": "CardCustom", "Transform": { "posX": -30.2242, "posY": 1.6394304, "posZ": 7.57, "rotX": 359.9201, "rotY": 270.0, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Engine Room", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 566900, "SidewaysCard": false, "CustomDeck": { "5669": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288864414/F6D6A22B63935330C0EA5499C4A9F41272E98322/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288864721/87A84A0E59250A87793C5667160B59E75A88F66B/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "554be6", "Name": "Custom_Tile", "Transform": { "posX": -30.2244, "posY": 1.62473583, "posZ": 3.85990047, "rotX": 359.9832, "rotY": 0.00712431269, "rotZ": 359.920044, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -26.9136, "posY": 1.61791873, "posZ": -3.6260004, "rotX": 359.9201, "rotY": 270.0271, "rotZ": 0.0168073, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "1": { "GUID": "b529fe", "Name": "Custom_Tile", "Transform": { "posX": -26.82627, "posY": 1.61769509, "posZ": -3.97412515, "rotX": 359.9832, "rotY": 0.0102521321, "rotZ": 359.920044, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "7234af", "Name": "Custom_Tile", "Transform": { "posX": -25.1063, "posY": 1.61974287, "posZ": 11.1563, "rotX": 0.06826835, "rotY": 135.179367, "rotZ": 0.0448005535, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "75298f", "Name": "CardCustom", "Transform": { "posX": -3.95600057, "posY": 1.59753942, "posZ": -10.4412012, "rotX": 359.919739, "rotY": 270.025, "rotZ": 0.016802188, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566700, "SidewaysCard": false, "CustomDeck": { "5667": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352073002754/322C9E60179C0E72567C9B54CFB0C316B48A2439/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352073002985/3FBA050DD2B95178653FAF0893AE5FB9478A58AD/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7929dd", "Name": "CardCustom", "Transform": { "posX": -23.6765, "posY": 1.6303, "posZ": 7.570001, "rotX": 359.9201, "rotY": 270.0, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Control Room", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 567300, "SidewaysCard": false, "CustomDeck": { "5673": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288868511/69FB7FB4495A76DF69F2EA3DA5D48A214525F007/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288868750/8D23CAB26D296224F4EC1B1D184B0E9E390B47E7/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "825d74", "Name": "Custom_Tile", "Transform": { "posX": -30.2243, "posY": 1.62021828, "posZ": -11.5100012, "rotX": 0.0168751683, "rotY": 179.974228, "rotZ": 0.079931505, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "848191", "Name": "Custom_Tile", "Transform": { "posX": -27.2223, "posY": 1.61944628, "posZ": 0.1066997, "rotX": 0.07988695, "rotY": 89.9749146, "rotZ": 359.9831, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "855920", "Name": "Custom_Tile", "Transform": { "posX": -23.7787, "posY": 1.6156764, "posZ": 3.6187, "rotX": 0.0166429467, "rotY": 180.14064, "rotZ": 0.07998113, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": false, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "97e7a1", "Name": "Deck", "Transform": { "posX": -2.72480559, "posY": 1.62076068, "posZ": 0.3733007, "rotX": 359.919739, "rotY": 270.000061, "rotZ": 0.0168374814, "scaleX": 0.7152412, "scaleY": 1.0, "scaleZ": 0.7152412 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 566500, 566400, 566300 ], "CustomDeck": { "5665": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072966055/03534921BD8203B32FB5CFBA3F28695BADEA3492/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072631426/599CD0647D8ABAA32CBC9A18F1AB4334ED740C84/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5664": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072953727/B8871F2242503C7367124756A6BAF68B41E4BBA3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072954076/124C892D8BA263962546D20C0B3343C280DD695A/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5663": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072952833/F011785EA40DE4A303B6966D2666047D01E25211/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072659068/C17D3202ED7452D58840650C4A1E23A1117A1B10/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "4bcff6", "Name": "CardCustom", "Transform": { "posX": 12.7799587, "posY": 1.47734308, "posZ": 0.209014639, "rotX": 359.920349, "rotY": 270.000153, "rotZ": 0.01610919, "scaleX": 0.7152412, "scaleY": 1.0, "scaleZ": 0.7152412 }, "Nickname": "Agenda 3a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566500, "SidewaysCard": false, "CustomDeck": { "5665": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072966055/03534921BD8203B32FB5CFBA3F28695BADEA3492/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072631426/599CD0647D8ABAA32CBC9A18F1AB4334ED740C84/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3ddd8f", "Name": "CardCustom", "Transform": { "posX": 12.8402271, "posY": 1.51906931, "posZ": 0.08513583, "rotX": 359.923431, "rotY": 269.9945, "rotZ": 0.0135971131, "scaleX": 0.7152412, "scaleY": 1.0, "scaleZ": 0.7152412 }, "Nickname": "Agenda 2a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566400, "SidewaysCard": false, "CustomDeck": { "5664": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072953727/B8871F2242503C7367124756A6BAF68B41E4BBA3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072954076/124C892D8BA263962546D20C0B3343C280DD695A/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "38bfaf", "Name": "CardCustom", "Transform": { "posX": 13.1444559, "posY": 1.55269885, "posZ": -0.505694747, "rotX": 359.918732, "rotY": 269.999237, "rotZ": 0.01720172, "scaleX": 0.7152412, "scaleY": 1.0, "scaleZ": 0.7152412 }, "Nickname": "Agenda 1a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566300, "SidewaysCard": false, "CustomDeck": { "5663": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072952833/F011785EA40DE4A303B6966D2666047D01E25211/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072659068/C17D3202ED7452D58840650C4A1E23A1117A1B10/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "ba989d", "Name": "CardCustom", "Transform": { "posX": -23.6765, "posY": 1.62806654, "posZ": -0.029999841, "rotX": 359.9201, "rotY": 270.0, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Weapon Development", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 567400, "SidewaysCard": false, "CustomDeck": { "5674": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288869373/6285371F4E678A4ED65A9DCACF59C2792D64E401/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288869727/862F91C14E6E1F507E9F7DB2FBC2C118DC4F7EF0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "bb1f89", "Name": "Custom_Tile", "Transform": { "posX": -25.0849, "posY": 1.61308265, "posZ": -11.4046011, "rotX": 359.9554, "rotY": 224.999649, "rotZ": 0.06838212, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "ccf9a8", "Name": "Custom_Tile", "Transform": { "posX": -27.2589, "posY": 1.61727619, "posZ": -7.45080137, "rotX": 0.07989458, "rotY": 90.0004, "rotZ": 359.983124, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "d17c37", "Name": "Custom_Tile", "Transform": { "posX": -26.9457, "posY": 1.62125421, "posZ": 7.57119942, "rotX": 359.9201, "rotY": 269.999969, "rotZ": 0.0168675613, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": false, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "d7ba40", "Name": "Custom_Tile", "Transform": { "posX": -30.2242, "posY": 1.62247539, "posZ": -3.82999945, "rotX": 359.9832, "rotY": 0.01050932, "rotZ": 359.920044, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "e86318", "Name": "CardCustom", "Transform": { "posX": -30.2243, "posY": 1.63494289, "posZ": -7.7, "rotX": 359.9201, "rotY": 270.0001, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Body Disposal", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 567100, "SidewaysCard": false, "CustomDeck": { "5671": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288866620/9C64096445E2EAFA3B98B5E2258061F51CE04678/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288867037/72F6E5DFBE4895057D09EAD82ED510E0E051943B/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "f30100", "Name": "CardCustom", "Transform": { "posX": -30.2242, "posY": 1.6371969, "posZ": -0.0300000217, "rotX": 359.9201, "rotY": 270.0, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Genetics Archive", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 567000, "SidewaysCard": false, "CustomDeck": { "5670": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288865617/A5C0D6642342649BC3D4AA5CE5D86B23E0DF1AC6/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726517288865274/61CB790BE277826BC25C0CF021BD0490ED54BBD8/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "f69811", "Name": "Custom_Model_Bag", "Transform": { "posX": 1.69640076, "posY": 1.55831683, "posZ": 14.2788019, "rotX": 359.955139, "rotY": 224.998, "rotZ": 0.06867385, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "Set Aside", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "57a456", "Name": "CardCustom", "Transform": { "posX": 1.69643009, "posY": 3.656826, "posZ": 14.2788181, "rotX": 359.9481, "rotY": 224.669952, "rotZ": 0.0587195046, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Ordinance", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565900, "SidewaysCard": false, "CustomDeck": { "5659": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072446148/D91AE129DAA1661E47AAC798884CA4DD49A28ECA/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e142ca", "Name": "CardCustom", "Transform": { "posX": 1.69642413, "posY": 3.65669155, "posZ": 14.27884, "rotX": 359.954834, "rotY": 225.013657, "rotZ": 0.06886798, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mi-Go Engineer", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565700, "SidewaysCard": false, "CustomDeck": { "5657": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072402357/43B9E08DC321ED8BC6223BB6CA4D46D7C1DB65CF/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "eabd7e", "Name": "CardCustom", "Transform": { "posX": 1.6964258, "posY": 3.65667, "posZ": 14.2788315, "rotX": 359.947845, "rotY": 224.968292, "rotZ": 0.0585298277, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Organ Grinders", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 565800, "SidewaysCard": false, "CustomDeck": { "5658": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352072418256/5649C8612EBBE6BC81E924434C02B834A56C07F2/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] } ], "AttachedDecals": [ { "Transform": { "posX": -0.0021877822, "posY": -0.08963572, "posZ": -0.00288731651, "rotX": 270.0, "rotY": 359.869568, "rotZ": 0.0, "scaleX": 2.00000215, "scaleY": 2.00000238, "scaleZ": 2.00000262 }, "CustomDecal": { "Name": "dunwich_back", "ImageURL": "http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/", "Size": 7.4 } } ] }, { "GUID": "1d61c6", "Name": "Custom_Model_Bag", "Transform": { "posX": 12.2483, "posY": 1.47503066, "posZ": 35.9866, "rotX": 359.920135, "rotY": 269.999878, "rotZ": 0.0168753173, "scaleX": 0.5329047, "scaleY": 0.1488432, "scaleZ": 0.5329047 }, "Nickname": "Future Reflections Investigators", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj", "DiffuseURL": "https://i.imgur.com/T97bYDU.pnghttps://i.imgur.com/T97bYDU.png", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 6, "CustomShader": { "SpecularColor": { "r": 1.0, "g": 1.0, "b": 1.0 }, "SpecularIntensity": 0.0, "SpecularSharpness": 2.0, "FresnelStrength": 0.0 }, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "-- Utility memory bag by Directsun\r\n-- Version 2.5.2\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,3,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor +12\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=800, width=800,\r\n color=color,\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={-1.4,3,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={-1.4,3,-8.4}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={1.4,3,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={1.4,3,-8.4}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={1.4,3,-7.2}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-1.4,3,-7.2}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj, move)\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={2.4,3,7}, rotation={0,0,0}, height=850, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-2.4,3,7}, rotation={0,0,0}, height=850, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,3,-6}, rotation={0,0,0}, height=500, width=1200,\r\n font_size=350, color={0,0,0}, font_color={1,1,1}\r\n })\r\n--- self.createButton({\r\n--- label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n--- position={-2.8,0.3,0}, rotation={0,0,0}, height=350, width=800,\r\n--- font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n--- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n\tlocal angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n\tlocal z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend", "LuaScriptState": "{\"ml\":{\"0de2c4\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3599,\"z\":-67.8206},\"rot\":{\"x\":0.0208,\"y\":270.009,\"z\":0.0168}},\"0f46eb\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":269.9961,\"z\":0.0168}},\"15105c\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"16df70\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"1c3aab\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"1da958\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3645,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":179.9921,\"z\":359.9792}},\"208c4d\":{\"lock\":false,\"pos\":{\"x\":-16.6335,\"y\":1.3638,\"z\":-54.6166},\"rot\":{\"x\":0.0218,\"y\":266.5908,\"z\":0.0155}},\"226716\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3596,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":269.9998,\"z\":0.0168}},\"24bf26\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.2665,\"z\":-84.818},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"26f88d\":{\"lock\":false,\"pos\":{\"x\":-16.639,\"y\":1.3603,\"z\":-66.8114},\"rot\":{\"x\":0.0208,\"y\":270.0166,\"z\":0.0168}},\"270c8f\":{\"lock\":false,\"pos\":{\"x\":-26.2998,\"y\":1.2734,\"z\":-61.2407},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"298237\":{\"lock\":false,\"pos\":{\"x\":-22.6146,\"y\":1.3701,\"z\":-65.5964},\"rot\":{\"x\":0.0168,\"y\":180.0003,\"z\":359.9792}},\"2b0bee\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"307044\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3553,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":269.9782,\"z\":0.0168}},\"3742e4\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2688,\"z\":-76.9454},\"rot\":{\"x\":359.9792,\"y\":89.9993,\"z\":359.9832}},\"376a06\":{\"lock\":false,\"pos\":{\"x\":1.696,\"y\":1.56,\"z\":14.24},\"rot\":{\"x\":0,\"y\":45,\"z\":0}},\"389792\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3668,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":359.9792}},\"3ddfeb\":{\"lock\":false,\"pos\":{\"x\":-16.6394,\"y\":1.3546,\"z\":-86.0186},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"3f60eb\":{\"lock\":false,\"pos\":{\"x\":-19.2948,\"y\":1.3714,\"z\":-65.5815},\"rot\":{\"x\":0.0208,\"y\":269.9986,\"z\":0.0168}},\"41bfc7\":{\"lock\":false,\"pos\":{\"x\":-16.6532,\"y\":1.3615,\"z\":-62.4536},\"rot\":{\"x\":0.0211,\"y\":269.0246,\"z\":0.0164}},\"44d1ab\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.355,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0322,\"z\":0.0168}},\"4ad11b\":{\"lock\":false,\"pos\":{\"x\":-16.6373,\"y\":1.3569,\"z\":-78.1785},\"rot\":{\"x\":0.0209,\"y\":269.8461,\"z\":0.0167}},\"4d3ac8\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.2757,\"z\":-53.4369},\"rot\":{\"x\":359.9792,\"y\":90.0003,\"z\":359.9832}},\"4e809f\":{\"lock\":false,\"pos\":{\"x\":-22.617,\"y\":1.3133,\"z\":-61.2414},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"543164\":{\"lock\":false,\"pos\":{\"x\":-16.6421,\"y\":1.3592,\"z\":-70.2847},\"rot\":{\"x\":0.0209,\"y\":269.8676,\"z\":0.0167}},\"55e98a\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"565f15\":{\"lock\":false,\"pos\":{\"x\":-22.6158,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"5d16e3\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3619,\"z\":-61.231},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"6330da\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3645,\"z\":-52.152},\"rot\":{\"x\":0.0208,\"y\":270.0314,\"z\":0.0168}},\"6bd479\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3576,\"z\":-75.7054},\"rot\":{\"x\":0.0208,\"y\":270.0208,\"z\":0.0168}},\"72caa1\":{\"lock\":false,\"pos\":{\"x\":-16.6392,\"y\":1.3606,\"z\":-65.5811},\"rot\":{\"x\":0.0208,\"y\":269.9983,\"z\":0.0168}},\"779aa6\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.3549,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0096,\"z\":0.0168}},\"7af9ff\":{\"lock\":false,\"pos\":{\"x\":-26.2999,\"y\":1.2688,\"z\":-76.9454},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"7f7566\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":180.0001,\"z\":359.9792}},\"84a141\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3576,\"z\":-75.7054},\"rot\":{\"x\":0.0208,\"y\":270.0334,\"z\":0.0168}},\"875dca\":{\"lock\":false,\"pos\":{\"x\":-16.6336,\"y\":1.3569,\"z\":-78.1716},\"rot\":{\"x\":0.0218,\"y\":266.6161,\"z\":0.0155}},\"888fcc\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3657,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0035,\"z\":0.0168}},\"8b0a9e\":{\"lock\":false,\"pos\":{\"x\":-16.639,\"y\":1.361,\"z\":-64.3414},\"rot\":{\"x\":0.0208,\"y\":269.9907,\"z\":0.0168}},\"8e8dcf\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":359.9792}},\"8f57db\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3133,\"z\":-61.2414},\"rot\":{\"x\":0.0168,\"y\":179.9999,\"z\":359.9792}},\"90cfdb\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3554,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":270.0007,\"z\":0.0168}},\"92c727\":{\"lock\":false,\"pos\":{\"x\":-26.3001,\"y\":1.2734,\"z\":-61.241},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}},\"92cda8\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0209,\"y\":269.6944,\"z\":0.0167}},\"969654\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4338},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"9cd95a\":{\"lock\":false,\"pos\":{\"x\":-16.6335,\"y\":1.3615,\"z\":-62.4568},\"rot\":{\"x\":0.0218,\"y\":266.5908,\"z\":0.0155}},\"9e80b9\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3638,\"z\":-54.6207},\"rot\":{\"x\":0.0208,\"y\":269.9772,\"z\":0.0168}},\"a13075\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3064,\"z\":-84.8185},\"rot\":{\"x\":0.0208,\"y\":269.9926,\"z\":0.0168}},\"a6ca48\":{\"lock\":false,\"pos\":{\"x\":-26.2999,\"y\":1.2711,\"z\":-69.0603},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"a7606b\":{\"lock\":false,\"pos\":{\"x\":-16.6466,\"y\":1.3592,\"z\":-70.295},\"rot\":{\"x\":0.0218,\"y\":266.5696,\"z\":0.0155}},\"a95b8c\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3064,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":179.9999,\"z\":359.9792}},\"aaeac7\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.36,\"z\":-67.8206},\"rot\":{\"x\":0.0208,\"y\":270.0258,\"z\":0.0168}},\"ab52dc\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.2665,\"z\":-84.818},\"rot\":{\"x\":359.9792,\"y\":90.0128,\"z\":359.9832}},\"b675fd\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3596,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"bde4a6\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3641,\"z\":-53.3904},\"rot\":{\"x\":0.0208,\"y\":269.9887,\"z\":0.0168}},\"be9e91\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2711,\"z\":-69.0606},\"rot\":{\"x\":359.9792,\"y\":89.9998,\"z\":359.9832}},\"c0e7b1\":{\"lock\":false,\"pos\":{\"x\":-16.6414,\"y\":1.3546,\"z\":-86.0129},\"rot\":{\"x\":0.0218,\"y\":266.5644,\"z\":0.0155}},\"c1aa7a\":{\"lock\":false,\"pos\":{\"x\":-26.2995,\"y\":1.2665,\"z\":-84.8178},\"rot\":{\"x\":359.9792,\"y\":90.0001,\"z\":359.9832}},\"c2ef97\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4381},\"rot\":{\"x\":0.0168,\"y\":179.9999,\"z\":359.9792}},\"c72f87\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":269.9951,\"z\":0.0168}},\"ce1703\":{\"lock\":false,\"pos\":{\"x\":-19.2958,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":269.9961,\"z\":0.0168}},\"d3d270\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0207,\"z\":0.0168}},\"d4082a\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9962,\"z\":0.0168}},\"d6fdbf\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3619,\"z\":-61.231},\"rot\":{\"x\":0.0208,\"y\":270.024,\"z\":0.0168}},\"d70f9e\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.2757,\"z\":-53.4368},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}},\"d8e1ad\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3569,\"z\":-78.1756},\"rot\":{\"x\":0.0208,\"y\":270.0207,\"z\":0.0168}},\"d9f2c7\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3554,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":269.9983,\"z\":0.0168}},\"d9fb86\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"de216f\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3622,\"z\":-60.001},\"rot\":{\"x\":0.0208,\"y\":270.0149,\"z\":0.0168}},\"e04b48\":{\"lock\":false,\"pos\":{\"x\":-16.6404,\"y\":1.3576,\"z\":-75.7053},\"rot\":{\"x\":0.0208,\"y\":270.0152,\"z\":0.0168}},\"e1786c\":{\"lock\":false,\"pos\":{\"x\":-16.6394,\"y\":1.3546,\"z\":-86.0186},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"f0d3cc\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3642,\"z\":-53.3904},\"rot\":{\"x\":0.0208,\"y\":270.0119,\"z\":0.0168}},\"f7a65d\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3645,\"z\":-52.152},\"rot\":{\"x\":0.0208,\"y\":270.0303,\"z\":0.0168}},\"f7bef5\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":270.0453,\"z\":0.0168}},\"f94187\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3622,\"z\":-60.001},\"rot\":{\"x\":0.0208,\"y\":270.0422,\"z\":0.0168}},\"fc1612\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0098,\"z\":0.0168}},\"fc27ff\":{\"lock\":false,\"pos\":{\"x\":-26.2991,\"y\":1.2721,\"z\":-65.5814},\"rot\":{\"x\":359.9792,\"y\":90.0019,\"z\":359.9832}},\"fc63ca\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.368,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"ffa2b2\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.355,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":269.9994,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "0de2c4", "Name": "Custom_Model", "Transform": { "posX": -16.6359234, "posY": 1.3599267, "posZ": -67.81641, "rotX": 0.0208143033, "rotY": 270.009, "rotZ": 0.0167713147, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722515898740/E92441671B056D4CDF99DF9E6C88BE6598AAB50F/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "0f46eb", "Name": "CardCustom", "Transform": { "posX": -19.3001, "posY": 1.31449115, "posZ": -61.2332, "rotX": 0.0208099149, "rotY": 269.9961, "rotZ": 0.0167696383, "scaleX": 0.5869074, "scaleY": 1.0, "scaleZ": 0.5869074 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566900, "SidewaysCard": false, "CustomDeck": { "5669": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220553411282/BCBDCE54C35BCB8AA6D5FCA0CBF86F0585B1B0B8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1647719220553411502/F557E036B77617512CEF3FA77517EE013F9336DC/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "226716", "Name": "Custom_Model", "Transform": { "posX": -16.636116, "posY": 1.35956383, "posZ": -69.05612, "rotX": 0.0208167769, "rotY": 269.9998, "rotZ": 0.0167680271, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722515898740/E92441671B056D4CDF99DF9E6C88BE6598AAB50F/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "24bf26", "Name": "Custom_Model_Bag", "Transform": { "posX": -26.2995987, "posY": 1.26647651, "posZ": -84.81801, "rotX": 359.979156, "rotY": 90.000206, "rotZ": 359.983246, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "starter deck & cards", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "0acaf1", "Name": "CardCustom", "Transform": { "posX": -26.2995968, "posY": 3.3646338, "posZ": -84.81801, "rotX": 0.02011115, "rotY": 270.0063, "rotZ": 0.009235944, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 568400, "SidewaysCard": false, "CustomDeck": { "5684": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220553755995/BED79851A07F03BCDB49AC794BF92CE01C17A887/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "c3ff9a", "Name": "CardCustom", "Transform": { "posX": -26.2995987, "posY": 3.36460471, "posZ": -84.818, "rotX": 0.0199080259, "rotY": 270.811157, "rotZ": 0.009463855, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 568200, "SidewaysCard": false, "CustomDeck": { "5682": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847174930855984/952D1D3C27B8888E7118861628D8DD750EA26F85/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648847174930856395/57239687B105F20501142E6DB837424FCB62FC8D/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "f9b00a", "Name": "CardCustom", "Transform": { "posX": -26.2995815, "posY": 3.37213588, "posZ": -84.81756, "rotX": 0.0202141386, "rotY": 270.0011, "rotZ": 0.237487331, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 568300, "SidewaysCard": false, "CustomDeck": { "5683": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719819411086716/C5C24B8D861729FE9BF0F429F62D213E57A51C4D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "270c8f", "Name": "Custom_Model_Bag", "Transform": { "posX": -26.299799, "posY": 1.27337778, "posZ": -61.2407, "rotX": 359.979156, "rotY": 90.000206, "rotZ": 359.983215, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "starter deck & cards", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "2a23f8", "Name": "CardCustom", "Transform": { "posX": -26.3001461, "posY": 3.37140775, "posZ": -61.2409668, "rotX": 0.0209235419, "rotY": 270.004181, "rotZ": 0.0167756584, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567900, "SidewaysCard": false, "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220553377221/C902A6562C82480D2EC549CCD414250D638A8D3D/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e94304", "Name": "CardCustom", "Transform": { "posX": -26.3001461, "posY": 3.37140965, "posZ": -61.2409668, "rotX": 0.02089546, "rotY": 270.004517, "rotZ": 0.0168230962, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567800, "SidewaysCard": false, "CustomDeck": { "5678": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220553379484/A9C4938D6B8E8C83E6F07D515033B630F45C5453/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "307044", "Name": "Custom_Model", "Transform": { "posX": -16.6343155, "posY": 1.35532558, "posZ": -83.53731, "rotX": 0.0208225641, "rotY": 269.9782, "rotZ": 0.01676006, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722515960460/F43F63452854B10B416FDF3BF9EF3068E6E68F26/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3ddfeb", "Name": "Custom_Model", "Transform": { "posX": -16.6352177, "posY": 1.35460019, "posZ": -86.01442, "rotX": 0.0208166055, "rotY": 269.9996, "rotZ": 0.0167678241, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722515960460/F43F63452854B10B416FDF3BF9EF3068E6E68F26/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "41bfc7", "Name": "Custom_Model", "Transform": { "posX": -16.6490211, "posY": 1.361493, "posZ": -62.44934, "rotX": 0.02109868, "rotY": 269.0246, "rotZ": 0.0164115615, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516265983/F50A6212D30C442429ED22B8CC8FD24D4CB76A2A/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4ad11b", "Name": "Custom_Model", "Transform": { "posX": -16.633112, "posY": 1.3568958, "posZ": -78.17432, "rotX": 0.0208619088, "rotY": 269.8461, "rotZ": 0.0167121422, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516557267/757887224F6C37104CDFFE241FAD09B57117D670/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4e809f", "Name": "CardCustom", "Transform": { "posX": -22.617, "posY": 1.31328416, "posZ": -61.2414, "rotX": 0.0208087526, "rotY": 270.0, "rotZ": 0.016771242, "scaleX": 0.783099234, "scaleY": 1.0, "scaleZ": 0.783099234 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567400, "SidewaysCard": false, "CustomDeck": { "5674": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220553334860/595F633D1349FB6E17A3F24A488997FD390BA4EB/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1647718318202216427/0DDA5E0644CBDC7FC08B792C3FB01ED2FD904996/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "543164", "Name": "Custom_Model", "Transform": { "posX": -16.6379089, "posY": 1.35920477, "posZ": -70.28052, "rotX": 0.020854922, "rotY": 269.8676, "rotZ": 0.0167198237, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722515898740/E92441671B056D4CDF99DF9E6C88BE6598AAB50F/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "565f15", "Name": "CardCustom", "Transform": { "posX": -22.6158, "posY": 1.30868757, "posZ": -76.946, "rotX": 0.02080878, "rotY": 269.999939, "rotZ": 0.0167711414, "scaleX": 0.783099234, "scaleY": 1.0, "scaleZ": 0.783099234 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567600, "SidewaysCard": false, "CustomDeck": { "5676": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847174930251421/A571470F5F5F138FFF792D0E7322E188534E4016/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648847174930251717/257AA6D19EDAF4F757C8CF0885277E8CDD0A8930/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6330da", "Name": "Custom_Model", "Transform": { "posX": -16.6359119, "posY": 1.36451316, "posZ": -52.1478233, "rotX": 0.0208075773, "rotY": 270.0314, "rotZ": 0.0167794265, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516201848/72B3B9E2B59F25FEC82412AC22245D03655A4558/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "779aa6", "Name": "Custom_Model", "Transform": { "posX": -16.6360168, "posY": 1.35495114, "posZ": -84.81402, "rotX": 0.0208134353, "rotY": 270.0096, "rotZ": 0.0167716816, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722515960460/F43F63452854B10B416FDF3BF9EF3068E6E68F26/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7af9ff", "Name": "Custom_Model_Bag", "Transform": { "posX": -26.2998981, "posY": 1.26878119, "posZ": -76.9454041, "rotX": 359.979156, "rotY": 90.000206, "rotZ": 359.983246, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "starter deck & cards", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "d55686", "Name": "Deck", "Transform": { "posX": -26.30019, "posY": 3.38870716, "posZ": -76.9456558, "rotX": 0.0198711716, "rotY": 270.445862, "rotZ": 0.009277333, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 567800, 567800, 567800 ], "CustomDeck": { "5678": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006699584/46C277AFDCACC9A932B9939BF7A3D3BA59D37C97/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "96dfea", "Name": "CardCustom", "Transform": { "posX": -19.4052, "posY": 1.30587983, "posZ": -90.48227, "rotX": 0.0169381481, "rotY": 179.999969, "rotZ": 359.978363, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567800, "SidewaysCard": false, "CustomDeck": { "5678": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006699584/46C277AFDCACC9A932B9939BF7A3D3BA59D37C97/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9e40e6", "Name": "CardCustom", "Transform": { "posX": -19.5272732, "posY": 1.34607553, "posZ": -90.1715, "rotX": 0.009187559, "rotY": 179.999969, "rotZ": 359.966156, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567800, "SidewaysCard": false, "CustomDeck": { "5678": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006699584/46C277AFDCACC9A932B9939BF7A3D3BA59D37C97/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9d5dfd", "Name": "CardCustom", "Transform": { "posX": -19.1995335, "posY": 1.38177609, "posZ": -90.229126, "rotX": 0.01605566, "rotY": 180.000031, "rotZ": 359.979156, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567800, "SidewaysCard": false, "CustomDeck": { "5678": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006699584/46C277AFDCACC9A932B9939BF7A3D3BA59D37C97/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "1ff74e", "Name": "CardCustom", "Transform": { "posX": -26.3001881, "posY": 3.366871, "posZ": -76.94565, "rotX": 0.0200579464, "rotY": 270.225647, "rotZ": 0.009310317, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567900, "SidewaysCard": false, "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719760773993326/E0C1F319D97883E4CF10ACC3203170512C04563E/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "82b4f3", "Name": "CardCustom", "Transform": { "posX": -26.3001862, "posY": 3.36696482, "posZ": -76.94565, "rotX": 0.0201151129, "rotY": 269.9977, "rotZ": 0.009248775, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 568000, "SidewaysCard": false, "CustomDeck": { "5680": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847174930596580/B460E32AF4DF54A2315645A8FC226C07AE9559AD/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "92cda8", "Name": "CardCustom", "Transform": { "posX": -22.6157, "posY": 1.31099141, "posZ": -69.0756, "rotX": 0.0208980218, "rotY": 269.6944, "rotZ": 0.0166598484, "scaleX": 0.783099234, "scaleY": 1.0, "scaleZ": 0.783099234 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567500, "SidewaysCard": false, "CustomDeck": { "5675": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1718660292953278449/80D95D788F675F4E15358F25C693D073129939B8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1718660292953278659/5C4B06393BEF4CD88156C8CD33C01855EFAD7BA1/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "969654", "Name": "CardCustom", "Transform": { "posX": -22.6139, "posY": 1.31557059, "posZ": -53.4338, "rotX": 0.0208087955, "rotY": 270.0, "rotZ": 0.0167711172, "scaleX": 0.783099234, "scaleY": 1.0, "scaleZ": 0.783099234 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567700, "SidewaysCard": false, "CustomDeck": { "5677": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552276871/6BB3F77AB8A111A583403BBA9C72681BE674B289/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552277122/CB016130CABA33BB915A9105CD028BEBA8731869/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9e80b9", "Name": "Custom_Model", "Transform": { "posX": -16.63582, "posY": 1.36379063, "posZ": -54.6165161, "rotX": 0.0208236612, "rotY": 269.977173, "rotZ": 0.016759729, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516201848/72B3B9E2B59F25FEC82412AC22245D03655A4558/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a13075", "Name": "CardCustom", "Transform": { "posX": -22.6169, "posY": 1.30638278, "posZ": -84.8185, "rotX": 0.02081106, "rotY": 269.9926, "rotZ": 0.0167685337, "scaleX": 0.783099234, "scaleY": 1.0, "scaleZ": 0.783099234 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567300, "SidewaysCard": false, "CustomDeck": { "5673": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846905197994185/261B68A54931F60A53C8AA6F05F4366EB120940A/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846905197996115/5E3D2B878261E358D5F1884955FB35B5D32FD805/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a6ca48", "Name": "Custom_Model_Bag", "Transform": { "posX": -26.2998981, "posY": 1.271089, "posZ": -69.06031, "rotX": 359.979156, "rotY": 90.000206, "rotZ": 359.983215, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "starter deck & cards", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "4dfb2d", "Name": "Deck", "Transform": { "posX": -26.30019, "posY": 3.39094663, "posZ": -69.06059, "rotX": 0.0208201036, "rotY": 269.979462, "rotZ": 0.0167157073, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 567900, 567900, 567900 ], "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552883853/39C9CD61C3C27D963DD812373099693871F5E537/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "7feaab", "Name": "CardCustom", "Transform": { "posX": -18.7456627, "posY": 1.31800151, "posZ": -49.5908966, "rotX": 0.0218038186, "rotY": 269.85083, "rotZ": 0.0102152219, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567900, "SidewaysCard": false, "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552883853/39C9CD61C3C27D963DD812373099693871F5E537/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "967be3", "Name": "CardCustom", "Transform": { "posX": -19.2749157, "posY": 1.3675952, "posZ": -49.9687462, "rotX": 0.034829706, "rotY": 269.850861, "rotZ": 0.01483151, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567900, "SidewaysCard": false, "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552883853/39C9CD61C3C27D963DD812373099693871F5E537/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "79821b", "Name": "CardCustom", "Transform": { "posX": -19.2749825, "posY": 1.39470589, "posZ": -49.96872, "rotX": 0.04067594, "rotY": 269.850677, "rotZ": 0.0118332617, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567900, "SidewaysCard": false, "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552883853/39C9CD61C3C27D963DD812373099693871F5E537/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "b42d20", "Name": "CardCustom", "Transform": { "posX": -26.30019, "posY": 3.369063, "posZ": -69.060585, "rotX": 0.02094193, "rotY": 269.9861, "rotZ": 0.01675418, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567800, "SidewaysCard": false, "CustomDeck": { "5678": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552881439/1A17FE36F329BD6021DCBD71BC75D0981ACCA6E0/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "bde4a6", "Name": "Custom_Model", "Transform": { "posX": -16.6358128, "posY": 1.36415064, "posZ": -53.3862228, "rotX": 0.0208196249, "rotY": 269.9887, "rotZ": 0.0167639777, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516201848/72B3B9E2B59F25FEC82412AC22245D03655A4558/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "c72f87", "Name": "CardCustom", "Transform": { "posX": -19.2998, "posY": 1.30758762, "posZ": -84.8182, "rotX": 0.0208100341, "rotY": 269.9951, "rotZ": 0.016769072, "scaleX": 0.5869074, "scaleY": 1.0, "scaleZ": 0.5869074 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567200, "SidewaysCard": false, "CustomDeck": { "5672": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1538500232634400432/AE1B5BD1CE5268E6C85A0CE0818DCB22ACB9939F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1538500232634400696/7957C910FA019E6FF81ACDC873028392D3D96759/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "ce1703", "Name": "CardCustom", "Transform": { "posX": -19.2958, "posY": 1.31220138, "posZ": -69.0607, "rotX": 0.0208099782, "rotY": 269.9961, "rotZ": 0.0167697761, "scaleX": 0.5869074, "scaleY": 1.0, "scaleZ": 0.5869074 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567000, "SidewaysCard": false, "CustomDeck": { "5670": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1538500232634569888/CA28E3A30C9AF4800A48BAAF7B7DD1E99AA5CFBE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1538500232634570083/0AFC54600B04F362DDE6FFE72AB1525A1918A8C6/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d4082a", "Name": "CardCustom", "Transform": { "posX": -19.2936, "posY": 1.30989552, "posZ": -76.9415, "rotX": 0.0208097715, "rotY": 269.9962, "rotZ": 0.01676936, "scaleX": 0.5869074, "scaleY": 1.0, "scaleZ": 0.5869074 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567100, "SidewaysCard": false, "CustomDeck": { "5671": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1036338067948459093/5E2B728AA9B4C86B253AE3A5BA1947319BCBB15E/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036338067948459323/2A93B296EF6FB1592072E838915DCC18AAC22A40/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d6fdbf", "Name": "Custom_Model", "Transform": { "posX": -16.63592, "posY": 1.36185551, "posZ": -61.2268181, "rotX": 0.02081004, "rotY": 270.024, "rotZ": 0.01677689, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516265983/F50A6212D30C442429ED22B8CC8FD24D4CB76A2A/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d70f9e", "Name": "Custom_Model_Bag", "Transform": { "posX": -26.2999973, "posY": 1.27566254, "posZ": -53.4368, "rotX": 359.979156, "rotY": 89.9999, "rotZ": 359.983246, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "starter deck & cards", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "663415", "Name": "CardCustom", "Transform": { "posX": -26.3000221, "posY": 3.38661337, "posZ": -53.4367867, "rotX": 0.04053611, "rotY": 284.878052, "rotZ": 359.926483, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 568000, "SidewaysCard": false, "CustomDeck": { "5680": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552277721/0CE009447EF48CBF41342D5D83587FA1FF631D6B/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e80af6", "Name": "CardCustom", "Transform": { "posX": -26.3000031, "posY": 3.414104, "posZ": -53.436924, "rotX": 0.0274780989, "rotY": 284.837463, "rotZ": 359.929871, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 567900, "SidewaysCard": false, "CustomDeck": { "5679": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352067133139/35D7F1E8BBA4B33123B776EE76C1784091F0B524/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "d9fb86", "Name": "Custom_Model", "Transform": { "posX": -16.6354179, "posY": 1.35725594, "posZ": -76.94142, "rotX": 0.0208135564, "rotY": 270.0086, "rotZ": 0.0167706981, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516557267/757887224F6C37104CDFFE241FAD09B57117D670/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "de216f", "Name": "Custom_Model", "Transform": { "posX": -16.63592, "posY": 1.36221576, "posZ": -59.99682, "rotX": 0.0208118632, "rotY": 270.0149, "rotZ": 0.016773615, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516265983/F50A6212D30C442429ED22B8CC8FD24D4CB76A2A/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e04b48", "Name": "Custom_Model", "Transform": { "posX": -16.636219, "posY": 1.35761869, "posZ": -75.70112, "rotX": 0.0208118986, "rotY": 270.0152, "rotZ": 0.01677379, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 }, "Nickname": "Survivor turn token", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": false, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "https://pastebin.com/raw/ALrYhQGb", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/952965722516557267/757887224F6C37104CDFFE241FAD09B57117D670/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 4, "CastShadows": true }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "f7bef5", "Name": "CardCustom", "Transform": { "posX": -19.3, "posY": 1.31677353, "posZ": -53.4358, "rotX": 0.0207955018, "rotY": 270.0453, "rotZ": 0.0167874619, "scaleX": 0.58659184, "scaleY": 1.0, "scaleZ": 0.58659184 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 566800, "SidewaysCard": false, "CustomDeck": { "5668": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552276174/149CD72C6F0172D16D10C7C8B92B281F27C0A222/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1647719220552276430/4277A414265B6770BDBF2041A3B94B4ADAEA628E/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "004d53", "Name": "Custom_Model_Bag", "Transform": { "posX": -3.551213, "posY": 1.58559573, "posZ": -14.95619, "rotX": 359.919739, "rotY": 270.0, "rotZ": 0.01684839, "scaleX": 3.0, "scaleY": 3.0, "scaleZ": 3.0 }, "Nickname": "Chaos Bag", "Description": "Chaos Bag", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/87098596225685535/6C95EB6308A0A9E89367DD67D5C65D09EB3C06A0/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/959719855127933035/B199A5F515A8F3ED7E06780D3723285C02ADE085/", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 6, "CustomShader": { "SpecularColor": { "r": 1.0, "g": 1.0, "b": 1.0 }, "SpecularIntensity": 0.0, "SpecularSharpness": 2.0, "FresnelStrength": 0.0 }, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "function filterObjectEnter(obj)\n local props = obj.getCustomObject()\n if props ~= nil and props.image ~= nil then\n obj.setName(Global.call(\"getTokenName\", { url=props.image }))\n end\n return true\nend\n\nfunction onCollisionEnter(collision_info)\n self.shuffle()\n self.shuffle()\n self.shuffle()\nend\n", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/stbBxtx.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/nEmqjmj.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "50e58d", "Name": "Custom_Tile", "Transform": { "posX": 17.9371, "posY": 2.29966664, "posZ": 40.1965561, "rotX": -0.0038688723, "rotY": 269.993744, "rotZ": 0.00143122277, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "-1", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/w3XbrCC.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/1plY463.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/yfs8gHq.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1f4f0e", "Name": "Custom_Tile", "Transform": { "posX": 8.448438, "posY": 2.47006655, "posZ": -34.56107, "rotX": 359.9243, "rotY": 254.970428, "rotZ": 0.0304909591, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/stbBxtx.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/VzhJJaH.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/w3XbrCC.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7180c3", "Name": "Custom_Tile", "Transform": { "posX": 35.8490639, "posY": 2.305688, "posZ": -47.09223, "rotX": 359.9243, "rotY": 254.971649, "rotZ": 0.030485943, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/btEtVfd.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "0a46d1", "Name": "Custom_Tile", "Transform": { "posX": -52.1016235, "posY": 1.63770008, "posZ": 5.83288336, "rotX": 359.920135, "rotY": 269.9747, "rotZ": 0.01691115, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/qrgGQRD.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "c4997a", "Name": "Custom_Tile", "Transform": { "posX": 36.564537, "posY": 2.29937172, "posZ": -48.5552979, "rotX": 359.9243, "rotY": 254.968628, "rotZ": 0.0304860026, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/btEtVfd.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "066d48", "Name": "Custom_Tile", "Transform": { "posX": -52.1016235, "posY": 1.63770008, "posZ": 5.83288336, "rotX": 359.920135, "rotY": 269.974762, "rotZ": 0.0169135537, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/btEtVfd.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "2adfa7", "Name": "Custom_Tile", "Transform": { "posX": 25.71029, "posY": 2.29258418, "posZ": -58.35303, "rotX": 359.924225, "rotY": 254.970032, "rotZ": 0.0304826517, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/bfTg2hb.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a752d9", "Name": "Custom_Tile", "Transform": { "posX": -52.1016235, "posY": 1.63770008, "posZ": 5.83288336, "rotX": 359.920135, "rotY": 269.974762, "rotZ": 0.0169135537, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/uIx8jbY.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a83534", "Name": "Custom_Tile", "Transform": { "posX": 16.6507, "posY": 2.29233623, "posZ": -48.95742, "rotX": 359.9243, "rotY": 254.980728, "rotZ": 0.0304908846, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/stbBxtx.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "df800e", "Name": "Custom_Tile", "Transform": { "posX": 24.0262337, "posY": 2.29457355, "posZ": -50.1218643, "rotX": 359.924225, "rotY": 254.980728, "rotZ": 0.0304826386, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/bfTg2hb.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "", "Name": "Custom_Tile", "Transform": { "posX": -4.007486, "posY": 4.58268642, "posZ": -14.9348431, "rotX": 0.0, "rotY": 260.0, "rotZ": 0.0, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/lns4fhz.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 2, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "646860", "Name": "Bag", "Transform": { "posX": -10.3191013, "posY": 1.08175373, "posZ": 87.1778, "rotX": 359.979156, "rotY": 89.9741, "rotZ": 359.983215, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Utility Memory Bag - Empty", "Description": "By Directsun", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 0.5254902, "b": 0.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "Bag": { "Order": 0 }, "LuaScript": " -- Utility memory bag by Directsun\r\n-- Version 2.6.0\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n buttonIndexMap = {}\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1.25 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Workaround for custom PDFs\r\n if obj.Book then\r\n objPos.y = objPos.y + 0.5\r\n end\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n buttonIndexMap[obj.getGUID()] = howManyButtons\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0,0.3,-3.6}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n self.createButton({\r\n label=\"Selection\", click_function=\"editDragSelection\", function_owner=self,\r\n position={0,0.3,2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0,0.3,-4.4}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0,0.3,-5.2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(obj, move)\r\n local index = buttonIndexMap[obj.getGUID()]\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\nfunction editDragSelection(bagObj, player, remove)\r\n local selectedObjs = Player[player].getSelectedObjects()\r\n if not remove then\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n --Ignore if already in the memory list, or does not have a button\r\n if index and not memoryList[obj.getGUID()] then\r\n self.editButton({index=index, color={0,1,0,0.6}})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n end\r\n end\r\n else\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n if index and memoryList[obj.getGUID()] then\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\n end\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n position={-2.8,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n local objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n local angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n local z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"00c1ca\":{\"lock\":false,\"pos\":{\"x\":-5.7374,\"y\":1.2801,\"z\":80.3268},\"rot\":{\"x\":0.0208,\"y\":269.999,\"z\":0.0168}},\"0fa002\":{\"lock\":false,\"pos\":{\"x\":-5.7374,\"y\":1.2814,\"z\":84.9268},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"697803\":{\"lock\":false,\"pos\":{\"x\":-5.7374,\"y\":1.2834,\"z\":91.8268},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"707c21\":{\"lock\":false,\"pos\":{\"x\":-5.7374,\"y\":1.2807,\"z\":82.6268},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"72a9af\":{\"lock\":false,\"pos\":{\"x\":-5.7374,\"y\":1.2821,\"z\":87.2269},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"764523\":{\"lock\":false,\"pos\":{\"x\":-2.1932,\"y\":1.284,\"z\":89.5148},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"a21ede\":{\"lock\":false,\"pos\":{\"x\":-5.7374,\"y\":1.2827,\"z\":89.5269},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"be1507\":{\"lock\":false,\"pos\":{\"x\":-2.1932,\"y\":1.2847,\"z\":91.8148},\"rot\":{\"x\":0.0208,\"y\":269.999,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "697803", "Name": "Card", "Transform": { "posX": -5.7374, "posY": 1.28341722, "posZ": 91.8268, "rotX": 0.0208088662, "rotY": 269.9989, "rotZ": 0.0167706776, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554210, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a21ede", "Name": "Card", "Transform": { "posX": -5.7374, "posY": 1.28274393, "posZ": 89.5269, "rotX": 0.0208087843, "rotY": 269.9989, "rotZ": 0.0167707913, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554211, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "72a9af", "Name": "Card", "Transform": { "posX": -5.7374, "posY": 1.28207076, "posZ": 87.2269, "rotX": 0.020808734, "rotY": 269.9989, "rotZ": 0.016770903, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554234, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "0fa002", "Name": "Card", "Transform": { "posX": -5.7374, "posY": 1.28139746, "posZ": 84.9268, "rotX": 0.0208087265, "rotY": 269.9989, "rotZ": 0.01677086, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554235, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "707c21", "Name": "Card", "Transform": { "posX": -5.7374, "posY": 1.28072417, "posZ": 82.6268, "rotX": 0.0208087247, "rotY": 269.999146, "rotZ": 0.0167707689, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554230, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "00c1ca", "Name": "Card", "Transform": { "posX": -5.7374, "posY": 1.280051, "posZ": 80.3268, "rotX": 0.0208088756, "rotY": 269.999, "rotZ": 0.0167707056, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554231, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "be1507", "Name": "Card", "Transform": { "posX": -2.1932, "posY": 1.28470087, "posZ": 91.8148, "rotX": 0.0208087377, "rotY": 269.999023, "rotZ": 0.0167708136, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554232, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "764523", "Name": "Card", "Transform": { "posX": -2.19319987, "posY": 1.28402758, "posZ": 89.5148, "rotX": 0.0208087731, "rotY": 269.9989, "rotZ": 0.0167708546, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554233, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "34592b", "Name": "Custom_PDF", "Transform": { "posX": -3.7823, "posY": 1.47882247, "posZ": -27.0319042, "rotX": 359.9201, "rotY": 270.027771, "rotZ": 0.0168336276, "scaleX": 2.17563772, "scaleY": 1.0, "scaleZ": 2.17563772 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomPDF": { "PDFUrl": "http://cloud-3.steamusercontent.com/ugc/1799726517289017236/999A0913856FB287FCA7329503EF9C0EFFBA48BB/", "PDFPassword": "", "PDFPage": 0, "PDFPageOffset": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3701d9", "Name": "Bag", "Transform": { "posX": -10.4852009, "posY": 1.07636487, "posZ": 68.9727, "rotX": 359.979156, "rotY": 89.98023, "rotZ": 359.983215, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Utility Memory Bag - Empty", "Description": "By Directsun", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "Bag": { "Order": 0 }, "LuaScript": " -- Utility memory bag by Directsun\r\n-- Version 2.6.0\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n buttonIndexMap = {}\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1.25 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Workaround for custom PDFs\r\n if obj.Book then\r\n objPos.y = objPos.y + 0.5\r\n end\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n buttonIndexMap[obj.getGUID()] = howManyButtons\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0,0.3,-3.6}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n self.createButton({\r\n label=\"Selection\", click_function=\"editDragSelection\", function_owner=self,\r\n position={0,0.3,2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0,0.3,-4.4}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0,0.3,-5.2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(obj, move)\r\n local index = buttonIndexMap[obj.getGUID()]\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\nfunction editDragSelection(bagObj, player, remove)\r\n local selectedObjs = Player[player].getSelectedObjects()\r\n if not remove then\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n --Ignore if already in the memory list, or does not have a button\r\n if index and not memoryList[obj.getGUID()] then\r\n self.editButton({index=index, color={0,1,0,0.6}})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n end\r\n end\r\n else\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n if index and memoryList[obj.getGUID()] then\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\n end\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n position={-2.8,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n local objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n local angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n local z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"c76a95\":{\"lock\":false,\"pos\":{\"x\":-6.1055,\"y\":1.2831,\"z\":91.0953},\"rot\":{\"x\":0.0208,\"y\":269.9994,\"z\":0.0168}},\"deca6d\":{\"lock\":false,\"pos\":{\"x\":-6.1055,\"y\":1.2824,\"z\":88.7953},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "deca6d", "Name": "Card", "Transform": { "posX": -6.1054616, "posY": 1.28239608, "posZ": 88.79527, "rotX": 0.02080933, "rotY": 269.999329, "rotZ": 0.01677164, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554222, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "c76a95", "Name": "Card", "Transform": { "posX": -6.1054616, "posY": 1.28306937, "posZ": 91.0953, "rotX": 0.0208094362, "rotY": 269.9994, "rotZ": 0.0167714451, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554221, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "2b7ea2", "Name": "Bag", "Transform": { "posX": -10.4852009, "posY": 1.077711, "posZ": 73.5727, "rotX": 359.979156, "rotY": 89.97689, "rotZ": 359.983215, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Utility Memory Bag - Empty", "Description": "By Directsun", "GMNotes": "", "ColorDiffuse": { "r": 0.856, "g": 0.0999994054, "b": 0.09399941 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "Bag": { "Order": 0 }, "LuaScript": " -- Utility memory bag by Directsun\r\n-- Version 2.6.0\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n buttonIndexMap = {}\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1.25 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Workaround for custom PDFs\r\n if obj.Book then\r\n objPos.y = objPos.y + 0.5\r\n end\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n buttonIndexMap[obj.getGUID()] = howManyButtons\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0,0.3,-3.6}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n self.createButton({\r\n label=\"Selection\", click_function=\"editDragSelection\", function_owner=self,\r\n position={0,0.3,2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0,0.3,-4.4}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0,0.3,-5.2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(obj, move)\r\n local index = buttonIndexMap[obj.getGUID()]\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\nfunction editDragSelection(bagObj, player, remove)\r\n local selectedObjs = Player[player].getSelectedObjects()\r\n if not remove then\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n --Ignore if already in the memory list, or does not have a button\r\n if index and not memoryList[obj.getGUID()] then\r\n self.editButton({index=index, color={0,1,0,0.6}})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n end\r\n end\r\n else\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n if index and memoryList[obj.getGUID()] then\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\n end\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n position={-2.8,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n local objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n local angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n local z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"0190a5\":{\"lock\":false,\"pos\":{\"x\":-4.5285,\"y\":1.2832,\"z\":89.415},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"08ba2c\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.2834,\"z\":91.5663},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"2a23d9\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.282,\"z\":86.9663},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"33b9fa\":{\"lock\":false,\"pos\":{\"x\":0.4907,\"y\":1.283,\"z\":82.5191},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"3ce997\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.2827,\"z\":89.2663},\"rot\":{\"x\":0.0208,\"y\":269.9987,\"z\":0.0168}},\"4bbe32\":{\"lock\":false,\"pos\":{\"x\":-1.9207,\"y\":1.2827,\"z\":84.6547},\"rot\":{\"x\":0.0208,\"y\":270.0223,\"z\":0.0168}},\"56c9c2\":{\"lock\":false,\"pos\":{\"x\":-1.9207,\"y\":1.2841,\"z\":89.2547},\"rot\":{\"x\":0.0208,\"y\":269.9982,\"z\":0.0168}},\"67588c\":{\"lock\":false,\"pos\":{\"x\":-4.5285,\"y\":1.2825,\"z\":87.115},\"rot\":{\"x\":0.0208,\"y\":269.9998,\"z\":0.0168}},\"6a5c20\":{\"lock\":false,\"pos\":{\"x\":-1.9207,\"y\":1.282,\"z\":82.3547},\"rot\":{\"x\":0.0208,\"y\":269.9992,\"z\":0.0168}},\"7510de\":{\"lock\":false,\"pos\":{\"x\":0.4907,\"y\":1.2836,\"z\":84.8191},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"7b1b07\":{\"lock\":false,\"pos\":{\"x\":0.4907,\"y\":1.285,\"z\":89.4191},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"7e438f\":{\"lock\":false,\"pos\":{\"x\":-4.5285,\"y\":1.2811,\"z\":82.515},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"a78be3\":{\"lock\":false,\"pos\":{\"x\":-1.9207,\"y\":1.2847,\"z\":91.5547},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"b0d683\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.2794,\"z\":77.7663},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"bca759\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.2814,\"z\":84.6663},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"be202a\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.2807,\"z\":82.3663},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"c1accc\":{\"lock\":false,\"pos\":{\"x\":-4.5285,\"y\":1.2818,\"z\":84.815},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"cc4dbe\":{\"lock\":false,\"pos\":{\"x\":0.4912,\"y\":1.2856,\"z\":91.719},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"d59de5\":{\"lock\":false,\"pos\":{\"x\":0.4907,\"y\":1.2843,\"z\":87.1191},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"dcc191\":{\"lock\":false,\"pos\":{\"x\":-4.5285,\"y\":1.2838,\"z\":91.715},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"de6c9d\":{\"lock\":false,\"pos\":{\"x\":-1.9207,\"y\":1.2834,\"z\":86.9547},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"fc7a09\":{\"lock\":false,\"pos\":{\"x\":-5.5864,\"y\":1.28,\"z\":80.0663},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "b0d683", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.27935636, "posZ": 77.7663, "rotX": 0.0208085813, "rotY": 269.9995, "rotZ": 0.01677096, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Improvisation", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554239, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "fc7a09", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.28002954, "posZ": 80.0663, "rotX": 0.02080866, "rotY": 269.9995, "rotZ": 0.016770957, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Scult Flesh", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554243, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "be202a", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.28070283, "posZ": 82.3663, "rotX": 0.0208086614, "rotY": 269.9995, "rotZ": 0.0167708416, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Ross Rifle (Survivor 3)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554242, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "bca759", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.28137612, "posZ": 84.6663, "rotX": 0.0208087917, "rotY": 269.9995, "rotZ": 0.0167710986, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Dress Shoes", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554237, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "2a23d9", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.2820493, "posZ": 86.9663, "rotX": 0.0208086446, "rotY": 269.9995, "rotZ": 0.01677102, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Workboots", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554244, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3ce997", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.28272247, "posZ": 89.2663, "rotX": 0.0208088774, "rotY": 269.998718, "rotZ": 0.01677076, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554213, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "08ba2c", "Name": "Card", "Transform": { "posX": -5.5864, "posY": 1.28339577, "posZ": 91.5663, "rotX": 0.0208086986, "rotY": 269.9989, "rotZ": 0.016770836, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554212, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a78be3", "Name": "Card", "Transform": { "posX": -1.9207, "posY": 1.28472364, "posZ": 91.5547, "rotX": 0.0208085, "rotY": 269.9995, "rotZ": 0.0167711452, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "One Last Shot", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554240, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "56c9c2", "Name": "Card", "Transform": { "posX": -1.92070007, "posY": 1.28405046, "posZ": 89.2547, "rotX": 0.0208091848, "rotY": 269.9982, "rotZ": 0.01677046, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Pressing Distraction (0)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554241, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "de6c9d", "Name": "CardCustom", "Transform": { "posX": -1.92070019, "posY": 1.28337717, "posZ": 86.9547, "rotX": 0.0208087824, "rotY": 269.9993, "rotZ": 0.0167708267, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Apophenia", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554300, "SidewaysCard": false, "CustomDeck": { "5543": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757565108/58408A32791E700C5A67340B53E0782D80C191FB/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4bbe32", "Name": "CardCustom", "Transform": { "posX": -1.92070007, "posY": 1.282704, "posZ": 84.6547, "rotX": 0.02080212, "rotY": 270.022339, "rotZ": 0.0167791974, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Fight For Survival", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554400, "SidewaysCard": false, "CustomDeck": { "5544": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757566189/945C8A4E02123ABB482B3FD4C195F5893C058740/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6a5c20", "Name": "CardCustom", "Transform": { "posX": -1.9207, "posY": 1.2820307, "posZ": 82.3547, "rotX": 0.0208087377, "rotY": 269.9992, "rotZ": 0.01677091, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Pressing Distraction (2)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554500, "SidewaysCard": false, "CustomDeck": { "5545": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757568962/ED45E6B4FC511432F45D74C2A60A75F91522A835/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "972bf0", "Name": "Bag", "Transform": { "posX": -10.485199, "posY": 1.08040428, "posZ": 82.7727, "rotX": 359.979156, "rotY": 89.9804153, "rotZ": 359.983215, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Utility Memory Bag - Empty", "Description": "By Directsun", "GMNotes": "", "ColorDiffuse": { "r": 0.191999435, "g": 0.701, "b": 0.167999417 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "Bag": { "Order": 0 }, "LuaScript": " -- Utility memory bag by Directsun\r\n-- Version 2.6.0\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n buttonIndexMap = {}\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1.25 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Workaround for custom PDFs\r\n if obj.Book then\r\n objPos.y = objPos.y + 0.5\r\n end\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n buttonIndexMap[obj.getGUID()] = howManyButtons\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0,0.3,-3.6}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n self.createButton({\r\n label=\"Selection\", click_function=\"editDragSelection\", function_owner=self,\r\n position={0,0.3,2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0,0.3,-4.4}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0,0.3,-5.2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(obj, move)\r\n local index = buttonIndexMap[obj.getGUID()]\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\nfunction editDragSelection(bagObj, player, remove)\r\n local selectedObjs = Player[player].getSelectedObjects()\r\n if not remove then\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n --Ignore if already in the memory list, or does not have a button\r\n if index and not memoryList[obj.getGUID()] then\r\n self.editButton({index=index, color={0,1,0,0.6}})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n end\r\n end\r\n else\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n if index and memoryList[obj.getGUID()] then\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\n end\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n position={-2.8,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n local objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n local angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n local z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"08c117\":{\"lock\":false,\"pos\":{\"x\":-6.0577,\"y\":1.2818,\"z\":86.6331},\"rot\":{\"x\":0.0208,\"y\":270.0165,\"z\":0.0168}},\"0f9c65\":{\"lock\":false,\"pos\":{\"x\":-6.0577,\"y\":1.2791,\"z\":77.4331},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"1a10dc\":{\"lock\":false,\"pos\":{\"x\":-6.0577,\"y\":1.2804,\"z\":82.0331},\"rot\":{\"x\":0.0208,\"y\":269.9785,\"z\":0.0168}},\"232898\":{\"lock\":false,\"pos\":{\"x\":-6.0572,\"y\":1.2825,\"z\":88.9331},\"rot\":{\"x\":0.0208,\"y\":269.9987,\"z\":0.0168}},\"27de28\":{\"lock\":false,\"pos\":{\"x\":-6.0572,\"y\":1.2831,\"z\":91.2331},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}},\"490a3c\":{\"lock\":false,\"pos\":{\"x\":-6.0577,\"y\":1.2798,\"z\":79.7331},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"6f7de5\":{\"lock\":false,\"pos\":{\"x\":-6.0577,\"y\":1.2784,\"z\":75.1331},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}},\"cf1085\":{\"lock\":false,\"pos\":{\"x\":-2.4744,\"y\":1.2844,\"z\":91.2331},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"fbc27a\":{\"lock\":false,\"pos\":{\"x\":-6.0577,\"y\":1.2811,\"z\":84.3331},\"rot\":{\"x\":0.0208,\"y\":269.9663,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "6f7de5", "Name": "Card", "Transform": { "posX": -6.057751, "posY": 1.27841449, "posZ": 75.13306, "rotX": 0.0208086073, "rotY": 269.99884, "rotZ": 0.0167702343, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554227, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "0f9c65", "Name": "Card", "Transform": { "posX": -6.057751, "posY": 1.27908754, "posZ": 77.43305, "rotX": 0.0208095033, "rotY": 269.999084, "rotZ": 0.0167713333, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554223, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "490a3c", "Name": "Card", "Transform": { "posX": -6.057751, "posY": 1.27976084, "posZ": 79.73306, "rotX": 0.020808354, "rotY": 269.9989, "rotZ": 0.0167698283, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554226, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1a10dc", "Name": "Card", "Transform": { "posX": -6.05775166, "posY": 1.28043413, "posZ": 82.03306, "rotX": 0.0208157152, "rotY": 269.9785, "rotZ": 0.0167639069, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554225, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "fbc27a", "Name": "Card", "Transform": { "posX": -6.0577507, "posY": 1.28110743, "posZ": 84.33307, "rotX": 0.0208180342, "rotY": 269.9663, "rotZ": 0.016758021, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554228, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "08c117", "Name": "Card", "Transform": { "posX": -6.057751, "posY": 1.2817806, "posZ": 86.63308, "rotX": 0.0208045971, "rotY": 270.016479, "rotZ": 0.0167777166, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554229, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "232898", "Name": "Card", "Transform": { "posX": -6.05722046, "posY": 1.282454, "posZ": 88.93305, "rotX": 0.0208084248, "rotY": 269.998657, "rotZ": 0.016769696, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554214, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "27de28", "Name": "Card", "Transform": { "posX": -6.057221, "posY": 1.28312731, "posZ": 91.23308, "rotX": 0.02080847, "rotY": 269.99884, "rotZ": 0.016769873, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554211, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "cf1085", "Name": "Card", "Transform": { "posX": -2.47437, "posY": 1.2844286, "posZ": 91.23306, "rotX": 0.0208084956, "rotY": 269.999054, "rotZ": 0.0167702269, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554224, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "a01d1c", "Name": "Bag", "Transform": { "posX": -10.4852, "posY": 1.07905829, "posZ": 78.1727, "rotX": 359.979156, "rotY": 89.98013, "rotZ": 359.983215, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Utility Memory Bag - Empty", "Description": "By Directsun", "GMNotes": "", "ColorDiffuse": { "r": 0.627, "g": 0.124999411, "b": 0.941 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "Bag": { "Order": 0 }, "LuaScript": " -- Utility memory bag by Directsun\r\n-- Version 2.6.0\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n buttonIndexMap = {}\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1.25 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Workaround for custom PDFs\r\n if obj.Book then\r\n objPos.y = objPos.y + 0.5\r\n end\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n buttonIndexMap[obj.getGUID()] = howManyButtons\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0,0.3,-3.6}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n self.createButton({\r\n label=\"Selection\", click_function=\"editDragSelection\", function_owner=self,\r\n position={0,0.3,2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0,0.3,-4.4}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0,0.3,-5.2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(obj, move)\r\n local index = buttonIndexMap[obj.getGUID()]\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\nfunction editDragSelection(bagObj, player, remove)\r\n local selectedObjs = Player[player].getSelectedObjects()\r\n if not remove then\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n --Ignore if already in the memory list, or does not have a button\r\n if index and not memoryList[obj.getGUID()] then\r\n self.editButton({index=index, color={0,1,0,0.6}})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n end\r\n end\r\n else\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n if index and memoryList[obj.getGUID()] then\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\n end\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n position={-2.8,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n local objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n local angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n local z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"22099b\":{\"lock\":false,\"pos\":{\"x\":-6.4566,\"y\":1.2824,\"z\":89.3304},\"rot\":{\"x\":0.0208,\"y\":269.9987,\"z\":0.0168}},\"278aba\":{\"lock\":false,\"pos\":{\"x\":-6.4271,\"y\":1.2818,\"z\":87.0375},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"3d86b8\":{\"lock\":false,\"pos\":{\"x\":-2.8738,\"y\":1.2844,\"z\":91.6305},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"6058bb\":{\"lock\":false,\"pos\":{\"x\":0.7919,\"y\":1.2857,\"z\":91.6189},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"a4b39b\":{\"lock\":false,\"pos\":{\"x\":-6.4271,\"y\":1.2804,\"z\":82.4375},\"rot\":{\"x\":0.0208,\"y\":269.9987,\"z\":0.0168}},\"cbdcb2\":{\"lock\":false,\"pos\":{\"x\":-2.8738,\"y\":1.2837,\"z\":89.3304},\"rot\":{\"x\":0.0208,\"y\":269.999,\"z\":0.0168}},\"d0a134\":{\"lock\":false,\"pos\":{\"x\":-6.4566,\"y\":1.2831,\"z\":91.6305},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}},\"e52138\":{\"lock\":false,\"pos\":{\"x\":-6.4271,\"y\":1.2811,\"z\":84.7375},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "a4b39b", "Name": "Card", "Transform": { "posX": -6.42710066, "posY": 1.2804184, "posZ": 82.4375, "rotX": 0.020809494, "rotY": 269.9987, "rotZ": 0.0167712066, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554220, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e52138", "Name": "Card", "Transform": { "posX": -6.42710066, "posY": 1.28109157, "posZ": 84.7375, "rotX": 0.0208095871, "rotY": 269.998779, "rotZ": 0.01677155, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554219, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "278aba", "Name": "Card", "Transform": { "posX": -6.42710447, "posY": 1.28176475, "posZ": 87.03751, "rotX": 0.0208095647, "rotY": 269.999054, "rotZ": 0.0167713743, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554215, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "22099b", "Name": "Card", "Transform": { "posX": -6.456645, "posY": 1.28242528, "posZ": 89.33044, "rotX": 0.0208092146, "rotY": 269.998718, "rotZ": 0.01677109, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554214, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d0a134", "Name": "Card", "Transform": { "posX": -6.45664549, "posY": 1.28309858, "posZ": 91.63046, "rotX": 0.0208097342, "rotY": 269.998779, "rotZ": 0.0167713, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554213, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3d86b8", "Name": "Card", "Transform": { "posX": -2.87377572, "posY": 1.28439975, "posZ": 91.63047, "rotX": 0.0208095014, "rotY": 269.998932, "rotZ": 0.0167711172, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554218, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "cbdcb2", "Name": "Card", "Transform": { "posX": -2.87377572, "posY": 1.28372645, "posZ": 89.3304443, "rotX": 0.0208096113, "rotY": 269.998962, "rotZ": 0.0167713445, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554217, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6058bb", "Name": "Card", "Transform": { "posX": 0.791942656, "posY": 1.28572774, "posZ": 91.6189041, "rotX": 0.02080922, "rotY": 269.999054, "rotZ": 0.0167712867, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554216, "SidewaysCard": false, "CustomDeck": { "5542": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726608757535699/014BDA84297201E20489830D8AB35DA3ED96AD00/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": false, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "dcceb8", "Name": "Custom_Model_Bag", "Transform": { "posX": 12.2502012, "posY": 1.47267187, "posZ": 27.9861031, "rotX": 359.9201, "rotY": 270.0878, "rotZ": 0.0167516246, "scaleX": 2.21, "scaleY": 0.46, "scaleZ": 2.42 }, "Nickname": "1: The Beginning of the End", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", "DiffuseURL": "https://i.imgur.com/WSAdJUN.png", "NormalURL": "", "ColliderURL": "", "Convex": true, "MaterialIndex": 3, "TypeIndex": 6, "CustomShader": { "SpecularColor": { "r": 1.0, "g": 1.0, "b": 1.0 }, "SpecularIntensity": 0.0, "SpecularSharpness": 2.0, "FresnelStrength": 0.0 }, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "-- Utility memory bag by Directsun\r\n-- Version 2.5.2\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor + 2\r\n objPos.z = objPos.z * globalScaleFactor * 0.9\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=500, width=500,\r\n color=color,\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={-0.6,0.1,-2.1}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={-0.6,0.3,-2.5}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0.6,0.3,-2.1}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0.6,0.3,-2.9}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0.6,0.3,-2.5}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-0.6,0.3,-2.9}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj, move)\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n--- self.createButton({\r\n--- label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n--- position={-2.8,0.3,0}, rotation={0,0,0}, height=350, width=800,\r\n--- font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n--- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n\tlocal angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n\tlocal z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"01961e\":{\"lock\":false,\"pos\":{\"x\":-3.9276,\"y\":1.7636,\"z\":5.7572},\"rot\":{\"x\":359.9197,\"y\":270.0193,\"z\":180.0168}},\"0ccc8d\":{\"lock\":false,\"pos\":{\"x\":1.7009,\"y\":1.5583,\"z\":14.2781},\"rot\":{\"x\":359.9551,\"y\":225.0036,\"z\":0.0687}},\"17a00f\":{\"lock\":false,\"pos\":{\"x\":-36.7732,\"y\":1.6463,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":180.0168}},\"2c2feb\":{\"lock\":false,\"pos\":{\"x\":-26.9465,\"y\":1.619,\"z\":0.0429},\"rot\":{\"x\":359.9201,\"y\":270.0127,\"z\":0.0168}},\"2e2f73\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6281,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":180.0168}},\"52127f\":{\"lock\":false,\"pos\":{\"x\":-2.7248,\"y\":1.599,\"z\":0.3733},\"rot\":{\"x\":359.9197,\"y\":269.9999,\"z\":0.0168}},\"55012a\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6372,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":180.0168}},\"7234af\":{\"lock\":false,\"pos\":{\"x\":-33.5126,\"y\":1.6282,\"z\":0.0542},\"rot\":{\"x\":359.9201,\"y\":270.0094,\"z\":0.0169}},\"8551e1\":{\"lock\":false,\"pos\":{\"x\":-3.956,\"y\":1.5975,\"z\":-10.4412},\"rot\":{\"x\":359.9197,\"y\":270.0032,\"z\":0.0168}},\"a09177\":{\"lock\":false,\"pos\":{\"x\":-2.6886,\"y\":1.6191,\"z\":-5.0469},\"rot\":{\"x\":359.9197,\"y\":269.9995,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "964b1a", "Name": "CardCustom", "Transform": { "posX": 12.2502909, "posY": 1.9503746, "posZ": 27.986351, "rotX": 359.919983, "rotY": 270.013947, "rotZ": 0.01673465, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Arthur Lambert", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 555800, "SidewaysCard": false, "CustomDeck": { "5558": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397729804/2847571FBDCE89A3AB5D21975B41733CAA3B173F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "01961e", "Name": "Deck", "Transform": { "posX": -3.927627, "posY": 1.76363468, "posZ": 5.75720644, "rotX": 359.919739, "rotY": 270.0193, "rotZ": 180.0168, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 554600, 231720, 231721, 560800, 231720, 554600, 554600, 231722, 231723, 560900, 231721, 231722, 231722, 561200, 560500, 560600, 561300, 231724, 560500, 560600, 561100, 561300, 231724, 561100, 231727, 560800, 231727, 560700, 561200, 561400, 560700, 561500 ], "CustomDeck": { "5546": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395548236/D0A91AD0C95259544B9311BC29E8A232F31B33CE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5609": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334227738208/F137D2DD8E479829FAFC1E3E1E6E4C10BA998ECE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5605": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229215495/47313373B627194D02F4E951DCA91828E58A24E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5606": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216286/D9810FFB8E628686666F722D853EB5AE1AB1D502/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5613": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216595/84195802FDBE84707421AC798185ECFFB1056958/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5611": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069784691/902A66B7B2AFFD2CE92FA06CEB81B61A59970447/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5607": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229217842/2A757F68DC8ACB98D7625238AC03529EA58D8C86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5614": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283087742234926/118FC01E906D188F40355C1FDA90442E167F7ADC/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5615": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069942489/CB6DAEF1C6A5E848EBFE723FE9A834A2E8A94582/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "d3eba7", "Name": "CardCustom", "Transform": { "posX": -9.75297, "posY": 1.30042326, "posZ": 82.39938, "rotX": 0.0218945444, "rotY": 269.99884, "rotZ": 358.903076, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Shadows of the Past", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554600, "SidewaysCard": false, "CustomDeck": { "5401": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395548236/D0A91AD0C95259544B9311BC29E8A232F31B33CE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "16d6d6", "Name": "Card", "Transform": { "posX": -10.1506262, "posY": 1.30495775, "posZ": 83.5958, "rotX": 0.0173587129, "rotY": 269.996826, "rotZ": 358.6819, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Crypt Chill", "Description": "Hazard.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231720, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "c4ce76", "Name": "Card", "Transform": { "posX": -10.3915539, "posY": 1.350548, "posZ": 84.69617, "rotX": 0.02591374, "rotY": 270.007874, "rotZ": 358.5868, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Obscuring Fog", "Description": "Hazard.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231721, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e22d51", "Name": "CardCustom", "Transform": { "posX": -9.628587, "posY": 1.30111313, "posZ": 80.9617844, "rotX": 0.0212170761, "rotY": 269.9982, "rotZ": 358.848328, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Fear Itself", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560800, "SidewaysCard": false, "CustomDeck": { "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "59de66", "Name": "Card", "Transform": { "posX": -10.6730633, "posY": 1.34271586, "posZ": 85.931076, "rotX": 0.0212647263, "rotY": 270.000519, "rotZ": 356.72525, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Crypt Chill", "Description": "Hazard.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231720, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "2af55a", "Name": "CardCustom", "Transform": { "posX": -9.167614, "posY": 1.27795362, "posZ": 77.41759, "rotX": 0.0208084323, "rotY": 270.000031, "rotZ": 0.01677116, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Shadows of the Past", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554600, "SidewaysCard": false, "CustomDeck": { "5401": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395548236/D0A91AD0C95259544B9311BC29E8A232F31B33CE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "37aa90", "Name": "CardCustom", "Transform": { "posX": 8.872006, "posY": 1.287268, "posZ": 86.8560638, "rotX": 0.0208106935, "rotY": 269.992523, "rotZ": 0.016768489, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Shadows of the Past", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 554600, "SidewaysCard": false, "CustomDeck": { "5401": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395548236/D0A91AD0C95259544B9311BC29E8A232F31B33CE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4911f2", "Name": "Card", "Transform": { "posX": -0.8265568, "posY": 1.28508556, "posZ": 91.43341, "rotX": 0.02081029, "rotY": 269.9926, "rotZ": 0.0167674813, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Acolyte", "Description": "Humanoid. Cultist.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231722, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d36612", "Name": "Card", "Transform": { "posX": -0.86304903, "posY": 1.28299654, "posZ": 84.3420639, "rotX": 0.0207206756, "rotY": 270.299622, "rotZ": 0.0168797635, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Wizard of the Order", "Description": "Humanoid. Cultist.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231723, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7c5f0a", "Name": "CardCustom", "Transform": { "posX": 8.876222, "posY": 1.28659439, "posZ": 84.5497055, "rotX": 0.0208108276, "rotY": 269.9926, "rotZ": 0.016768679, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Consumed by the Past", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560900, "SidewaysCard": false, "CustomDeck": { "5409": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334227738208/F137D2DD8E479829FAFC1E3E1E6E4C10BA998ECE/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "50e716", "Name": "Card", "Transform": { "posX": 2.39515758, "posY": 1.28418636, "posZ": 84.36405, "rotX": 0.0208103266, "rotY": 269.992523, "rotZ": 0.0167676769, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Obscuring Fog", "Description": "Hazard.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231721, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "50fdc5", "Name": "Card", "Transform": { "posX": -0.8482597, "posY": 1.28435671, "posZ": 88.97042, "rotX": 0.02081036, "rotY": 269.992462, "rotZ": 0.0167677868, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Acolyte", "Description": "Humanoid. Cultist.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231722, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1a3fa0", "Name": "Card", "Transform": { "posX": -0.9021939, "posY": 1.28365576, "posZ": 86.64277, "rotX": 0.0208130032, "rotY": 269.984619, "rotZ": 0.0167654958, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Acolyte", "Description": "Humanoid. Cultist.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231722, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e055a1", "Name": "CardCustom", "Transform": { "posX": 5.71238, "posY": 1.28542709, "posZ": 84.4869843, "rotX": 0.0208085, "rotY": 269.999329, "rotZ": 0.016770035, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Courage Fails", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561200, "SidewaysCard": false, "CustomDeck": { "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "eb3b81", "Name": "CardCustom", "Transform": { "posX": -4.06734228, "posY": 1.28389633, "posZ": 91.39129, "rotX": 0.0208102725, "rotY": 269.992432, "rotZ": 0.0167674385, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Fear)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560500, "SidewaysCard": false, "CustomDeck": { "5605": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229215495/47313373B627194D02F4E951DCA91828E58A24E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "bb6da8", "Name": "CardCustom", "Transform": { "posX": -4.10754156, "posY": 1.28250277, "posZ": 86.68062, "rotX": 0.0208109245, "rotY": 269.9924, "rotZ": 0.0167685375, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Flee)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560600, "SidewaysCard": false, "CustomDeck": { "5606": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216286/D9810FFB8E628686666F722D853EB5AE1AB1D502/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1e9626", "Name": "CardCustom", "Transform": { "posX": -4.08784866, "posY": 1.28113949, "posZ": 81.99894, "rotX": 0.0208107475, "rotY": 269.992432, "rotZ": 0.0167682916, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Conundrum)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561300, "SidewaysCard": false, "CustomDeck": { "5609": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216595/84195802FDBE84707421AC798185ECFFB1056958/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "b347d1", "Name": "Card", "Transform": { "posX": -0.8971858, "posY": 1.28232265, "posZ": 82.08222, "rotX": 0.0208102185, "rotY": 269.992767, "rotZ": 0.0167676751, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mysterious Chanting", "Description": "Hex.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231724, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "f2facb", "Name": "CardCustom", "Transform": { "posX": -4.0051074, "posY": 1.28321242, "posZ": 88.97779, "rotX": 0.02081027, "rotY": 269.992462, "rotZ": 0.0167675912, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Fear)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560500, "SidewaysCard": false, "CustomDeck": { "5605": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229215495/47313373B627194D02F4E951DCA91828E58A24E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3c4ac4", "Name": "CardCustom", "Transform": { "posX": -4.07979155, "posY": 1.28182352, "posZ": 84.32553, "rotX": 0.02081438, "rotY": 269.979736, "rotZ": 0.0167637728, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Flee)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560600, "SidewaysCard": false, "CustomDeck": { "5606": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216286/D9810FFB8E628686666F722D853EB5AE1AB1D502/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "db1065", "Name": "CardCustom", "Transform": { "posX": 8.884253, "posY": 1.28590548, "posZ": 82.1972656, "rotX": 0.0208362229, "rotY": 269.99585, "rotZ": 0.0166712739, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Jumping at Shadows", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561100, "SidewaysCard": false, "CustomDeck": { "5611": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069784691/902A66B7B2AFFD2CE92FA06CEB81B61A59970447/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6e2542", "Name": "CardCustom", "Transform": { "posX": -4.090195, "posY": 1.28046465, "posZ": 79.69603, "rotX": 0.0208108313, "rotY": 269.990967, "rotZ": 0.016767092, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Conundrum)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561300, "SidewaysCard": false, "CustomDeck": { "5609": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229216595/84195802FDBE84707421AC798185ECFFB1056958/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d63054", "Name": "Card", "Transform": { "posX": -0.8585589, "posY": 1.28164494, "posZ": 79.71895, "rotX": 0.020810334, "rotY": 269.992554, "rotZ": 0.0167674273, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mysterious Chanting", "Description": "Hex.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231724, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "43a4ce", "Name": "CardCustom", "Transform": { "posX": 8.885437, "posY": 1.28522909, "posZ": 79.8737259, "rotX": 0.02080938, "rotY": 269.9975, "rotZ": 0.0167703815, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Jumping at Shadows", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561100, "SidewaysCard": false, "CustomDeck": { "5611": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069784691/902A66B7B2AFFD2CE92FA06CEB81B61A59970447/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "ab3719", "Name": "Card", "Transform": { "posX": -7.36404276, "posY": 1.28267539, "posZ": 91.3106842, "rotX": 0.020810239, "rotY": 269.992432, "rotZ": 0.0167675074, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Locked Door", "Description": "Obstacle.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231727, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "049ecc", "Name": "CardCustom", "Transform": { "posX": 9.849756, "posY": 2.96333313, "posZ": 29.2564564, "rotX": 359.920135, "rotY": 269.9999, "rotZ": 0.016874671, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Fear Itself", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560800, "SidewaysCard": false, "CustomDeck": { "5608": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229212543/FFCC1FA605D070D3C0D93C1C8996BBA83194F747/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4904d0", "Name": "Card", "Transform": { "posX": -7.368953, "posY": 1.28199494, "posZ": 88.99224, "rotX": 0.0208103452, "rotY": 269.9924, "rotZ": 0.016767405, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Locked Door", "Description": "Obstacle.", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 231727, "SidewaysCard": false, "CustomDeck": { "2317": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", "NumWidth": 10, "NumHeight": 7, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7c604b", "Name": "CardCustom", "Transform": { "posX": -4.05753851, "posY": 1.27980113, "posZ": 77.38898, "rotX": 0.02081037, "rotY": 269.992462, "rotZ": 0.0167677943, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Struggle)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560700, "SidewaysCard": false, "CustomDeck": { "5607": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229217842/2A757F68DC8ACB98D7625238AC03529EA58D8C86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "424a4d", "Name": "CardCustom", "Transform": { "posX": 10.0021725, "posY": 2.5252943, "posZ": 36.72199, "rotX": 0.0207983591, "rotY": 270.000977, "rotZ": 0.0167576727, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Courage Fails", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561200, "SidewaysCard": false, "CustomDeck": { "5612": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069847693/3EAE92B86378CFFBE0B15F7277934416E1FCBEE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "93400d", "Name": "CardCustom", "Transform": { "posX": 10.0334854, "posY": 2.52603483, "posZ": 39.2199936, "rotX": 0.02080982, "rotY": 269.999451, "rotZ": 0.0167704951, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Chained by the Past", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561400, "SidewaysCard": false, "CustomDeck": { "5402": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283087742234926/118FC01E906D188F40355C1FDA90442E167F7ADC/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "af1b3d", "Name": "CardCustom", "Transform": { "posX": -4.00789165, "posY": 1.27914023, "posZ": 75.06953, "rotX": 0.0208103284, "rotY": 269.992462, "rotZ": 0.01676746, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Tension (Struggle)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 560700, "SidewaysCard": false, "CustomDeck": { "5607": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1715283334229217842/2A757F68DC8ACB98D7625238AC03529EA58D8C86/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "424457", "Name": "CardCustom", "Transform": { "posX": 15.5046425, "posY": 2.012396, "posZ": 40.602356, "rotX": 351.869446, "rotY": 270.002319, "rotZ": 0.000478224334, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Memories", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561500, "SidewaysCard": false, "CustomDeck": { "5613": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069942489/CB6DAEF1C6A5E848EBFE723FE9A834A2E8A94582/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "0ccc8d", "Name": "Custom_Model_Bag", "Transform": { "posX": 1.70090032, "posY": 1.55831027, "posZ": 14.2781019, "rotX": 359.955139, "rotY": 225.0036, "rotZ": 0.06866691, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 }, "Nickname": "Set Aside", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.02148666, "g": 0.00100758043, "b": 0.02148666 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/", "NormalURL": "http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/", "ColliderURL": "", "Convex": true, "MaterialIndex": 1, "TypeIndex": 6, "CastShadows": true }, "Bag": { "Order": 0 }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "PhysicsMaterial": { "StaticFriction": 0.6, "DynamicFriction": 0.6, "Bounciness": 0.0, "FrictionCombine": 0, "BounceCombine": 0 }, "Rigidbody": { "Mass": 1.375, "Drag": 5.0, "AngularDrag": 5.0, "UseGravity": true }, "ContainedObjects": [ { "GUID": "04b373", "Name": "CardCustom", "Transform": { "posX": 1.696427, "posY": 3.65663719, "posZ": 14.2788324, "rotX": 359.9477, "rotY": 225.070618, "rotZ": 0.0585614555, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Trevor Ogden", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 556000, "SidewaysCard": false, "CustomDeck": { "5560": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395802017/BB0AD40A88949AE99DF4E971B0667E762FDA86FC/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395801778/B8F509A75ADA1F066E6C929D15E46D8C7A74D241/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "99e37c", "Name": "CardCustom", "Transform": { "posX": 1.69642258, "posY": 3.656737, "posZ": 14.2788315, "rotX": 359.9475, "rotY": 225.106232, "rotZ": 0.0580173545, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Copper Orrery", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 563200, "SidewaysCard": false, "CustomDeck": { "5632": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395802650/315EAAAEDA77DC86EE8769111DF379AD5E360632/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395802930/64126B17002E77F8E213742A664F809098AB7CAD/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a1991e", "Name": "Deck", "Transform": { "posX": 1.69653642, "posY": 3.72228551, "posZ": 14.27885, "rotX": 359.980621, "rotY": 225.000046, "rotZ": 180.050735, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Chronomancy Encounter Set", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 562600, 562600, 562600, 562800, 562800, 562800, 562700, 562700, 562900, 562900, 563000, 563100 ], "CustomDeck": { "5626": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071840592/1E89420EDF6B5B650477116D8073EA478A5996B1/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5628": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071888445/3D81C832C2A09417E0A4F564842060531C181EE5/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5627": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071887058/87F7BC3C6B0F18F9ABAB5EA7A9D17FC494307BEF/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5629": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071898673/0388A96BC2FB6382D901AA0D3914DB0AC86C1D83/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5630": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071934573/D02664ACEB7180AB85288D66732D0E5D87130778/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5631": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071941078/5C294EB20925972B0DE84DA8B5A1328DFD3101E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "993729", "Name": "CardCustom", "Transform": { "posX": 3.97019982, "posY": 1.28808916, "posZ": 95.74282, "rotX": 0.0208037868, "rotY": 270.015228, "rotZ": 0.0167762674, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "History Repeats", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562600, "SidewaysCard": false, "CustomDeck": { "5626": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071840592/1E89420EDF6B5B650477116D8073EA478A5996B1/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "b2b887", "Name": "CardCustom", "Transform": { "posX": 3.98576355, "posY": 1.28741992, "posZ": 93.43733, "rotX": 0.0208031423, "rotY": 270.016663, "rotZ": 0.0167764369, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "History Repeats", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562600, "SidewaysCard": false, "CustomDeck": { "5626": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071840592/1E89420EDF6B5B650477116D8073EA478A5996B1/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "4fc63c", "Name": "CardCustom", "Transform": { "posX": 4.003375, "posY": 1.2867043, "posZ": 90.9708252, "rotX": 0.0208040383, "rotY": 270.015961, "rotZ": 0.0167769548, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "History Repeats", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562600, "SidewaysCard": false, "CustomDeck": { "5626": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071840592/1E89420EDF6B5B650477116D8073EA478A5996B1/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6fb24a", "Name": "CardCustom", "Transform": { "posX": 3.99421144, "posY": 1.28601742, "posZ": 88.63547, "rotX": 0.0208110251, "rotY": 269.989929, "rotZ": 0.01676657, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Reflections", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562800, "SidewaysCard": false, "CustomDeck": { "5628": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071888445/3D81C832C2A09417E0A4F564842060531C181EE5/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "dde308", "Name": "CardCustom", "Transform": { "posX": 4.0081, "posY": 1.2853173, "posZ": 86.22666, "rotX": 0.020811297, "rotY": 269.989227, "rotZ": 0.0167663712, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Reflections", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562800, "SidewaysCard": false, "CustomDeck": { "5628": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071888445/3D81C832C2A09417E0A4F564842060531C181EE5/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "72297c", "Name": "CardCustom", "Transform": { "posX": 3.98723388, "posY": 1.28462064, "posZ": 83.87255, "rotX": 0.02081122, "rotY": 269.990936, "rotZ": 0.0167678464, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Future Reflections", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562800, "SidewaysCard": false, "CustomDeck": { "5628": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071888445/3D81C832C2A09417E0A4F564842060531C181EE5/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "bb4fc0", "Name": "CardCustom", "Transform": { "posX": 4.102865, "posY": 1.28400576, "posZ": 81.62834, "rotX": 0.0208129343, "rotY": 269.983856, "rotZ": 0.0167646315, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Hasten", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562700, "SidewaysCard": false, "CustomDeck": { "5627": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071887058/87F7BC3C6B0F18F9ABAB5EA7A9D17FC494307BEF/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "33617c", "Name": "CardCustom", "Transform": { "posX": 4.12787247, "posY": 1.28334689, "posZ": 79.3464661, "rotX": 0.0208086818, "rotY": 269.997864, "rotZ": 0.0167694874, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Hasten", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562700, "SidewaysCard": false, "CustomDeck": { "5627": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071887058/87F7BC3C6B0F18F9ABAB5EA7A9D17FC494307BEF/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "e205c0", "Name": "CardCustom", "Transform": { "posX": 4.14972162, "posY": 1.28260207, "posZ": 76.77484, "rotX": 0.0208085012, "rotY": 270.0003, "rotZ": 0.0167709254, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Chronological Distortions", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562900, "SidewaysCard": false, "CustomDeck": { "5629": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071898673/0388A96BC2FB6382D901AA0D3914DB0AC86C1D83/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a20544", "Name": "CardCustom", "Transform": { "posX": 4.14471, "posY": 1.28192234, "posZ": 74.4591, "rotX": 0.02080784, "rotY": 270.0003, "rotZ": 0.0167704374, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Chronological Distortions", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562900, "SidewaysCard": false, "CustomDeck": { "5629": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071898673/0388A96BC2FB6382D901AA0D3914DB0AC86C1D83/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "62a667", "Name": "CardCustom", "Transform": { "posX": 4.152201, "posY": 1.28123724, "posZ": 72.1089554, "rotX": 0.0208207089, "rotY": 269.9567, "rotZ": 0.0167546086, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Haven't I Seen This Before", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563000, "SidewaysCard": false, "CustomDeck": { "5630": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071934573/D02664ACEB7180AB85288D66732D0E5D87130778/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7b195b", "Name": "CardCustom", "Transform": { "posX": 4.164985, "posY": 1.28055072, "posZ": 69.74807, "rotX": 0.02080555, "rotY": 270.008575, "rotZ": 0.016773684, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Time Stop", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563100, "SidewaysCard": false, "CustomDeck": { "5631": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352071941078/5C294EB20925972B0DE84DA8B5A1328DFD3101E4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1285163903138608176/A372A735C4BCA35FE128AD9388BD116ECDC282F0/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "67fb20", "Name": "CardCustom", "Transform": { "posX": 1.69642043, "posY": 3.65666, "posZ": 14.2788191, "rotX": 359.947632, "rotY": 224.994278, "rotZ": 180.058533, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "The Red Door", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 555900, "SidewaysCard": false, "CustomDeck": { "5559": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395539944/77F67997795EF37A312F05A855D258CA7FFB5581/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395539585/263D62D68A6099A9D0492984CF721AC4F165B0C7/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "3380bc", "Name": "Deck", "Transform": { "posX": 1.69643319, "posY": 3.68336916, "posZ": 14.2788048, "rotX": 359.947449, "rotY": 225.008209, "rotZ": 180.058563, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Dark Rooms (Shuffle before using)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 541300, 541400, 561600, 541500 ], "CustomDeck": { "5413": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395537714/1E15FC791CBACCBFB570AB0F66309387A687E0A4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5414": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395535410/90F64F1014D87D98BCA15547C1F139D368ACEFE3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5616": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959657196/65156722EDA6F5740C42EBDB1A38AB2AC4040D36/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "5415": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395536709/4B735BEDDB55A4AB3C734C7117F88EA44CFC682C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "aa4a8f", "Name": "CardCustom", "Transform": { "posX": -23.6765423, "posY": 1.65654349, "posZ": -7.7001214, "rotX": 359.864136, "rotY": 270.009644, "rotZ": 180.14711, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Dark Room", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 541300, "SidewaysCard": false, "CustomDeck": { "5413": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395537714/1E15FC791CBACCBFB570AB0F66309387A687E0A4/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "b6ebee", "Name": "CardCustom", "Transform": { "posX": -23.6763687, "posY": 1.62597322, "posZ": -7.700593, "rotX": 359.919, "rotY": 270.018, "rotZ": 180.006836, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Dark Room", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 541400, "SidewaysCard": false, "CustomDeck": { "5414": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395535410/90F64F1014D87D98BCA15547C1F139D368ACEFE3/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "6d94f6", "Name": "CardCustom", "Transform": { "posX": -23.676569, "posY": 1.660438, "posZ": 7.56995773, "rotX": 359.964569, "rotY": 269.983734, "rotZ": 180.046432, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Dark Room", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 561600, "SidewaysCard": false, "CustomDeck": { "5613": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959657196/65156722EDA6F5740C42EBDB1A38AB2AC4040D36/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d78524", "Name": "CardCustom", "Transform": { "posX": -23.6768265, "posY": 1.63012218, "posZ": 7.57100773, "rotX": 359.921844, "rotY": 270.044464, "rotZ": 180.028625, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Dark Room", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 541500, "SidewaysCard": false, "CustomDeck": { "5415": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395536709/4B735BEDDB55A4AB3C734C7117F88EA44CFC682C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788397502322/73E2B60FAB8C95F793EBD7D3F0A4E0ACE69A5724/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "bb8b5c", "Name": "CardCustom", "Transform": { "posX": 1.6964339, "posY": 3.66878772, "posZ": 14.2788334, "rotX": 359.9551, "rotY": 225.000122, "rotZ": 0.0686765, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Arthur Lambert (Stalwart Companion)", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562600, "SidewaysCard": false, "CustomDeck": { "5626": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006819327/47F2242DDCE3F870DFB6D9A90BFE6DED02952DA1/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] }, { "GUID": "17a00f", "Name": "CardCustom", "Transform": { "posX": -36.7732, "posY": 1.646329, "posZ": -0.0299998056, "rotX": 359.9201, "rotY": 270.000061, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Mansion of the Woods", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 541200, "SidewaysCard": false, "CustomDeck": { "5412": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395524645/4E90406AA0059CEBEED12A65399AD76FD2D0D9E7/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395525827/9400EAB35BC38A91C963C56E8CD0F9429DBC555E/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "2c2feb", "Name": "Custom_Tile", "Transform": { "posX": -26.9465, "posY": 1.61904287, "posZ": 0.04289972, "rotX": 359.9201, "rotY": 270.0127, "rotZ": 0.0168495178, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "2e2f73", "Name": "CardCustom", "Transform": { "posX": -23.6765, "posY": 1.62806654, "posZ": -0.0299998876, "rotX": 359.9201, "rotY": 269.9999, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Second Story Balcony", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 541100, "SidewaysCard": false, "CustomDeck": { "5411": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395529961/4FCF954C0235C46F7D789297DC62101C0BDC0BE0/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395529579/706992FBE4702F5F56C895F2EAC90C5D8F1B264B/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "52127f", "Name": "CardCustom", "Transform": { "posX": -2.72480035, "posY": 1.59899271, "posZ": 0.373299658, "rotX": 359.919739, "rotY": 269.9999, "rotZ": 0.01683678, "scaleX": 0.7146597, "scaleY": 1.0, "scaleZ": 0.7146597 }, "Nickname": "Agenda 1a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561600, "SidewaysCard": false, "CustomDeck": { "5616": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1751306451153692016/6C21233D55397B560BD5B0F06C1E8CAD5A11DC68/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069972518/4C6B3026B880BF2EF8186A15C115A4ABDD5F1460/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "55012a", "Name": "CardCustom", "Transform": { "posX": -30.2242, "posY": 1.6371969, "posZ": -0.0300000049, "rotX": 359.9201, "rotY": 269.9999, "rotZ": 180.01683, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Grand Hall", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": true, "CardID": 561700, "SidewaysCard": false, "CustomDeck": { "5617": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395527748/3674EBD0CF0851ABEE02527F97155A4F6E0F98CA/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648846788395527400/2ACE007A92B37824B66E4C7D1D6333396275D220/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7234af", "Name": "Custom_Tile", "Transform": { "posX": -33.5126, "posY": 1.62820208, "posZ": 0.05419972, "rotX": 359.9201, "rotY": 270.0094, "rotZ": 0.01685475, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/vppt2my.png", "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "States": { "2": { "GUID": "44b0c5", "Name": "Custom_Tile", "Transform": { "posX": -39.7933121, "posY": 1.63758957, "posZ": 2.038383, "rotX": 359.9201, "rotY": 269.9961, "rotZ": 0.0168742146, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/HyfE8m8.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, "3": { "GUID": "5b38c6", "Name": "Custom_Tile", "Transform": { "posX": -38.8217163, "posY": 1.99356019, "posZ": 0.4159239, "rotX": 359.9201, "rotY": 272.9828, "rotZ": 0.01687373, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.6045295, "g": 0.6045295, "b": 0.6045295 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomImage": { "ImageURL": "https://i.imgur.com/dHKBLoD.png", "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", "ImageScalar": 1.0, "WidthScale": 0.0, "CustomTile": { "Type": 3, "Thickness": 0.1, "Stackable": false, "Stretch": true } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } } }, { "GUID": "8551e1", "Name": "CardCustom", "Transform": { "posX": -3.95600033, "posY": 1.59753942, "posZ": -10.4412012, "rotX": 359.919739, "rotY": 270.003174, "rotZ": 0.01683277, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "The Beginning of the End", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561800, "SidewaysCard": false, "CustomDeck": { "5618": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069977170/62C83C9BC2FD8EA0AA1C2811D48E65B713310055/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1799726352069977459/163B51200BB0A0C5DA220A552BE4B751CBD59BD3/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a09177", "Name": "Deck", "Transform": { "posX": -2.688627, "posY": 1.61911714, "posZ": -5.0468955, "rotX": 359.919739, "rotY": 269.9995, "rotZ": 0.0168386735, "scaleX": 0.714955747, "scaleY": 1.0, "scaleZ": 0.714955747 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": false, "SidewaysCard": false, "DeckIDs": [ 561000, 266400, 266500 ], "CustomDeck": { "5610": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959607213/4388D0853D52A04630B9E160F5751B78E29BFF6A/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006802976/06B170C813C208AD4632017E3DE296B1A6F0395F/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "2664": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959608037/B23B215AFE13664BDBF32F840970160D36183C5F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006803657/EA2DB6FDF271C05A9B21FA132BCE0A9C4BA6D7B6/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 }, "2665": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006804053/93FA908928325D2880124BCD2BF1036ECA488FE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959609277/9B95F590507195A9A5632F7A63257F2E3BF33414/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "", "ContainedObjects": [ { "GUID": "69defb", "Name": "CardCustom", "Transform": { "posX": -2.688514, "posY": 1.59752035, "posZ": -5.04690266, "rotX": 359.918152, "rotY": 269.9996, "rotZ": 0.0243800972, "scaleX": 0.714955747, "scaleY": 1.0, "scaleZ": 0.714955747 }, "Nickname": "Act 3a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 561000, "SidewaysCard": false, "CustomDeck": { "5610": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959607213/4388D0853D52A04630B9E160F5751B78E29BFF6A/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006802976/06B170C813C208AD4632017E3DE296B1A6F0395F/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "1bcaec", "Name": "CardCustom", "Transform": { "posX": -2.68847537, "posY": 1.62784171, "posZ": -5.048433, "rotX": 359.8358, "rotY": 270.000122, "rotZ": 359.915436, "scaleX": 0.714955747, "scaleY": 1.0, "scaleZ": 0.714955747 }, "Nickname": "Act 2a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 266400, "SidewaysCard": false, "CustomDeck": { "2664": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959608037/B23B215AFE13664BDBF32F840970160D36183C5F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006803657/EA2DB6FDF271C05A9B21FA132BCE0A9C4BA6D7B6/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9ba0ff", "Name": "CardCustom", "Transform": { "posX": -2.68853021, "posY": 1.66215038, "posZ": -5.04852152, "rotX": 359.919342, "rotY": 270.0004, "rotZ": 0.0161252581, "scaleX": 0.714955747, "scaleY": 1.0, "scaleZ": 0.714955747 }, "Nickname": "Act 1a", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 266500, "SidewaysCard": false, "CustomDeck": { "2665": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1754685726006804053/93FA908928325D2880124BCD2BF1036ECA488FE8/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1648847093959609277/9B95F590507195A9A5632F7A63257F2E3BF33414/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] } ], "AttachedDecals": [ { "Transform": { "posX": -0.0021877822, "posY": -0.08963572, "posZ": -0.00288731651, "rotX": 270.0, "rotY": 359.869568, "rotZ": 0.0, "scaleX": 2.00000215, "scaleY": 2.00000238, "scaleZ": 2.00000262 }, "CustomDecal": { "Name": "dunwich_back", "ImageURL": "http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/", "Size": 7.4 } } ] }, { "GUID": "26c67a", "Name": "Custom_Model", "Transform": { "posX": 0.5741889, "posY": 1.62768066, "posZ": -9.865729, "rotX": 359.919739, "rotY": 270.002, "rotZ": 0.0168216769, "scaleX": 0.5000004, "scaleY": 0.5000004, "scaleZ": 0.5000004 }, "Nickname": "Custom Data Helper", "Description": "Include this in custom content for clue spawning!", "GMNotes": "", "ColorDiffuse": { "r": 1.0, "g": 1.0, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "CustomMesh": { "MeshURL": "http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/", "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/254843371583187306/6844B833AD55B9A34095067B201B311E1348325F/", "NormalURL": "", "ColliderURL": "http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/", "Convex": true, "MaterialIndex": 2, "TypeIndex": 0, "CustomShader": { "SpecularColor": { "r": 0.7222887, "g": 0.507659256, "b": 0.339915335 }, "SpecularIntensity": 0.4, "SpecularSharpness": 7.0, "FresnelStrength": 0.0 }, "CastShadows": true }, "LuaScript": "-- set true to enable debug logging\r\nDEBUG = false\r\n\r\nfunction log(message)\r\n if DEBUG then\r\n print(message)\r\n end\r\nend\r\n\r\n--[[\r\nKnown locations and clues. We check this to determine if we should\r\natttempt to spawn clues, first we look for _ and if\r\nwe find nothing we look for \r\nformat is [location_guid -> clueCount]\r\n]]\r\nLOCATIONS_DATA_JSON = [[\r\n{\r\n \"Grand Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\r\n \"Second Story Balcony\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\r\n \"Dark Room\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\r\n \"The Red Door\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"front\"},\n \"Engine Room\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"front\"},\n \"Control Room\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Genetics Archive\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Operation Theater\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Weapon Development\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Body Disposal\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"}\r\r\n}\r\n]]\r\n\r\n\r\nPLAYER_CARD_DATA_JSON = [[\r\n{\r\n \"Arthur Lambert (Stalwart Companion)\": {\r\n \"tokenType\": \"resource\",\r\n \"tokenCount\": 3\r\n },\r\n \"Tool Belt (3)\": {\r\n \"tokenType\": \"resource\",\r\n \"tokenCount\": 4\r\n },\r\n \"Yithian Rifle\": {\r\n \"tokenType\": \"resource\",\r\n \"tokenCount\": 3\r\n },\r\n \"xxx\": {\r\n \"tokenType\": \"resource\",\r\n \"tokenCount\": 3\r\n }\r\n}\r\n]]\r\n\r\nHIDDEN_CARD_DATA = {\r\n \"Unpleasant Card (Doom)\",\r\n \"Unpleasant Card (Gloom)\",\r\n \"The Case of the Scarlet DOOOOOM!\"\r\n}\r\n\r\nLOCATIONS_DATA = JSON.decode(LOCATIONS_DATA_JSON)\r\nPLAYER_CARD_DATA = JSON.decode(PLAYER_CARD_DATA_JSON)\r\n\r\nfunction onload(save_state)\r\n local playArea = getObjectFromGUID('721ba2')\r\n playArea.call(\"updateLocations\", {self.getGUID()})\r\n local playerMatWhite = getObjectFromGUID('8b081b')\r\n playerMatWhite.call(\"updatePlayerCards\", {self.getGUID()})\r\n local playerMatOrange = getObjectFromGUID('bd0ff4')\r\n playerMatOrange.call(\"updatePlayerCards\", {self.getGUID()})\r\n local playerMatGreen = getObjectFromGUID('383d8b')\r\n playerMatGreen.call(\"updatePlayerCards\", {self.getGUID()})\r\n local playerMatRed = getObjectFromGUID('0840d5')\r\n playerMatRed.call(\"updatePlayerCards\", {self.getGUID()})\r\n local dataHelper = getObjectFromGUID('708279')\r\n dataHelper.call(\"updateHiddenCards\", {self.getGUID()})\r\nend\r\n", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "fc34bd", "Name": "Bag", "Transform": { "posX": -10.4561014, "posY": 1.0830822, "posZ": 91.8885, "rotX": 359.979156, "rotY": 89.9725342, "rotZ": 359.983215, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "Utility Memory Bag - Empty", "Description": "By Directsun", "GMNotes": "", "ColorDiffuse": { "r": 0.121568017, "g": 0.5294118, "b": 1.0 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, "MaterialIndex": -1, "MeshIndex": -1, "Bag": { "Order": 0 }, "LuaScript": " -- Utility memory bag by Directsun\r\n-- Version 2.6.0\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n buttonIndexMap = {}\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1.25 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Workaround for custom PDFs\r\n if obj.Book then\r\n objPos.y = objPos.y + 0.5\r\n end\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=1000, width=1000,\r\n color=color,\r\n })\r\n buttonIndexMap[obj.getGUID()] = howManyButtons\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0,0.3,-3.6}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n self.createButton({\r\n label=\"Selection\", click_function=\"editDragSelection\", function_owner=self,\r\n position={0,0.3,2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0,0.3,-4.4}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0,0.3,-5.2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(obj, move)\r\n local index = buttonIndexMap[obj.getGUID()]\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\nfunction editDragSelection(bagObj, player, remove)\r\n local selectedObjs = Player[player].getSelectedObjects()\r\n if not remove then\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n --Ignore if already in the memory list, or does not have a button\r\n if index and not memoryList[obj.getGUID()] then\r\n self.editButton({index=index, color={0,1,0,0.6}})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n end\r\n end\r\n else\r\n for _, obj in ipairs(selectedObjs) do\r\n local index = buttonIndexMap[obj.getGUID()]\r\n if index and memoryList[obj.getGUID()] then\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\n end\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n position={-2.8,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n local objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n local angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n local z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", "LuaScriptState": "{\"ml\":{\"263977\":{\"lock\":false,\"pos\":{\"x\":-6.2219,\"y\":1.2806,\"z\":82.8428},\"rot\":{\"x\":0.0208,\"y\":269.9883,\"z\":0.0168}},\"58834b\":{\"lock\":false,\"pos\":{\"x\":-2.6385,\"y\":1.2826,\"z\":85.1428},\"rot\":{\"x\":0.0208,\"y\":270.0191,\"z\":0.0168}},\"7f8bca\":{\"lock\":false,\"pos\":{\"x\":1.0272,\"y\":1.2859,\"z\":92.0312},\"rot\":{\"x\":0.0208,\"y\":269.9765,\"z\":0.0168}},\"85368d\":{\"lock\":false,\"pos\":{\"x\":-2.6385,\"y\":1.2819,\"z\":82.8428},\"rot\":{\"x\":0.0208,\"y\":270.016,\"z\":0.0168}},\"8f537c\":{\"lock\":false,\"pos\":{\"x\":-6.2214,\"y\":1.2833,\"z\":92.0428},\"rot\":{\"x\":0.0208,\"y\":269.9827,\"z\":0.0168}},\"9647b9\":{\"lock\":false,\"pos\":{\"x\":1.5617,\"y\":1.2853,\"z\":89.1174},\"rot\":{\"x\":0.0208,\"y\":270.0218,\"z\":0.0168}},\"9b0fc0\":{\"lock\":false,\"pos\":{\"x\":-6.2219,\"y\":1.282,\"z\":87.4428},\"rot\":{\"x\":0.0208,\"y\":269.9956,\"z\":0.0168}},\"a3a545\":{\"lock\":false,\"pos\":{\"x\":-2.6385,\"y\":1.2833,\"z\":87.4428},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"a8dc90\":{\"lock\":false,\"pos\":{\"x\":-2.6385,\"y\":1.2812,\"z\":80.5428},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}},\"ac52e4\":{\"lock\":false,\"pos\":{\"x\":1.5617,\"y\":1.2853,\"z\":89.1174},\"rot\":{\"x\":0.0208,\"y\":270.0218,\"z\":0.0168}},\"ad4856\":{\"lock\":false,\"pos\":{\"x\":-2.6385,\"y\":1.2839,\"z\":89.7428},\"rot\":{\"x\":0.0208,\"y\":269.9921,\"z\":0.0168}},\"b02d11\":{\"lock\":false,\"pos\":{\"x\":-6.2214,\"y\":1.2826,\"z\":89.7428},\"rot\":{\"x\":0.0208,\"y\":270.0052,\"z\":0.0168}},\"d36695\":{\"lock\":false,\"pos\":{\"x\":-2.6385,\"y\":1.2846,\"z\":92.0428},\"rot\":{\"x\":0.0208,\"y\":269.9811,\"z\":0.0168}},\"de744e\":{\"lock\":false,\"pos\":{\"x\":-6.2219,\"y\":1.2813,\"z\":85.1428},\"rot\":{\"x\":0.0208,\"y\":269.9753,\"z\":0.0168}}}}", "XmlUI": "", "ContainedObjects": [ { "GUID": "8f537c", "Name": "CardCustom", "Transform": { "posX": -6.2214, "posY": 1.28330457, "posZ": 92.0428, "rotX": 0.0208135843, "rotY": 269.982727, "rotZ": 0.0167647749, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563900, "SidewaysCard": false, "CustomDeck": { "5639": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289439337/8DA70CB9E67F1E8445B61C2069E6D58FA72F308B/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "b02d11", "Name": "CardCustom", "Transform": { "posX": -6.2214, "posY": 1.2826314, "posZ": 89.7428, "rotX": 0.0208069067, "rotY": 270.0052, "rotZ": 0.0167731, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563800, "SidewaysCard": false, "CustomDeck": { "5638": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289437140/15A220205BD7CB44AFAF2B53AD70B1A97B0A1948/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "9b0fc0", "Name": "CardCustom", "Transform": { "posX": -6.2219, "posY": 1.2819581, "posZ": 87.4428, "rotX": 0.0208097361, "rotY": 269.9956, "rotZ": 0.0167694632, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563700, "SidewaysCard": false, "CustomDeck": { "5637": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289430968/4385ABA2FFEB704F547BA5C22703259B1EB91AD5/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "de744e", "Name": "CardCustom", "Transform": { "posX": -6.2219, "posY": 1.28128481, "posZ": 85.1428, "rotX": 0.0208157115, "rotY": 269.9753, "rotZ": 0.0167621169, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563500, "SidewaysCard": false, "CustomDeck": { "5635": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289426812/D6239EDFE88A7BFC16342CBE9184BF23EA7D2315/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "263977", "Name": "CardCustom", "Transform": { "posX": -6.2219, "posY": 1.28061152, "posZ": 82.8428, "rotX": 0.02081189, "rotY": 269.988342, "rotZ": 0.0167668182, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563000, "SidewaysCard": false, "CustomDeck": { "5630": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289419885/9E36317AEEAA972754B127CB4A08FEBFCD18580C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a8dc90", "Name": "CardCustom", "Transform": { "posX": -2.6385, "posY": 1.28123963, "posZ": 80.5428, "rotX": 0.0208087843, "rotY": 269.9988, "rotZ": 0.0167706944, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562800, "SidewaysCard": false, "CustomDeck": { "5628": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289415459/F8944EC75F4DA72062C947EB26EA3552DE5E79A6/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "85368d", "Name": "CardCustom", "Transform": { "posX": -2.63849974, "posY": 1.28191292, "posZ": 82.8428, "rotX": 0.02080393, "rotY": 270.016, "rotZ": 0.0167767629, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562900, "SidewaysCard": false, "CustomDeck": { "5629": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289417051/0B6DA40EA8B7865520DCA17DADCCF8A012A22ED9/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "58834b", "Name": "CardCustom", "Transform": { "posX": -2.63850045, "posY": 1.28258622, "posZ": 85.1428, "rotX": 0.0208029374, "rotY": 270.019135, "rotZ": 0.0167778768, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 562700, "SidewaysCard": false, "CustomDeck": { "5627": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289415049/8A66CBE6AFD0B298B655339C5AC6AD17CF8BF983/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "a3a545", "Name": "CardCustom", "Transform": { "posX": -2.63849926, "posY": 1.28325951, "posZ": 87.4428, "rotX": 0.0208085775, "rotY": 269.9995, "rotZ": 0.0167709384, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563400, "SidewaysCard": false, "CustomDeck": { "5634": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289425235/44DF2026280B4B0562331BCE7AEC40E9CE883B0C/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "ad4856", "Name": "CardCustom", "Transform": { "posX": -2.6385, "posY": 1.28393269, "posZ": 89.7428, "rotX": 0.0208108034, "rotY": 269.992126, "rotZ": 0.0167683046, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 564000, "SidewaysCard": false, "CustomDeck": { "5640": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726676784580192/990DBF1C384F0A940CFE18EF546270158E801294/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "d36695", "Name": "CardCustom", "Transform": { "posX": -2.63849974, "posY": 1.28460586, "posZ": 92.0428, "rotX": 0.0208140276, "rotY": 269.9811, "rotZ": 0.0167644024, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563200, "SidewaysCard": false, "CustomDeck": { "5632": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289422379/1C21414BB97C2388185DD8578410636E66C1F39F/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" }, { "GUID": "7f8bca", "Name": "CardCustom", "Transform": { "posX": 1.0272, "posY": 1.28593373, "posZ": 92.0312, "rotX": 0.020815447, "rotY": 269.976532, "rotZ": 0.0167628415, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, "g": 0.713235259, "b": 0.713235259 }, "LayoutGroupSortIndex": 0, "Value": 0, "Locked": false, "Grid": true, "Snap": true, "IgnoreFoW": false, "MeasureMovement": false, "DragSelectable": true, "Autoraise": true, "Sticky": true, "Tooltip": true, "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, "CardID": 563300, "SidewaysCard": false, "CustomDeck": { "5633": { "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1799726517289423991/1F7C39B269484D5A545282702C1F1F1A6165F961/", "BackURL": "http://cloud-3.steamusercontent.com/ugc/1036337557497090386/B1BF31EBC5D92EC3A51B6D3B56ABFB232D2636C5/", "NumWidth": 1, "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false, "Type": 0 } }, "LuaScript": "", "LuaScriptState": "", "XmlUI": "" } ] } ] }