SCED/content/curated/en/investigators_elspeth_baudin.json
2023-06-26 10:13:37 +02:00

511 lines
32 KiB
JSON

{
"GUID": "84c153",
"Name": "Custom_Model_Bag",
"Transform": {
"posX": 0.2699076,
"posY": 1.4896065,
"posZ": 28.7769928,
"rotX": 359.920135,
"rotY": 269.993256,
"rotZ": 0.0168865565,
"scaleX": 1.3633405,
"scaleY": 0.2837723,
"scaleZ": 1.49288893
},
"Nickname": "Elspeth Baudin Custom Investigator",
"Description": "By Donelloth. As Seen in Bad Blood!",
"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": "http://cloud-3.steamusercontent.com/ugc/1655599785039299268/52DB5C3A0E600D6AECB0B851ECF90C5B3D016421/",
"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",
"LuaScriptState": "{\"ml\":{\"1b6773\":{\"lock\":false,\"pos\":{\"x\":-19.5467624664307,\"y\":1.31306660175323,\"z\":-65.7938537597656},\"rot\":{\"x\":0.0208032466471195,\"y\":270.018371582031,\"z\":0.0167777892202139}},\"41424c\":{\"lock\":false,\"pos\":{\"x\":-22.5805168151855,\"y\":1.31255412101746,\"z\":-63.7807502746582},\"rot\":{\"x\":0.020810954272747,\"y\":269.991149902344,\"z\":0.0167674999684095}},\"647b40\":{\"lock\":false,\"pos\":{\"x\":-22.6028251647949,\"y\":1.31024301052094,\"z\":-71.6484832763672},\"rot\":{\"x\":0.0208107922226191,\"y\":269.991149902344,\"z\":0.016767431050539}},\"9a67bf\":{\"lock\":false,\"pos\":{\"x\":-22.6425685882568,\"y\":1.30951547622681,\"z\":-74.0846176147461},\"rot\":{\"x\":0.0208108704537153,\"y\":269.9912109375,\"z\":0.0167674385011196}},\"9e4397\":{\"lock\":false,\"pos\":{\"x\":-22.5964412689209,\"y\":1.31179511547089,\"z\":-66.3536529541016},\"rot\":{\"x\":0.0208110846579075,\"y\":269.99072265625,\"z\":0.0167671237140894}},\"d467b7\":{\"lock\":false,\"pos\":{\"x\":-19.7298603057861,\"y\":1.31206059455872,\"z\":-69.0034790039063},\"rot\":{\"x\":0.0207998398691416,\"y\":270.028869628906,\"z\":0.0167793389409781}},\"dd312f\":{\"lock\":false,\"pos\":{\"x\":-19.5082302093506,\"y\":1.31121933460236,\"z\":-72.1525039672852},\"rot\":{\"x\":0.0167680606245995,\"y\":179.991668701172,\"z\":359.979187011719}},\"e43300\":{\"lock\":false,\"pos\":{\"x\":-22.6156921386719,\"y\":1.31099140644073,\"z\":-69.0756149291992},\"rot\":{\"x\":0.0208105240017176,\"y\":269.993041992188,\"z\":0.0167687423527241}}}}",
"XmlUI": "",
"ContainedObjects": [
{
"GUID": "d467b7",
"Name": "CardCustom",
"Transform": {
"posX": -19.72986,
"posY": 1.31206059,
"posZ": -69.00348,
"rotX": 0.02079984,
"rotY": 270.02887,
"rotZ": 0.0167793389,
"scaleX": 0.547053337,
"scaleY": 1.0,
"scaleZ": 0.547053337
},
"Nickname": "",
"Description": "",
"GMNotes": "",
"ColorDiffuse": {
"r": 0.713235259,
"g": 0.713235259,
"b": 0.713235259
},
"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": true,
"Hands": true,
"CardID": 600,
"SidewaysCard": false,
"CustomDeck": {
"6": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899202000/DC7BD24E9A4B63E64DEE9CB5EF831FB739EC386D/",
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899204561/0FDBAC27077948FE3DF583BE7C5B10C317F6C455/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "9e4397",
"Name": "CardCustom",
"Transform": {
"posX": -22.5964413,
"posY": 1.31179512,
"posZ": -66.35365,
"rotX": 0.0208110847,
"rotY": 269.990723,
"rotZ": 0.0167671237,
"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": 587500,
"SidewaysCard": false,
"CustomDeck": {
"5875": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899270875/1C89A7710F4BAF1B6272AFAF97FF781DFDD4B473/",
"BackURL": "https://i.imgur.com/EcbhVuh.jpg/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "e43300",
"Name": "CardCustom",
"Transform": {
"posX": -22.6156921,
"posY": 1.31099141,
"posZ": -69.0756149,
"rotX": 0.020810524,
"rotY": 269.993042,
"rotZ": 0.0167687424,
"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": 1100,
"SidewaysCard": false,
"CustomDeck": {
"11": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152903743649/0A11C2817B7FEB98F0E21429FDDAD800003679B1/",
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1653348152903745239/2BD47622F1107A304F5BC0462949B707A2257D2D/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "41424c",
"Name": "CardCustom",
"Transform": {
"posX": -22.5805168,
"posY": 1.31255412,
"posZ": -63.78075,
"rotX": 0.0208109543,
"rotY": 269.99115,
"rotZ": 0.0167675,
"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": 587400,
"SidewaysCard": false,
"CustomDeck": {
"5874": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899273989/4159C8DE11A89D1A41415C0357CEEF9C66326D6D/",
"BackURL": "https://i.imgur.com/EcbhVuh.jpg/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "1b6773",
"Name": "CardCustom",
"Transform": {
"posX": -19.5467625,
"posY": 1.3130666,
"posZ": -65.79385,
"rotX": 0.0208032466,
"rotY": 270.018372,
"rotZ": 0.01677779,
"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": true,
"CardID": 400,
"SidewaysCard": false,
"CustomDeck": {
"4": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899209945/9B590899EFCF802DAF4D7D132C87DF93BE8093A4/",
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899214605/67167B2DDF4DF598CA325172B9D0D7EF1ADDD267/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "dd312f",
"Name": "CardCustom",
"Transform": {
"posX": -19.50823,
"posY": 1.31121933,
"posZ": -72.152504,
"rotX": 0.01676806,
"rotY": 179.991669,
"rotZ": 359.9792,
"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": 500,
"SidewaysCard": true,
"CustomDeck": {
"5": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899194486/58BF4237157B80D2E1465FC883E9F5F466ECFF35/",
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899124421/8C115099AB8D5DD74B184BFAEC319FAEAC1DBA3F/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "647b40",
"Name": "CardCustom",
"Transform": {
"posX": -22.6028252,
"posY": 1.310243,
"posZ": -71.64848,
"rotX": 0.0208107922,
"rotY": 269.99115,
"rotZ": 0.0167674311,
"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": 587600,
"SidewaysCard": false,
"CustomDeck": {
"5876": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899261850/EDB8D9E582D946FF9973F922E964470686B78F8B/",
"BackURL": "https://i.imgur.com/EcbhVuh.jpg/",
"NumWidth": 1,
"NumHeight": 1,
"BackIsHidden": true,
"UniqueBack": false,
"Type": 0
}
},
"LuaScript": "",
"LuaScriptState": "",
"XmlUI": ""
},
{
"GUID": "9a67bf",
"Name": "CardCustom",
"Transform": {
"posX": -22.6425686,
"posY": 1.30951548,
"posZ": -74.08462,
"rotX": 0.02081087,
"rotY": 269.9912,
"rotZ": 0.0167674385,
"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": 587700,
"SidewaysCard": false,
"CustomDeck": {
"5877": {
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1653348152899266654/32D6F6E780E41C9AA35DE1DC072AF3E7EDB97F5B/",
"BackURL": "https://i.imgur.com/EcbhVuh.jpg/",
"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
}
}
]
}