Guest User

Flip 7 Scripted score counter TTS

a guest
May 27th, 2025
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 393.86 KB | None | 0 0
  1. {
  2.   "SaveName": "Flip 7 (Scripted with Skip Tokens)",
  3.   "EpochTime": 1748330424,
  4.   "Date": "5/27/2025 3:20:24 AM",
  5.   "VersionNumber": "v13.3",
  6.   "GameMode": "Flip 7",
  7.   "GameType": "Game",
  8.   "GameComplexity": "Low Complexity",
  9.   "PlayingTime": [
  10.     0,
  11.     10
  12.   ],
  13.   "PlayerCounts": [
  14.     0,
  15.     8
  16.   ],
  17.   "Tags": [
  18.     "Board Games",
  19.     "Korean",
  20.     "English",
  21.     "한국어",
  22.     "KR",
  23.     "한글"
  24.   ],
  25.   "Gravity": 0.5,
  26.   "PlayArea": 0.5,
  27.   "Table": "Table_None",
  28.   "Sky": "Sky_Museum",
  29.   "Note": "",
  30.   "TabStates": {
  31.     "0": {
  32.       "title": "Rules",
  33.       "body": "",
  34.       "color": "Grey",
  35.       "visibleColor": {
  36.         "r": 0.5,
  37.         "g": 0.5,
  38.         "b": 0.5
  39.       },
  40.       "id": 0
  41.     },
  42.     "1": {
  43.       "title": "White",
  44.       "body": "",
  45.       "color": "White",
  46.       "visibleColor": {
  47.         "r": 1.0,
  48.         "g": 1.0,
  49.         "b": 1.0
  50.       },
  51.       "id": 1
  52.     },
  53.     "2": {
  54.       "title": "Brown",
  55.       "body": "",
  56.       "color": "Brown",
  57.       "visibleColor": {
  58.         "r": 0.443,
  59.         "g": 0.231,
  60.         "b": 0.09
  61.       },
  62.       "id": 2
  63.     },
  64.     "3": {
  65.       "title": "Red",
  66.       "body": "",
  67.       "color": "Red",
  68.       "visibleColor": {
  69.         "r": 0.856,
  70.         "g": 0.1,
  71.         "b": 0.094
  72.       },
  73.       "id": 3
  74.     },
  75.     "4": {
  76.       "title": "Orange",
  77.       "body": "",
  78.       "color": "Orange",
  79.       "visibleColor": {
  80.         "r": 0.956,
  81.         "g": 0.392,
  82.         "b": 0.113
  83.       },
  84.       "id": 4
  85.     },
  86.     "5": {
  87.       "title": "Yellow",
  88.       "body": "",
  89.       "color": "Yellow",
  90.       "visibleColor": {
  91.         "r": 0.905,
  92.         "g": 0.898,
  93.         "b": 0.172
  94.       },
  95.       "id": 5
  96.     },
  97.     "6": {
  98.       "title": "Green",
  99.       "body": "",
  100.       "color": "Green",
  101.       "visibleColor": {
  102.         "r": 0.192,
  103.         "g": 0.701,
  104.         "b": 0.168
  105.       },
  106.       "id": 6
  107.     },
  108.     "7": {
  109.       "title": "Blue",
  110.       "body": "",
  111.       "color": "Blue",
  112.       "visibleColor": {
  113.         "r": 0.118,
  114.         "g": 0.53,
  115.         "b": 1.0
  116.       },
  117.       "id": 7
  118.     },
  119.     "8": {
  120.       "title": "Teal",
  121.       "body": "",
  122.       "color": "Teal",
  123.       "visibleColor": {
  124.         "r": 0.129,
  125.         "g": 0.694,
  126.         "b": 0.607
  127.       },
  128.       "id": 8
  129.     },
  130.     "9": {
  131.       "title": "Purple",
  132.       "body": "",
  133.       "color": "Purple",
  134.       "visibleColor": {
  135.         "r": 0.627,
  136.         "g": 0.125,
  137.         "b": 0.941
  138.       },
  139.       "id": 9
  140.     },
  141.     "10": {
  142.       "title": "Pink",
  143.       "body": "",
  144.       "color": "Pink",
  145.       "visibleColor": {
  146.         "r": 0.96,
  147.         "g": 0.439,
  148.         "b": 0.807
  149.       },
  150.       "id": 10
  151.     },
  152.     "11": {
  153.       "title": "Black",
  154.       "body": "",
  155.       "color": "Black",
  156.       "visibleColor": {
  157.         "r": 0.25,
  158.         "g": 0.25,
  159.         "b": 0.25
  160.       },
  161.       "id": 11
  162.     }
  163.   },
  164.   "Grid": {
  165.     "Type": 0,
  166.     "Lines": false,
  167.     "Color": {
  168.       "r": 0.0,
  169.       "g": 0.0,
  170.       "b": 0.0
  171.     },
  172.     "Opacity": 0.75,
  173.     "ThickLines": false,
  174.     "Snapping": false,
  175.     "Offset": false,
  176.     "BothSnapping": false,
  177.     "xSize": 2.0,
  178.     "ySize": 2.0,
  179.     "PosOffset": {
  180.       "x": 0.0,
  181.       "y": 1.0,
  182.       "z": 0.0
  183.     }
  184.   },
  185.   "Lighting": {
  186.     "LightIntensity": 0.54,
  187.     "LightColor": {
  188.       "r": 1.0,
  189.       "g": 0.9804,
  190.       "b": 0.8902
  191.     },
  192.     "AmbientIntensity": 1.3,
  193.     "AmbientType": 0,
  194.     "AmbientSkyColor": {
  195.       "r": 0.5,
  196.       "g": 0.5,
  197.       "b": 0.5
  198.     },
  199.     "AmbientEquatorColor": {
  200.       "r": 0.5,
  201.       "g": 0.5,
  202.       "b": 0.5
  203.     },
  204.     "AmbientGroundColor": {
  205.       "r": 0.5,
  206.       "g": 0.5,
  207.       "b": 0.5
  208.     },
  209.     "ReflectionIntensity": 1.0,
  210.     "LutIndex": 0,
  211.     "LutContribution": 1.0
  212.   },
  213.   "Hands": {
  214.     "Enable": true,
  215.     "DisableUnused": false,
  216.     "Hiding": 0
  217.   },
  218.   "ComponentTags": {
  219.     "labels": [
  220.       {
  221.         "displayed": "Turn Skipper",
  222.         "normalized": "turn_skipper"
  223.       },
  224.       {
  225.         "displayed": "button",
  226.         "normalized": "button"
  227.       },
  228.       {
  229.         "displayed": "score",
  230.         "normalized": "score"
  231.       },
  232.       {
  233.         "displayed": "special",
  234.         "normalized": "special"
  235.       }
  236.     ]
  237.   },
  238.   "Turns": {
  239.     "Enable": false,
  240.     "Type": 1,
  241.     "TurnOrder": [
  242.       "Pink",
  243.       "Red",
  244.       "Orange"
  245.     ],
  246.     "Reverse": false,
  247.     "SkipEmpty": false,
  248.     "DisableInteractions": false,
  249.     "PassTurns": true,
  250.     "TurnColor": ""
  251.   },
  252.   "DecalPallet": [],
  253.   "LuaScript": "function onLoad()\r\n    StartBtn = getObjectFromGUID(\"5324c0\")\r\n    HitBtn = getObjectFromGUID(\"e7358b\")\r\n    StayBtn = getObjectFromGUID(\"83c6d4\")\r\n\r\n    Scale = StartBtn.getScale()\r\n    Bound = StartBtn.getBoundsNormalized()\r\n\r\n    StartBtn.createButton({\r\n        click_function = \"startgame\",\r\n        function_owner = self,\r\n        label          = \"New Round\",\r\n        position       = {0/Scale.x,0.5,0/Scale.z},\r\n        rotation       = {0,180,0},\r\n        scale          = {0.4/Scale.x,1,0.4/Scale.z},\r\n        width          = 1200*Bound.size.x,\r\n        height         = 800*Bound.size.z,\r\n        color          = \"White\",\r\n        font_color     = \"Black\",\r\n        font_size      = 700*Bound.size.z\r\n    })\r\n\r\n    HitBtn.createButton({\r\n        click_function = \"hit\",\r\n        function_owner = self,\r\n        label          = \"Hit\",\r\n        position       = {0/Scale.x,0.5,0/Scale.z},\r\n        rotation       = {0,180,0},\r\n        scale          = {0.8/Scale.x,1,0.8/Scale.z},\r\n        width          = 700*Bound.size.x,\r\n        height         = 700*Bound.size.z,\r\n        color          = {0.6,0.85,0.6},\r\n        font_color     = \"Black\",\r\n        font_size      = 900*Bound.size.z\r\n    })\r\n\r\n    StayBtn.createButton({\r\n        click_function = \"stay\",\r\n        function_owner = self,\r\n        label          = \"Stay\",\r\n        position       = {0/Scale.x,0.5,0/Scale.z},\r\n        rotation       = {0,180,0},\r\n        scale          = {0.8/Scale.x,1,0.8/Scale.z},\r\n        width          = 700*Bound.size.x,\r\n        height         = 700*Bound.size.z,\r\n        color          = {0.8,0.8,0.8},\r\n        font_color     = \"Black\",\r\n        font_size      = 900*Bound.size.z\r\n    })\r\n    for i,v in ipairs(getObjects()) do\r\n        if v.hasTag(\"score\") then\r\n    v.createButton({\r\n        click_function = \"bust\",\r\n        function_owner = self,\r\n        label          = \"Bust\",\r\n        position       = {10/Scale.x,0,0.8/Scale.z},\r\n        rotation       = {0,0,0},\r\n        scale          = {1.8/Scale.x,1,0.8/Scale.z},\r\n        width          = 700*Bound.size.x,\r\n        height         = 700*Bound.size.z,\r\n        color          = {0.8,0.6,0.6},\r\n        font_color     = \"Black\",\r\n        font_size      = 900*Bound.size.z\r\n    })\r\n        end\r\n    end\r\n\r\n    local deck2 = scan2()\r\n    deck2.shuffle()\r\nend\r\n\r\nfunction bust(o,c,a)\r\n     posCount = 0.1\r\n\r\n    -- 플레이어 기준 위치 및 회전\r\n    local handTransform = Player[c].getHandTransform()\r\n\r\n    -- 회전 각도 (플레이어 기준 정방향)\r\n    local angleY = math.rad(handTransform.rotation.y)\r\n    local forward = Vector(math.sin(angleY), 0, math.cos(angleY))\r\n    local center = handTransform.position + forward * 14\r\n\r\n    local spacingX = 3\r\n    local offsetZ_up = 2\r\n    local offsetZ_down = -2\r\n\r\n-- 회전 보조 함수 (회전 반대로 적용)\r\nlocal function rotateOffset(x, z)\r\n    local rx = math.cos(-angleY) * x - math.sin(-angleY) * z\r\n    local rz = math.sin(-angleY) * x + math.cos(-angleY) * z\r\n    return Vector(rx, 0, rz)\r\n    end\r\n    for i = -1, 1 do\r\n        local localOffset = rotateOffset(spacingX * i, offsetZ_up)\r\n        local origin = center + localOffset\r\n        local hitList = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n    \r\n        for _, v in ipairs(hitList) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                v.hit_object.setPosition({2.06, 1.49+posCount, 1.07})\r\n                v.hit_object.setRotation({0,180,0})\r\n                posCount = posCount + 0.1\r\n            end\r\n        end\r\n    end\r\n    for i = -2, 1 do\r\n        local x = spacingX * i + spacingX / 2\r\n        local localOffset = rotateOffset(x, offsetZ_down)\r\n        local origin = center + localOffset\r\n        local hitList2 = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n\r\n        for _, v in ipairs(hitList2) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                v.hit_object.setPosition({2.06, 1.49+posCount, 1.07})\r\n                v.hit_object.setRotation({0,180,0})\r\n                posCount = posCount + 0.1\r\n            end\r\n        end\r\n    end\r\n    for i = -2, 2 do  -- 5개 칸 (i = -2, -1, 0, 1, 2)\r\n        local x = spacingX * i  -- x 값 조정: 좌우 간격 유지\r\n        local localOffset = rotateOffset(x, offsetZ_down)\r\n        local origin = handTransform.position + forward * 9 + localOffset\r\n        local hitList3 = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n    \r\n        for k, v in ipairs(hitList3) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                v.hit_object.setPosition({2.06, 1.49+posCount, 1.07})\r\n                v.hit_object.setRotation({0,180,0})\r\n                posCount = posCount + 0.1\r\n            end\r\n        end\r\n    end\r\nend\r\n\r\nfunction startgame()\r\n    local deck2 = scan2()\r\n    local posCount = 0.1\r\n    for i,v in ipairs(getObjects()) do\r\n        if v ~= deck2 and (v.type==\"Deck\" or v.type==\"Card\") then\r\n            v.setPosition({2.06, 1.49+posCount, 1.07})\r\n            v.setRotation({0,180,0})\r\n            posCount = posCount + 0.1\r\n        end\r\n    end\r\n\r\n    if deck2 == nil or (deck2.getQuantity()<=#getSeatedPlayers()) then\r\n        return\r\n    end\r\n\r\n    deck2.shuffle()\r\n\r\n    for i, v in ipairs(getSeatedPlayers()) do\r\n    Wait.time(function() \r\n            -- 플레이어 기준 위치 및 회전\r\n            local handTransform = Player[v].getHandTransform()\r\n\r\n            -- 회전 각도 (플레이어 기준 정방향)\r\n            local angleY = math.rad(handTransform.rotation.y)\r\n            local forward = Vector(math.sin(angleY), 0, math.cos(angleY))\r\n            local center = handTransform.position + forward * 14\r\n        \r\n            local spacingX = 3\r\n            local offsetZ_up = 2\r\n            local offsetZ_down = -2\r\n        \r\n        -- 회전 보조 함수 (회전 반대로 적용)\r\n        local function rotateOffset(x, z)\r\n            local rx = math.cos(-angleY) * x - math.sin(-angleY) * z\r\n            local rz = math.sin(-angleY) * x + math.cos(-angleY) * z\r\n            return Vector(rx, 0, rz)\r\n        end\r\n        \r\n            \r\n            local localOffset = rotateOffset(spacingX * -1, offsetZ_up)\r\n            local origin = center + localOffset\r\n                emptyPos = origin + vector(0, -3.3, 0)\r\n    \r\n            local x = spacingX * -2  -- x 값 조정: 좌우 간격 유지\r\n            local localOffset = rotateOffset(x, offsetZ_down)\r\n            local origin = handTransform.position + forward * 9 + localOffset\r\n                emptyPos2 = origin + vector(0, -3.3, 0)\r\n            local drawcard = deck2.takeObject()\r\n            if drawcard.hasTag(\"special\") then\r\n                drawcard.setPositionSmooth(emptyPos2,false,false)\r\n                drawcard.setRotation(Vector(0, handTransform.rotation.y+180, 0))\r\n            else\r\n                drawcard.setPositionSmooth(emptyPos,false,false)\r\n                drawcard.setRotation(Vector(0, handTransform.rotation.y+180, 0))\r\n            end\r\n          end, 1)\r\n    end\r\n\r\nend\r\n\r\nfunction stay(o,c,a)\r\n    -- 플레이어 기준 위치 및 회전\r\n    local handTransform = Player[c].getHandTransform()\r\n\r\n    -- 회전 각도 (플레이어 기준 정방향)\r\n    local angleY = math.rad(handTransform.rotation.y)\r\n    local forward = Vector(math.sin(angleY), 0, math.cos(angleY))\r\n    local center = handTransform.position + forward * 14\r\n\r\n    local spacingX = 3\r\n    local offsetZ_up = 2\r\n    local offsetZ_down = -2\r\n\r\n-- 회전 보조 함수 (회전 반대로 적용)\r\nlocal function rotateOffset(x, z)\r\n    local rx = math.cos(-angleY) * x - math.sin(-angleY) * z\r\n    local rz = math.sin(-angleY) * x + math.cos(-angleY) * z\r\n    return Vector(rx, 0, rz)\r\n    end\r\n    for i = -1, 1 do\r\n        local localOffset = rotateOffset(spacingX * i, offsetZ_up)\r\n        local origin = center + localOffset\r\n        local hitList = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n    \r\n        for _, v in ipairs(hitList) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                v.hit_object.flip()\r\n            end\r\n        end\r\n    end\r\n    for i = -2, 1 do\r\n        local x = spacingX * i + spacingX / 2\r\n        local localOffset = rotateOffset(x, offsetZ_down)\r\n        local origin = center + localOffset\r\n        local hitList2 = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n\r\n        for _, v in ipairs(hitList2) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                v.hit_object.flip()\r\n            end\r\n        end\r\n    end\r\n    for i = -2, 2 do  -- 5개 칸 (i = -2, -1, 0, 1, 2)\r\n        local x = spacingX * i  -- x 값 조정: 좌우 간격 유지\r\n        local localOffset = rotateOffset(x, offsetZ_down)\r\n        local origin = handTransform.position + forward * 9 + localOffset\r\n        local hitList3 = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n    \r\n        for _, v in ipairs(hitList3) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                v.hit_object.flip()\r\n            end\r\n        end\r\n    end\r\nend\r\n\r\nfunction wait(time)\r\n    local start = os.time()\r\n    repeat\r\n        coroutine.yield(0)\r\n    until os.time() > start + time\r\n  end\r\n\r\nfunction hit(o,c,a)\r\n    Pcolor=c\r\n    startLuaCoroutine(Global, \"hit2\")\r\nend\r\n\r\nfunction hit2()\r\n\r\n    local count = 0\r\n\r\n    -- 플레이어 기준 위치 및 회전\r\n    local handTransform = Player[Pcolor].getHandTransform()\r\n\r\n    -- 회전 각도 (플레이어 기준 정방향)\r\n    local angleY = math.rad(handTransform.rotation.y)\r\n    local forward = Vector(math.sin(angleY), 0, math.cos(angleY))\r\n    local center = handTransform.position + forward * 14\r\n\r\n    local spacingX = 3\r\n    local offsetZ_up = 2\r\n    local offsetZ_down = -2\r\n\r\n-- 회전 보조 함수 (회전 반대로 적용)\r\nlocal function rotateOffset(x, z)\r\n    local rx = math.cos(-angleY) * x - math.sin(-angleY) * z\r\n    local rz = math.sin(-angleY) * x + math.cos(-angleY) * z\r\n    return Vector(rx, 0, rz)\r\nend\r\n\r\n\r\nlocal emptyIndex = nil\r\nlocal filled = false\r\n\r\n-- 위쪽 3칸 (1 ~ 3)\r\nfor i = -1, 1 do\r\n    local localOffset = rotateOffset(spacingX * i, offsetZ_up)\r\n    local origin = center + localOffset\r\n    local hitList = Physics.cast({\r\n        origin       = origin + vector(0, -3, 0),\r\n        direction    = {0, -1, 0},\r\n        type         = 3,\r\n        size         = {1, 1, 1},\r\n        orientation  = {0, 0, 0},\r\n        max_distance = 3,\r\n        debug        = false,\r\n    })\r\n\r\n    filled = false\r\n    for _, v in ipairs(hitList) do \r\n        if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n            filled = true\r\n            break\r\n        end\r\n    end\r\n\r\n    if not filled then\r\n        emptyIndex = (i + 2)  -- i = -1 → 1번칸, 0 → 2번칸, 1 → 3번칸\r\n        emptyPos = origin + vector(0, -3.3, 0)\r\n        break\r\n    end\r\nend\r\n\r\n-- 위쪽 3칸이 차면 아래쪽 첫 번째 칸에서 드로우 시작\r\nif not emptyIndex then\r\n    for i = -2, 1 do\r\n        local x = spacingX * i + spacingX / 2\r\n        local localOffset = rotateOffset(x, offsetZ_down)\r\n        local origin = center + localOffset\r\n        local hitList2 = Physics.cast({\r\n            origin       = origin + vector(0, -3, 0),\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n\r\n        filled = false\r\n        for _, v in ipairs(hitList2) do \r\n            if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n                filled = true\r\n                break\r\n            end \r\n        end\r\n\r\n        -- 비어있는 칸을 찾으면 emptyIndex를 설정\r\n        if not filled then\r\n            emptyIndex = (i + 5)  -- i = -2 → 3번 + 1 = 4, -1 → 5, 0 → 6, 1 → 7\r\n            emptyPos = origin + vector(0, -3.3, 0)\r\n            break\r\n        end\r\n    end\r\nend\r\n\r\nfor i = -2, 2 do  -- 5개 칸 (i = -2, -1, 0, 1, 2)\r\n    local x = spacingX * i  -- x 값 조정: 좌우 간격 유지\r\n    local localOffset = rotateOffset(x, offsetZ_down)\r\n    local origin = handTransform.position + forward * 9 + localOffset\r\n    local hitList3 = Physics.cast({\r\n        origin       = origin + vector(0, -3, 0),\r\n        direction    = {0, -1, 0},\r\n        type         = 3,\r\n        size         = {1, 1, 1},\r\n        orientation  = {0, 0, 0},\r\n        max_distance = 3,\r\n        debug        = false,\r\n    })\r\n\r\n    filled2 = false\r\n    for _, v in ipairs(hitList3) do \r\n        if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n            filled2 = true\r\n            break\r\n        end\r\n    end\r\n\r\n    if not filled2 then\r\n        emptyIndex2 = (i + 2)  -- i = -1 → 1번칸, 0 → 2번칸, 1 → 3번칸\r\n        emptyPos2 = origin + vector(0, -3.3, 0)\r\n        break\r\n    end\r\nend\r\n    local drawcard = scan()\r\n    if isempty then\r\n        return\r\n    end\r\n    if drawcard.hasTag(\"special\") then\r\n        drawcard.setPositionSmooth(emptyPos2,false,false)\r\n        drawcard.setRotation(Vector(0, handTransform.rotation.y+180, 0))\r\n    else\r\n        drawcard.setPositionSmooth(emptyPos,false,false)\r\n        drawcard.setRotation(Vector(0, handTransform.rotation.y+180, 0))\r\n    end\r\n\r\n    isDeck = false\r\n    local hitcheck = Physics.cast({\r\n        origin       = {-1.60, 1.83, 1.13},\r\n        direction    = {0, -1, 0},\r\n        type         = 3,\r\n        size         = {1, 1, 1},\r\n        orientation  = {0, 0, 0},\r\n        max_distance = 3,\r\n        debug        = false,\r\n    })\r\n\r\n    for _, v in ipairs(hitcheck) do \r\n        if v.hit_object.type == \"Deck\" then\r\n            isDeck = true\r\n        end\r\n    end\r\n    if isDeck == false then\r\n        local hitcheck2 = Physics.cast({\r\n            origin       = {2.06, 1.49, 1.07},\r\n            direction    = {0, -1, 0},\r\n            type         = 3,\r\n            size         = {1, 1, 1},\r\n            orientation  = {0, 0, 0},\r\n            max_distance = 3,\r\n            debug        = false,\r\n        })\r\n    \r\n        for _, v in ipairs(hitcheck2) do \r\n            if v.hit_object.type == \"Deck\" then\r\n                v.hit_object.setPositionSmooth({-1.60, 2.3, 1.13}, false, true)\r\n                v.hit_object.setRotation({0, 180, 180})\r\n                wait(0.5)\r\n                v.hit_object.shuffle()\r\n            end\r\n        end\r\n    end\r\nreturn 1\r\nend\r\nfunction scan()\r\n    isempty = true\r\n    deckscan = Physics.cast({\r\n        origin       = {-2,2,1},\r\n        direction    = {0, -1, 0},\r\n        type         = 3,\r\n        size         = {1, 1, 1},\r\n        orientation  = {0, 0, 0},\r\n        max_distance = 1,\r\n        debug        = false,\r\n    })\r\n\r\n    for _,v in ipairs(deckscan) do\r\n        if v.hit_object.type == \"Deck\"  then\r\n            isempty = false\r\n\r\n            return v.hit_object.takeObject()\r\n        elseif v.hit_object.type == \"Card\" then\r\n            isempty = false\r\n\r\n            return v.hit_object\r\n        end\r\n    end\r\nend\r\n\r\nfunction scan2()\r\n    deckscan = Physics.cast({\r\n        origin       = {-2,2,1},\r\n        direction    = {0, -1, 0},\r\n        type         = 3,\r\n        size         = {1, 1, 1},\r\n        orientation  = {0, 0, 0},\r\n        max_distance = 1,\r\n        debug        = false,\r\n    })\r\n\r\n    for _,v in ipairs(deckscan) do\r\n        if v.hit_object.type == \"Deck\" or v.hit_object.type == \"Card\" then\r\n            return v.hit_object\r\n        end\r\n    end\r\nend",
  254.   "LuaScriptState": "",
  255.   "XmlUI": "<!-- Xml UI. See documentation: https://api.tabletopsimulator.com/ui/introUI/ -->",
  256.   "VectorLines": [
  257.     {
  258.       "points3": [
  259.         {
  260.           "x": 0.6898774,
  261.           "y": 1.49142885,
  262.           "z": 2.99238443
  263.         },
  264.         {
  265.           "x": 3.42858171,
  266.           "y": 1.48761082,
  267.           "z": 2.992385
  268.         },
  269.         {
  270.           "x": 3.42858171,
  271.           "y": 1.486495,
  272.           "z": -0.796269655
  273.         },
  274.         {
  275.           "x": 0.68987745,
  276.           "y": 1.490313,
  277.           "z": -0.796269655
  278.         }
  279.       ],
  280.       "color": {
  281.         "r": 0.7019608,
  282.         "g": 0.7019608,
  283.         "b": 0.7019608
  284.       },
  285.       "thickness": 0.1,
  286.       "loop": true
  287.     }
  288.   ],
  289.   "SnapPoints": [
  290.     {
  291.       "Position": {
  292.         "x": 2.05851674,
  293.         "y": 1.47803164,
  294.         "z": 1.07008147
  295.       },
  296.       "Rotation": {
  297.         "x": 0.0168715287,
  298.         "y": 179.999985,
  299.         "z": 0.07987651
  300.       }
  301.     },
  302.     {
  303.       "Position": {
  304.         "x": -1.59988832,
  305.         "y": 1.483486,
  306.         "z": 1.13147771
  307.       },
  308.       "Rotation": {
  309.         "x": 0.01687685,
  310.         "y": 180.001236,
  311.         "z": 180.0799
  312.       }
  313.     },
  314.     {
  315.       "Position": {
  316.         "x": -16.3499813,
  317.         "y": 1.50593054,
  318.         "z": 2.99999523
  319.       },
  320.       "Rotation": {
  321.         "x": 359.920135,
  322.         "y": 269.999878,
  323.         "z": 0.0168706756
  324.       }
  325.     },
  326.     {
  327.       "Position": {
  328.         "x": -16.3499565,
  329.         "y": 1.50354064,
  330.         "z": -9.567931E-06
  331.       },
  332.       "Rotation": {
  333.         "x": 359.920135,
  334.         "y": 270.0,
  335.         "z": 0.0168737434
  336.       }
  337.     },
  338.     {
  339.       "Position": {
  340.         "x": -16.3499813,
  341.         "y": 1.50260437,
  342.         "z": -3.00000477
  343.       },
  344.       "Rotation": {
  345.         "x": 359.920135,
  346.         "y": 269.9999,
  347.         "z": 0.0168708619
  348.       }
  349.     },
  350.     {
  351.       "Position": {
  352.         "x": -23.4928818,
  353.         "y": 1.50821781,
  354.         "z": -15.007617
  355.       },
  356.       "Rotation": {
  357.         "x": 359.955444,
  358.         "y": 224.999939,
  359.         "z": 0.06840967
  360.       }
  361.     },
  362.     {
  363.       "Position": {
  364.         "x": -21.3715668,
  365.         "y": 1.50593019,
  366.         "z": -17.1289349
  367.       },
  368.       "Rotation": {
  369.         "x": 359.955444,
  370.         "y": 224.999969,
  371.         "z": 0.0684111
  372.       }
  373.     },
  374.     {
  375.       "Position": {
  376.         "x": -19.2502518,
  377.         "y": 1.50257158,
  378.         "z": -19.2502575
  379.       },
  380.       "Rotation": {
  381.         "x": 359.955444,
  382.         "y": 225.000046,
  383.         "z": 0.0684109256
  384.       }
  385.     },
  386.     {
  387.       "Position": {
  388.         "x": -17.1289349,
  389.         "y": 1.498039,
  390.         "z": -21.3715782
  391.       },
  392.       "Rotation": {
  393.         "x": 359.955444,
  394.         "y": 224.999985,
  395.         "z": 0.06841008
  396.       }
  397.     },
  398.     {
  399.       "Position": {
  400.         "x": -15.007618,
  401.         "y": 1.49579716,
  402.         "z": -23.492897
  403.       },
  404.       "Rotation": {
  405.         "x": 359.955444,
  406.         "y": 224.999924,
  407.         "z": 0.0684105456
  408.       }
  409.     },
  410.     {
  411.       "Position": {
  412.         "x": -12.532752,
  413.         "y": 1.49334669,
  414.         "z": -18.896698
  415.       },
  416.       "Rotation": {
  417.         "x": 359.955444,
  418.         "y": 224.999985,
  419.         "z": 0.06841158
  420.       }
  421.     },
  422.     {
  423.       "Position": {
  424.         "x": -14.6540632,
  425.         "y": 1.49665344,
  426.         "z": -16.775383
  427.       },
  428.       "Rotation": {
  429.         "x": 359.955444,
  430.         "y": 225.000046,
  431.         "z": 0.06841137
  432.       }
  433.     },
  434.     {
  435.       "Position": {
  436.         "x": -16.7753811,
  437.         "y": 1.49935842,
  438.         "z": -14.65406
  439.       },
  440.       "Rotation": {
  441.         "x": 359.955444,
  442.         "y": 224.999939,
  443.         "z": 0.0684109256
  444.       }
  445.     },
  446.     {
  447.       "Position": {
  448.         "x": -18.8967018,
  449.         "y": 1.50315034,
  450.         "z": -12.5327425
  451.       },
  452.       "Rotation": {
  453.         "x": 359.955444,
  454.         "y": 224.9999,
  455.         "z": 0.0684109256
  456.       }
  457.     },
  458.     {
  459.       "Position": {
  460.         "x": -15.007617,
  461.         "y": 1.49971366,
  462.         "z": -10.7649727
  463.       },
  464.       "Rotation": {
  465.         "x": 359.955444,
  466.         "y": 224.999939,
  467.         "z": 0.06841143
  468.       }
  469.     },
  470.     {
  471.       "Position": {
  472.         "x": -12.8862963,
  473.         "y": 1.49657893,
  474.         "z": -12.8862953
  475.       },
  476.       "Rotation": {
  477.         "x": 359.955444,
  478.         "y": 224.999939,
  479.         "z": 0.06841143
  480.       }
  481.     },
  482.     {
  483.       "Position": {
  484.         "x": -10.76498,
  485.         "y": 1.49257445,
  486.         "z": -15.0076122
  487.       },
  488.       "Rotation": {
  489.         "x": 359.955444,
  490.         "y": 224.999969,
  491.         "z": 0.06841094
  492.       }
  493.     },
  494.     {
  495.       "Position": {
  496.         "x": -5.9999814,
  497.         "y": 1.48258483,
  498.         "z": -25.3500061
  499.       },
  500.       "Rotation": {
  501.         "x": 0.0168710034,
  502.         "y": 180.000015,
  503.         "z": 0.07987677
  504.       }
  505.     },
  506.     {
  507.       "Position": {
  508.         "x": -2.99998975,
  509.         "y": 1.47882521,
  510.         "z": -25.3500023
  511.       },
  512.       "Rotation": {
  513.         "x": 0.01687063,
  514.         "y": 179.999985,
  515.         "z": 0.07987657
  516.       }
  517.     },
  518.     {
  519.       "Position": {
  520.         "x": 1.89743987E-05,
  521.         "y": 1.47339022,
  522.         "z": -25.3500042
  523.       },
  524.       "Rotation": {
  525.         "x": 0.0168715287,
  526.         "y": 180.000046,
  527.         "z": 0.07987732
  528.       }
  529.     },
  530.     {
  531.       "Position": {
  532.         "x": 3.00001955,
  533.         "y": 1.47035646,
  534.         "z": -25.3500023
  535.       },
  536.       "Rotation": {
  537.         "x": 0.0168708283,
  538.         "y": 180.0,
  539.         "z": 0.07987678
  540.       }
  541.     },
  542.     {
  543.       "Position": {
  544.         "x": 6.00002,
  545.         "y": 1.46540391,
  546.         "z": -25.3500023
  547.       },
  548.       "Rotation": {
  549.         "x": 0.0168713536,
  550.         "y": 180.000015,
  551.         "z": 0.0798782259
  552.       }
  553.     },
  554.     {
  555.       "Position": {
  556.         "x": 4.50002,
  557.         "y": 1.4695493,
  558.         "z": -20.3500061
  559.       },
  560.       "Rotation": {
  561.         "x": 0.0168714486,
  562.         "y": 180.000061,
  563.         "z": 0.07987803
  564.       }
  565.     },
  566.     {
  567.       "Position": {
  568.         "x": 1.50000274,
  569.         "y": 1.47269762,
  570.         "z": -20.3500023
  571.       },
  572.       "Rotation": {
  573.         "x": 0.0168724041,
  574.         "y": 180.0,
  575.         "z": 0.07987791
  576.       }
  577.     },
  578.     {
  579.       "Position": {
  580.         "x": -1.499981,
  581.         "y": 1.47810018,
  582.         "z": -20.3500042
  583.       },
  584.       "Rotation": {
  585.         "x": 0.0168712642,
  586.         "y": 180.000046,
  587.         "z": 0.07987748
  588.       }
  589.     },
  590.     {
  591.       "Position": {
  592.         "x": -4.499981,
  593.         "y": 1.48224151,
  594.         "z": -20.350008
  595.       },
  596.       "Rotation": {
  597.         "x": 0.0168719925,
  598.         "y": 180.000031,
  599.         "z": 0.0798771456
  600.       }
  601.     },
  602.     {
  603.       "Position": {
  604.         "x": -2.99998879,
  605.         "y": 1.48029864,
  606.         "z": -16.3500023
  607.       },
  608.       "Rotation": {
  609.         "x": 0.0168722738,
  610.         "y": 179.999969,
  611.         "z": 0.07987784
  612.       }
  613.     },
  614.     {
  615.       "Position": {
  616.         "x": 1.92909756E-05,
  617.         "y": 1.47653723,
  618.         "z": -16.3500023
  619.       },
  620.       "Rotation": {
  621.         "x": 0.0168713853,
  622.         "y": 180.000031,
  623.         "z": 0.07987759
  624.       }
  625.     },
  626.     {
  627.       "Position": {
  628.         "x": 3.00001264,
  629.         "y": 1.47251439,
  630.         "z": -16.3500023
  631.       },
  632.       "Rotation": {
  633.         "x": 0.0168702267,
  634.         "y": 180.0,
  635.         "z": 0.0798755363
  636.       }
  637.     },
  638.     {
  639.       "Position": {
  640.         "x": 10.7650042,
  641.         "y": 1.46246207,
  642.         "z": -15.00762
  643.       },
  644.       "Rotation": {
  645.         "x": 0.0684116855,
  646.         "y": 135.000015,
  647.         "z": 0.0445511527
  648.       }
  649.     },
  650.     {
  651.       "Position": {
  652.         "x": 12.8863211,
  653.         "y": 1.45989418,
  654.         "z": -12.8862991
  655.       },
  656.       "Rotation": {
  657.         "x": 0.06841175,
  658.         "y": 135.000015,
  659.         "z": 0.04455115
  660.       }
  661.     },
  662.     {
  663.       "Position": {
  664.         "x": 15.0076389,
  665.         "y": 1.45743239,
  666.         "z": -10.7649765
  667.       },
  668.       "Rotation": {
  669.         "x": 0.06841233,
  670.         "y": 135.0,
  671.         "z": 0.0445519723
  672.       }
  673.     },
  674.     {
  675.       "Position": {
  676.         "x": 12.5327663,
  677.         "y": 1.45918715,
  678.         "z": -18.89671
  679.       },
  680.       "Rotation": {
  681.         "x": 0.0684120059,
  682.         "y": 135.0,
  683.         "z": 0.0445521176
  684.       }
  685.     },
  686.     {
  687.       "Position": {
  688.         "x": 14.6540842,
  689.         "y": 1.45676017,
  690.         "z": -16.7753868
  691.       },
  692.       "Rotation": {
  693.         "x": 0.06841156,
  694.         "y": 135.000046,
  695.         "z": 0.04455093
  696.       }
  697.     },
  698.     {
  699.       "Position": {
  700.         "x": 16.7753963,
  701.         "y": 1.45412946,
  702.         "z": -14.6540661
  703.       },
  704.       "Rotation": {
  705.         "x": 0.06841067,
  706.         "y": 135.000031,
  707.         "z": 0.0445517153
  708.       }
  709.     },
  710.     {
  711.       "Position": {
  712.         "x": 18.896719,
  713.         "y": 1.45171666,
  714.         "z": -12.5327435
  715.       },
  716.       "Rotation": {
  717.         "x": 0.0684115,
  718.         "y": 135.000031,
  719.         "z": 0.0445514061
  720.       }
  721.     },
  722.     {
  723.       "Position": {
  724.         "x": 15.0076332,
  725.         "y": 1.45401824,
  726.         "z": -23.492897
  727.       },
  728.       "Rotation": {
  729.         "x": 0.06841248,
  730.         "y": 134.999969,
  731.         "z": 0.0445522368
  732.       }
  733.     },
  734.     {
  735.       "Position": {
  736.         "x": 17.128952,
  737.         "y": 1.45312858,
  738.         "z": -21.37158
  739.       },
  740.       "Rotation": {
  741.         "x": 0.0684116855,
  742.         "y": 135.0,
  743.         "z": 0.04455163
  744.       }
  745.     },
  746.     {
  747.       "Position": {
  748.         "x": 19.2502689,
  749.         "y": 1.44908381,
  750.         "z": -19.2502613
  751.       },
  752.       "Rotation": {
  753.         "x": 0.0684118,
  754.         "y": 135.000076,
  755.         "z": 0.044552505
  756.       }
  757.     },
  758.     {
  759.       "Position": {
  760.         "x": 21.3715858,
  761.         "y": 1.44676924,
  762.         "z": -17.1289368
  763.       },
  764.       "Rotation": {
  765.         "x": 0.06841226,
  766.         "y": 135.000076,
  767.         "z": 0.0445516929
  768.       }
  769.     },
  770.     {
  771.       "Position": {
  772.         "x": 23.4929028,
  773.         "y": 1.44573855,
  774.         "z": -15.0076141
  775.       },
  776.       "Rotation": {
  777.         "x": 0.06841258,
  778.         "y": 134.999954,
  779.         "z": 0.0445514
  780.       }
  781.     }
  782.   ],
  783.   "ObjectStates": [
  784.     {
  785.       "GUID": "53bea0",
  786.       "Name": "HandTrigger",
  787.       "Transform": {
  788.         "posX": 0.0,
  789.         "posY": 5.0,
  790.         "posZ": -32.35,
  791.         "rotX": 0.0,
  792.         "rotY": 0.0,
  793.         "rotZ": 0.0,
  794.         "scaleX": 11.8350019,
  795.         "scaleY": 7.002465,
  796.         "scaleZ": 4.04115963
  797.       },
  798.       "Nickname": "",
  799.       "Description": "",
  800.       "GMNotes": "",
  801.       "AltLookAngle": {
  802.         "x": 0.0,
  803.         "y": 0.0,
  804.         "z": 0.0
  805.       },
  806.       "ColorDiffuse": {
  807.         "r": 0.856,
  808.         "g": 0.09999997,
  809.         "b": 0.09399996,
  810.         "a": 0.0
  811.       },
  812.       "LayoutGroupSortIndex": 0,
  813.       "Value": 0,
  814.       "Locked": true,
  815.       "Grid": false,
  816.       "Snap": true,
  817.       "IgnoreFoW": false,
  818.       "MeasureMovement": false,
  819.       "DragSelectable": true,
  820.       "Autoraise": true,
  821.       "Sticky": true,
  822.       "Tooltip": true,
  823.       "GridProjection": false,
  824.       "HideWhenFaceDown": false,
  825.       "Hands": false,
  826.       "FogColor": "Red",
  827.       "LuaScript": "",
  828.       "LuaScriptState": "",
  829.       "XmlUI": ""
  830.     },
  831.     {
  832.       "GUID": "afc863",
  833.       "Name": "Custom_Assetbundle",
  834.       "Transform": {
  835.         "posX": -12.6,
  836.         "posY": -9.0,
  837.         "posZ": -12.6,
  838.         "rotX": 6.536436E-07,
  839.         "rotY": -2.39176334E-05,
  840.         "rotZ": -3.84849864E-06,
  841.         "scaleX": 1.0,
  842.         "scaleY": 1.0,
  843.         "scaleZ": 1.0
  844.       },
  845.       "Nickname": "",
  846.       "Description": "",
  847.       "GMNotes": "",
  848.       "AltLookAngle": {
  849.         "x": 0.0,
  850.         "y": 0.0,
  851.         "z": 0.0
  852.       },
  853.       "ColorDiffuse": {
  854.         "r": 1.0,
  855.         "g": 1.0,
  856.         "b": 1.0
  857.       },
  858.       "LayoutGroupSortIndex": 0,
  859.       "Value": 0,
  860.       "Locked": true,
  861.       "Grid": true,
  862.       "Snap": true,
  863.       "IgnoreFoW": false,
  864.       "MeasureMovement": false,
  865.       "DragSelectable": true,
  866.       "Autoraise": true,
  867.       "Sticky": true,
  868.       "Tooltip": true,
  869.       "GridProjection": false,
  870.       "HideWhenFaceDown": false,
  871.       "Hands": false,
  872.       "CustomAssetbundle": {
  873.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/",
  874.         "AssetbundleSecondaryURL": "",
  875.         "MaterialIndex": 2,
  876.         "TypeIndex": 4,
  877.         "LoopingEffectIndex": 0
  878.       },
  879.       "LuaScript": "",
  880.       "LuaScriptState": "",
  881.       "XmlUI": ""
  882.     },
  883.     {
  884.       "GUID": "c8edca",
  885.       "Name": "Custom_Assetbundle",
  886.       "Transform": {
  887.         "posX": -12.6,
  888.         "posY": -9.0,
  889.         "posZ": 12.6,
  890.         "rotX": 6.536436E-07,
  891.         "rotY": 90.0,
  892.         "rotZ": -3.84849864E-06,
  893.         "scaleX": 1.0,
  894.         "scaleY": 1.0,
  895.         "scaleZ": 1.0
  896.       },
  897.       "Nickname": "",
  898.       "Description": "",
  899.       "GMNotes": "",
  900.       "AltLookAngle": {
  901.         "x": 0.0,
  902.         "y": 0.0,
  903.         "z": 0.0
  904.       },
  905.       "ColorDiffuse": {
  906.         "r": 1.0,
  907.         "g": 1.0,
  908.         "b": 1.0
  909.       },
  910.       "LayoutGroupSortIndex": 0,
  911.       "Value": 0,
  912.       "Locked": true,
  913.       "Grid": true,
  914.       "Snap": true,
  915.       "IgnoreFoW": false,
  916.       "MeasureMovement": false,
  917.       "DragSelectable": true,
  918.       "Autoraise": true,
  919.       "Sticky": true,
  920.       "Tooltip": true,
  921.       "GridProjection": false,
  922.       "HideWhenFaceDown": false,
  923.       "Hands": false,
  924.       "CustomAssetbundle": {
  925.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/",
  926.         "AssetbundleSecondaryURL": "",
  927.         "MaterialIndex": 2,
  928.         "TypeIndex": 4,
  929.         "LoopingEffectIndex": 0
  930.       },
  931.       "LuaScript": "",
  932.       "LuaScriptState": "",
  933.       "XmlUI": ""
  934.     },
  935.     {
  936.       "GUID": "393bf7",
  937.       "Name": "Custom_Assetbundle",
  938.       "Transform": {
  939.         "posX": 12.6,
  940.         "posY": -9.0,
  941.         "posZ": 12.6,
  942.         "rotX": 6.536436E-07,
  943.         "rotY": 180.0,
  944.         "rotZ": -3.84849864E-06,
  945.         "scaleX": 1.0,
  946.         "scaleY": 1.0,
  947.         "scaleZ": 1.0
  948.       },
  949.       "Nickname": "",
  950.       "Description": "",
  951.       "GMNotes": "",
  952.       "AltLookAngle": {
  953.         "x": 0.0,
  954.         "y": 0.0,
  955.         "z": 0.0
  956.       },
  957.       "ColorDiffuse": {
  958.         "r": 1.0,
  959.         "g": 1.0,
  960.         "b": 1.0
  961.       },
  962.       "LayoutGroupSortIndex": 0,
  963.       "Value": 0,
  964.       "Locked": true,
  965.       "Grid": true,
  966.       "Snap": true,
  967.       "IgnoreFoW": false,
  968.       "MeasureMovement": false,
  969.       "DragSelectable": true,
  970.       "Autoraise": true,
  971.       "Sticky": true,
  972.       "Tooltip": true,
  973.       "GridProjection": false,
  974.       "HideWhenFaceDown": false,
  975.       "Hands": false,
  976.       "CustomAssetbundle": {
  977.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/",
  978.         "AssetbundleSecondaryURL": "",
  979.         "MaterialIndex": 2,
  980.         "TypeIndex": 4,
  981.         "LoopingEffectIndex": 0
  982.       },
  983.       "LuaScript": "",
  984.       "LuaScriptState": "",
  985.       "XmlUI": ""
  986.     },
  987.     {
  988.       "GUID": "12c65e",
  989.       "Name": "Custom_Assetbundle",
  990.       "Transform": {
  991.         "posX": 12.6,
  992.         "posY": -9.0,
  993.         "posZ": -12.6,
  994.         "rotX": 6.536436E-07,
  995.         "rotY": 270.0,
  996.         "rotZ": -3.84849864E-06,
  997.         "scaleX": 1.0,
  998.         "scaleY": 1.0,
  999.         "scaleZ": 1.0
  1000.       },
  1001.       "Nickname": "",
  1002.       "Description": "",
  1003.       "GMNotes": "",
  1004.       "AltLookAngle": {
  1005.         "x": 0.0,
  1006.         "y": 0.0,
  1007.         "z": 0.0
  1008.       },
  1009.       "ColorDiffuse": {
  1010.         "r": 1.0,
  1011.         "g": 1.0,
  1012.         "b": 1.0
  1013.       },
  1014.       "LayoutGroupSortIndex": 0,
  1015.       "Value": 0,
  1016.       "Locked": true,
  1017.       "Grid": true,
  1018.       "Snap": true,
  1019.       "IgnoreFoW": false,
  1020.       "MeasureMovement": false,
  1021.       "DragSelectable": true,
  1022.       "Autoraise": true,
  1023.       "Sticky": true,
  1024.       "Tooltip": true,
  1025.       "GridProjection": false,
  1026.       "HideWhenFaceDown": false,
  1027.       "Hands": false,
  1028.       "CustomAssetbundle": {
  1029.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/",
  1030.         "AssetbundleSecondaryURL": "",
  1031.         "MaterialIndex": 2,
  1032.         "TypeIndex": 4,
  1033.         "LoopingEffectIndex": 0
  1034.       },
  1035.       "LuaScript": "",
  1036.       "LuaScriptState": "",
  1037.       "XmlUI": ""
  1038.     },
  1039.     {
  1040.       "GUID": "bd69bd",
  1041.       "Name": "Chinese_Checkers_Piece",
  1042.       "Transform": {
  1043.         "posX": 31.760004,
  1044.         "posY": -0.259998322,
  1045.         "posZ": -34.72,
  1046.         "rotX": 0.00190076465,
  1047.         "rotY": 180.0,
  1048.         "rotZ": 0.000379891542,
  1049.         "scaleX": 1.6499995,
  1050.         "scaleY": 1.6499995,
  1051.         "scaleZ": 1.6499995
  1052.       },
  1053.       "Nickname": "Flex Table Control",
  1054.       "Description": "",
  1055.       "GMNotes": "",
  1056.       "AltLookAngle": {
  1057.         "x": 0.0,
  1058.         "y": 0.0,
  1059.         "z": 0.0
  1060.       },
  1061.       "ColorDiffuse": {
  1062.         "r": 1.0,
  1063.         "g": 1.0,
  1064.         "b": 1.0
  1065.       },
  1066.       "LayoutGroupSortIndex": 0,
  1067.       "Value": 0,
  1068.       "Locked": true,
  1069.       "Grid": true,
  1070.       "Snap": true,
  1071.       "IgnoreFoW": false,
  1072.       "MeasureMovement": false,
  1073.       "DragSelectable": true,
  1074.       "Autoraise": true,
  1075.       "Sticky": true,
  1076.       "Tooltip": false,
  1077.       "GridProjection": false,
  1078.       "HideWhenFaceDown": false,
  1079.       "Hands": false,
  1080.       "MaterialIndex": 1,
  1081.       "LuaScript": "tableHeightOffset = -9\n\nfunction onSave()\n    saved_data = JSON.encode({tid=tableImageData, cd=checkData})\n    --saved_data = \"\"\n    return saved_data\nend\n\nfunction onload(saved_data)\n    --Loads the tracking for if the game has started yet\n    if saved_data ~= \"\" then\n         local loaded_data = JSON.decode(saved_data)\n         tableImageData = loaded_data.tid\n         checkData = loaded_data.cd\n    else\n        tableImageData = {}\n        checkData = {move=false, scale=false}\n    end\n\n    --Disables interactable status of objects with GUID in list\n    for _, guid in ipairs(ref_noninteractable) do\n        local obj = getObjectFromGUID(guid)\n        if obj then obj.interactable = false end\n    end\n\n    --Establish references to table parts\n    obj_leg1 = getObjectFromGUID(\"afc863\")\n    obj_leg2 = getObjectFromGUID(\"c8edca\")\n    obj_leg3 = getObjectFromGUID(\"393bf7\")\n    obj_leg4 = getObjectFromGUID(\"12c65e\")\n    obj_surface = getObjectFromGUID(\"4ee1f2\")\n    obj_side_top = getObjectFromGUID(\"35b95f\")\n    obj_side_bot = getObjectFromGUID(\"f938a2\")\n    obj_side_lef = getObjectFromGUID(\"9f95fd\")\n    obj_side_rig = getObjectFromGUID(\"5af8f2\")\n\n    controlActive = false\n    createOpenCloseButton()\nend\n\n\n\n--Activation/deactivation of control panel\n\n\n\n--Activated by clicking on\nfunction click_toggleControl(_, color)\n    if permissionCheck(color) then\n        if not controlActive then\n            --Activate control panel\n            controlActive = true\n            self.clearButtons()\n            createOpenCloseButton()\n            createSurfaceInput()\n            createSurfaceButtons()\n            createScaleInput()\n            createScaleButtons()\n        else\n            --Deactivate control panel\n            controlActive = false\n            self.clearButtons()\n            self.clearInputs()\n            createOpenCloseButton()\n\n        end\n    end\nend\n\n\n\n\n--Table surface control\n\n\n\n--Changes table surface\nfunction click_applySurface(_, color)\n    if permissionCheck(color) then\n        updateSurface()\n        broadcastToAll(\"New Table Image Applied\", {0.2,0.9,0.2})\n    end\nend\n\n--Saves table surface\nfunction click_saveSurface(_, color)\n    if permissionCheck(color) then\n        local nickname = self.getInputs()[1].value\n        local url = self.getInputs()[2].value\n        if nickname == \"\" then\n            --No nickname\n            broadcastToAll(\"Please supply a nickname for this save.\", {0.9,0.2,0.2})\n        else\n            --Nickname exists\n\n            if findInImageDataIndex(url, nickname) == nil then\n                --Save doesn't exist already\n                table.insert(tableImageData, {url=url, name=nickname})\n                broadcastToAll(\"Image URL saved to memory.\", {0.2,0.9,0.2})\n                --Refresh buttons\n                self.clearButtons()\n                createOpenCloseButton()\n                createSurfaceButtons()\n                createScaleButtons()\n            else\n                --Save exists already\n                broadcastToAll(\"Memory already contains a save with this Name or URL. Delete it first.\", {0.9,0.2,0.2})\n            end\n        end\n    end\nend\n\n--Loads table surface\nfunction click_loadMemory(_, color, index)\n    if permissionCheck(color) then\n        self.editInput({index=0, value=tableImageData[index].name})\n        self.editInput({index=1, value=tableImageData[index].url})\n        updateSurface()\n        broadcastToAll(\"Table Image Loaded\", {0.2,0.9,0.2})\n    end\nend\n\n--Deletes table surface\nfunction click_deleteMemory(_, color, index)\n    if permissionCheck(color) then\n        table.remove(tableImageData, index)\n        self.clearButtons()\n        createOpenCloseButton()\n        createSurfaceButtons()\n        createScaleButtons()\n        broadcastToAll(\"Element Removed from Memory\", {0.2,0.9,0.2})\n    end\nend\n\n--Updates surface from the values in the input field\nfunction updateSurface()\n    local customInfo = obj_surface.getCustomObject()\n    customInfo.diffuse = self.getInputs()[2].value\n    obj_surface.setCustomObject(customInfo)\n    obj_surface = obj_surface.reload()\nend\n\n\n\n--Table Scale control\n\n\n\n--Applies Scale to table pieces\nfunction click_applyScale(_, color)\n    if permissionCheck(color) then\n        local newWidth = tonumber(self.getInputs()[3].value)\n        local newDepth = tonumber(self.getInputs()[4].value)\n        if type(newWidth) ~= \"number\" then\n            broadcastToAll(\"Invalid Width\", {0.9,0.2,0.2})\n            return\n        elseif type(newDepth) ~= \"number\" then\n            broadcastToAll(\"Invalid Depth\", {0.9,0.2,0.2})\n            return\n        elseif newWidth<0.1 or newDepth<0.1 then\n            broadcastToAll(\"Scale cannot go below 0.1\", {0.9,0.2,0.2})\n            return\n        elseif newWidth>12 or newDepth>12 then\n            broadcastToAll(\"Scale should not go over 12 (world size limitation)\", {0.9,0.2,0.2})\n            return\n        else\n            changeTableScale(math.abs(newWidth), math.abs(newDepth))\n            broadcastToAll(\"Scale applied.\", {0.2,0.9,0.2})\n        end\n    end\nend\n\n--Checks/unchecks move box for hands\nfunction click_checkMove(_, color)\n    if permissionCheck(color) then\n        local find_func = function(o) return o.click_function==\"click_checkMove\" end\n        if checkData.move == true then\n            checkData.move = false\n            local buttonEntry = findButton(self, find_func)\n            self.editButton({index=buttonEntry.index, label=\"\"})\n        else\n            checkData.move = true\n            local buttonEntry = findButton(self, find_func)\n            self.editButton({index=buttonEntry.index, label=string.char(10008)})\n        end\n    end\nend\n\n--Checks/unchecks scale box for hands\n--This button was disabled for technical reasons\n--[[\nfunction click_checkScale(_, color)\n    if permissionCheck(color) then\n        local find_func = function(o) return o.click_function==\"click_checkScale\" end\n        if checkData.scale == true then\n            checkData.scale = false\n            local buttonEntry = findButton(self, find_func)\n            self.editButton({index=buttonEntry.index, label=\"\"})\n        else\n            checkData.scale = true\n            local buttonEntry = findButton(self, find_func)\n            self.editButton({index=buttonEntry.index, label=string.char(10008)})\n        end\n    end\nend\n]]\n\n--Alters scale of elements and moves them\nfunction changeTableScale(width, depth)\n    --Scaling factors used to translate scale to position offset\n    local width2pos = (width-1) * 18\n    local depth2pos = (depth-1) * 18\n\n    --Hand zone movement\n    if checkData.move == true then\n        for _, pc in ipairs(ref_playerColor) do\n            if Player[pc].getHandCount() > 0 then\n                moveHandZone(Player[pc], width2pos, depth2pos)\n            end\n        end\n    end\n    --Hand zone scaling\n    --The button to enable this was disabled for technical reasons\n    if checkData.scale == true then\n        for _, pc in ipairs(ref_playerColor) do\n            if Player[pc].getHandCount() > 0 then\n                scaleHandZone(Player[pc], width, depth)\n            end\n        end\n    end\n\n    --Resizing table elements\n    obj_side_top.setScale({width, 1, 1})\n    obj_side_bot.setScale({width, 1, 1})\n    obj_side_lef.setScale({depth, 1, 1})\n    obj_side_rig.setScale({depth, 1, 1})\n    obj_surface.setScale({width, 1, depth})\n\n    --Moving table elements to accomodate new scale\n    obj_side_lef.setPosition({-width2pos,tableHeightOffset,0})\n    obj_side_rig.setPosition({ width2pos,tableHeightOffset,0})\n    obj_side_top.setPosition({0,tableHeightOffset, depth2pos})\n    obj_side_bot.setPosition({0,tableHeightOffset,-depth2pos})\n    obj_leg1.setPosition({-width2pos,tableHeightOffset,-depth2pos})\n    obj_leg2.setPosition({-width2pos,tableHeightOffset, depth2pos})\n    obj_leg3.setPosition({ width2pos,tableHeightOffset, depth2pos})\n    obj_leg4.setPosition({ width2pos,tableHeightOffset,-depth2pos})\n    self.setPosition(obj_leg4.positionToWorld({-22.12, 8.74,-19.16}))\n    --Only enabled when changing tableHeightOffset\n    --obj_surface.setPosition({0,tableHeightOffset,0})\nend\n\n--Move hand zone, p=player reference, facts are scaling factors\nfunction moveHandZone(p, width2pos, depth2pos)\n    local widthX = obj_side_rig.getPosition().x\n    local depthZ = obj_side_top.getPosition().z\n    for i=1, p.getHandCount() do\n        local handT = p.getHandTransform()\n        local pos = handT.position\n        local y = handT.rotation.y\n\n        if y<45 or y>320 or y>135 and y<225 then\n            if pos.z > 0 then\n                pos.z = pos.z + depth2pos - depthZ\n            else\n                pos.z = pos.z - depth2pos + depthZ\n            end\n        else\n            if pos.x > 0 then\n                pos.x = pos.x + width2pos - widthX\n            else\n                pos.x = pos.x - width2pos + widthX\n            end\n        end\n\n        --Only enabled when changing tableHeightOffset\n        --pos.y = tableHeightOffset + 14\n\n        handT.position = pos\n        p.setHandTransform(handT, i)\n    end\nend\n\n\n---Scales hand zones, p=player reference, facts are scaling factors\nfunction scaleHandZone(p, width, depth)\n    local widthFact = width / obj_side_top.getScale().x\n    local depthFact = depth / obj_side_lef.getScale().x\n    for i=1, p.getHandCount() do\n        local handT = p.getHandTransform()\n        local scale = handT.scale\n        local y = handT.rotation.y\n        if y<45 or y>320 or y>135 and y<225 then\n            scale.x = scale.x * widthFact\n        else\n            scale.x = scale.x * depthFact\n        end\n        handT.scale = scale\n        p.setHandTransform(handT, i)\n    end\nend\n\n\n\n--Information gathering\n\n\n\n--Checks if a color is promoted or host\nfunction permissionCheck(color)\n    if Player[color].host==true or Player[color].promoted==true then\n        return true\n    else\n        return false\n    end\nend\n\n--Locates a string saved within memory file\nfunction findInImageDataIndex(...)\n    for _, str in ipairs({...}) do\n        for i, v in ipairs(tableImageData) do\n            if v.url == str or v.name == str then\n                return i\n            end\n        end\n    end\n    return nil\nend\n\n--Round number (num) to the Nth decimal (dec)\nfunction round(num, dec)\n  local mult = 10^(dec or 0)\n  return math.floor(num * mult + 0.5) / mult\nend\n\n--Locates a button with a helper function\nfunction findButton(obj, func)\n    if func==nil then error(\"No func supplied to findButton\") end\n    for _, v in ipairs(obj.getButtons()) do\n        if func(v) then\n            return v\n        end\n    end\n    return nil\nend\n\n\n\n--Creation of buttons/inputs\n\n\n\nfunction createOpenCloseButton()\n    local tooltip = \"Open Table Control Panel\"\n    if controlActive then\n        tooltip = \"Close Table Control Panel\"\n    end\n    self.createButton({\n        click_function=\"click_toggleControl\", function_owner=self,\n        position={0,0,0}, rotation={-45,0,0}, height=400, width=400,\n        color={1,1,1,0}, tooltip=tooltip\n    })\nend\n\nfunction createSurfaceInput()\n    local currentURL = obj_surface.getCustomObject().diffuse\n    local nickname = \"\"\n    if findInImageDataIndex(currentURL) ~= nil then\n        nickname = tableImageData[findInImageDataIndex(currentURL)].name\n    end\n    self.createInput({\n        label=\"Nickname\", input_function=\"none\", function_owner=self,\n        alignment=3, position={0,0,2}, height=224, width=4000,\n        font_size=200, tooltip=\"Enter nickname for table image (only used for save)\",\n        value=nickname\n    })\n    self.createInput({\n        label=\"URL\", input_function=\"none\", function_owner=self,\n        alignment=3, position={0,0,3}, height=224, width=4000,\n        font_size=200, tooltip=\"Enter URL for tabletop image\",\n        value=currentURL\n    })\nend\n\nfunction createSurfaceButtons()\n    --Label\n    self.createButton({\n        label=\"Tabletop Surface Image\", click_function=\"none\",\n        position={0,0,1}, height=0, width=0, font_size=300, font_color={1,1,1}\n    })\n    --Functional\n    self.createButton({\n        label=\"Apply Image\\nTo Table\", click_function=\"click_applySurface\",\n        function_owner=self, tooltip=\"Apply URL as table image\",\n        position={2,0,4}, height=440, width=1400, font_size=200,\n    })\n    self.createButton({\n        label=\"Save Image\\nTo Memory\", click_function=\"click_saveSurface\",\n        function_owner=self, tooltip=\"Record URL into memory (requires nickname)\",\n        position={-2,0,4}, height=440, width=1400, font_size=200,\n    })\n    --Label\n    self.createButton({\n        label=\"Load From Memory\", click_function=\"none\",\n        position={0,0,5.5}, height=0, width=0, font_size=300, font_color={1,1,1}\n    })\n    --Saves, created dynamically from memory file\n    for i, memoryEntry in ipairs(tableImageData) do\n        --Load\n        local funcName = i..\"loadMemory\"\n        local func = function(x,y) click_loadMemory(x,y,i) end\n        self.setVar(funcName, func)\n        self.createButton({\n            label=memoryEntry.name, click_function=funcName,\n            function_owner=self, tooltip=memoryEntry.url, font_size=200,\n            position={-0.6,0,6.5+0.5*(i-1)}, height=240, width=3300,\n        })\n        --Delete\n        local funcName = i..\"deleteMemory\"\n        local func = function(x,y) click_deleteMemory(x,y,i) end\n        self.setVar(funcName, func)\n        self.createButton({\n            label=\"DELETE\", click_function=funcName,\n            function_owner=self, tooltip=\"\",\n            position={3.6,0,6.5+0.5*(i-1)}, height=240, width=600,\n            font_size=160, font_color={1,0,0}, color={0.8,0.8,0.8}\n        })\n    end\nend\n\nfunction createScaleInput()\n    self.createInput({\n        label=string.char(8644), input_function=\"none\", function_owner=self,\n        alignment=3, position={-8.5,0,2}, height=224, width=400,\n        font_size=200, tooltip=\"Table Width\",\n        value=round(obj_side_top.getScale().x, 1)\n    })\n    self.createInput({\n        label=string.char(8645), input_function=\"none\", function_owner=self,\n        alignment=3, position={-7.5,0,2}, height=224, width=400,\n        font_size=200, tooltip=\"Table Depth\",\n        value=round(obj_side_lef.getScale().x, 1)\n    })\nend\n\nfunction createScaleButtons()\n    --Labels\n    self.createButton({\n        label=\"Table Scale\", click_function=\"none\",\n        position={-8,0,1}, height=0, width=0, font_size=300, font_color={1,1,1}\n    })\n    self.createButton({\n        label=string.char(8644)..\"            \"..string.char(8645),\n        click_function=\"none\",\n        position={-8,0,2}, height=0, width=0, font_size=300, font_color={1,1,1}\n    })\n    self.createButton({\n        label=\"Move Hands:\", click_function=\"none\",\n        position={-8.3,0,3}, height=0, width=0, font_size=200, font_color={1,1,1}\n    })\n    --Disabled due to me removing the feature for technical reasons\n    --[[\n    self.createButton({\n        label=\"Scale Hands:\", click_function=\"none\",\n        position={-8.3,0,4}, height=0, width=0, font_size=200, font_color={1,1,1}\n    })\n    ]]\n    --Checkboxes\n    local label = \"\"\n    if checkData.move == true then label = string.char(10008) end\n    self.createButton({\n        label=label, click_function=\"click_checkMove\",\n        function_owner=self, tooltip=\"Check to move hands when table is rescaled\",\n        position={-6.8,0,3}, height=224, width=224, font_size=200,\n    })\n    --[[\n    local label = \"\"\n    if checkData.scale == true then label = string.char(10008) end\n    self.createButton({\n        label=label, click_function=\"click_checkScale\",\n        function_owner=self, tooltip=\"Check to scale the width of hands when table is rescaled\",\n        position={-6.8,0,4}, height=224, width=224, font_size=200,\n    })\n    ]]\n    --Apply button\n    self.createButton({\n        label=\"Apply Scale\", click_function=\"click_applyScale\",\n        function_owner=self, tooltip=\"Apply width/depth to table\",\n        position={-8,0,4}, height=440, width=1400, font_size=200,\n    })\nend\n\n\n\n\n\n--Data tables\n\n\n\n\nref_noninteractable = {\n    \"afc863\",\"c8edca\",\"393bf7\",\"12c65e\",\"f938a2\",\"9f95fd\",\"35b95f\",\n    \"5af8f2\",\"4ee1f2\",\"bd69bd\"\n}\n\nref_playerColor = {\n    \"White\", \"Brown\", \"Red\", \"Orange\", \"Yellow\",\n    \"Green\", \"Teal\", \"Blue\", \"Purple\", \"Pink\", \"Black\"\n}\n\n--Dummy function, absorbs unwanted triggers\nfunction none() end",
  1082.       "LuaScriptState": "{\"cd\":{\"move\":true,\"scale\":false},\"tid\":[{\"name\":\"Felt - Green\",\"url\":\"https://i.imgur.com/eHXDjyy.jpg\"},{\"name\":\"Felt - Red\",\"url\":\"https://i.imgur.com/DbPelDi.jpg\"},{\"name\":\"Felt - Grey\",\"url\":\"https://i.imgur.com/N0O6aqj.jpg\"}]}",
  1083.       "XmlUI": ""
  1084.     },
  1085.     {
  1086.       "GUID": "f938a2",
  1087.       "Name": "Custom_Assetbundle",
  1088.       "Transform": {
  1089.         "posX": 0.0,
  1090.         "posY": -9.0,
  1091.         "posZ": -12.6,
  1092.         "rotX": -1.01777751E-13,
  1093.         "rotY": 0.0,
  1094.         "rotZ": 0.0,
  1095.         "scaleX": 1.7,
  1096.         "scaleY": 1.0,
  1097.         "scaleZ": 1.0
  1098.       },
  1099.       "Nickname": "",
  1100.       "Description": "",
  1101.       "GMNotes": "",
  1102.       "AltLookAngle": {
  1103.         "x": 0.0,
  1104.         "y": 0.0,
  1105.         "z": 0.0
  1106.       },
  1107.       "ColorDiffuse": {
  1108.         "r": 1.0,
  1109.         "g": 1.0,
  1110.         "b": 1.0
  1111.       },
  1112.       "LayoutGroupSortIndex": 0,
  1113.       "Value": 0,
  1114.       "Locked": true,
  1115.       "Grid": true,
  1116.       "Snap": true,
  1117.       "IgnoreFoW": false,
  1118.       "MeasureMovement": false,
  1119.       "DragSelectable": true,
  1120.       "Autoraise": true,
  1121.       "Sticky": true,
  1122.       "Tooltip": true,
  1123.       "GridProjection": false,
  1124.       "HideWhenFaceDown": false,
  1125.       "Hands": false,
  1126.       "CustomAssetbundle": {
  1127.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/",
  1128.         "AssetbundleSecondaryURL": "",
  1129.         "MaterialIndex": 1,
  1130.         "TypeIndex": 4,
  1131.         "LoopingEffectIndex": 0
  1132.       },
  1133.       "LuaScript": "",
  1134.       "LuaScriptState": "",
  1135.       "XmlUI": ""
  1136.     },
  1137.     {
  1138.       "GUID": "9f95fd",
  1139.       "Name": "Custom_Assetbundle",
  1140.       "Transform": {
  1141.         "posX": -12.6,
  1142.         "posY": -9.0,
  1143.         "posZ": 0.0,
  1144.         "rotX": 0.0,
  1145.         "rotY": 90.0,
  1146.         "rotZ": 0.0,
  1147.         "scaleX": 1.7,
  1148.         "scaleY": 1.0,
  1149.         "scaleZ": 1.0
  1150.       },
  1151.       "Nickname": "",
  1152.       "Description": "",
  1153.       "GMNotes": "",
  1154.       "AltLookAngle": {
  1155.         "x": 0.0,
  1156.         "y": 0.0,
  1157.         "z": 0.0
  1158.       },
  1159.       "ColorDiffuse": {
  1160.         "r": 1.0,
  1161.         "g": 1.0,
  1162.         "b": 1.0
  1163.       },
  1164.       "LayoutGroupSortIndex": 0,
  1165.       "Value": 0,
  1166.       "Locked": true,
  1167.       "Grid": true,
  1168.       "Snap": true,
  1169.       "IgnoreFoW": false,
  1170.       "MeasureMovement": false,
  1171.       "DragSelectable": true,
  1172.       "Autoraise": true,
  1173.       "Sticky": true,
  1174.       "Tooltip": true,
  1175.       "GridProjection": false,
  1176.       "HideWhenFaceDown": false,
  1177.       "Hands": false,
  1178.       "CustomAssetbundle": {
  1179.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/",
  1180.         "AssetbundleSecondaryURL": "",
  1181.         "MaterialIndex": 1,
  1182.         "TypeIndex": 4,
  1183.         "LoopingEffectIndex": 0
  1184.       },
  1185.       "LuaScript": "",
  1186.       "LuaScriptState": "",
  1187.       "XmlUI": ""
  1188.     },
  1189.     {
  1190.       "GUID": "35b95f",
  1191.       "Name": "Custom_Assetbundle",
  1192.       "Transform": {
  1193.         "posX": 0.0,
  1194.         "posY": -9.0,
  1195.         "posZ": 12.6,
  1196.         "rotX": -1.01777751E-13,
  1197.         "rotY": 180.0,
  1198.         "rotZ": 0.0,
  1199.         "scaleX": 1.7,
  1200.         "scaleY": 1.0,
  1201.         "scaleZ": 1.0
  1202.       },
  1203.       "Nickname": "",
  1204.       "Description": "",
  1205.       "GMNotes": "",
  1206.       "AltLookAngle": {
  1207.         "x": 0.0,
  1208.         "y": 0.0,
  1209.         "z": 0.0
  1210.       },
  1211.       "ColorDiffuse": {
  1212.         "r": 1.0,
  1213.         "g": 1.0,
  1214.         "b": 1.0
  1215.       },
  1216.       "LayoutGroupSortIndex": 0,
  1217.       "Value": 0,
  1218.       "Locked": true,
  1219.       "Grid": true,
  1220.       "Snap": true,
  1221.       "IgnoreFoW": false,
  1222.       "MeasureMovement": false,
  1223.       "DragSelectable": true,
  1224.       "Autoraise": true,
  1225.       "Sticky": true,
  1226.       "Tooltip": true,
  1227.       "GridProjection": false,
  1228.       "HideWhenFaceDown": false,
  1229.       "Hands": false,
  1230.       "CustomAssetbundle": {
  1231.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/",
  1232.         "AssetbundleSecondaryURL": "",
  1233.         "MaterialIndex": 1,
  1234.         "TypeIndex": 4,
  1235.         "LoopingEffectIndex": 0
  1236.       },
  1237.       "LuaScript": "",
  1238.       "LuaScriptState": "",
  1239.       "XmlUI": ""
  1240.     },
  1241.     {
  1242.       "GUID": "5af8f2",
  1243.       "Name": "Custom_Assetbundle",
  1244.       "Transform": {
  1245.         "posX": 12.6,
  1246.         "posY": -9.0,
  1247.         "posZ": 0.0,
  1248.         "rotX": 0.0,
  1249.         "rotY": 270.0,
  1250.         "rotZ": 0.0,
  1251.         "scaleX": 1.7,
  1252.         "scaleY": 1.0,
  1253.         "scaleZ": 1.0
  1254.       },
  1255.       "Nickname": "",
  1256.       "Description": "",
  1257.       "GMNotes": "",
  1258.       "AltLookAngle": {
  1259.         "x": 0.0,
  1260.         "y": 0.0,
  1261.         "z": 0.0
  1262.       },
  1263.       "ColorDiffuse": {
  1264.         "r": 1.0,
  1265.         "g": 1.0,
  1266.         "b": 1.0
  1267.       },
  1268.       "LayoutGroupSortIndex": 0,
  1269.       "Value": 0,
  1270.       "Locked": true,
  1271.       "Grid": true,
  1272.       "Snap": true,
  1273.       "IgnoreFoW": false,
  1274.       "MeasureMovement": false,
  1275.       "DragSelectable": true,
  1276.       "Autoraise": true,
  1277.       "Sticky": true,
  1278.       "Tooltip": true,
  1279.       "GridProjection": false,
  1280.       "HideWhenFaceDown": false,
  1281.       "Hands": false,
  1282.       "CustomAssetbundle": {
  1283.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/",
  1284.         "AssetbundleSecondaryURL": "",
  1285.         "MaterialIndex": 1,
  1286.         "TypeIndex": 4,
  1287.         "LoopingEffectIndex": 0
  1288.       },
  1289.       "LuaScript": "",
  1290.       "LuaScriptState": "",
  1291.       "XmlUI": ""
  1292.     },
  1293.     {
  1294.       "GUID": "32d75c",
  1295.       "Name": "Custom_Tile",
  1296.       "Transform": {
  1297.         "posX": 0.00489711575,
  1298.         "posY": 1.472919,
  1299.         "posZ": -29.1501,
  1300.         "rotX": 0.0168698411,
  1301.         "rotY": 179.999878,
  1302.         "rotZ": 0.0798768252,
  1303.         "scaleX": 1.3598398,
  1304.         "scaleY": 1.0,
  1305.         "scaleZ": 1.3598398
  1306.       },
  1307.       "Nickname": "",
  1308.       "Description": "",
  1309.       "GMNotes": "",
  1310.       "AltLookAngle": {
  1311.         "x": 0.0,
  1312.         "y": 0.0,
  1313.         "z": 0.0
  1314.       },
  1315.       "ColorDiffuse": {
  1316.         "r": 0.8710801,
  1317.         "g": 0.8710801,
  1318.         "b": 0.8710801
  1319.       },
  1320.       "Tags": [
  1321.         "score"
  1322.       ],
  1323.       "LayoutGroupSortIndex": 0,
  1324.       "Value": 0,
  1325.       "Locked": true,
  1326.       "Grid": true,
  1327.       "Snap": true,
  1328.       "IgnoreFoW": false,
  1329.       "MeasureMovement": false,
  1330.       "DragSelectable": true,
  1331.       "Autoraise": true,
  1332.       "Sticky": true,
  1333.       "Tooltip": true,
  1334.       "GridProjection": false,
  1335.       "HideWhenFaceDown": false,
  1336.       "Hands": false,
  1337.       "CustomImage": {
  1338.         "ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966601919/D818D6B21F64EE6702A21323E2C0F1AAC91BFFDB/",
  1339.         "ImageSecondaryURL": "",
  1340.         "ImageScalar": 1.0,
  1341.         "WidthScale": 0.0,
  1342.         "CustomTile": {
  1343.           "Type": 3,
  1344.           "Thickness": 0.1,
  1345.           "Stackable": false,
  1346.           "Stretch": true
  1347.         }
  1348.       },
  1349.       "LuaScript": "    \n    \n    \n    \nfunction onload(saved_data)\n    sheetLocked = self.script_state.sheetLocked or false\n    local inverseScale = {x=math.floor(100/self.getScale().x)/100, y=math.floor(100/self.getScale().z)/100}\n    scale = self.script_state.scale or inverseScale\n    flip = self.script_state.flip or \"False\"\n    fields = self.script_state.fields or {}\n    checks = self.script_state.checks or {}\n    decals = self.script_state.decals or {}\n    height = self.script_state.height or 0.5\n    locks = self.script_state.locks or {fields=false, checks=false, decals=false}\n    lookupInputIndexToInfo = {}\n    lookupButtonIndexToInfo = {}\n    lookupFieldIndices = {}\n    lookupCheckIndices = {}\n    lookupDecalIndices = {}\n    lookupSelectionButtonIndices = {}\n    lastFieldLockedMessage = 0\n    buttonIndex = 0\n    inputIndex = 0\n    dirtyUpdateWait = nil\n    if saved_data ~= \"\" then\n        local loadedData = JSON.decode(saved_data)\n        sheetLocked = loadedData.sheetLocked or false\n        flip = loadedData.flip  or \"False\"\n        height = loadedData.height or 0.5\n        fields = loadedData.fields or {}\n        checks = loadedData.checks or {}\n        decals = loadedData.decals or {}\n        scale = loadedData.scale or inverseScale\n        locks = loadedData.locks or {fields=false, checks=false, decals=false}\n    end\n    if (not getCommited()) then\n        self.addContextMenuItem(\"Edit Layout\", showEditPanel)\n        self.addContextMenuItem(\"Commit Layout\", showCommitPanel)\n        nudgeDistance = self.script_state.nudgeDistance or 0.1\n        page = 1\n        editingSheet = false\n        selectedId = 0\n        selectedArrayId = 1\n        selectedType = \"\"\n        selectedMax = 5\n        creating = false\n    else\n        makeContextMenuItems()\n    end\n    createAll()\nend\n\nfunction makeContextMenuItems()\n    self.clearContextMenu()\n    if (not sheetLocked) then\n        local getLocked = function(element)\n            if (locks[element]) then return \"◆ Lock\" else return \"◇ Lock\" end\n        end\n        local allLocked = \"Lock\"\n        if (locks.fields and locks.checks and locks.decals) then allLocked = \"Unlock\" end\n        if (#fields > 0 and #checks > 0 and #decals > 0) then\n            self.addContextMenuItem(allLocked..\" everything\", toggleAllLocks)\n        end\n        for k, v in pairs(fields) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"fields\")..\" texts\", toggleLockFields)\n                break\n            end\n        end\n        for k, v in pairs(checks) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"checks\")..\" checkboxes\", toggleLockChecks)\n                break\n            end\n        end\n        for k, v in pairs(decals) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"decals\")..\" images\", toggleLockDecals)\n                break\n            end\n        end\n    end\nend\n\nfunction toggleAllLocks(ply, pos, obj)\n    if (locks.fields and locks.checks and locks.decals) then\n        locks.fields = false\n        locks.checks = false\n        locks.decals = false\n        broadcastToColor(\"Unlocked everything\", ply)\n    else\n        locks.fields = true\n        locks.checks = true\n        locks.decals = true\n        broadcastToColor(\"Locked everything\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockFields(ply, pos, obj)\n    if (locks.fields) then\n        locks.fields = false\n        broadcastToColor(\"Unlocked texts\", ply)\n    else\n        locks.fields = true\n        broadcastToColor(\"Locked texts\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockChecks(ply, pos, obj)\n    if (locks.checks) then\n        locks.checks = false\n        broadcastToColor(\"Unlocked checkboxes\", ply)\n    else\n        locks.checks = true\n        broadcastToColor(\"Locked checkboxes\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockDecals(ply, pos, obj)\n    if (locks.decals) then\n        locks.decals = false\n        broadcastToColor(\"Unlocked images\", ply)\n    else\n        locks.decals = true\n        broadcastToColor(\"Locked images\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction updateSave()\n    local data_to_save = {scale=scale, height=height, fields=fields, checks=checks, decals=decals, flip=flip, sheetLocked=sheetLocked, locks=locks}\n    if (not getCommited()) then\n        data_to_save.nudgeDistance=nudgeDistance\n    else\n        data_to_save.nudgeDistance=nil\n    end\n    saved_data = JSON.encode(data_to_save)\n    self.script_state = saved_data\nend\n\nfunction null() end\n\nfunction refresh()\n    if (not creating) then\n        self.clearInputs()\n        self.clearButtons()\n        inputIndex = 0\n        buttonIndex = 0\n        if (editingSheet) then\n            createSelectionHighlight()       \n        end\n        createAll()\n    end\nend\n\nfunction createAll()\n    lookupInputIndexToInfo = {}\n    lookupButtonIndexToInfo = {}\n    lookupFieldIndices = {}\n    lookupCheckIndices = {}\n    lookupDecalIndices = {}\n    startLuaCoroutine(self, \"createAllCoroutine\")    \nend\n\nfunction createAllCoroutine()\n    if (not getCommited()) then\n        UI.setAttribute(getPanelId(\"Loading\"), \"active\", \"True\")\n    end\n    coroutine.yield(0)\n    creating = true\n    for fieldID, field in pairs(fields) do\n        lookupFieldIndices[fieldID] = {\n            inputs={},\n            colTotals={},\n            rowTotals={},\n            counterButtons={},\n            selectionButtons={}\n        }\n        local posx = field.pos.x\n        local posy = field.pos.y\n        local func = \"edit\"\n        if (field.vsum == \"True\" or field.hsum == \"True\") then\n            func = 'MarumEditableRecalculateSum_'..fieldID\n            _G[func] = function(obj, ply, input_value, selected)\n                local fID = fieldID\n                edit(obj, ply, input_value, selected)\n                obj.call(\"recalculateSums\",fID)\n            end\n        else\n            local iIndex = inputIndex\n            if (field.locked == \"True\" or sheetLocked or locks.fields) then\n                func = 'MarumEditableRevert_'..fieldID\n                _G[func] = function(obj, ply, input_value, selected)\n                    local fID = fieldID\n                    local iID = iIndex\n                    local sel = selected\n                    obj.call(\"revertField\",{fID, ply, iID, sel})\n                end\n            end\n        end\n\n        local fieldScale = {x=scale.x,y=1,z=scale.y}\n        local rotation = {x=0,y=0,z=0}\n        local posMulx = 1\n        local flipped = 1\n        if (flip == \"True\") then\n            rotation.y = 180\n            flipped = -1\n        end\n        local upright = self.getTransformUp().y > 0\n        local shouldFlip = (field.locked == \"True\" or sheetLocked or locks.fields) and upright\n        local unlockedRotation = {x=rotation.x, y=rotation.y, z=rotation.z}\n        if (editingSheet or shouldFlip) then\n            rotation.z = 180\n            posMulx = -posMulx\n            fieldScale.x = -fieldScale.x\n        end\n        local vsum = 0\n        local hsums = {}\n        local fontSize = field.font\n        fontSize = math.min(field.size.y - 24, fontSize)\n        local color = getFieldTextColor(fieldID)\n        for x=1, field.array.x do\n            vsum = 0\n            for y=1, field.array.y do\n                local arrayID = x+(y-1)*field.array.x\n                local pos = getFieldPosition(fieldID, x, y)\n                self.createInput({\n                    value = field.value[arrayID],\n                    tooltip=getFieldTooltip(fieldID, arrayID),\n                    input_function = func,\n                    function_owner = self, \n                    alignment = field.align,\n                    position = pos, \n                    width = field.size.x, \n                    height = field.size.y, \n                    rotation=rotation,\n                    font_size = fontSize, \n                    scale=fieldScale,\n                    font_color=color,\n                    color = field.fieldColor,\n                    tab = 2\n                })\n                if (field.counter == \"True\") then\n                    local counterButtonWidth = fontSize*0.75\n                    _G['MarumEditableCounterIncrease_'..fieldID..'_'..arrayID] = function(obj, ply, alt)\n                        local fID = fieldID\n                        local aID = arrayID\n                        obj.call(\"increaseCounter\",{fID, aID, ply})\n                    end\n                    buttonIndex = buttonIndex+1\n                    lookupButtonIndexToInfo[buttonIndex] = {type=\"counter\", id=fieldID}\n                    table.insert(lookupFieldIndices[fieldID].counterButtons, {index=buttonIndex, x=x, y=y, side=1})\n                    self.createButton({\n                        click_function = 'MarumEditableCounterIncrease_'..fieldID..'_'..arrayID,\n                        tooltip=\"↑ Increase ↑\",\n                        function_owner = self,\n                        label=\"[b]+[/b]\",\n                        position={x=pos.x+(field.size.x + counterButtonWidth) / 1000 * fieldScale.x * posMulx * flipped, y=pos.y, z=pos.z},\n                        rotation=unlockedRotation,\n                        scale=fieldScale,\n                        width=counterButtonWidth,\n                        height=counterButtonWidth,\n                        font_size=fontSize/2,\n                        font_color= color,\n                        color = field.fieldColor,\n                    })\n\n                    _G['MarumEditableCounterDecrease_'..fieldID..'_'..arrayID] = function(obj, ply, alt)\n                        local fID = fieldID\n                        local aID = arrayID\n                        obj.call(\"decreaseCounter\",{fID, aID, ply})\n                    end\n                    buttonIndex = buttonIndex+1\n                    table.insert(lookupFieldIndices[fieldID].counterButtons, {index=buttonIndex, x=x, y=y, side=-1})\n                    self.createButton({\n                        click_function = 'MarumEditableCounterDecrease_'..fieldID..'_'..arrayID,\n                        tooltip=\"↓ Decrease ↓\",\n                        function_owner = self,\n                        label=\"[b]-[/b]\",\n                        position={x=pos.x-(field.size.x + counterButtonWidth) / 1000 * fieldScale.x * posMulx * flipped, y=pos.y, z=pos.z},\n                        unlockedRotation=rotation,\n                        scale=fieldScale,\n                        width=counterButtonWidth,\n                        height=counterButtonWidth,\n                        font_size=fontSize/2,\n                        font_color= color,\n                        color = field.fieldColor,\n                    })\n                end\n                inputIndex = inputIndex+1\n                lookupInputIndexToInfo[inputIndex] = {type=\"field\", id=fieldID, arrayID=arrayID}\n                table.insert(lookupFieldIndices[fieldID].inputs, {index=inputIndex, arrayID=arrayID, x=x, y=y})\n                if (field.vsum == \"True\") then\n                    if (tonumber(field.value[arrayID])) then\n                        vsum = vsum + tonumber(field.value[arrayID])\n                    end\n                end\n                if (field.hsum == \"True\") then\n                    if (tonumber(field.value[arrayID])) then\n                        if (hsums[x] == nil) then\n                            hsums[x] = tonumber(field.value[arrayID])\n                        else\n                            hsums[x] = hsums[x] + tonumber(field.value[arrayID])\n                        end\n                    end\n                end\n\n                if (x == 1 and field.hsum == \"True\") then\n                    local pos = getFieldPosition(fieldID, field.array.x + 1, y)\n                    local func = 'MarumEditableRevertSum_'..fieldID\n                    _G[func] = function(obj, ply, input_value, selected)\n                        obj.call(\"revertFieldSum\",{fieldID, ply, iIndex, selected})\n                    end\n                    self.createInput({\n                        value = \"[u]-[/u]\",\n                        tooltip=\"[Sum]\",\n                        input_function = func,\n                        function_owner = self, \n                        alignment = field.align,\n                        position = pos,\n                        width = field.size.x,\n                        height = field.size.y,\n                        rotation={x=unlockedRotation.x, y=unlockedRotation.y, z=unlockedRotation.z+180},\n                        font_size = fontSize, \n                        scale={x=-scale.x,y=1,z=scale.y},\n                        font_color= color,\n                        color = field.fieldColor,\n                        tab = 0\n                    })\n                    inputIndex = inputIndex+1\n                    table.insert(lookupFieldIndices[fieldID].rowTotals, {index=inputIndex, y=y})\n                end\n\n                if (inputIndex%10==0) then coroutine.yield(0) end\n            end\n\n            if (field.vsum == \"True\") then\n                local pos = getFieldPosition(fieldID, x, field.array.y+1)\n                local func = 'MarumEditableRevertSum_'..fieldID\n                _G[func] = function(obj, ply, input_value, selected)\n                    obj.call(\"revertFieldSum\",{fieldID, ply, iIndex, selected})\n                end\n                self.createInput({\n                    value = \"[u]\"..vsum..\"[/u]\",\n                    tooltip=\"[Sum]\",\n                    input_function = func,\n                    function_owner = self, \n                    alignment = field.align,\n                    position = pos,\n                    width = field.size.x,\n                    height = field.size.y,\n                    rotation={x=unlockedRotation.x, y=unlockedRotation.y, z=unlockedRotation.z+180},\n                    font_size = fontSize, \n                    scale={x=-scale.x,y=1,z=scale.y},\n                    font_color= color,\n                    color = field.fieldColor,\n                    tab = 0\n                })\n                inputIndex = inputIndex+1\n                table.insert(lookupFieldIndices[fieldID].colTotals, {index=inputIndex, x=x})\n            end\n        end\n\n        if (field.hsum == \"True\") then\n            Wait.frames(\n                function()\n                    recalculateSums(fieldID)\n                end,\n                10\n            )\n        end\n    end\n\n    createDecals()\n    for decalID, decal in pairs(decals) do\n        lookupDecalIndices[decalID] = {\n            inputs={},\n            selectionButtons={}\n        }\n        local rotationAdd = 180\n        local posMulx = 1\n        if (flip == \"True\") then\n            rotationAdd = 0\n        end\n        local pos = getDecalPosition(decalID)\n        if (decal.locked != \"True\" and not sheetLocked and not locks.decals and not editingSheet) then\n            local func = 'MarumEditableSetURL_'..decalID\n            _G[func] = function(obj, ply, alt)\n                obj.call(\"showImageURLPanel\",{decalID, ply})\n            end\n            local tooltip = getDecalTooltip(decalID)\n            self.createButton({\n                value = decal.url,\n                tooltip=tooltip,\n                click_function = func,\n                function_owner = self, \n                position = pos, \n                width = 490, \n                height = 490, \n                rotation={x=0,y=0,z=0},\n                font_size = 10,\n                scale={x=decal.scale.x*scale.x, y=decal.scale.y*scale.y, z=decal.scale.y*scale.y},\n                font_color= {r=0, g=0, b=0, a=0},\n                color = {r=0, g=0, b=0, a=0},\n            })\n            buttonIndex = buttonIndex+1\n            lookupButtonIndexToInfo[buttonIndex] = {type=\"decal\", id=decalID}\n            table.insert(lookupDecalIndices[decalID].inputs, {index=buttonIndex})\n        end\n\n        if (inputIndex%10==0) then coroutine.yield(0) end\n    end\n\n    for checkID, check in pairs(checks) do\n        lookupCheckIndices[checkID] = {\n            buttons={},\n            selectionButtons={}\n        }\n        local rotationZ = 0\n        local checkScale = {x=scale.x * check.size.x,y=1,z=scale.y * check.size.y}\n        local upright = self.getTransformUp().y > 0\n        local shouldFlip = (check.locked == \"True\" or sheetLocked or locks.checks) and upright\n        if (editingSheet or shouldFlip) then\n            checkScale.x = -checkScale.x\n            rotationZ = 180\n        end\n        for x=1, check.array.x do\n            for y=1, check.array.y do\n                local arrayID = x+(y-1)*check.array.x\n                local func = \"MarumEditableClickCheckbox_\"..checkID..\"_\"..arrayID\n                if (check.locked == \"True\" or sheetLocked or locks.checks) then\n                    func = \"null\"\n                end\n                local rotationY = 0\n                local posMul = 1\n                if (flip == \"True\") then\n                    rotationY = 180\n                    posMul = -posMul\n                end\n                local pos = getCheckPosition(checkID, x, y)\n                local bindex = buttonIndex\n                _G['MarumEditableClickCheckbox_'..checkID..'_'..arrayID] = function(obj, ply, alt)\n                    local fID = checkID\n                    local aID = arrayID\n                    local bi = bindex\n                    obj.call(\"clickcheck\",{fID, aID, alt, bi, ply})\n                end\n\n                local tooltip = getCheckTooltip(checkID)\n                local label, color, alphaCorrectedColor = getCheckLabelAndColor(checkID, arrayID)\n                buttonIndex = buttonIndex+1\n                lookupButtonIndexToInfo[buttonIndex] = {type=\"check\", id=checkID, arrayID=arrayID}\n                table.insert(lookupCheckIndices[checkID].buttons, {index=buttonIndex, x=x, y=y, arrayID=arrayID})\n                self.createButton({\n                    label = label,\n                    tooltip=tooltip,\n                    click_function = func,\n                    function_owner = self, \n                    alignment = 3,\n                    position = pos, \n                    width = 250, \n                    height = 250, \n                    rotation={x=0,y=rotationY,z=rotationZ},\n                    font_size = check.font,\n                    scale={x=checkScale.x, y=checkScale.y, z=checkScale.z},\n                    font_color=alphaCorrectedColor,\n                    color = check.checkColor,\n                    tab = 0\n                })\n\n                if (buttonIndex%10==0) then coroutine.yield(0) end\n            end\n        end\n    end\n    if (not getCommited() and editingSheet) then\n        createSelectionButtons()\n    end\n    creating = false\n    return 1\nend\n\nfunction revertField(args)\n    local fieldID = args[1]\n    local ply = args[2]\n    local index = args[3]\n    local selected = args[4]\n    if (not selected) then\n        Wait.frames(\n            function()\n                for k, v in pairs(lookupFieldIndices[fieldID].inputs) do\n                    self.editInput({index=v.index-1, value=fields[fieldID].value[v.arrayID]})\n                end\n            end,\n            1\n        )\n    else\n        if (lastFieldLockedMessage != fieldID) then\n            broadcastToColor(\"This text is locked\", ply, {r=1,g=0.5,b=0})\n            lastFieldLockedMessage = fieldID\n        end\n    end\nend\n\nfunction recalculateSums(fieldID)\n    local field = fields[fieldID]\n    if (field.vsum) then\n        for k, v in pairs(lookupFieldIndices[fieldID].colTotals) do\n            local vsum = 0\n            for y=1, field.array.y do\n                local arrayID = v.x+(y-1)*field.array.x\n                if (tonumber(field.value[arrayID])) then\n                    vsum = vsum + tonumber(field.value[arrayID])\n                end\n            end\n            self.editInput({index=v.index-1, value=\"[u]\"..vsum..\"[/u]\"})\n        end\n    end\n    if (field.hsum) then\n        for k, v in pairs(lookupFieldIndices[fieldID].rowTotals) do\n            local hsum = 0\n            for x=1, field.array.x do\n                local arrayID = x+(v.y-1)*field.array.x\n                if (tonumber(field.value[arrayID])) then\n                    hsum = hsum + tonumber(field.value[arrayID])\n                end\n            end\n            self.editInput({index=v.index-1, value=\"[u]\"..hsum..\"[/u]\"})\n        end\n    end\nend\nfunction revertFieldSum(args)\n    local fieldID = args[1]\n    local ply = args[2]\n    local index = args[3]\n    local selected = args[4]\n    if (not selected) then\n        Wait.frames(\n            function()\n                recalculateSums(fieldID)\n            end,\n            1\n        )\n    else\n        if (lastFieldLockedMessage != fieldID) then\n            broadcastToColor(\"This text is reserved for the total sum\", ply, {r=1,g=1,b=0})\n            lastFieldLockedMessage = fieldID\n        end\n    end\nend\n\nfunction createDecals()\n    local decalParameters = {}\n    for decalID, decal in pairs(decals) do\n        local rotationAdd = 180\n        if (flip == \"True\") then\n            rotationAdd = 0\n        end\n        local pos = getDecalPosition(decalID)\n        table.insert(decalParameters, {\n            url=decal.url,\n            name=\"Image #\"..decalID,\n            position={x=-pos.x, y=pos.y, z=pos.z},\n            rotation={x=90, y=rotationAdd+decal.rotation, z=0},\n            scale={x=decal.scale.x*scale.x, y=decal.scale.y*scale.y, z=1}\n        })\n    end\n    self.setDecals(decalParameters)\nend\n\nfunction getFieldPosition(fieldID, x, y)\n    local field = fields[fieldID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=(field.pos.x+(x-1)*field.distance.x) * scale.x * mul,y=height+0.002,z=(field.pos.y+(y-1)*field.distance.y) * scale.y * mul}\nend\nfunction getFieldTooltip(fieldID, arrayID)\n    local field = fields[fieldID]\n    local tooltip = \"\"\n    if (not field.locked) then\n        if (field.tooltip == nil or field.tooltip:find(\"name\")) then\n            tooltip = field.name or \"\"\n        elseif (field.tooltip:find(\"content\")) then\n            tooltip = field.value[arrayID]\n        end\n    end\n    return tooltip\nend\n\nfunction getCheckPosition(checkID, x, y) \n    local check = checks[checkID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=(check.pos.x+(x-1)*check.distance.x) * mul*scale.x,y=height+0.002,z=(check.pos.y+(y-1)*check.distance.y) * mul*scale.y}\nend\n\nfunction getDecalPosition(decalID)\n    local decal = decals[decalID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=decal.pos.x*mul*scale.x, y=height+0.005, z=decal.pos.y*mul*scale.y}\nend\nfunction getDecalTooltip(decalID)\n    local decal = decals[decalID]\n    local tooltip = \"\"\n    if (decal.tooltip == nil) then\n        tooltip = decal.name or \"\"\n    elseif (decal.tooltip:find(\"name\")) then\n        tooltip = decal.name or \"\"\n    elseif (decal.tooltip:find(\"hint\")) then\n        tooltip = \"Click to change image\"\n    end\n    return tooltip\nend\n\nfunction increaseCounter(args)\n    local fieldID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local ply = args[3]\n    local field = fields[fieldID]\n    if (field.value[arrayID] == nil or field.value[arrayID] == \"\") then\n        field.value[arrayID] = 0\n    end\n    if (tonumber(field.value[arrayID])) then\n        field.value[arrayID] = tonumber(field.value[arrayID])+1\n        updateFieldNameContentAndTooltip(fieldID)\n        if (field.vsum == \"True\") then\n            recalculateSums(fieldID)\n        end\n        updateSave()\n    else\n        broadcastToColor(\"Field does not contain a valid number\", ply)\n    end\nend\n\nfunction decreaseCounter(args)\n    local fieldID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local ply = args[3]\n    local field = fields[fieldID]\n    if (field.value[arrayID] == nil or field.value[arrayID] == \"\") then\n        field.value[arrayID] = 0\n    end\n    if (tonumber(field.value[arrayID])) then\n        field.value[arrayID] = tonumber(field.value[arrayID])-1\n        updateFieldNameContentAndTooltip(fieldID)\n        if (field.vsum == \"True\") then\n            recalculateSums(fieldID)\n        end\n        updateSave()\n    else\n        broadcastToColor(\"Field does not contain a valid number\", ply)\n    end\nend\n\nfunction scheduleUpdate()\n    if (dirtyUpdateWait != nil) then\n        Wait.stop(dirtyUpdateWait)\n    end\n    dirtyUpdateWait = Wait.time(\n        function()\n            for k, v in pairs(self.getInputs()) do\n                if (lookupInputIndexToInfo[k] != nil) then\n                    if (lookupInputIndexToInfo[k].type==\"field\") then\n                        local field = fields[lookupInputIndexToInfo[k].id]\n                        field.value[lookupInputIndexToInfo[k].arrayID] = v.value\n                        if (field.tooltip != nil) then\n                            if (field.tooltip:find(\"content\")) then\n                                self.editInput({index=k-1, tooltip=v.value})\n                            end\n                        end\n                    end\n                end\n            end\n        end, 1\n    )\nend\n\nfunction edit(obj, ply, value, selected)\n    for k, v in pairs(obj.getInputs()) do\n        if (lookupInputIndexToInfo[k] != nil) then\n            if (lookupInputIndexToInfo[k].type==\"field\") then\n                local field = fields[lookupInputIndexToInfo[k].id]\n                if (v.value != field.value[lookupInputIndexToInfo[k].arrayID]) then\n                    field.value[lookupInputIndexToInfo[k].arrayID] = v.value\n                    if (field.tooltip != nil) then\n                        if (field.tooltip:find(\"content\")) then\n                            scheduleUpdate()\n                        end\n                    end\n                    if (field.role != nil) then\n                        if (field.role:find(\"name\")) then\n                            self.setName(value)\n                        elseif  (field.role:find(\"description\")) then\n                            self.setDescription(value)\n                        end\n                    end\n                    updateSave()\n                    break\n                end\n            end\n        end\n    end\nend\n\nfunction editUrl(obj, ply, value, selected)\n    local shouldRefresh = false\n    local shouldUpdateSave = false\n    for k, v in pairs(obj.getInputs()) do\n        if (lookupInputIndexToInfo[k] != nil) then\n            if (lookupInputIndexToInfo[k].type==\"decal\") then\n                if (v.value != decals[lookupInputIndexToInfo[k].id].url) then\n                    decals[lookupInputIndexToInfo[k].id].url = v.value\n                    shouldRefresh = true\n                    shouldUpdateSave = true\n                    updateSave()\n                    createDecals()\n                    break\n                end\n            end\n        end\n    end\nend\n\nfunction clickcheck(args)\n    local checkID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local alt_click = args[3]\n    local buttonIndex = args[4]\n    local ply = args[5]\n    local check = checks[checkID]\n    local value = tonumber(check.value[arrayID])\n    if (value == nil) then value = 1 end\n    if (alt_click) then\n        if (value > 0) then\n            check.value[arrayID] = 0\n        else\n            check.value[arrayID] = 1\n        end\n    else\n        if (value == 1) then\n            check.value[arrayID] = 2\n        else\n            if (value == 2) then\n                check.value[arrayID] = 1\n            elseif (check.fillFromDisabled == \"True\") then\n                check.value[arrayID] = 2\n            else\n                broadcastToColor(\"This checkbox is disabled. You can enable/disable checkboxes with Right click.\", ply)\n            end\n        end\n    end\n\n    local label, color, alphaCorrectedColor = getCheckLabelAndColor(checkID, arrayID)\n    self.editButton({index=buttonIndex, label=label, font_color=alphaCorrectedColor})\n    updateSave()\nend\n\nfunction getFieldTextColor(fieldID)\n    local field = fields[fieldID]\n    local textAlpha = field.textColor.a\n    if (tonumber(field.fieldColor.a) > 0) then\n        textAlpha = tonumber(field.textColor.a)/tonumber(field.fieldColor.a)\n    else\n        textAlpha = tonumber(field.textColor.a)*100\n    end\n    return {r=field.textColor.r,g=field.textColor.g,b=field.textColor.b,a=textAlpha}\nend\n\nfunction getCheckTooltip(checkID)\n    local check=checks[checkID]\n    local tooltip = \"\"\n    if (not check.locked) then\n        if (check.tooltip == nil or check.tooltip:find(\"name\")) then\n            tooltip = check.name\n        elseif (check.tooltip:find(\"hint\")) then\n            tooltip = \"Left click to toggle, Right click to enable/disable\"\n        end\n    end\n    return tooltip\nend\n\nfunction getCheckLabelAndColor(checkID, arrayID)\n    local check = checks[checkID]\n    local label = check.characters.empty\n    if (check.value[arrayID] == 0) then\n        label = check.characters.disabled\n    elseif (check.value[arrayID] == 2) then\n        label = check.characters.filled\n    end\n\n    local color = nil\n    if (check.separateColors == \"True\") then\n        if (check.value[arrayID] == 0) then\n            color = check.textColorDisabled or check.textColor\n        elseif (check.value[arrayID] == 1) then\n            color = check.textColorOff or check.textColor\n        elseif (check.value[arrayID] == 2) then\n            color = check.textColorOn or check.textColor\n        else\n            color = check.textColorOff or check.textColor\n        end\n    else\n        color = check.textColorOn or check.textColor\n    end\n\n    local alpha = 1\n    local checkAlpha = math.max(1/255, check.checkColor.a)\n    if (tonumber(check.checkColor.a) > 0) then\n        alpha = tonumber(color.a)/tonumber(checkAlpha)\n    else\n        alpha = tonumber(color.a)*100\n    end \n    return label, color, {r=color.r, g=color.g, b=color.b, a=color.a*alpha}\nend\n\nfunction split (inputstr, sep)\n    if sep == nil then\n            sep = \"%s\"\n    end\n    local t={}\n    for str in string.gmatch(inputstr, \"([^\"..sep..\"]+)\") do\n            table.insert(t, str)\n    end\n    return t\nend\n\nfunction onRotate(spin, flip, player_color, old_spin, old_flip)\n    updateLockedFieldOrientation(flip < 90)\nend\nfunction onDrop(ply)\n    updateLockedFieldOrientation(self.getTransformUp().y >= 0)\nend\n\nfunction updateLockedFieldOrientation(upright)\n    for k, v in pairs(fields) do\n        if (v.locked == \"True\" or sheetLocked or locks.fields or v.vsum == \"True\") then\n            local field = v\n            local fieldScale = {x=scale.x,y=1,z=scale.y}\n            local rotation = {x=0,y=0,z=0}\n            if (flip == \"True\") then\n                rotation.y = 180\n            end\n            if (upright) then\n                rotation.z = 180\n                fieldScale.x = -scale.x\n            end\n            if (v.locked == \"True\" or sheetLocked or locks.fields) then\n                for arrayID, inp in pairs(lookupFieldIndices[k].inputs) do\n                    self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n                end\n            end\n            for arrayID, inp in pairs(lookupFieldIndices[k].colTotals) do\n                self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n            end\n            for arrayID, inp in pairs(lookupFieldIndices[k].rowTotals) do\n                self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n            end\n        end\n    end\n    for k, v in pairs(checks) do\n        if (v.locked == \"True\" or sheetLocked or locks.fields) then\n            local check=v\n            local rotationZ = 0\n            local checkScale = {x=scale.x * check.size.x,y=1,z=scale.y * check.size.y}\n            if (upright) then\n                checkScale.x = -checkScale.x\n                rotationZ = 180\n            end\n            local rotationY = 0\n            if (flip == \"True\") then\n                rotationY = 180\n            end\n            for arrayID, inp in pairs(lookupCheckIndices[k].buttons) do\n                self.editButton({index=inp.index-1, rotation={x=0,y=rotationY,z=rotationZ}, scale=checkScale})\n            end\n        end\n    end\nend\n\nfunction showImageURLPanel(args)\n    local decalID = args[1]\n    local ply = args[2]\n    Player[ply].showInputDialog(\"Set image URL\",\n        function (text, player_color)\n            decals[decalID].url = text\n            createDecals()\n            updateSave()\n        end\n    )\nend\n\nfunction updateFieldNameContentAndTooltip(fieldID)\n    local field = fields[fieldID]\n    for k, v in pairs(lookupFieldIndices[fieldID].inputs) do\n        self.editInput({index=v.index-1, value=field.value[v.arrayID], tooltip=getFieldTooltip(fieldID, v.arrayID)})\n    end\n    local name = \"T\"..fieldID\n    local tooltip = \"Select \"..(field.name or name)\n    for k, v in pairs(lookupFieldIndices[fieldID].selectionButtons) do\n        self.editButton({index=v.index-1, tooltip = tooltip})\n    end\nend\n\nfunction getCommited()\n    return true\nend\n\n--",
  1350.       "LuaScriptState": "{\"checks\":[],\"decals\":[],\"fields\":[{\"align\":3,\"array\":{\"x\":1,\"y\":1},\"counter\":\"False\",\"distance\":{\"x\":1,\"y\":1},\"fieldColor\":{\"a\":0,\"b\":1,\"g\":1,\"r\":1},\"font\":\"5000\",\"locked\":false,\"name\":\"\",\"pos\":{\"x\":0,\"y\":0},\"role\":\"Normal Field\",\"size\":{\"x\":\"2000\",\"y\":\"1000\"},\"textColor\":{\"a\":1,\"b\":0,\"g\":0,\"r\":0},\"tooltip\":\"name\",\"value\":[\"000\"]}],\"flip\":\"False\",\"height\":\"0.1\",\"locks\":{\"checks\":false,\"decals\":false,\"fields\":false},\"nudgeDistance\":0.1,\"scale\":{\"x\":\"0.6\",\"y\":\"0.6\"},\"sheetLocked\":false}",
  1351.       "XmlUI": ""
  1352.     },
  1353.     {
  1354.       "GUID": "5308f5",
  1355.       "Name": "HandTrigger",
  1356.       "Transform": {
  1357.         "posX": -24.2,
  1358.         "posY": 5.541681,
  1359.         "posZ": -24.2,
  1360.         "rotX": 0.0,
  1361.         "rotY": 45.0000038,
  1362.         "rotZ": 0.0,
  1363.         "scaleX": 11.8350019,
  1364.         "scaleY": 7.002465,
  1365.         "scaleZ": 4.04115963
  1366.       },
  1367.       "Nickname": "",
  1368.       "Description": "",
  1369.       "GMNotes": "",
  1370.       "AltLookAngle": {
  1371.         "x": 0.0,
  1372.         "y": 0.0,
  1373.         "z": 0.0
  1374.       },
  1375.       "ColorDiffuse": {
  1376.         "r": 0.96,
  1377.         "g": 0.438999981,
  1378.         "b": 0.807,
  1379.         "a": 0.0
  1380.       },
  1381.       "LayoutGroupSortIndex": 0,
  1382.       "Value": 0,
  1383.       "Locked": true,
  1384.       "Grid": false,
  1385.       "Snap": true,
  1386.       "IgnoreFoW": false,
  1387.       "MeasureMovement": false,
  1388.       "DragSelectable": true,
  1389.       "Autoraise": true,
  1390.       "Sticky": true,
  1391.       "Tooltip": true,
  1392.       "GridProjection": false,
  1393.       "HideWhenFaceDown": false,
  1394.       "Hands": false,
  1395.       "FogColor": "Pink",
  1396.       "LuaScript": "",
  1397.       "LuaScriptState": "",
  1398.       "XmlUI": ""
  1399.     },
  1400.     {
  1401.       "GUID": "6d8290",
  1402.       "Name": "Custom_Tile",
  1403.       "Transform": {
  1404.         "posX": -22.2894535,
  1405.         "posY": 1.50604737,
  1406.         "posZ": -22.194912,
  1407.         "rotX": 359.955444,
  1408.         "rotY": 225.000381,
  1409.         "rotZ": 0.068411,
  1410.         "scaleX": 1.3598398,
  1411.         "scaleY": 1.0,
  1412.         "scaleZ": 1.3598398
  1413.       },
  1414.       "Nickname": "",
  1415.       "Description": "",
  1416.       "GMNotes": "",
  1417.       "AltLookAngle": {
  1418.         "x": 0.0,
  1419.         "y": 0.0,
  1420.         "z": 0.0
  1421.       },
  1422.       "ColorDiffuse": {
  1423.         "r": 0.8710801,
  1424.         "g": 0.8710801,
  1425.         "b": 0.8710801
  1426.       },
  1427.       "Tags": [
  1428.         "score"
  1429.       ],
  1430.       "LayoutGroupSortIndex": 0,
  1431.       "Value": 0,
  1432.       "Locked": true,
  1433.       "Grid": true,
  1434.       "Snap": true,
  1435.       "IgnoreFoW": false,
  1436.       "MeasureMovement": false,
  1437.       "DragSelectable": true,
  1438.       "Autoraise": true,
  1439.       "Sticky": true,
  1440.       "Tooltip": true,
  1441.       "GridProjection": false,
  1442.       "HideWhenFaceDown": false,
  1443.       "Hands": false,
  1444.       "CustomImage": {
  1445.         "ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966601919/D818D6B21F64EE6702A21323E2C0F1AAC91BFFDB/",
  1446.         "ImageSecondaryURL": "",
  1447.         "ImageScalar": 1.0,
  1448.         "WidthScale": 0.0,
  1449.         "CustomTile": {
  1450.           "Type": 3,
  1451.           "Thickness": 0.1,
  1452.           "Stackable": false,
  1453.           "Stretch": true
  1454.         }
  1455.       },
  1456.       "LuaScript": "    \n    \n    \n    \nfunction onload(saved_data)\n    sheetLocked = self.script_state.sheetLocked or false\n    local inverseScale = {x=math.floor(100/self.getScale().x)/100, y=math.floor(100/self.getScale().z)/100}\n    scale = self.script_state.scale or inverseScale\n    flip = self.script_state.flip or \"False\"\n    fields = self.script_state.fields or {}\n    checks = self.script_state.checks or {}\n    decals = self.script_state.decals or {}\n    height = self.script_state.height or 0.5\n    locks = self.script_state.locks or {fields=false, checks=false, decals=false}\n    lookupInputIndexToInfo = {}\n    lookupButtonIndexToInfo = {}\n    lookupFieldIndices = {}\n    lookupCheckIndices = {}\n    lookupDecalIndices = {}\n    lookupSelectionButtonIndices = {}\n    lastFieldLockedMessage = 0\n    buttonIndex = 0\n    inputIndex = 0\n    dirtyUpdateWait = nil\n    if saved_data ~= \"\" then\n        local loadedData = JSON.decode(saved_data)\n        sheetLocked = loadedData.sheetLocked or false\n        flip = loadedData.flip  or \"False\"\n        height = loadedData.height or 0.5\n        fields = loadedData.fields or {}\n        checks = loadedData.checks or {}\n        decals = loadedData.decals or {}\n        scale = loadedData.scale or inverseScale\n        locks = loadedData.locks or {fields=false, checks=false, decals=false}\n    end\n    if (not getCommited()) then\n        self.addContextMenuItem(\"Edit Layout\", showEditPanel)\n        self.addContextMenuItem(\"Commit Layout\", showCommitPanel)\n        nudgeDistance = self.script_state.nudgeDistance or 0.1\n        page = 1\n        editingSheet = false\n        selectedId = 0\n        selectedArrayId = 1\n        selectedType = \"\"\n        selectedMax = 5\n        creating = false\n    else\n        makeContextMenuItems()\n    end\n    createAll()\nend\n\nfunction makeContextMenuItems()\n    self.clearContextMenu()\n    if (not sheetLocked) then\n        local getLocked = function(element)\n            if (locks[element]) then return \"◆ Lock\" else return \"◇ Lock\" end\n        end\n        local allLocked = \"Lock\"\n        if (locks.fields and locks.checks and locks.decals) then allLocked = \"Unlock\" end\n        if (#fields > 0 and #checks > 0 and #decals > 0) then\n            self.addContextMenuItem(allLocked..\" everything\", toggleAllLocks)\n        end\n        for k, v in pairs(fields) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"fields\")..\" texts\", toggleLockFields)\n                break\n            end\n        end\n        for k, v in pairs(checks) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"checks\")..\" checkboxes\", toggleLockChecks)\n                break\n            end\n        end\n        for k, v in pairs(decals) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"decals\")..\" images\", toggleLockDecals)\n                break\n            end\n        end\n    end\nend\n\nfunction toggleAllLocks(ply, pos, obj)\n    if (locks.fields and locks.checks and locks.decals) then\n        locks.fields = false\n        locks.checks = false\n        locks.decals = false\n        broadcastToColor(\"Unlocked everything\", ply)\n    else\n        locks.fields = true\n        locks.checks = true\n        locks.decals = true\n        broadcastToColor(\"Locked everything\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockFields(ply, pos, obj)\n    if (locks.fields) then\n        locks.fields = false\n        broadcastToColor(\"Unlocked texts\", ply)\n    else\n        locks.fields = true\n        broadcastToColor(\"Locked texts\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockChecks(ply, pos, obj)\n    if (locks.checks) then\n        locks.checks = false\n        broadcastToColor(\"Unlocked checkboxes\", ply)\n    else\n        locks.checks = true\n        broadcastToColor(\"Locked checkboxes\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockDecals(ply, pos, obj)\n    if (locks.decals) then\n        locks.decals = false\n        broadcastToColor(\"Unlocked images\", ply)\n    else\n        locks.decals = true\n        broadcastToColor(\"Locked images\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction updateSave()\n    local data_to_save = {scale=scale, height=height, fields=fields, checks=checks, decals=decals, flip=flip, sheetLocked=sheetLocked, locks=locks}\n    if (not getCommited()) then\n        data_to_save.nudgeDistance=nudgeDistance\n    else\n        data_to_save.nudgeDistance=nil\n    end\n    saved_data = JSON.encode(data_to_save)\n    self.script_state = saved_data\nend\n\nfunction null() end\n\nfunction refresh()\n    if (not creating) then\n        self.clearInputs()\n        self.clearButtons()\n        inputIndex = 0\n        buttonIndex = 0\n        if (editingSheet) then\n            createSelectionHighlight()       \n        end\n        createAll()\n    end\nend\n\nfunction createAll()\n    lookupInputIndexToInfo = {}\n    lookupButtonIndexToInfo = {}\n    lookupFieldIndices = {}\n    lookupCheckIndices = {}\n    lookupDecalIndices = {}\n    startLuaCoroutine(self, \"createAllCoroutine\")    \nend\n\nfunction createAllCoroutine()\n    if (not getCommited()) then\n        UI.setAttribute(getPanelId(\"Loading\"), \"active\", \"True\")\n    end\n    coroutine.yield(0)\n    creating = true\n    for fieldID, field in pairs(fields) do\n        lookupFieldIndices[fieldID] = {\n            inputs={},\n            colTotals={},\n            rowTotals={},\n            counterButtons={},\n            selectionButtons={}\n        }\n        local posx = field.pos.x\n        local posy = field.pos.y\n        local func = \"edit\"\n        if (field.vsum == \"True\" or field.hsum == \"True\") then\n            func = 'MarumEditableRecalculateSum_'..fieldID\n            _G[func] = function(obj, ply, input_value, selected)\n                local fID = fieldID\n                edit(obj, ply, input_value, selected)\n                obj.call(\"recalculateSums\",fID)\n            end\n        else\n            local iIndex = inputIndex\n            if (field.locked == \"True\" or sheetLocked or locks.fields) then\n                func = 'MarumEditableRevert_'..fieldID\n                _G[func] = function(obj, ply, input_value, selected)\n                    local fID = fieldID\n                    local iID = iIndex\n                    local sel = selected\n                    obj.call(\"revertField\",{fID, ply, iID, sel})\n                end\n            end\n        end\n\n        local fieldScale = {x=scale.x,y=1,z=scale.y}\n        local rotation = {x=0,y=0,z=0}\n        local posMulx = 1\n        local flipped = 1\n        if (flip == \"True\") then\n            rotation.y = 180\n            flipped = -1\n        end\n        local upright = self.getTransformUp().y > 0\n        local shouldFlip = (field.locked == \"True\" or sheetLocked or locks.fields) and upright\n        local unlockedRotation = {x=rotation.x, y=rotation.y, z=rotation.z}\n        if (editingSheet or shouldFlip) then\n            rotation.z = 180\n            posMulx = -posMulx\n            fieldScale.x = -fieldScale.x\n        end\n        local vsum = 0\n        local hsums = {}\n        local fontSize = field.font\n        fontSize = math.min(field.size.y - 24, fontSize)\n        local color = getFieldTextColor(fieldID)\n        for x=1, field.array.x do\n            vsum = 0\n            for y=1, field.array.y do\n                local arrayID = x+(y-1)*field.array.x\n                local pos = getFieldPosition(fieldID, x, y)\n                self.createInput({\n                    value = field.value[arrayID],\n                    tooltip=getFieldTooltip(fieldID, arrayID),\n                    input_function = func,\n                    function_owner = self, \n                    alignment = field.align,\n                    position = pos, \n                    width = field.size.x, \n                    height = field.size.y, \n                    rotation=rotation,\n                    font_size = fontSize, \n                    scale=fieldScale,\n                    font_color=color,\n                    color = field.fieldColor,\n                    tab = 2\n                })\n                if (field.counter == \"True\") then\n                    local counterButtonWidth = fontSize*0.75\n                    _G['MarumEditableCounterIncrease_'..fieldID..'_'..arrayID] = function(obj, ply, alt)\n                        local fID = fieldID\n                        local aID = arrayID\n                        obj.call(\"increaseCounter\",{fID, aID, ply})\n                    end\n                    buttonIndex = buttonIndex+1\n                    lookupButtonIndexToInfo[buttonIndex] = {type=\"counter\", id=fieldID}\n                    table.insert(lookupFieldIndices[fieldID].counterButtons, {index=buttonIndex, x=x, y=y, side=1})\n                    self.createButton({\n                        click_function = 'MarumEditableCounterIncrease_'..fieldID..'_'..arrayID,\n                        tooltip=\"↑ Increase ↑\",\n                        function_owner = self,\n                        label=\"[b]+[/b]\",\n                        position={x=pos.x+(field.size.x + counterButtonWidth) / 1000 * fieldScale.x * posMulx * flipped, y=pos.y, z=pos.z},\n                        rotation=unlockedRotation,\n                        scale=fieldScale,\n                        width=counterButtonWidth,\n                        height=counterButtonWidth,\n                        font_size=fontSize/2,\n                        font_color= color,\n                        color = field.fieldColor,\n                    })\n\n                    _G['MarumEditableCounterDecrease_'..fieldID..'_'..arrayID] = function(obj, ply, alt)\n                        local fID = fieldID\n                        local aID = arrayID\n                        obj.call(\"decreaseCounter\",{fID, aID, ply})\n                    end\n                    buttonIndex = buttonIndex+1\n                    table.insert(lookupFieldIndices[fieldID].counterButtons, {index=buttonIndex, x=x, y=y, side=-1})\n                    self.createButton({\n                        click_function = 'MarumEditableCounterDecrease_'..fieldID..'_'..arrayID,\n                        tooltip=\"↓ Decrease ↓\",\n                        function_owner = self,\n                        label=\"[b]-[/b]\",\n                        position={x=pos.x-(field.size.x + counterButtonWidth) / 1000 * fieldScale.x * posMulx * flipped, y=pos.y, z=pos.z},\n                        unlockedRotation=rotation,\n                        scale=fieldScale,\n                        width=counterButtonWidth,\n                        height=counterButtonWidth,\n                        font_size=fontSize/2,\n                        font_color= color,\n                        color = field.fieldColor,\n                    })\n                end\n                inputIndex = inputIndex+1\n                lookupInputIndexToInfo[inputIndex] = {type=\"field\", id=fieldID, arrayID=arrayID}\n                table.insert(lookupFieldIndices[fieldID].inputs, {index=inputIndex, arrayID=arrayID, x=x, y=y})\n                if (field.vsum == \"True\") then\n                    if (tonumber(field.value[arrayID])) then\n                        vsum = vsum + tonumber(field.value[arrayID])\n                    end\n                end\n                if (field.hsum == \"True\") then\n                    if (tonumber(field.value[arrayID])) then\n                        if (hsums[x] == nil) then\n                            hsums[x] = tonumber(field.value[arrayID])\n                        else\n                            hsums[x] = hsums[x] + tonumber(field.value[arrayID])\n                        end\n                    end\n                end\n\n                if (x == 1 and field.hsum == \"True\") then\n                    local pos = getFieldPosition(fieldID, field.array.x + 1, y)\n                    local func = 'MarumEditableRevertSum_'..fieldID\n                    _G[func] = function(obj, ply, input_value, selected)\n                        obj.call(\"revertFieldSum\",{fieldID, ply, iIndex, selected})\n                    end\n                    self.createInput({\n                        value = \"[u]-[/u]\",\n                        tooltip=\"[Sum]\",\n                        input_function = func,\n                        function_owner = self, \n                        alignment = field.align,\n                        position = pos,\n                        width = field.size.x,\n                        height = field.size.y,\n                        rotation={x=unlockedRotation.x, y=unlockedRotation.y, z=unlockedRotation.z+180},\n                        font_size = fontSize, \n                        scale={x=-scale.x,y=1,z=scale.y},\n                        font_color= color,\n                        color = field.fieldColor,\n                        tab = 0\n                    })\n                    inputIndex = inputIndex+1\n                    table.insert(lookupFieldIndices[fieldID].rowTotals, {index=inputIndex, y=y})\n                end\n\n                if (inputIndex%10==0) then coroutine.yield(0) end\n            end\n\n            if (field.vsum == \"True\") then\n                local pos = getFieldPosition(fieldID, x, field.array.y+1)\n                local func = 'MarumEditableRevertSum_'..fieldID\n                _G[func] = function(obj, ply, input_value, selected)\n                    obj.call(\"revertFieldSum\",{fieldID, ply, iIndex, selected})\n                end\n                self.createInput({\n                    value = \"[u]\"..vsum..\"[/u]\",\n                    tooltip=\"[Sum]\",\n                    input_function = func,\n                    function_owner = self, \n                    alignment = field.align,\n                    position = pos,\n                    width = field.size.x,\n                    height = field.size.y,\n                    rotation={x=unlockedRotation.x, y=unlockedRotation.y, z=unlockedRotation.z+180},\n                    font_size = fontSize, \n                    scale={x=-scale.x,y=1,z=scale.y},\n                    font_color= color,\n                    color = field.fieldColor,\n                    tab = 0\n                })\n                inputIndex = inputIndex+1\n                table.insert(lookupFieldIndices[fieldID].colTotals, {index=inputIndex, x=x})\n            end\n        end\n\n        if (field.hsum == \"True\") then\n            Wait.frames(\n                function()\n                    recalculateSums(fieldID)\n                end,\n                10\n            )\n        end\n    end\n\n    createDecals()\n    for decalID, decal in pairs(decals) do\n        lookupDecalIndices[decalID] = {\n            inputs={},\n            selectionButtons={}\n        }\n        local rotationAdd = 180\n        local posMulx = 1\n        if (flip == \"True\") then\n            rotationAdd = 0\n        end\n        local pos = getDecalPosition(decalID)\n        if (decal.locked != \"True\" and not sheetLocked and not locks.decals and not editingSheet) then\n            local func = 'MarumEditableSetURL_'..decalID\n            _G[func] = function(obj, ply, alt)\n                obj.call(\"showImageURLPanel\",{decalID, ply})\n            end\n            local tooltip = getDecalTooltip(decalID)\n            self.createButton({\n                value = decal.url,\n                tooltip=tooltip,\n                click_function = func,\n                function_owner = self, \n                position = pos, \n                width = 490, \n                height = 490, \n                rotation={x=0,y=0,z=0},\n                font_size = 10,\n                scale={x=decal.scale.x*scale.x, y=decal.scale.y*scale.y, z=decal.scale.y*scale.y},\n                font_color= {r=0, g=0, b=0, a=0},\n                color = {r=0, g=0, b=0, a=0},\n            })\n            buttonIndex = buttonIndex+1\n            lookupButtonIndexToInfo[buttonIndex] = {type=\"decal\", id=decalID}\n            table.insert(lookupDecalIndices[decalID].inputs, {index=buttonIndex})\n        end\n\n        if (inputIndex%10==0) then coroutine.yield(0) end\n    end\n\n    for checkID, check in pairs(checks) do\n        lookupCheckIndices[checkID] = {\n            buttons={},\n            selectionButtons={}\n        }\n        local rotationZ = 0\n        local checkScale = {x=scale.x * check.size.x,y=1,z=scale.y * check.size.y}\n        local upright = self.getTransformUp().y > 0\n        local shouldFlip = (check.locked == \"True\" or sheetLocked or locks.checks) and upright\n        if (editingSheet or shouldFlip) then\n            checkScale.x = -checkScale.x\n            rotationZ = 180\n        end\n        for x=1, check.array.x do\n            for y=1, check.array.y do\n                local arrayID = x+(y-1)*check.array.x\n                local func = \"MarumEditableClickCheckbox_\"..checkID..\"_\"..arrayID\n                if (check.locked == \"True\" or sheetLocked or locks.checks) then\n                    func = \"null\"\n                end\n                local rotationY = 0\n                local posMul = 1\n                if (flip == \"True\") then\n                    rotationY = 180\n                    posMul = -posMul\n                end\n                local pos = getCheckPosition(checkID, x, y)\n                local bindex = buttonIndex\n                _G['MarumEditableClickCheckbox_'..checkID..'_'..arrayID] = function(obj, ply, alt)\n                    local fID = checkID\n                    local aID = arrayID\n                    local bi = bindex\n                    obj.call(\"clickcheck\",{fID, aID, alt, bi, ply})\n                end\n\n                local tooltip = getCheckTooltip(checkID)\n                local label, color, alphaCorrectedColor = getCheckLabelAndColor(checkID, arrayID)\n                buttonIndex = buttonIndex+1\n                lookupButtonIndexToInfo[buttonIndex] = {type=\"check\", id=checkID, arrayID=arrayID}\n                table.insert(lookupCheckIndices[checkID].buttons, {index=buttonIndex, x=x, y=y, arrayID=arrayID})\n                self.createButton({\n                    label = label,\n                    tooltip=tooltip,\n                    click_function = func,\n                    function_owner = self, \n                    alignment = 3,\n                    position = pos, \n                    width = 250, \n                    height = 250, \n                    rotation={x=0,y=rotationY,z=rotationZ},\n                    font_size = check.font,\n                    scale={x=checkScale.x, y=checkScale.y, z=checkScale.z},\n                    font_color=alphaCorrectedColor,\n                    color = check.checkColor,\n                    tab = 0\n                })\n\n                if (buttonIndex%10==0) then coroutine.yield(0) end\n            end\n        end\n    end\n    if (not getCommited() and editingSheet) then\n        createSelectionButtons()\n    end\n    creating = false\n    return 1\nend\n\nfunction revertField(args)\n    local fieldID = args[1]\n    local ply = args[2]\n    local index = args[3]\n    local selected = args[4]\n    if (not selected) then\n        Wait.frames(\n            function()\n                for k, v in pairs(lookupFieldIndices[fieldID].inputs) do\n                    self.editInput({index=v.index-1, value=fields[fieldID].value[v.arrayID]})\n                end\n            end,\n            1\n        )\n    else\n        if (lastFieldLockedMessage != fieldID) then\n            broadcastToColor(\"This text is locked\", ply, {r=1,g=0.5,b=0})\n            lastFieldLockedMessage = fieldID\n        end\n    end\nend\n\nfunction recalculateSums(fieldID)\n    local field = fields[fieldID]\n    if (field.vsum) then\n        for k, v in pairs(lookupFieldIndices[fieldID].colTotals) do\n            local vsum = 0\n            for y=1, field.array.y do\n                local arrayID = v.x+(y-1)*field.array.x\n                if (tonumber(field.value[arrayID])) then\n                    vsum = vsum + tonumber(field.value[arrayID])\n                end\n            end\n            self.editInput({index=v.index-1, value=\"[u]\"..vsum..\"[/u]\"})\n        end\n    end\n    if (field.hsum) then\n        for k, v in pairs(lookupFieldIndices[fieldID].rowTotals) do\n            local hsum = 0\n            for x=1, field.array.x do\n                local arrayID = x+(v.y-1)*field.array.x\n                if (tonumber(field.value[arrayID])) then\n                    hsum = hsum + tonumber(field.value[arrayID])\n                end\n            end\n            self.editInput({index=v.index-1, value=\"[u]\"..hsum..\"[/u]\"})\n        end\n    end\nend\nfunction revertFieldSum(args)\n    local fieldID = args[1]\n    local ply = args[2]\n    local index = args[3]\n    local selected = args[4]\n    if (not selected) then\n        Wait.frames(\n            function()\n                recalculateSums(fieldID)\n            end,\n            1\n        )\n    else\n        if (lastFieldLockedMessage != fieldID) then\n            broadcastToColor(\"This text is reserved for the total sum\", ply, {r=1,g=1,b=0})\n            lastFieldLockedMessage = fieldID\n        end\n    end\nend\n\nfunction createDecals()\n    local decalParameters = {}\n    for decalID, decal in pairs(decals) do\n        local rotationAdd = 180\n        if (flip == \"True\") then\n            rotationAdd = 0\n        end\n        local pos = getDecalPosition(decalID)\n        table.insert(decalParameters, {\n            url=decal.url,\n            name=\"Image #\"..decalID,\n            position={x=-pos.x, y=pos.y, z=pos.z},\n            rotation={x=90, y=rotationAdd+decal.rotation, z=0},\n            scale={x=decal.scale.x*scale.x, y=decal.scale.y*scale.y, z=1}\n        })\n    end\n    self.setDecals(decalParameters)\nend\n\nfunction getFieldPosition(fieldID, x, y)\n    local field = fields[fieldID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=(field.pos.x+(x-1)*field.distance.x) * scale.x * mul,y=height+0.002,z=(field.pos.y+(y-1)*field.distance.y) * scale.y * mul}\nend\nfunction getFieldTooltip(fieldID, arrayID)\n    local field = fields[fieldID]\n    local tooltip = \"\"\n    if (not field.locked) then\n        if (field.tooltip == nil or field.tooltip:find(\"name\")) then\n            tooltip = field.name or \"\"\n        elseif (field.tooltip:find(\"content\")) then\n            tooltip = field.value[arrayID]\n        end\n    end\n    return tooltip\nend\n\nfunction getCheckPosition(checkID, x, y) \n    local check = checks[checkID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=(check.pos.x+(x-1)*check.distance.x) * mul*scale.x,y=height+0.002,z=(check.pos.y+(y-1)*check.distance.y) * mul*scale.y}\nend\n\nfunction getDecalPosition(decalID)\n    local decal = decals[decalID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=decal.pos.x*mul*scale.x, y=height+0.005, z=decal.pos.y*mul*scale.y}\nend\nfunction getDecalTooltip(decalID)\n    local decal = decals[decalID]\n    local tooltip = \"\"\n    if (decal.tooltip == nil) then\n        tooltip = decal.name or \"\"\n    elseif (decal.tooltip:find(\"name\")) then\n        tooltip = decal.name or \"\"\n    elseif (decal.tooltip:find(\"hint\")) then\n        tooltip = \"Click to change image\"\n    end\n    return tooltip\nend\n\nfunction increaseCounter(args)\n    local fieldID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local ply = args[3]\n    local field = fields[fieldID]\n    if (field.value[arrayID] == nil or field.value[arrayID] == \"\") then\n        field.value[arrayID] = 0\n    end\n    if (tonumber(field.value[arrayID])) then\n        field.value[arrayID] = tonumber(field.value[arrayID])+1\n        updateFieldNameContentAndTooltip(fieldID)\n        if (field.vsum == \"True\") then\n            recalculateSums(fieldID)\n        end\n        updateSave()\n    else\n        broadcastToColor(\"Field does not contain a valid number\", ply)\n    end\nend\n\nfunction decreaseCounter(args)\n    local fieldID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local ply = args[3]\n    local field = fields[fieldID]\n    if (field.value[arrayID] == nil or field.value[arrayID] == \"\") then\n        field.value[arrayID] = 0\n    end\n    if (tonumber(field.value[arrayID])) then\n        field.value[arrayID] = tonumber(field.value[arrayID])-1\n        updateFieldNameContentAndTooltip(fieldID)\n        if (field.vsum == \"True\") then\n            recalculateSums(fieldID)\n        end\n        updateSave()\n    else\n        broadcastToColor(\"Field does not contain a valid number\", ply)\n    end\nend\n\nfunction scheduleUpdate()\n    if (dirtyUpdateWait != nil) then\n        Wait.stop(dirtyUpdateWait)\n    end\n    dirtyUpdateWait = Wait.time(\n        function()\n            for k, v in pairs(self.getInputs()) do\n                if (lookupInputIndexToInfo[k] != nil) then\n                    if (lookupInputIndexToInfo[k].type==\"field\") then\n                        local field = fields[lookupInputIndexToInfo[k].id]\n                        field.value[lookupInputIndexToInfo[k].arrayID] = v.value\n                        if (field.tooltip != nil) then\n                            if (field.tooltip:find(\"content\")) then\n                                self.editInput({index=k-1, tooltip=v.value})\n                            end\n                        end\n                    end\n                end\n            end\n        end, 1\n    )\nend\n\nfunction edit(obj, ply, value, selected)\n    for k, v in pairs(obj.getInputs()) do\n        if (lookupInputIndexToInfo[k] != nil) then\n            if (lookupInputIndexToInfo[k].type==\"field\") then\n                local field = fields[lookupInputIndexToInfo[k].id]\n                if (v.value != field.value[lookupInputIndexToInfo[k].arrayID]) then\n                    field.value[lookupInputIndexToInfo[k].arrayID] = v.value\n                    if (field.tooltip != nil) then\n                        if (field.tooltip:find(\"content\")) then\n                            scheduleUpdate()\n                        end\n                    end\n                    if (field.role != nil) then\n                        if (field.role:find(\"name\")) then\n                            self.setName(value)\n                        elseif  (field.role:find(\"description\")) then\n                            self.setDescription(value)\n                        end\n                    end\n                    updateSave()\n                    break\n                end\n            end\n        end\n    end\nend\n\nfunction editUrl(obj, ply, value, selected)\n    local shouldRefresh = false\n    local shouldUpdateSave = false\n    for k, v in pairs(obj.getInputs()) do\n        if (lookupInputIndexToInfo[k] != nil) then\n            if (lookupInputIndexToInfo[k].type==\"decal\") then\n                if (v.value != decals[lookupInputIndexToInfo[k].id].url) then\n                    decals[lookupInputIndexToInfo[k].id].url = v.value\n                    shouldRefresh = true\n                    shouldUpdateSave = true\n                    updateSave()\n                    createDecals()\n                    break\n                end\n            end\n        end\n    end\nend\n\nfunction clickcheck(args)\n    local checkID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local alt_click = args[3]\n    local buttonIndex = args[4]\n    local ply = args[5]\n    local check = checks[checkID]\n    local value = tonumber(check.value[arrayID])\n    if (value == nil) then value = 1 end\n    if (alt_click) then\n        if (value > 0) then\n            check.value[arrayID] = 0\n        else\n            check.value[arrayID] = 1\n        end\n    else\n        if (value == 1) then\n            check.value[arrayID] = 2\n        else\n            if (value == 2) then\n                check.value[arrayID] = 1\n            elseif (check.fillFromDisabled == \"True\") then\n                check.value[arrayID] = 2\n            else\n                broadcastToColor(\"This checkbox is disabled. You can enable/disable checkboxes with Right click.\", ply)\n            end\n        end\n    end\n\n    local label, color, alphaCorrectedColor = getCheckLabelAndColor(checkID, arrayID)\n    self.editButton({index=buttonIndex, label=label, font_color=alphaCorrectedColor})\n    updateSave()\nend\n\nfunction getFieldTextColor(fieldID)\n    local field = fields[fieldID]\n    local textAlpha = field.textColor.a\n    if (tonumber(field.fieldColor.a) > 0) then\n        textAlpha = tonumber(field.textColor.a)/tonumber(field.fieldColor.a)\n    else\n        textAlpha = tonumber(field.textColor.a)*100\n    end\n    return {r=field.textColor.r,g=field.textColor.g,b=field.textColor.b,a=textAlpha}\nend\n\nfunction getCheckTooltip(checkID)\n    local check=checks[checkID]\n    local tooltip = \"\"\n    if (not check.locked) then\n        if (check.tooltip == nil or check.tooltip:find(\"name\")) then\n            tooltip = check.name\n        elseif (check.tooltip:find(\"hint\")) then\n            tooltip = \"Left click to toggle, Right click to enable/disable\"\n        end\n    end\n    return tooltip\nend\n\nfunction getCheckLabelAndColor(checkID, arrayID)\n    local check = checks[checkID]\n    local label = check.characters.empty\n    if (check.value[arrayID] == 0) then\n        label = check.characters.disabled\n    elseif (check.value[arrayID] == 2) then\n        label = check.characters.filled\n    end\n\n    local color = nil\n    if (check.separateColors == \"True\") then\n        if (check.value[arrayID] == 0) then\n            color = check.textColorDisabled or check.textColor\n        elseif (check.value[arrayID] == 1) then\n            color = check.textColorOff or check.textColor\n        elseif (check.value[arrayID] == 2) then\n            color = check.textColorOn or check.textColor\n        else\n            color = check.textColorOff or check.textColor\n        end\n    else\n        color = check.textColorOn or check.textColor\n    end\n\n    local alpha = 1\n    local checkAlpha = math.max(1/255, check.checkColor.a)\n    if (tonumber(check.checkColor.a) > 0) then\n        alpha = tonumber(color.a)/tonumber(checkAlpha)\n    else\n        alpha = tonumber(color.a)*100\n    end \n    return label, color, {r=color.r, g=color.g, b=color.b, a=color.a*alpha}\nend\n\nfunction split (inputstr, sep)\n    if sep == nil then\n            sep = \"%s\"\n    end\n    local t={}\n    for str in string.gmatch(inputstr, \"([^\"..sep..\"]+)\") do\n            table.insert(t, str)\n    end\n    return t\nend\n\nfunction onRotate(spin, flip, player_color, old_spin, old_flip)\n    updateLockedFieldOrientation(flip < 90)\nend\nfunction onDrop(ply)\n    updateLockedFieldOrientation(self.getTransformUp().y >= 0)\nend\n\nfunction updateLockedFieldOrientation(upright)\n    for k, v in pairs(fields) do\n        if (v.locked == \"True\" or sheetLocked or locks.fields or v.vsum == \"True\") then\n            local field = v\n            local fieldScale = {x=scale.x,y=1,z=scale.y}\n            local rotation = {x=0,y=0,z=0}\n            if (flip == \"True\") then\n                rotation.y = 180\n            end\n            if (upright) then\n                rotation.z = 180\n                fieldScale.x = -scale.x\n            end\n            if (v.locked == \"True\" or sheetLocked or locks.fields) then\n                for arrayID, inp in pairs(lookupFieldIndices[k].inputs) do\n                    self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n                end\n            end\n            for arrayID, inp in pairs(lookupFieldIndices[k].colTotals) do\n                self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n            end\n            for arrayID, inp in pairs(lookupFieldIndices[k].rowTotals) do\n                self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n            end\n        end\n    end\n    for k, v in pairs(checks) do\n        if (v.locked == \"True\" or sheetLocked or locks.fields) then\n            local check=v\n            local rotationZ = 0\n            local checkScale = {x=scale.x * check.size.x,y=1,z=scale.y * check.size.y}\n            if (upright) then\n                checkScale.x = -checkScale.x\n                rotationZ = 180\n            end\n            local rotationY = 0\n            if (flip == \"True\") then\n                rotationY = 180\n            end\n            for arrayID, inp in pairs(lookupCheckIndices[k].buttons) do\n                self.editButton({index=inp.index-1, rotation={x=0,y=rotationY,z=rotationZ}, scale=checkScale})\n            end\n        end\n    end\nend\n\nfunction showImageURLPanel(args)\n    local decalID = args[1]\n    local ply = args[2]\n    Player[ply].showInputDialog(\"Set image URL\",\n        function (text, player_color)\n            decals[decalID].url = text\n            createDecals()\n            updateSave()\n        end\n    )\nend\n\nfunction updateFieldNameContentAndTooltip(fieldID)\n    local field = fields[fieldID]\n    for k, v in pairs(lookupFieldIndices[fieldID].inputs) do\n        self.editInput({index=v.index-1, value=field.value[v.arrayID], tooltip=getFieldTooltip(fieldID, v.arrayID)})\n    end\n    local name = \"T\"..fieldID\n    local tooltip = \"Select \"..(field.name or name)\n    for k, v in pairs(lookupFieldIndices[fieldID].selectionButtons) do\n        self.editButton({index=v.index-1, tooltip = tooltip})\n    end\nend\n\nfunction getCommited()\n    return true\nend\n\n--",
  1457.       "LuaScriptState": "{\"checks\":[],\"decals\":[],\"fields\":[{\"align\":3,\"array\":{\"x\":1,\"y\":1},\"counter\":\"False\",\"distance\":{\"x\":1,\"y\":1},\"fieldColor\":{\"a\":0,\"b\":1,\"g\":1,\"r\":1},\"font\":\"5000\",\"locked\":false,\"name\":\"\",\"pos\":{\"x\":0,\"y\":0},\"role\":\"Normal Field\",\"size\":{\"x\":\"2000\",\"y\":\"1000\"},\"textColor\":{\"a\":1,\"b\":0,\"g\":0,\"r\":0},\"tooltip\":\"name\",\"value\":[\"000\"]}],\"flip\":\"False\",\"height\":\"0.1\",\"locks\":{\"checks\":false,\"decals\":false,\"fields\":false},\"nudgeDistance\":0.1,\"scale\":{\"x\":\"0.6\",\"y\":\"0.6\"},\"sheetLocked\":false}",
  1458.       "XmlUI": ""
  1459.     },
  1460.     {
  1461.       "GUID": "f729fd",
  1462.       "Name": "HandTrigger",
  1463.       "Transform": {
  1464.         "posX": 24.2,
  1465.         "posY": 6.031695,
  1466.         "posZ": -24.2,
  1467.         "rotX": 0.0,
  1468.         "rotY": 315.0,
  1469.         "rotZ": 0.0,
  1470.         "scaleX": 11.8350019,
  1471.         "scaleY": 7.002465,
  1472.         "scaleZ": 4.04115963
  1473.       },
  1474.       "Nickname": "",
  1475.       "Description": "",
  1476.       "GMNotes": "",
  1477.       "AltLookAngle": {
  1478.         "x": 0.0,
  1479.         "y": 0.0,
  1480.         "z": 0.0
  1481.       },
  1482.       "ColorDiffuse": {
  1483.         "r": 0.9559999,
  1484.         "g": 0.39199996,
  1485.         "b": 0.112999953,
  1486.         "a": 0.0
  1487.       },
  1488.       "LayoutGroupSortIndex": 0,
  1489.       "Value": 0,
  1490.       "Locked": true,
  1491.       "Grid": false,
  1492.       "Snap": true,
  1493.       "IgnoreFoW": false,
  1494.       "MeasureMovement": false,
  1495.       "DragSelectable": true,
  1496.       "Autoraise": true,
  1497.       "Sticky": true,
  1498.       "Tooltip": true,
  1499.       "GridProjection": false,
  1500.       "HideWhenFaceDown": false,
  1501.       "Hands": false,
  1502.       "FogColor": "Orange",
  1503.       "LuaScript": "",
  1504.       "LuaScriptState": "",
  1505.       "XmlUI": ""
  1506.     },
  1507.     {
  1508.       "GUID": "c312e6",
  1509.       "Name": "Custom_Tile",
  1510.       "Transform": {
  1511.         "posX": 22.3711262,
  1512.         "posY": 1.44377816,
  1513.         "posZ": -22.22284,
  1514.         "rotX": 0.06841265,
  1515.         "rotY": 135.000427,
  1516.         "rotZ": 0.0445531346,
  1517.         "scaleX": 1.3598398,
  1518.         "scaleY": 1.0,
  1519.         "scaleZ": 1.3598398
  1520.       },
  1521.       "Nickname": "",
  1522.       "Description": "",
  1523.       "GMNotes": "",
  1524.       "AltLookAngle": {
  1525.         "x": 0.0,
  1526.         "y": 0.0,
  1527.         "z": 0.0
  1528.       },
  1529.       "ColorDiffuse": {
  1530.         "r": 0.8710801,
  1531.         "g": 0.8710801,
  1532.         "b": 0.8710801
  1533.       },
  1534.       "Tags": [
  1535.         "score"
  1536.       ],
  1537.       "LayoutGroupSortIndex": 0,
  1538.       "Value": 0,
  1539.       "Locked": true,
  1540.       "Grid": true,
  1541.       "Snap": true,
  1542.       "IgnoreFoW": false,
  1543.       "MeasureMovement": false,
  1544.       "DragSelectable": true,
  1545.       "Autoraise": true,
  1546.       "Sticky": true,
  1547.       "Tooltip": true,
  1548.       "GridProjection": false,
  1549.       "HideWhenFaceDown": false,
  1550.       "Hands": false,
  1551.       "CustomImage": {
  1552.         "ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966601919/D818D6B21F64EE6702A21323E2C0F1AAC91BFFDB/",
  1553.         "ImageSecondaryURL": "",
  1554.         "ImageScalar": 1.0,
  1555.         "WidthScale": 0.0,
  1556.         "CustomTile": {
  1557.           "Type": 3,
  1558.           "Thickness": 0.1,
  1559.           "Stackable": false,
  1560.           "Stretch": true
  1561.         }
  1562.       },
  1563.       "LuaScript": "    \n    \n    \n    \nfunction onload(saved_data)\n    sheetLocked = self.script_state.sheetLocked or false\n    local inverseScale = {x=math.floor(100/self.getScale().x)/100, y=math.floor(100/self.getScale().z)/100}\n    scale = self.script_state.scale or inverseScale\n    flip = self.script_state.flip or \"False\"\n    fields = self.script_state.fields or {}\n    checks = self.script_state.checks or {}\n    decals = self.script_state.decals or {}\n    height = self.script_state.height or 0.5\n    locks = self.script_state.locks or {fields=false, checks=false, decals=false}\n    lookupInputIndexToInfo = {}\n    lookupButtonIndexToInfo = {}\n    lookupFieldIndices = {}\n    lookupCheckIndices = {}\n    lookupDecalIndices = {}\n    lookupSelectionButtonIndices = {}\n    lastFieldLockedMessage = 0\n    buttonIndex = 0\n    inputIndex = 0\n    dirtyUpdateWait = nil\n    if saved_data ~= \"\" then\n        local loadedData = JSON.decode(saved_data)\n        sheetLocked = loadedData.sheetLocked or false\n        flip = loadedData.flip  or \"False\"\n        height = loadedData.height or 0.5\n        fields = loadedData.fields or {}\n        checks = loadedData.checks or {}\n        decals = loadedData.decals or {}\n        scale = loadedData.scale or inverseScale\n        locks = loadedData.locks or {fields=false, checks=false, decals=false}\n    end\n    if (not getCommited()) then\n        self.addContextMenuItem(\"Edit Layout\", showEditPanel)\n        self.addContextMenuItem(\"Commit Layout\", showCommitPanel)\n        nudgeDistance = self.script_state.nudgeDistance or 0.1\n        page = 1\n        editingSheet = false\n        selectedId = 0\n        selectedArrayId = 1\n        selectedType = \"\"\n        selectedMax = 5\n        creating = false\n    else\n        makeContextMenuItems()\n    end\n    createAll()\nend\n\nfunction makeContextMenuItems()\n    self.clearContextMenu()\n    if (not sheetLocked) then\n        local getLocked = function(element)\n            if (locks[element]) then return \"◆ Lock\" else return \"◇ Lock\" end\n        end\n        local allLocked = \"Lock\"\n        if (locks.fields and locks.checks and locks.decals) then allLocked = \"Unlock\" end\n        if (#fields > 0 and #checks > 0 and #decals > 0) then\n            self.addContextMenuItem(allLocked..\" everything\", toggleAllLocks)\n        end\n        for k, v in pairs(fields) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"fields\")..\" texts\", toggleLockFields)\n                break\n            end\n        end\n        for k, v in pairs(checks) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"checks\")..\" checkboxes\", toggleLockChecks)\n                break\n            end\n        end\n        for k, v in pairs(decals) do\n            if (v.locked != \"True\") then\n                self.addContextMenuItem(getLocked(\"decals\")..\" images\", toggleLockDecals)\n                break\n            end\n        end\n    end\nend\n\nfunction toggleAllLocks(ply, pos, obj)\n    if (locks.fields and locks.checks and locks.decals) then\n        locks.fields = false\n        locks.checks = false\n        locks.decals = false\n        broadcastToColor(\"Unlocked everything\", ply)\n    else\n        locks.fields = true\n        locks.checks = true\n        locks.decals = true\n        broadcastToColor(\"Locked everything\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockFields(ply, pos, obj)\n    if (locks.fields) then\n        locks.fields = false\n        broadcastToColor(\"Unlocked texts\", ply)\n    else\n        locks.fields = true\n        broadcastToColor(\"Locked texts\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockChecks(ply, pos, obj)\n    if (locks.checks) then\n        locks.checks = false\n        broadcastToColor(\"Unlocked checkboxes\", ply)\n    else\n        locks.checks = true\n        broadcastToColor(\"Locked checkboxes\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction toggleLockDecals(ply, pos, obj)\n    if (locks.decals) then\n        locks.decals = false\n        broadcastToColor(\"Unlocked images\", ply)\n    else\n        locks.decals = true\n        broadcastToColor(\"Locked images\", ply)\n    end\n    updateSave()\n    makeContextMenuItems()\n    refresh()\nend\n\nfunction updateSave()\n    local data_to_save = {scale=scale, height=height, fields=fields, checks=checks, decals=decals, flip=flip, sheetLocked=sheetLocked, locks=locks}\n    if (not getCommited()) then\n        data_to_save.nudgeDistance=nudgeDistance\n    else\n        data_to_save.nudgeDistance=nil\n    end\n    saved_data = JSON.encode(data_to_save)\n    self.script_state = saved_data\nend\n\nfunction null() end\n\nfunction refresh()\n    if (not creating) then\n        self.clearInputs()\n        self.clearButtons()\n        inputIndex = 0\n        buttonIndex = 0\n        if (editingSheet) then\n            createSelectionHighlight()       \n        end\n        createAll()\n    end\nend\n\nfunction createAll()\n    lookupInputIndexToInfo = {}\n    lookupButtonIndexToInfo = {}\n    lookupFieldIndices = {}\n    lookupCheckIndices = {}\n    lookupDecalIndices = {}\n    startLuaCoroutine(self, \"createAllCoroutine\")    \nend\n\nfunction createAllCoroutine()\n    if (not getCommited()) then\n        UI.setAttribute(getPanelId(\"Loading\"), \"active\", \"True\")\n    end\n    coroutine.yield(0)\n    creating = true\n    for fieldID, field in pairs(fields) do\n        lookupFieldIndices[fieldID] = {\n            inputs={},\n            colTotals={},\n            rowTotals={},\n            counterButtons={},\n            selectionButtons={}\n        }\n        local posx = field.pos.x\n        local posy = field.pos.y\n        local func = \"edit\"\n        if (field.vsum == \"True\" or field.hsum == \"True\") then\n            func = 'MarumEditableRecalculateSum_'..fieldID\n            _G[func] = function(obj, ply, input_value, selected)\n                local fID = fieldID\n                edit(obj, ply, input_value, selected)\n                obj.call(\"recalculateSums\",fID)\n            end\n        else\n            local iIndex = inputIndex\n            if (field.locked == \"True\" or sheetLocked or locks.fields) then\n                func = 'MarumEditableRevert_'..fieldID\n                _G[func] = function(obj, ply, input_value, selected)\n                    local fID = fieldID\n                    local iID = iIndex\n                    local sel = selected\n                    obj.call(\"revertField\",{fID, ply, iID, sel})\n                end\n            end\n        end\n\n        local fieldScale = {x=scale.x,y=1,z=scale.y}\n        local rotation = {x=0,y=0,z=0}\n        local posMulx = 1\n        local flipped = 1\n        if (flip == \"True\") then\n            rotation.y = 180\n            flipped = -1\n        end\n        local upright = self.getTransformUp().y > 0\n        local shouldFlip = (field.locked == \"True\" or sheetLocked or locks.fields) and upright\n        local unlockedRotation = {x=rotation.x, y=rotation.y, z=rotation.z}\n        if (editingSheet or shouldFlip) then\n            rotation.z = 180\n            posMulx = -posMulx\n            fieldScale.x = -fieldScale.x\n        end\n        local vsum = 0\n        local hsums = {}\n        local fontSize = field.font\n        fontSize = math.min(field.size.y - 24, fontSize)\n        local color = getFieldTextColor(fieldID)\n        for x=1, field.array.x do\n            vsum = 0\n            for y=1, field.array.y do\n                local arrayID = x+(y-1)*field.array.x\n                local pos = getFieldPosition(fieldID, x, y)\n                self.createInput({\n                    value = field.value[arrayID],\n                    tooltip=getFieldTooltip(fieldID, arrayID),\n                    input_function = func,\n                    function_owner = self, \n                    alignment = field.align,\n                    position = pos, \n                    width = field.size.x, \n                    height = field.size.y, \n                    rotation=rotation,\n                    font_size = fontSize, \n                    scale=fieldScale,\n                    font_color=color,\n                    color = field.fieldColor,\n                    tab = 2\n                })\n                if (field.counter == \"True\") then\n                    local counterButtonWidth = fontSize*0.75\n                    _G['MarumEditableCounterIncrease_'..fieldID..'_'..arrayID] = function(obj, ply, alt)\n                        local fID = fieldID\n                        local aID = arrayID\n                        obj.call(\"increaseCounter\",{fID, aID, ply})\n                    end\n                    buttonIndex = buttonIndex+1\n                    lookupButtonIndexToInfo[buttonIndex] = {type=\"counter\", id=fieldID}\n                    table.insert(lookupFieldIndices[fieldID].counterButtons, {index=buttonIndex, x=x, y=y, side=1})\n                    self.createButton({\n                        click_function = 'MarumEditableCounterIncrease_'..fieldID..'_'..arrayID,\n                        tooltip=\"↑ Increase ↑\",\n                        function_owner = self,\n                        label=\"[b]+[/b]\",\n                        position={x=pos.x+(field.size.x + counterButtonWidth) / 1000 * fieldScale.x * posMulx * flipped, y=pos.y, z=pos.z},\n                        rotation=unlockedRotation,\n                        scale=fieldScale,\n                        width=counterButtonWidth,\n                        height=counterButtonWidth,\n                        font_size=fontSize/2,\n                        font_color= color,\n                        color = field.fieldColor,\n                    })\n\n                    _G['MarumEditableCounterDecrease_'..fieldID..'_'..arrayID] = function(obj, ply, alt)\n                        local fID = fieldID\n                        local aID = arrayID\n                        obj.call(\"decreaseCounter\",{fID, aID, ply})\n                    end\n                    buttonIndex = buttonIndex+1\n                    table.insert(lookupFieldIndices[fieldID].counterButtons, {index=buttonIndex, x=x, y=y, side=-1})\n                    self.createButton({\n                        click_function = 'MarumEditableCounterDecrease_'..fieldID..'_'..arrayID,\n                        tooltip=\"↓ Decrease ↓\",\n                        function_owner = self,\n                        label=\"[b]-[/b]\",\n                        position={x=pos.x-(field.size.x + counterButtonWidth) / 1000 * fieldScale.x * posMulx * flipped, y=pos.y, z=pos.z},\n                        unlockedRotation=rotation,\n                        scale=fieldScale,\n                        width=counterButtonWidth,\n                        height=counterButtonWidth,\n                        font_size=fontSize/2,\n                        font_color= color,\n                        color = field.fieldColor,\n                    })\n                end\n                inputIndex = inputIndex+1\n                lookupInputIndexToInfo[inputIndex] = {type=\"field\", id=fieldID, arrayID=arrayID}\n                table.insert(lookupFieldIndices[fieldID].inputs, {index=inputIndex, arrayID=arrayID, x=x, y=y})\n                if (field.vsum == \"True\") then\n                    if (tonumber(field.value[arrayID])) then\n                        vsum = vsum + tonumber(field.value[arrayID])\n                    end\n                end\n                if (field.hsum == \"True\") then\n                    if (tonumber(field.value[arrayID])) then\n                        if (hsums[x] == nil) then\n                            hsums[x] = tonumber(field.value[arrayID])\n                        else\n                            hsums[x] = hsums[x] + tonumber(field.value[arrayID])\n                        end\n                    end\n                end\n\n                if (x == 1 and field.hsum == \"True\") then\n                    local pos = getFieldPosition(fieldID, field.array.x + 1, y)\n                    local func = 'MarumEditableRevertSum_'..fieldID\n                    _G[func] = function(obj, ply, input_value, selected)\n                        obj.call(\"revertFieldSum\",{fieldID, ply, iIndex, selected})\n                    end\n                    self.createInput({\n                        value = \"[u]-[/u]\",\n                        tooltip=\"[Sum]\",\n                        input_function = func,\n                        function_owner = self, \n                        alignment = field.align,\n                        position = pos,\n                        width = field.size.x,\n                        height = field.size.y,\n                        rotation={x=unlockedRotation.x, y=unlockedRotation.y, z=unlockedRotation.z+180},\n                        font_size = fontSize, \n                        scale={x=-scale.x,y=1,z=scale.y},\n                        font_color= color,\n                        color = field.fieldColor,\n                        tab = 0\n                    })\n                    inputIndex = inputIndex+1\n                    table.insert(lookupFieldIndices[fieldID].rowTotals, {index=inputIndex, y=y})\n                end\n\n                if (inputIndex%10==0) then coroutine.yield(0) end\n            end\n\n            if (field.vsum == \"True\") then\n                local pos = getFieldPosition(fieldID, x, field.array.y+1)\n                local func = 'MarumEditableRevertSum_'..fieldID\n                _G[func] = function(obj, ply, input_value, selected)\n                    obj.call(\"revertFieldSum\",{fieldID, ply, iIndex, selected})\n                end\n                self.createInput({\n                    value = \"[u]\"..vsum..\"[/u]\",\n                    tooltip=\"[Sum]\",\n                    input_function = func,\n                    function_owner = self, \n                    alignment = field.align,\n                    position = pos,\n                    width = field.size.x,\n                    height = field.size.y,\n                    rotation={x=unlockedRotation.x, y=unlockedRotation.y, z=unlockedRotation.z+180},\n                    font_size = fontSize, \n                    scale={x=-scale.x,y=1,z=scale.y},\n                    font_color= color,\n                    color = field.fieldColor,\n                    tab = 0\n                })\n                inputIndex = inputIndex+1\n                table.insert(lookupFieldIndices[fieldID].colTotals, {index=inputIndex, x=x})\n            end\n        end\n\n        if (field.hsum == \"True\") then\n            Wait.frames(\n                function()\n                    recalculateSums(fieldID)\n                end,\n                10\n            )\n        end\n    end\n\n    createDecals()\n    for decalID, decal in pairs(decals) do\n        lookupDecalIndices[decalID] = {\n            inputs={},\n            selectionButtons={}\n        }\n        local rotationAdd = 180\n        local posMulx = 1\n        if (flip == \"True\") then\n            rotationAdd = 0\n        end\n        local pos = getDecalPosition(decalID)\n        if (decal.locked != \"True\" and not sheetLocked and not locks.decals and not editingSheet) then\n            local func = 'MarumEditableSetURL_'..decalID\n            _G[func] = function(obj, ply, alt)\n                obj.call(\"showImageURLPanel\",{decalID, ply})\n            end\n            local tooltip = getDecalTooltip(decalID)\n            self.createButton({\n                value = decal.url,\n                tooltip=tooltip,\n                click_function = func,\n                function_owner = self, \n                position = pos, \n                width = 490, \n                height = 490, \n                rotation={x=0,y=0,z=0},\n                font_size = 10,\n                scale={x=decal.scale.x*scale.x, y=decal.scale.y*scale.y, z=decal.scale.y*scale.y},\n                font_color= {r=0, g=0, b=0, a=0},\n                color = {r=0, g=0, b=0, a=0},\n            })\n            buttonIndex = buttonIndex+1\n            lookupButtonIndexToInfo[buttonIndex] = {type=\"decal\", id=decalID}\n            table.insert(lookupDecalIndices[decalID].inputs, {index=buttonIndex})\n        end\n\n        if (inputIndex%10==0) then coroutine.yield(0) end\n    end\n\n    for checkID, check in pairs(checks) do\n        lookupCheckIndices[checkID] = {\n            buttons={},\n            selectionButtons={}\n        }\n        local rotationZ = 0\n        local checkScale = {x=scale.x * check.size.x,y=1,z=scale.y * check.size.y}\n        local upright = self.getTransformUp().y > 0\n        local shouldFlip = (check.locked == \"True\" or sheetLocked or locks.checks) and upright\n        if (editingSheet or shouldFlip) then\n            checkScale.x = -checkScale.x\n            rotationZ = 180\n        end\n        for x=1, check.array.x do\n            for y=1, check.array.y do\n                local arrayID = x+(y-1)*check.array.x\n                local func = \"MarumEditableClickCheckbox_\"..checkID..\"_\"..arrayID\n                if (check.locked == \"True\" or sheetLocked or locks.checks) then\n                    func = \"null\"\n                end\n                local rotationY = 0\n                local posMul = 1\n                if (flip == \"True\") then\n                    rotationY = 180\n                    posMul = -posMul\n                end\n                local pos = getCheckPosition(checkID, x, y)\n                local bindex = buttonIndex\n                _G['MarumEditableClickCheckbox_'..checkID..'_'..arrayID] = function(obj, ply, alt)\n                    local fID = checkID\n                    local aID = arrayID\n                    local bi = bindex\n                    obj.call(\"clickcheck\",{fID, aID, alt, bi, ply})\n                end\n\n                local tooltip = getCheckTooltip(checkID)\n                local label, color, alphaCorrectedColor = getCheckLabelAndColor(checkID, arrayID)\n                buttonIndex = buttonIndex+1\n                lookupButtonIndexToInfo[buttonIndex] = {type=\"check\", id=checkID, arrayID=arrayID}\n                table.insert(lookupCheckIndices[checkID].buttons, {index=buttonIndex, x=x, y=y, arrayID=arrayID})\n                self.createButton({\n                    label = label,\n                    tooltip=tooltip,\n                    click_function = func,\n                    function_owner = self, \n                    alignment = 3,\n                    position = pos, \n                    width = 250, \n                    height = 250, \n                    rotation={x=0,y=rotationY,z=rotationZ},\n                    font_size = check.font,\n                    scale={x=checkScale.x, y=checkScale.y, z=checkScale.z},\n                    font_color=alphaCorrectedColor,\n                    color = check.checkColor,\n                    tab = 0\n                })\n\n                if (buttonIndex%10==0) then coroutine.yield(0) end\n            end\n        end\n    end\n    if (not getCommited() and editingSheet) then\n        createSelectionButtons()\n    end\n    creating = false\n    return 1\nend\n\nfunction revertField(args)\n    local fieldID = args[1]\n    local ply = args[2]\n    local index = args[3]\n    local selected = args[4]\n    if (not selected) then\n        Wait.frames(\n            function()\n                for k, v in pairs(lookupFieldIndices[fieldID].inputs) do\n                    self.editInput({index=v.index-1, value=fields[fieldID].value[v.arrayID]})\n                end\n            end,\n            1\n        )\n    else\n        if (lastFieldLockedMessage != fieldID) then\n            broadcastToColor(\"This text is locked\", ply, {r=1,g=0.5,b=0})\n            lastFieldLockedMessage = fieldID\n        end\n    end\nend\n\nfunction recalculateSums(fieldID)\n    local field = fields[fieldID]\n    if (field.vsum) then\n        for k, v in pairs(lookupFieldIndices[fieldID].colTotals) do\n            local vsum = 0\n            for y=1, field.array.y do\n                local arrayID = v.x+(y-1)*field.array.x\n                if (tonumber(field.value[arrayID])) then\n                    vsum = vsum + tonumber(field.value[arrayID])\n                end\n            end\n            self.editInput({index=v.index-1, value=\"[u]\"..vsum..\"[/u]\"})\n        end\n    end\n    if (field.hsum) then\n        for k, v in pairs(lookupFieldIndices[fieldID].rowTotals) do\n            local hsum = 0\n            for x=1, field.array.x do\n                local arrayID = x+(v.y-1)*field.array.x\n                if (tonumber(field.value[arrayID])) then\n                    hsum = hsum + tonumber(field.value[arrayID])\n                end\n            end\n            self.editInput({index=v.index-1, value=\"[u]\"..hsum..\"[/u]\"})\n        end\n    end\nend\nfunction revertFieldSum(args)\n    local fieldID = args[1]\n    local ply = args[2]\n    local index = args[3]\n    local selected = args[4]\n    if (not selected) then\n        Wait.frames(\n            function()\n                recalculateSums(fieldID)\n            end,\n            1\n        )\n    else\n        if (lastFieldLockedMessage != fieldID) then\n            broadcastToColor(\"This text is reserved for the total sum\", ply, {r=1,g=1,b=0})\n            lastFieldLockedMessage = fieldID\n        end\n    end\nend\n\nfunction createDecals()\n    local decalParameters = {}\n    for decalID, decal in pairs(decals) do\n        local rotationAdd = 180\n        if (flip == \"True\") then\n            rotationAdd = 0\n        end\n        local pos = getDecalPosition(decalID)\n        table.insert(decalParameters, {\n            url=decal.url,\n            name=\"Image #\"..decalID,\n            position={x=-pos.x, y=pos.y, z=pos.z},\n            rotation={x=90, y=rotationAdd+decal.rotation, z=0},\n            scale={x=decal.scale.x*scale.x, y=decal.scale.y*scale.y, z=1}\n        })\n    end\n    self.setDecals(decalParameters)\nend\n\nfunction getFieldPosition(fieldID, x, y)\n    local field = fields[fieldID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=(field.pos.x+(x-1)*field.distance.x) * scale.x * mul,y=height+0.002,z=(field.pos.y+(y-1)*field.distance.y) * scale.y * mul}\nend\nfunction getFieldTooltip(fieldID, arrayID)\n    local field = fields[fieldID]\n    local tooltip = \"\"\n    if (not field.locked) then\n        if (field.tooltip == nil or field.tooltip:find(\"name\")) then\n            tooltip = field.name or \"\"\n        elseif (field.tooltip:find(\"content\")) then\n            tooltip = field.value[arrayID]\n        end\n    end\n    return tooltip\nend\n\nfunction getCheckPosition(checkID, x, y) \n    local check = checks[checkID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=(check.pos.x+(x-1)*check.distance.x) * mul*scale.x,y=height+0.002,z=(check.pos.y+(y-1)*check.distance.y) * mul*scale.y}\nend\n\nfunction getDecalPosition(decalID)\n    local decal = decals[decalID]\n    local mul = 1\n    if (flip == \"True\") then mul = -1 end\n    return {x=decal.pos.x*mul*scale.x, y=height+0.005, z=decal.pos.y*mul*scale.y}\nend\nfunction getDecalTooltip(decalID)\n    local decal = decals[decalID]\n    local tooltip = \"\"\n    if (decal.tooltip == nil) then\n        tooltip = decal.name or \"\"\n    elseif (decal.tooltip:find(\"name\")) then\n        tooltip = decal.name or \"\"\n    elseif (decal.tooltip:find(\"hint\")) then\n        tooltip = \"Click to change image\"\n    end\n    return tooltip\nend\n\nfunction increaseCounter(args)\n    local fieldID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local ply = args[3]\n    local field = fields[fieldID]\n    if (field.value[arrayID] == nil or field.value[arrayID] == \"\") then\n        field.value[arrayID] = 0\n    end\n    if (tonumber(field.value[arrayID])) then\n        field.value[arrayID] = tonumber(field.value[arrayID])+1\n        updateFieldNameContentAndTooltip(fieldID)\n        if (field.vsum == \"True\") then\n            recalculateSums(fieldID)\n        end\n        updateSave()\n    else\n        broadcastToColor(\"Field does not contain a valid number\", ply)\n    end\nend\n\nfunction decreaseCounter(args)\n    local fieldID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local ply = args[3]\n    local field = fields[fieldID]\n    if (field.value[arrayID] == nil or field.value[arrayID] == \"\") then\n        field.value[arrayID] = 0\n    end\n    if (tonumber(field.value[arrayID])) then\n        field.value[arrayID] = tonumber(field.value[arrayID])-1\n        updateFieldNameContentAndTooltip(fieldID)\n        if (field.vsum == \"True\") then\n            recalculateSums(fieldID)\n        end\n        updateSave()\n    else\n        broadcastToColor(\"Field does not contain a valid number\", ply)\n    end\nend\n\nfunction scheduleUpdate()\n    if (dirtyUpdateWait != nil) then\n        Wait.stop(dirtyUpdateWait)\n    end\n    dirtyUpdateWait = Wait.time(\n        function()\n            for k, v in pairs(self.getInputs()) do\n                if (lookupInputIndexToInfo[k] != nil) then\n                    if (lookupInputIndexToInfo[k].type==\"field\") then\n                        local field = fields[lookupInputIndexToInfo[k].id]\n                        field.value[lookupInputIndexToInfo[k].arrayID] = v.value\n                        if (field.tooltip != nil) then\n                            if (field.tooltip:find(\"content\")) then\n                                self.editInput({index=k-1, tooltip=v.value})\n                            end\n                        end\n                    end\n                end\n            end\n        end, 1\n    )\nend\n\nfunction edit(obj, ply, value, selected)\n    for k, v in pairs(obj.getInputs()) do\n        if (lookupInputIndexToInfo[k] != nil) then\n            if (lookupInputIndexToInfo[k].type==\"field\") then\n                local field = fields[lookupInputIndexToInfo[k].id]\n                if (v.value != field.value[lookupInputIndexToInfo[k].arrayID]) then\n                    field.value[lookupInputIndexToInfo[k].arrayID] = v.value\n                    if (field.tooltip != nil) then\n                        if (field.tooltip:find(\"content\")) then\n                            scheduleUpdate()\n                        end\n                    end\n                    if (field.role != nil) then\n                        if (field.role:find(\"name\")) then\n                            self.setName(value)\n                        elseif  (field.role:find(\"description\")) then\n                            self.setDescription(value)\n                        end\n                    end\n                    updateSave()\n                    break\n                end\n            end\n        end\n    end\nend\n\nfunction editUrl(obj, ply, value, selected)\n    local shouldRefresh = false\n    local shouldUpdateSave = false\n    for k, v in pairs(obj.getInputs()) do\n        if (lookupInputIndexToInfo[k] != nil) then\n            if (lookupInputIndexToInfo[k].type==\"decal\") then\n                if (v.value != decals[lookupInputIndexToInfo[k].id].url) then\n                    decals[lookupInputIndexToInfo[k].id].url = v.value\n                    shouldRefresh = true\n                    shouldUpdateSave = true\n                    updateSave()\n                    createDecals()\n                    break\n                end\n            end\n        end\n    end\nend\n\nfunction clickcheck(args)\n    local checkID = tonumber(args[1])\n    local arrayID = tonumber(args[2])\n    local alt_click = args[3]\n    local buttonIndex = args[4]\n    local ply = args[5]\n    local check = checks[checkID]\n    local value = tonumber(check.value[arrayID])\n    if (value == nil) then value = 1 end\n    if (alt_click) then\n        if (value > 0) then\n            check.value[arrayID] = 0\n        else\n            check.value[arrayID] = 1\n        end\n    else\n        if (value == 1) then\n            check.value[arrayID] = 2\n        else\n            if (value == 2) then\n                check.value[arrayID] = 1\n            elseif (check.fillFromDisabled == \"True\") then\n                check.value[arrayID] = 2\n            else\n                broadcastToColor(\"This checkbox is disabled. You can enable/disable checkboxes with Right click.\", ply)\n            end\n        end\n    end\n\n    local label, color, alphaCorrectedColor = getCheckLabelAndColor(checkID, arrayID)\n    self.editButton({index=buttonIndex, label=label, font_color=alphaCorrectedColor})\n    updateSave()\nend\n\nfunction getFieldTextColor(fieldID)\n    local field = fields[fieldID]\n    local textAlpha = field.textColor.a\n    if (tonumber(field.fieldColor.a) > 0) then\n        textAlpha = tonumber(field.textColor.a)/tonumber(field.fieldColor.a)\n    else\n        textAlpha = tonumber(field.textColor.a)*100\n    end\n    return {r=field.textColor.r,g=field.textColor.g,b=field.textColor.b,a=textAlpha}\nend\n\nfunction getCheckTooltip(checkID)\n    local check=checks[checkID]\n    local tooltip = \"\"\n    if (not check.locked) then\n        if (check.tooltip == nil or check.tooltip:find(\"name\")) then\n            tooltip = check.name\n        elseif (check.tooltip:find(\"hint\")) then\n            tooltip = \"Left click to toggle, Right click to enable/disable\"\n        end\n    end\n    return tooltip\nend\n\nfunction getCheckLabelAndColor(checkID, arrayID)\n    local check = checks[checkID]\n    local label = check.characters.empty\n    if (check.value[arrayID] == 0) then\n        label = check.characters.disabled\n    elseif (check.value[arrayID] == 2) then\n        label = check.characters.filled\n    end\n\n    local color = nil\n    if (check.separateColors == \"True\") then\n        if (check.value[arrayID] == 0) then\n            color = check.textColorDisabled or check.textColor\n        elseif (check.value[arrayID] == 1) then\n            color = check.textColorOff or check.textColor\n        elseif (check.value[arrayID] == 2) then\n            color = check.textColorOn or check.textColor\n        else\n            color = check.textColorOff or check.textColor\n        end\n    else\n        color = check.textColorOn or check.textColor\n    end\n\n    local alpha = 1\n    local checkAlpha = math.max(1/255, check.checkColor.a)\n    if (tonumber(check.checkColor.a) > 0) then\n        alpha = tonumber(color.a)/tonumber(checkAlpha)\n    else\n        alpha = tonumber(color.a)*100\n    end \n    return label, color, {r=color.r, g=color.g, b=color.b, a=color.a*alpha}\nend\n\nfunction split (inputstr, sep)\n    if sep == nil then\n            sep = \"%s\"\n    end\n    local t={}\n    for str in string.gmatch(inputstr, \"([^\"..sep..\"]+)\") do\n            table.insert(t, str)\n    end\n    return t\nend\n\nfunction onRotate(spin, flip, player_color, old_spin, old_flip)\n    updateLockedFieldOrientation(flip < 90)\nend\nfunction onDrop(ply)\n    updateLockedFieldOrientation(self.getTransformUp().y >= 0)\nend\n\nfunction updateLockedFieldOrientation(upright)\n    for k, v in pairs(fields) do\n        if (v.locked == \"True\" or sheetLocked or locks.fields or v.vsum == \"True\") then\n            local field = v\n            local fieldScale = {x=scale.x,y=1,z=scale.y}\n            local rotation = {x=0,y=0,z=0}\n            if (flip == \"True\") then\n                rotation.y = 180\n            end\n            if (upright) then\n                rotation.z = 180\n                fieldScale.x = -scale.x\n            end\n            if (v.locked == \"True\" or sheetLocked or locks.fields) then\n                for arrayID, inp in pairs(lookupFieldIndices[k].inputs) do\n                    self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n                end\n            end\n            for arrayID, inp in pairs(lookupFieldIndices[k].colTotals) do\n                self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n            end\n            for arrayID, inp in pairs(lookupFieldIndices[k].rowTotals) do\n                self.editInput({index=inp.index-1, rotation=rotation, scale=fieldScale})\n            end\n        end\n    end\n    for k, v in pairs(checks) do\n        if (v.locked == \"True\" or sheetLocked or locks.fields) then\n            local check=v\n            local rotationZ = 0\n            local checkScale = {x=scale.x * check.size.x,y=1,z=scale.y * check.size.y}\n            if (upright) then\n                checkScale.x = -checkScale.x\n                rotationZ = 180\n            end\n            local rotationY = 0\n            if (flip == \"True\") then\n                rotationY = 180\n            end\n            for arrayID, inp in pairs(lookupCheckIndices[k].buttons) do\n                self.editButton({index=inp.index-1, rotation={x=0,y=rotationY,z=rotationZ}, scale=checkScale})\n            end\n        end\n    end\nend\n\nfunction showImageURLPanel(args)\n    local decalID = args[1]\n    local ply = args[2]\n    Player[ply].showInputDialog(\"Set image URL\",\n        function (text, player_color)\n            decals[decalID].url = text\n            createDecals()\n            updateSave()\n        end\n    )\nend\n\nfunction updateFieldNameContentAndTooltip(fieldID)\n    local field = fields[fieldID]\n    for k, v in pairs(lookupFieldIndices[fieldID].inputs) do\n        self.editInput({index=v.index-1, value=field.value[v.arrayID], tooltip=getFieldTooltip(fieldID, v.arrayID)})\n    end\n    local name = \"T\"..fieldID\n    local tooltip = \"Select \"..(field.name or name)\n    for k, v in pairs(lookupFieldIndices[fieldID].selectionButtons) do\n        self.editButton({index=v.index-1, tooltip = tooltip})\n    end\nend\n\nfunction getCommited()\n    return true\nend\n\n--",
  1564.       "LuaScriptState": "{\"checks\":[],\"decals\":[],\"fields\":[{\"align\":3,\"array\":{\"x\":1,\"y\":1},\"counter\":\"False\",\"distance\":{\"x\":1,\"y\":1},\"fieldColor\":{\"a\":0,\"b\":1,\"g\":1,\"r\":1},\"font\":\"5000\",\"locked\":false,\"name\":\"\",\"pos\":{\"x\":0,\"y\":0},\"role\":\"Normal Field\",\"size\":{\"x\":\"2000\",\"y\":\"1000\"},\"textColor\":{\"a\":1,\"b\":0,\"g\":0,\"r\":0},\"tooltip\":\"name\",\"value\":[\"000\"]}],\"flip\":\"False\",\"height\":\"0.1\",\"locks\":{\"checks\":false,\"decals\":false,\"fields\":false},\"nudgeDistance\":0.1,\"scale\":{\"x\":\"0.6\",\"y\":\"0.6\"},\"sheetLocked\":false}",
  1565.       "XmlUI": ""
  1566.     },
  1567.     {
  1568.       "GUID": "5324c0",
  1569.       "Name": "BlockSquare",
  1570.       "Transform": {
  1571.         "posX": 0.191267684,
  1572.         "posY": 1.60165358,
  1573.         "posZ": 4.483543,
  1574.         "rotX": 359.983124,
  1575.         "rotY": 1.03897582E-06,
  1576.         "rotZ": 359.920135,
  1577.         "scaleX": 3.65834117,
  1578.         "scaleY": 0.238181144,
  1579.         "scaleZ": 1.72883391
  1580.       },
  1581.       "Nickname": "",
  1582.       "Description": "",
  1583.       "GMNotes": "",
  1584.       "AltLookAngle": {
  1585.         "x": 0.0,
  1586.         "y": 0.0,
  1587.         "z": 0.0
  1588.       },
  1589.       "ColorDiffuse": {
  1590.         "r": 0.0941168,
  1591.         "g": 0.0941168,
  1592.         "b": 0.0941168,
  1593.         "a": 0.0
  1594.       },
  1595.       "Tags": [
  1596.         "button"
  1597.       ],
  1598.       "LayoutGroupSortIndex": 0,
  1599.       "Value": 0,
  1600.       "Locked": true,
  1601.       "Grid": true,
  1602.       "Snap": true,
  1603.       "IgnoreFoW": false,
  1604.       "MeasureMovement": false,
  1605.       "DragSelectable": true,
  1606.       "Autoraise": true,
  1607.       "Sticky": true,
  1608.       "Tooltip": true,
  1609.       "GridProjection": false,
  1610.       "HideWhenFaceDown": false,
  1611.       "Hands": false,
  1612.       "LuaScript": "",
  1613.       "LuaScriptState": "",
  1614.       "XmlUI": "<Panel\r\n\t\tid = \"panel1\"\r\n\t\tactive = \"false\"\r\n        color=\"Grey\"\r\n\t\ttextColor = \"White\"\r\n\t\tposition = \"0 0 -2000\"\r\n\t\twidth = \"200\"\r\n\t\theight = \"150\"\r\n\t\tscale = \"0.5 1 1\"\r\n\t\toffsetXY = \"-700 1500\"\r\n        allowDragging=\"true\"\r\n        returnToOriginalPositionWhenReleased=\"false\"\r\n        restrictDraggingToParentBounds=\"false\"\r\n>\r\n\t<Text\r\n\ttext = \"Drag\"\r\n\tfontSize = \"70\"\r\n\t></Text>\r\n\t<Button\r\n\tonClick = \"Apply\"\r\n\ttext = \"Apply\"\r\n\tfontSize = \"70\"\r\n\tcolor = \"#1e81b0\"\r\n\toffsetXY = \"900 0\"\r\n\t>\r\n\t</Button>\r\n<VerticalScrollView\r\nid = \"scroll1\"\r\nrotation = \"0 0 0\"\r\nposition = \"0 0 0\"\r\n \theight=\"3000\"\r\n \twidth=\"2000\"\r\n\toffsetXY = \"0 -1600\"\r\n\r\n>\r\n<InputField\r\n \ttext = \"Enter text...\" \r\n\tlineType=\"MultiLineNewline\"\r\n \theight=\"60000\"\r\n \twidth=\"4000\"\r\n \ttextColor=\"#a4d9fa\"\r\n \toffsetXY = \"0 0\"\r\n \tcolor=\"#1f1f1f\"\r\n\t fontSize = \"50\"\r\n \tid=\"input1\"\r\n\tonValueChanged = \"typing\"\r\n\tonEndEdit = \"typing\"\r\n />\r\n</VerticalScrollView>\r\n</Panel>"
  1615.     },
  1616.     {
  1617.       "GUID": "e7358b",
  1618.       "Name": "BlockSquare",
  1619.       "Transform": {
  1620.         "posX": 0.2139073,
  1621.         "posY": 1.59961283,
  1622.         "posZ": -2.33972168,
  1623.         "rotX": 359.983124,
  1624.         "rotY": -7.842265E-05,
  1625.         "rotZ": 359.920135,
  1626.         "scaleX": 3.65834117,
  1627.         "scaleY": 0.238181144,
  1628.         "scaleZ": 1.72883391
  1629.       },
  1630.       "Nickname": "",
  1631.       "Description": "",
  1632.       "GMNotes": "",
  1633.       "AltLookAngle": {
  1634.         "x": 0.0,
  1635.         "y": 0.0,
  1636.         "z": 0.0
  1637.       },
  1638.       "ColorDiffuse": {
  1639.         "r": 1.0,
  1640.         "g": 1.0,
  1641.         "b": 1.0,
  1642.         "a": 0.0
  1643.       },
  1644.       "Tags": [
  1645.         "button"
  1646.       ],
  1647.       "LayoutGroupSortIndex": 0,
  1648.       "Value": 0,
  1649.       "Locked": true,
  1650.       "Grid": true,
  1651.       "Snap": true,
  1652.       "IgnoreFoW": false,
  1653.       "MeasureMovement": false,
  1654.       "DragSelectable": true,
  1655.       "Autoraise": true,
  1656.       "Sticky": true,
  1657.       "Tooltip": true,
  1658.       "GridProjection": false,
  1659.       "HideWhenFaceDown": false,
  1660.       "Hands": false,
  1661.       "LuaScript": "",
  1662.       "LuaScriptState": "",
  1663.       "XmlUI": "<Panel\r\n\t\tid = \"panel1\"\r\n\t\tactive = \"false\"\r\n        color=\"Grey\"\r\n\t\ttextColor = \"White\"\r\n\t\tposition = \"0 0 -2000\"\r\n\t\twidth = \"200\"\r\n\t\theight = \"150\"\r\n\t\tscale = \"0.5 1 1\"\r\n\t\toffsetXY = \"-700 1500\"\r\n        allowDragging=\"true\"\r\n        returnToOriginalPositionWhenReleased=\"false\"\r\n        restrictDraggingToParentBounds=\"false\"\r\n>\r\n\t<Text\r\n\ttext = \"Drag\"\r\n\tfontSize = \"70\"\r\n\t></Text>\r\n\t<Button\r\n\tonClick = \"Apply\"\r\n\ttext = \"Apply\"\r\n\tfontSize = \"70\"\r\n\tcolor = \"#1e81b0\"\r\n\toffsetXY = \"900 0\"\r\n\t>\r\n\t</Button>\r\n<VerticalScrollView\r\nid = \"scroll1\"\r\nrotation = \"0 0 0\"\r\nposition = \"0 0 0\"\r\n \theight=\"3000\"\r\n \twidth=\"2000\"\r\n\toffsetXY = \"0 -1600\"\r\n\r\n>\r\n<InputField\r\n \ttext = \"Enter text...\" \r\n\tlineType=\"MultiLineNewline\"\r\n \theight=\"60000\"\r\n \twidth=\"4000\"\r\n \ttextColor=\"#a4d9fa\"\r\n \toffsetXY = \"0 0\"\r\n \tcolor=\"#1f1f1f\"\r\n\t fontSize = \"50\"\r\n \tid=\"input1\"\r\n\tonValueChanged = \"typing\"\r\n\tonEndEdit = \"typing\"\r\n />\r\n</VerticalScrollView>\r\n</Panel>"
  1664.     },
  1665.     {
  1666.       "GUID": "4ee1f2",
  1667.       "Name": "Custom_Model",
  1668.       "Transform": {
  1669.         "posX": 0.0,
  1670.         "posY": -9.0,
  1671.         "posZ": 0.0,
  1672.         "rotX": 359.983124,
  1673.         "rotY": -0.00189453643,
  1674.         "rotZ": 359.920135,
  1675.         "scaleX": 1.7,
  1676.         "scaleY": 1.0,
  1677.         "scaleZ": 1.7
  1678.       },
  1679.       "Nickname": "",
  1680.       "Description": "",
  1681.       "GMNotes": "",
  1682.       "AltLookAngle": {
  1683.         "x": 0.0,
  1684.         "y": 0.0,
  1685.         "z": 0.0
  1686.       },
  1687.       "ColorDiffuse": {
  1688.         "r": 1.0,
  1689.         "g": 1.0,
  1690.         "b": 1.0
  1691.       },
  1692.       "LayoutGroupSortIndex": 0,
  1693.       "Value": 0,
  1694.       "Locked": true,
  1695.       "Grid": true,
  1696.       "Snap": true,
  1697.       "IgnoreFoW": false,
  1698.       "MeasureMovement": false,
  1699.       "DragSelectable": true,
  1700.       "Autoraise": true,
  1701.       "Sticky": true,
  1702.       "Tooltip": true,
  1703.       "GridProjection": true,
  1704.       "HideWhenFaceDown": false,
  1705.       "Hands": false,
  1706.       "CustomMesh": {
  1707.         "MeshURL": "https://steamusercontent-a.akamaihd.net/ugc/879750610978796176/4A5A65543B98BCFBF57E910D06EC984208223D38/",
  1708.         "DiffuseURL": "https://steamusercontent-a.akamaihd.net/ugc/1743429622315576281/8D870B026F4998686F8DA9EE2DA9A179BB59651A/",
  1709.         "NormalURL": "",
  1710.         "ColliderURL": "",
  1711.         "Convex": true,
  1712.         "MaterialIndex": 1,
  1713.         "TypeIndex": 4,
  1714.         "CustomShader": {
  1715.           "SpecularColor": {
  1716.             "r": 1.0,
  1717.             "g": 1.0,
  1718.             "b": 1.0
  1719.           },
  1720.           "SpecularIntensity": 0.0,
  1721.           "SpecularSharpness": 2.0,
  1722.           "FresnelStrength": 0.0
  1723.         },
  1724.         "CastShadows": true
  1725.       },
  1726.       "LuaScript": "",
  1727.       "LuaScriptState": "",
  1728.       "XmlUI": ""
  1729.     },
  1730.     {
  1731.       "GUID": "606554",
  1732.       "Name": "Custom_PDF",
  1733.       "Transform": {
  1734.         "posX": 0.0587705821,
  1735.         "posY": 1.48513031,
  1736.         "posZ": 12.5740957,
  1737.         "rotX": 0.0168895833,
  1738.         "rotY": 179.986969,
  1739.         "rotZ": 0.0798732638,
  1740.         "scaleX": 2.53836465,
  1741.         "scaleY": 1.0,
  1742.         "scaleZ": 2.53836465
  1743.       },
  1744.       "Nickname": "",
  1745.       "Description": "",
  1746.       "GMNotes": "",
  1747.       "AltLookAngle": {
  1748.         "x": 0.0,
  1749.         "y": 0.0,
  1750.         "z": 0.0
  1751.       },
  1752.       "ColorDiffuse": {
  1753.         "r": 1.0,
  1754.         "g": 1.0,
  1755.         "b": 1.0
  1756.       },
  1757.       "LayoutGroupSortIndex": 0,
  1758.       "Value": 0,
  1759.       "Locked": false,
  1760.       "Grid": true,
  1761.       "Snap": true,
  1762.       "IgnoreFoW": false,
  1763.       "MeasureMovement": false,
  1764.       "DragSelectable": true,
  1765.       "Autoraise": true,
  1766.       "Sticky": true,
  1767.       "Tooltip": true,
  1768.       "GridProjection": false,
  1769.       "HideWhenFaceDown": false,
  1770.       "Hands": false,
  1771.       "CustomPDF": {
  1772.         "PDFUrl": "https://steamusercontent-a.akamaihd.net/ugc/35572915122173628/9C79912077C2F0DE6A50655BFDC32DC37BA3DBC6/",
  1773.         "PDFPassword": "",
  1774.         "PDFPage": 0,
  1775.         "PDFPageOffset": 0
  1776.       },
  1777.       "LuaScript": "",
  1778.       "LuaScriptState": "",
  1779.       "XmlUI": ""
  1780.     },
  1781.     {
  1782.       "GUID": "83c6d4",
  1783.       "Name": "BlockSquare",
  1784.       "Transform": {
  1785.         "posX": 0.165829986,
  1786.         "posY": 1.59891319,
  1787.         "posZ": -4.94306374,
  1788.         "rotX": 359.983124,
  1789.         "rotY": 1.96602268E-05,
  1790.         "rotZ": 359.920135,
  1791.         "scaleX": 3.65834117,
  1792.         "scaleY": 0.238181144,
  1793.         "scaleZ": 1.72883391
  1794.       },
  1795.       "Nickname": "",
  1796.       "Description": "",
  1797.       "GMNotes": "",
  1798.       "AltLookAngle": {
  1799.         "x": 0.0,
  1800.         "y": 0.0,
  1801.         "z": 0.0
  1802.       },
  1803.       "ColorDiffuse": {
  1804.         "r": 1.0,
  1805.         "g": 1.0,
  1806.         "b": 1.0,
  1807.         "a": 0.0
  1808.       },
  1809.       "Tags": [
  1810.         "button"
  1811.       ],
  1812.       "LayoutGroupSortIndex": 0,
  1813.       "Value": 0,
  1814.       "Locked": true,
  1815.       "Grid": true,
  1816.       "Snap": true,
  1817.       "IgnoreFoW": false,
  1818.       "MeasureMovement": false,
  1819.       "DragSelectable": true,
  1820.       "Autoraise": true,
  1821.       "Sticky": true,
  1822.       "Tooltip": true,
  1823.       "GridProjection": false,
  1824.       "HideWhenFaceDown": false,
  1825.       "Hands": false,
  1826.       "LuaScript": "",
  1827.       "LuaScriptState": "",
  1828.       "XmlUI": "<Panel\r\n\t\tid = \"panel1\"\r\n\t\tactive = \"false\"\r\n        color=\"Grey\"\r\n\t\ttextColor = \"White\"\r\n\t\tposition = \"0 0 -2000\"\r\n\t\twidth = \"200\"\r\n\t\theight = \"150\"\r\n\t\tscale = \"0.5 1 1\"\r\n\t\toffsetXY = \"-700 1500\"\r\n        allowDragging=\"true\"\r\n        returnToOriginalPositionWhenReleased=\"false\"\r\n        restrictDraggingToParentBounds=\"false\"\r\n>\r\n\t<Text\r\n\ttext = \"Drag\"\r\n\tfontSize = \"70\"\r\n\t></Text>\r\n\t<Button\r\n\tonClick = \"Apply\"\r\n\ttext = \"Apply\"\r\n\tfontSize = \"70\"\r\n\tcolor = \"#1e81b0\"\r\n\toffsetXY = \"900 0\"\r\n\t>\r\n\t</Button>\r\n<VerticalScrollView\r\nid = \"scroll1\"\r\nrotation = \"0 0 0\"\r\nposition = \"0 0 0\"\r\n \theight=\"3000\"\r\n \twidth=\"2000\"\r\n\toffsetXY = \"0 -1600\"\r\n\r\n>\r\n<InputField\r\n \ttext = \"Enter text...\" \r\n\tlineType=\"MultiLineNewline\"\r\n \theight=\"60000\"\r\n \twidth=\"4000\"\r\n \ttextColor=\"#a4d9fa\"\r\n \toffsetXY = \"0 0\"\r\n \tcolor=\"#1f1f1f\"\r\n\t fontSize = \"50\"\r\n \tid=\"input1\"\r\n\tonValueChanged = \"typing\"\r\n\tonEndEdit = \"typing\"\r\n />\r\n</VerticalScrollView>\r\n</Panel>"
  1829.     },
  1830.     {
  1831.       "GUID": "9729c7",
  1832.       "Name": "Custom_Token",
  1833.       "Transform": {
  1834.         "posX": 0.135458559,
  1835.         "posY": 1.58989608,
  1836.         "posZ": 29.1220932,
  1837.         "rotX": 0.07988401,
  1838.         "rotY": 90.0144043,
  1839.         "rotZ": 359.983124,
  1840.         "scaleX": 1.0,
  1841.         "scaleY": 1.0,
  1842.         "scaleZ": 1.0
  1843.       },
  1844.       "Nickname": "Turns Controller [999999](see description)[-]",
  1845.       "Description": "Adds Game Keys to let you end, pass, and set turns, as well as easily change turns settings. \n\nAlso lets you ping the player who's turn it is",
  1846.       "GMNotes": "",
  1847.       "AltLookAngle": {
  1848.         "x": 0.0,
  1849.         "y": 0.0,
  1850.         "z": 0.0
  1851.       },
  1852.       "ColorDiffuse": {
  1853.         "r": 1.0,
  1854.         "g": 1.0,
  1855.         "b": 1.0
  1856.       },
  1857.       "LayoutGroupSortIndex": 0,
  1858.       "Value": 0,
  1859.       "Locked": false,
  1860.       "Grid": true,
  1861.       "Snap": true,
  1862.       "IgnoreFoW": false,
  1863.       "MeasureMovement": false,
  1864.       "DragSelectable": true,
  1865.       "Autoraise": true,
  1866.       "Sticky": true,
  1867.       "Tooltip": true,
  1868.       "GridProjection": false,
  1869.       "HideWhenFaceDown": false,
  1870.       "Hands": false,
  1871.       "CustomImage": {
  1872.         "ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/1011566237275865520/6C8ACBB072B0E065B88990623C72E7DD96536EEB/",
  1873.         "ImageSecondaryURL": "",
  1874.         "ImageScalar": 1.0,
  1875.         "WidthScale": 0.0,
  1876.         "CustomToken": {
  1877.           "Thickness": 0.2,
  1878.           "MergeDistancePixels": 20.444437,
  1879.           "StandUp": false,
  1880.           "Stackable": false
  1881.         }
  1882.       },
  1883.       "LuaScript": "pingingDistance = 7\r\n\r\nfunction onLoad(save_state)\r\n    addHotkey(\"Enable/disable turns\", toggleEnableTurns, false)\r\n    addHotkey(\"End my turn\", endMyTurn, false)\r\n    addHotkey(\"Force the next turn\", forceEndTurn, false)\r\n    addHotkey(\"Go back to previous turn\", goBackOneTurn, false)\r\n    addHotkey(\"Give yourself the turn\", setToMyTurn, false)\r\n    addHotkey(\"Tell player to end their turn\", messagEndTheirTurn, false)\r\n    addHotkey(\"Ping player who's turn it is\", pingPlayer, false)\r\n    --addHotkey(\"[ccffcc]\\\"Custom turn orders\\\"[-] on/off\", toggleCustomTurnOrders, false)\r\n    addHotkey(\"[ccffcc]\\\"Reverse turn orders\\\"[-] on/off\", toggleReverseTurnOrder, false)\r\n    addHotkey(\"[ccffcc]\\\"Skip empty hands\\\"[-] on/off\", toggleSkipEmptyHands, false)\r\n    addHotkey(\"[ccffcc]\\\"Turn passing\\\"[-] on/off\", toggleTurnPassing, false)\r\n    addHotkey(\"[ccffcc]\\\"Interactions for empty hands\\\"[-] on/off\", toggleInteractionsEmptyHands, false)\r\nend\r\n\r\nfunction null() end\r\n\r\nfunction toggleEnableTurns(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        Turns.enable = false\r\n        broadcastToColor(\"Turns disabled\", colorPressingTheKey, \"Red\")\r\n    else\r\n        Turns.enable = true\r\n        broadcastToColor(\"Turns enabled\", colorPressingTheKey, \"Red\")\r\n    end\r\nend\r\n\r\nfunction endMyTurn(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        -- print(Turns.turn_color..\"   \"..colorPressingTheKey)\r\n        local turnColor = Turns.turn_color\r\n        if turnColor == colorPressingTheKey then\r\n            Turns.turn_color = Turns.getNextTurnColor()\r\n        else\r\n            broadcastToColor(\"It's \"..getColorCode(turnColor, true)..turnColor ..\"'s[-] turn right now, not yours!\", colorPressingTheKey, \"Red\")\r\n        end\r\n    else\r\n        broadcastToColor(\"Turns are currently disabled. Enable them first.\", colorPressingTheKey,\"Red\")\r\n    end\r\nend\r\n\r\nfunction forceEndTurn(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        -- print(Turns.turn_color..\"   \"..colorPressingTheKey)\r\n        local turnColor = Turns.turn_color\r\n        if Player[colorPressingTheKey].admin == true then\r\n            broadcastToColor(\"Your turn was ended by \"..getColorCode(colorPressingTheKey, true)..colorPressingTheKey..\"[-]!\", turnColor, \"Red\")\r\n            Turns.turn_color = Turns.getNextTurnColor()\r\n        else\r\n            broadcastToColor(\"You cannot end \"..getColorCode(turnColor, true)..turnColor..\"'s[-] turn because you are neither the host nor a promoted player.\", colorPressingTheKey, \"Red\")\r\n        end\r\n    else\r\n        broadcastToColor(\"Turns are currently disabled. Enable them first.\", colorPressingTheKey,\"Red\")\r\n    end\r\nend\r\n\r\nfunction goBackOneTurn(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        -- print(Turns.turn_color..\"   \"..colorPressingTheKey)\r\n        local turnColor = Turns.turn_color\r\n        if Player[colorPressingTheKey].admin == true then\r\n            --broadcastToColor(\"Your turn was ended by \"..getColorCode(colorPressingTheKey, true)..colorPressingTheKey..\"[-]!\", turnColor, \"Red\")\r\n            Turns.turn_color = Turns.getPreviousTurnColor()\r\n        else\r\n            broadcastToColor(\"You cannot set the turn to the previous turn because you are neither the host nor a promoted player.\", colorPressingTheKey, \"Red\")\r\n        end\r\n    else\r\n        broadcastToColor(\"Turns are currently disabled. Enable them first.\", colorPressingTheKey,\"Red\")\r\n    end\r\nend\r\n\r\nfunction setToMyTurn(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        if Turns.turn_color ~= colorPressingTheKey then\r\n            Turns.turn_color = colorPressingTheKey\r\n            -- print(Turns.turn_color..\"   \"..colorPressingTheKey)\r\n        else\r\n            broadcastToColor(\"It's already your turn!\", colorPressingTheKey, \"Red\")\r\n        end\r\n    else\r\n        broadcastToColor(\"Turns are currently disabled. Enable them first.\", colorPressingTheKey,\"Red\")\r\n    end\r\nend\r\n\r\nfunction pingPlayer(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        local turnColor = Turns.turn_color\r\n        local handTrans = Player[turnColor].getHandTransform(1)\r\n        local handPos = handTrans.position + handTrans.forward:scale(pingingDistance)\r\n        Player[turnColor].pingTable(handPos)\r\n        if turnColor == colorPressingTheKey then\r\n            broadcastToColor(\"It's your turn to play, \"..getColorCode(turnColor, true)..turnColor..\"[-]! (And why are you pinging yourself?)\", turnColor, \"Red\")\r\n        else\r\n            broadcastToColor(\"It's your turn to play, \"..getColorCode(turnColor, true)..turnColor..\"[-]! (pinged by \".. getColorCode(colorPressingTheKey,true) ..colorPressingTheKey..\"[-])\", turnColor, \"Red\")\r\n        end\r\n    else\r\n        broadcastToColor(\"Turns are currently disabled. Enable them first.\", colorPressingTheKey,\"Red\")\r\n    end\r\nend\r\n\r\nfunction messagEndTheirTurn(colorPressingTheKey)\r\n    if Turns.enable == true then\r\n        local turnColor = Turns.turn_color\r\n        broadcastToColor(\"Don't forget to end your turn! \"..getColorCode(turnColor, true)..\"[-]! (reminder sent by \".. getColorCode(colorPressingTheKey,true) ..colorPressingTheKey..\"[-])\", turnColor, \"Red\")\r\n    else\r\n        broadcastToColor(\"Turns are currently disabled. Enable them first.\", colorPressingTheKey,\"Red\")\r\n    end\r\nend\r\n\r\nfunction toggleReverseTurnOrder(colorPressingTheKey)\r\n    if Turns.reverse_order == true then\r\n        Turns.reverse_order = false\r\n        broadcastToAll(\"Turn order un-reversed [999999](going in the normal order again)\", \"Red\")\r\n    else\r\n        Turns.reverse_order = true\r\n        broadcastToAll(\"Turn order reversed\", \"Red\")\r\n    end\r\nend\r\nfunction toggleSkipEmptyHands(colorPressingTheKey)\r\n    if Turns.skip_empty_hands == true then\r\n        Turns.skip_empty_hands = false\r\n        broadcastToAll(\"\\\"Skip empty hands' turns\\\" deactivated\", \"Red\")\r\n    else\r\n        Turns.skip_empty_hands = true\r\n        broadcastToAll(\"\\\"Skip empty hands' turns\\\" activated\", \"Red\")\r\n    end\r\nend\r\nfunction toggleInteractionsEmptyHands(colorPressingTheKey)\r\n    if Turns.disable_interactations == true then\r\n        Turns.disable_interactations = false\r\n        broadcastToAll(\"\\\"Disabled interactions for empty hands\\\" deactivated\", \"Red\")\r\n    else\r\n        Turns.disable_interactations = true\r\n        broadcastToAll(\"\\\"Disabled interactions for empty hands\\\" activated\", \"Red\")\r\n    end\r\nend\r\nfunction toggleTurnPassing(colorPressingTheKey)\r\n    if Turns.pass_turns == true then\r\n        Turns.pass_turns = false\r\n        broadcastToAll(\"Players can no longer pass the turn to who they want\", \"Red\")\r\n    else\r\n        Turns.pass_turns = true\r\n        broadcastToAll(\"Players can now pass the turn to who they want\", \"Red\")\r\n    end\r\nend\r\n\r\nfunction getColorCode(colorPressingTheKey, withQuotes)\r\n    local colorCode = \"\"\r\n    if colorPressingTheKey == \"White\" then\r\n        colorCode = \"FFFFFF\"\r\n    elseif colorPressingTheKey == \"Brown\" then\r\n        colorCode = \"703A16\"\r\n    elseif colorPressingTheKey == \"Red\" then\r\n        colorCode = \"DA1917\"\r\n    elseif colorPressingTheKey == \"Orange\" then\r\n        colorCode = \"F3631C\"\r\n    elseif colorPressingTheKey == \"Yellow\" then\r\n        colorCode = \"E6E42B\"\r\n    elseif colorPressingTheKey == \"Green\" then\r\n        colorCode = \"30B22A\"\r\n    elseif colorPressingTheKey == \"Teal\" then\r\n        colorCode = \"20B09A\"\r\n    elseif colorPressingTheKey == \"Blue\" then\r\n        colorCode = \"1E87FF\"\r\n    elseif colorPressingTheKey == \"Purple\" then\r\n        colorCode = \"9F1FEF\"\r\n    elseif colorPressingTheKey == \"Pink\" then\r\n        colorCode = \"F46FCD\"\r\n    end\r\n    if withQuotes == true then\r\n        return \"[\"..colorCode..\"]\"\r\n    else\r\n        return colorCode\r\n    end\r\nend\r\n",
  1884.       "LuaScriptState": "",
  1885.       "XmlUI": ""
  1886.     },
  1887.     {
  1888.       "GUID": "f8fb23",
  1889.       "Name": "Custom_Assetbundle",
  1890.       "Transform": {
  1891.         "posX": 19.6331921,
  1892.         "posY": 1.5738883,
  1893.         "posZ": -17.83006,
  1894.         "rotX": 0.07987163,
  1895.         "rotY": 89.99525,
  1896.         "rotZ": 359.983124,
  1897.         "scaleX": 1.0,
  1898.         "scaleY": 1.0,
  1899.         "scaleZ": 1.0
  1900.       },
  1901.       "Nickname": "Turn Skipper",
  1902.       "Description": "",
  1903.       "GMNotes": "",
  1904.       "AltLookAngle": {
  1905.         "x": 0.0,
  1906.         "y": 0.0,
  1907.         "z": 0.0
  1908.       },
  1909.       "ColorDiffuse": {
  1910.         "r": 0.9559999,
  1911.         "g": 0.391999573,
  1912.         "b": 0.112999581
  1913.       },
  1914.       "Tags": [
  1915.         "Turn Skipper"
  1916.       ],
  1917.       "LayoutGroupSortIndex": 0,
  1918.       "Value": 0,
  1919.       "Locked": false,
  1920.       "Grid": true,
  1921.       "Snap": true,
  1922.       "IgnoreFoW": false,
  1923.       "MeasureMovement": false,
  1924.       "DragSelectable": true,
  1925.       "Autoraise": true,
  1926.       "Sticky": true,
  1927.       "Tooltip": true,
  1928.       "GridProjection": false,
  1929.       "HideWhenFaceDown": false,
  1930.       "Hands": false,
  1931.       "CustomAssetbundle": {
  1932.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/2261436542784592358/E61413D9348C25E4C24761F4093EEC5792323592/",
  1933.         "AssetbundleSecondaryURL": "",
  1934.         "MaterialIndex": 0,
  1935.         "TypeIndex": 0,
  1936.         "LoopingEffectIndex": 0
  1937.       },
  1938.       "LuaScript": "local turnSkipPlayer\r\nlocal colorLocked\r\n\r\nfunction onLoad(saved_state)\r\n    saved_state = JSON.decode(saved_state)\r\n    if saved_state == \"\" then\r\n        turnSkipPlayer = nil\r\n        self.setColorTint({0.5, 0.5, 0.5})\r\n        colorLocked = false\r\n    else\r\n        assignColor(saved_state[\"turnSkipPlayer\"])\r\n        colorLocked = saved_state[\"turnSkipPlayer\"]\r\n    end\r\n    self.addContextMenuItem(\"Reset All\", unskipAll)\r\n    self.addContextMenuItem(\"Toggle Color Lock\", toggleColorLock)\r\n    self.addContextMenuItem(\"Spawn For Players\", spawnForEachSeatedPlayer)\r\nend\r\n\r\nfunction onSave()\r\n    local state_to_save = {\r\n    turnSkipPlayer = turnSkipPlayer,\r\n    colorLocked = colorLocked,\r\n    }\r\n    return JSON.encode(state_to_save)\r\nend\r\n\r\n-- Set turnSkipPlayer color to track\r\nfunction onPickUp(color)\r\n    if not colorLocked then\r\n        assignColor(color)\r\n    end\r\nend\r\n\r\nfunction onObjectEnterZone(zone, object)\r\n\r\n    if not colorLocked and zone.type == \"Hand\" and object == self then\r\n\r\n        assignColor(zone.getValue())\r\n    end\r\nend\r\n\r\n\r\n-- If it's turnSkipPlayer's turn and the token is flipped, skip their turn\r\nfunction onPlayerTurn(player)\r\n\tif player == nil then return end\r\n    if turnSkipPlayer == player.color and getIfAllSkipped() then\r\n        broadcastToAll(\"All turns have been skipped!\")\r\n    elseif turnSkipPlayer == player.color and self.is_face_down then\r\n        broadcastToAll(\"Skipping \" .. player.steam_name .. \"'s turn.\", player.color)\r\n        Wait.frames(skipTurn, 2)\r\n    end\r\nend\r\n\r\nfunction skipTurn()\r\n    Turns.turn_color = Turns.getNextTurnColor()\r\nend\r\n\r\nfunction unskipAll(player, position, object)\r\n    for i, object in ipairs(getObjectsWithTag(\"Turn Skipper\")) do\r\n        if object.is_face_down then\r\n            object.flip()\r\n        end\r\n    end\r\nend\r\n\r\nfunction getIfAllSkipped()\r\n    for i, object in ipairs(getObjectsWithTag(\"Turn Skipper\")) do\r\n        if not object.is_face_down then\r\n            return false\r\n        end\r\n    end\r\n    return true\r\nend\r\n\r\nfunction toggleColorLock(player, position, object)\r\n    colorLocked = not colorLocked\r\n    local str\r\n    if colorLocked then str = \"Color locked!\" else str = \"Color unlocked!\" end\r\n    broadcastToColor(str, player, turnSkipPlayer)\r\nend\r\n\r\nfunction spawnForEachSeatedPlayer(pl, pos, obj)\r\n    for i, player in ipairs(getSeatedPlayers()) do\r\n        if Player[player].getHandCount() > 0 then\r\n            local transform = Player[player].getHandTransform()\r\n            transform[\"position\"] = transform[\"position\"] + 5 * transform[\"forward\"]\r\n            transform[\"position\"][\"y\"] = 3\r\n            local new_object = spawnObject({type = \"Custom_Assetbundle\",\r\n                                            position = transform[\"position\"],\r\n                                            rotation = transform[\"rotation\"]})\r\n            new_object.script_code = self.script_code\r\n            new_object.script_state = JSON.encode({turnSkipPlayer = player, colorLocked = true})\r\n            new_object.addTag(\"Turn Skipper\")\r\n            new_object.setName(\"Turn Skipper\")\r\n            new_object.setCustomObject(self.getCustomObject())\r\n            new_object.reload()\r\n            self.destruct()\r\n        end\r\n    end\r\nend\r\n\r\nfunction initOnSpawn(player, lock_state)\r\n    self.script_state = {\r\n    turnSkipPlayer = player,\r\n    colorLocked = lock_state,\r\n    }\r\nend\r\n\r\nfunction assignColor(color)\r\n    if color ~= nil then\r\n        self.setColorTint(color)\r\n        turnSkipPlayer = color\r\n    end\r\nend",
  1939.       "LuaScriptState": "{\"colorLocked\":\"Orange\",\"turnSkipPlayer\":\"Orange\"}",
  1940.       "XmlUI": ""
  1941.     },
  1942.     {
  1943.       "GUID": "6f53e4",
  1944.       "Name": "Custom_Assetbundle",
  1945.       "Transform": {
  1946.         "posX": 1.68310988,
  1947.         "posY": 1.597051,
  1948.         "posZ": -24.15161,
  1949.         "rotX": 0.0168729778,
  1950.         "rotY": 180.000656,
  1951.         "rotZ": 0.07987669,
  1952.         "scaleX": 1.0,
  1953.         "scaleY": 1.0,
  1954.         "scaleZ": 1.0
  1955.       },
  1956.       "Nickname": "Turn Skipper",
  1957.       "Description": "",
  1958.       "GMNotes": "",
  1959.       "AltLookAngle": {
  1960.         "x": 0.0,
  1961.         "y": 0.0,
  1962.         "z": 0.0
  1963.       },
  1964.       "ColorDiffuse": {
  1965.         "r": 0.856,
  1966.         "g": 0.09999966,
  1967.         "b": 0.09399965
  1968.       },
  1969.       "Tags": [
  1970.         "Turn Skipper"
  1971.       ],
  1972.       "LayoutGroupSortIndex": 0,
  1973.       "Value": 0,
  1974.       "Locked": false,
  1975.       "Grid": true,
  1976.       "Snap": true,
  1977.       "IgnoreFoW": false,
  1978.       "MeasureMovement": false,
  1979.       "DragSelectable": true,
  1980.       "Autoraise": true,
  1981.       "Sticky": true,
  1982.       "Tooltip": true,
  1983.       "GridProjection": false,
  1984.       "HideWhenFaceDown": false,
  1985.       "Hands": false,
  1986.       "CustomAssetbundle": {
  1987.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/2261436542784592358/E61413D9348C25E4C24761F4093EEC5792323592/",
  1988.         "AssetbundleSecondaryURL": "",
  1989.         "MaterialIndex": 0,
  1990.         "TypeIndex": 0,
  1991.         "LoopingEffectIndex": 0
  1992.       },
  1993.       "LuaScript": "local turnSkipPlayer\r\nlocal colorLocked\r\n\r\nfunction onLoad(saved_state)\r\n    saved_state = JSON.decode(saved_state)\r\n    if saved_state == \"\" then\r\n        turnSkipPlayer = nil\r\n        self.setColorTint({0.5, 0.5, 0.5})\r\n        colorLocked = false\r\n    else\r\n        assignColor(saved_state[\"turnSkipPlayer\"])\r\n        colorLocked = saved_state[\"turnSkipPlayer\"]\r\n    end\r\n    self.addContextMenuItem(\"Reset All\", unskipAll)\r\n    self.addContextMenuItem(\"Toggle Color Lock\", toggleColorLock)\r\n    self.addContextMenuItem(\"Spawn For Players\", spawnForEachSeatedPlayer)\r\nend\r\n\r\nfunction onSave()\r\n    local state_to_save = {\r\n    turnSkipPlayer = turnSkipPlayer,\r\n    colorLocked = colorLocked,\r\n    }\r\n    return JSON.encode(state_to_save)\r\nend\r\n\r\n-- Set turnSkipPlayer color to track\r\nfunction onPickUp(color)\r\n    if not colorLocked then\r\n        assignColor(color)\r\n    end\r\nend\r\n\r\nfunction onObjectEnterZone(zone, object)\r\n\r\n    if not colorLocked and zone.type == \"Hand\" and object == self then\r\n\r\n        assignColor(zone.getValue())\r\n    end\r\nend\r\n\r\n\r\n-- If it's turnSkipPlayer's turn and the token is flipped, skip their turn\r\nfunction onPlayerTurn(player)\r\n\tif player == nil then return end\r\n    if turnSkipPlayer == player.color and getIfAllSkipped() then\r\n        broadcastToAll(\"All turns have been skipped!\")\r\n    elseif turnSkipPlayer == player.color and self.is_face_down then\r\n        broadcastToAll(\"Skipping \" .. player.steam_name .. \"'s turn.\", player.color)\r\n        Wait.frames(skipTurn, 2)\r\n    end\r\nend\r\n\r\nfunction skipTurn()\r\n    Turns.turn_color = Turns.getNextTurnColor()\r\nend\r\n\r\nfunction unskipAll(player, position, object)\r\n    for i, object in ipairs(getObjectsWithTag(\"Turn Skipper\")) do\r\n        if object.is_face_down then\r\n            object.flip()\r\n        end\r\n    end\r\nend\r\n\r\nfunction getIfAllSkipped()\r\n    for i, object in ipairs(getObjectsWithTag(\"Turn Skipper\")) do\r\n        if not object.is_face_down then\r\n            return false\r\n        end\r\n    end\r\n    return true\r\nend\r\n\r\nfunction toggleColorLock(player, position, object)\r\n    colorLocked = not colorLocked\r\n    local str\r\n    if colorLocked then str = \"Color locked!\" else str = \"Color unlocked!\" end\r\n    broadcastToColor(str, player, turnSkipPlayer)\r\nend\r\n\r\nfunction spawnForEachSeatedPlayer(pl, pos, obj)\r\n    for i, player in ipairs(getSeatedPlayers()) do\r\n        if Player[player].getHandCount() > 0 then\r\n            local transform = Player[player].getHandTransform()\r\n            transform[\"position\"] = transform[\"position\"] + 5 * transform[\"forward\"]\r\n            transform[\"position\"][\"y\"] = 3\r\n            local new_object = spawnObject({type = \"Custom_Assetbundle\",\r\n                                            position = transform[\"position\"],\r\n                                            rotation = transform[\"rotation\"]})\r\n            new_object.script_code = self.script_code\r\n            new_object.script_state = JSON.encode({turnSkipPlayer = player, colorLocked = true})\r\n            new_object.addTag(\"Turn Skipper\")\r\n            new_object.setName(\"Turn Skipper\")\r\n            new_object.setCustomObject(self.getCustomObject())\r\n            new_object.reload()\r\n            self.destruct()\r\n        end\r\n    end\r\nend\r\n\r\nfunction initOnSpawn(player, lock_state)\r\n    self.script_state = {\r\n    turnSkipPlayer = player,\r\n    colorLocked = lock_state,\r\n    }\r\nend\r\n\r\nfunction assignColor(color)\r\n    if color ~= nil then\r\n        self.setColorTint(color)\r\n        turnSkipPlayer = color\r\n    end\r\nend",
  1994.       "LuaScriptState": "{\"colorLocked\":\"Red\",\"turnSkipPlayer\":\"Red\"}",
  1995.       "XmlUI": ""
  1996.     },
  1997.     {
  1998.       "GUID": "777ee5",
  1999.       "Name": "Custom_Assetbundle",
  2000.       "Transform": {
  2001.         "posX": -19.2397747,
  2002.         "posY": 1.62766,
  2003.         "posZ": -19.2604046,
  2004.         "rotX": 359.920135,
  2005.         "rotY": 270.0006,
  2006.         "rotZ": 0.0168698467,
  2007.         "scaleX": 1.0,
  2008.         "scaleY": 1.0,
  2009.         "scaleZ": 1.0
  2010.       },
  2011.       "Nickname": "Turn Skipper",
  2012.       "Description": "",
  2013.       "GMNotes": "",
  2014.       "AltLookAngle": {
  2015.         "x": 0.0,
  2016.         "y": 0.0,
  2017.         "z": 0.0
  2018.       },
  2019.       "ColorDiffuse": {
  2020.         "r": 0.96,
  2021.         "g": 0.438999683,
  2022.         "b": 0.807
  2023.       },
  2024.       "Tags": [
  2025.         "Turn Skipper"
  2026.       ],
  2027.       "LayoutGroupSortIndex": 0,
  2028.       "Value": 0,
  2029.       "Locked": false,
  2030.       "Grid": true,
  2031.       "Snap": true,
  2032.       "IgnoreFoW": false,
  2033.       "MeasureMovement": false,
  2034.       "DragSelectable": true,
  2035.       "Autoraise": true,
  2036.       "Sticky": true,
  2037.       "Tooltip": true,
  2038.       "GridProjection": false,
  2039.       "HideWhenFaceDown": false,
  2040.       "Hands": false,
  2041.       "CustomAssetbundle": {
  2042.         "AssetbundleURL": "https://steamusercontent-a.akamaihd.net/ugc/2261436542784592358/E61413D9348C25E4C24761F4093EEC5792323592/",
  2043.         "AssetbundleSecondaryURL": "",
  2044.         "MaterialIndex": 0,
  2045.         "TypeIndex": 0,
  2046.         "LoopingEffectIndex": 0
  2047.       },
  2048.       "LuaScript": "local turnSkipPlayer\r\nlocal colorLocked\r\n\r\nfunction onLoad(saved_state)\r\n    saved_state = JSON.decode(saved_state)\r\n    if saved_state == \"\" then\r\n        turnSkipPlayer = nil\r\n        self.setColorTint({0.5, 0.5, 0.5})\r\n        colorLocked = false\r\n    else\r\n        assignColor(saved_state[\"turnSkipPlayer\"])\r\n        colorLocked = saved_state[\"turnSkipPlayer\"]\r\n    end\r\n    self.addContextMenuItem(\"Reset All\", unskipAll)\r\n    self.addContextMenuItem(\"Toggle Color Lock\", toggleColorLock)\r\n    self.addContextMenuItem(\"Spawn For Players\", spawnForEachSeatedPlayer)\r\nend\r\n\r\nfunction onSave()\r\n    local state_to_save = {\r\n    turnSkipPlayer = turnSkipPlayer,\r\n    colorLocked = colorLocked,\r\n    }\r\n    return JSON.encode(state_to_save)\r\nend\r\n\r\n-- Set turnSkipPlayer color to track\r\nfunction onPickUp(color)\r\n    if not colorLocked then\r\n        assignColor(color)\r\n    end\r\nend\r\n\r\nfunction onObjectEnterZone(zone, object)\r\n\r\n    if not colorLocked and zone.type == \"Hand\" and object == self then\r\n\r\n        assignColor(zone.getValue())\r\n    end\r\nend\r\n\r\n\r\n-- If it's turnSkipPlayer's turn and the token is flipped, skip their turn\r\nfunction onPlayerTurn(player)\r\n\tif player == nil then return end\r\n    if turnSkipPlayer == player.color and getIfAllSkipped() then\r\n        broadcastToAll(\"All turns have been skipped!\")\r\n    elseif turnSkipPlayer == player.color and self.is_face_down then\r\n        broadcastToAll(\"Skipping \" .. player.steam_name .. \"'s turn.\", player.color)\r\n        Wait.frames(skipTurn, 2)\r\n    end\r\nend\r\n\r\nfunction skipTurn()\r\n    Turns.turn_color = Turns.getNextTurnColor()\r\nend\r\n\r\nfunction unskipAll(player, position, object)\r\n    for i, object in ipairs(getObjectsWithTag(\"Turn Skipper\")) do\r\n        if object.is_face_down then\r\n            object.flip()\r\n        end\r\n    end\r\nend\r\n\r\nfunction getIfAllSkipped()\r\n    for i, object in ipairs(getObjectsWithTag(\"Turn Skipper\")) do\r\n        if not object.is_face_down then\r\n            return false\r\n        end\r\n    end\r\n    return true\r\nend\r\n\r\nfunction toggleColorLock(player, position, object)\r\n    colorLocked = not colorLocked\r\n    local str\r\n    if colorLocked then str = \"Color locked!\" else str = \"Color unlocked!\" end\r\n    broadcastToColor(str, player, turnSkipPlayer)\r\nend\r\n\r\nfunction spawnForEachSeatedPlayer(pl, pos, obj)\r\n    for i, player in ipairs(getSeatedPlayers()) do\r\n        if Player[player].getHandCount() > 0 then\r\n            local transform = Player[player].getHandTransform()\r\n            transform[\"position\"] = transform[\"position\"] + 5 * transform[\"forward\"]\r\n            transform[\"position\"][\"y\"] = 3\r\n            local new_object = spawnObject({type = \"Custom_Assetbundle\",\r\n                                            position = transform[\"position\"],\r\n                                            rotation = transform[\"rotation\"]})\r\n            new_object.script_code = self.script_code\r\n            new_object.script_state = JSON.encode({turnSkipPlayer = player, colorLocked = true})\r\n            new_object.addTag(\"Turn Skipper\")\r\n            new_object.setName(\"Turn Skipper\")\r\n            new_object.setCustomObject(self.getCustomObject())\r\n            new_object.reload()\r\n            self.destruct()\r\n        end\r\n    end\r\nend\r\n\r\nfunction initOnSpawn(player, lock_state)\r\n    self.script_state = {\r\n    turnSkipPlayer = player,\r\n    colorLocked = lock_state,\r\n    }\r\nend\r\n\r\nfunction assignColor(color)\r\n    if color ~= nil then\r\n        self.setColorTint(color)\r\n        turnSkipPlayer = color\r\n    end\r\nend",
  2049.       "LuaScriptState": "{\"colorLocked\":\"Pink\",\"turnSkipPlayer\":\"Pink\"}",
  2050.       "XmlUI": ""
  2051.     },
  2052.     {
  2053.       "GUID": "cbb111",
  2054.       "Name": "ScriptingTrigger",
  2055.       "Transform": {
  2056.         "posX": -0.652498,
  2057.         "posY": 4.034133,
  2058.         "posZ": -21.4761066,
  2059.         "rotX": 0.0,
  2060.         "rotY": -2.59777335E-06,
  2061.         "rotZ": 0.0,
  2062.         "scaleX": 13.3037119,
  2063.         "scaleY": 5.1,
  2064.         "scaleZ": 12.0716686
  2065.       },
  2066.       "Nickname": "",
  2067.       "Description": "",
  2068.       "GMNotes": "",
  2069.       "AltLookAngle": {
  2070.         "x": 0.0,
  2071.         "y": 0.0,
  2072.         "z": 0.0
  2073.       },
  2074.       "ColorDiffuse": {
  2075.         "r": 1.0,
  2076.         "g": 1.0,
  2077.         "b": 1.0,
  2078.         "a": 0.509803951
  2079.       },
  2080.       "LayoutGroupSortIndex": 0,
  2081.       "Value": 0,
  2082.       "Locked": true,
  2083.       "Grid": true,
  2084.       "Snap": true,
  2085.       "IgnoreFoW": false,
  2086.       "MeasureMovement": false,
  2087.       "DragSelectable": true,
  2088.       "Autoraise": true,
  2089.       "Sticky": true,
  2090.       "Tooltip": true,
  2091.       "GridProjection": false,
  2092.       "HideWhenFaceDown": false,
  2093.       "Hands": false,
  2094.       "LuaScript": "local scoreZoneGuid = 'cbb111' -- the guid of your zone\r\nsave_data = {\r\n    scoreTextGuid = '' -- will be initialized in the 'onLoad' function\r\n}\r\n\r\n--#region : Event listeners\r\nfunction onLoad(save_state) -- called when loading a save or when creating the object this script is placed in\r\n    if(save_state == '' or save_state == nil or save_state == 'null') then\r\n        -- no save data found\r\n    else\r\n        save_data = JSON.decode(save_state)\r\n    end\r\n    if(save_data.scoreTextGuid == nil or save_data.scoreTextGuid == '') then\r\n        spawnText() -- Initializes the text object\r\n    end\r\nend\r\n\r\nfunction onSave() -- called on each (auto)save action\r\n    local json_data = JSON.encode(settings)\r\n\r\n    if(false) then -- set to true & save to clear save data\r\n        json_data = \"\"\r\n    end\r\n    return json_data\r\nend\r\nfunction onDestroy() -- called when the object this script is placed in is destroyed\r\n    -- Delete the text object\r\n    local textObject = getObjectFromGUID(save_data.scoreTextGuid)\r\n    if(textObject ~= nil) then\r\n        destroyObject(textObject)\r\n    end\r\nend\r\n\r\nfunction onObjectEnterScriptingZone(zone, enter_object)\r\n    local zoneGuid = zone.getGUID()\r\n    if(zoneGuid ~= scoreZoneGuid) then return end -- Ignore all events for zones that aren't the score zone\r\n    Wait.frames(updateScore, 1) -- wait 1 frame for the object to actually appear in the zone\r\nend\r\nfunction onObjectLeaveScriptingZone(zone, enter_object)\r\n    local zoneGuid = zone.getGUID()\r\n    if(zoneGuid ~= scoreZoneGuid) then return end -- Ignore all events for zones that aren't the score zone\r\n    Wait.frames(updateScore, 1) -- wait 1 frame for the object to actually disappear from the zone\r\nend\r\n--#endregion : Event listeners\r\n\r\nfunction spawnText()\r\n    local text = spawnObject({\r\n        type = '3DText',\r\n        rotation = {90.00, 0.00, 0.00}, -- TODO: Change rotation as needed\r\n        position = {0.00, 1.61, -10.95} -- TODO: Change this to a better location\r\n    })\r\n    text.setValue('0') -- Set a default text value\r\n    text.TextTool.setFontSize(100)  -- TODO: Check if this is the right size\r\n    text.TextTool.setFontColor({0.856, 0.1, 0.094})\r\n    save_data.scoreTextGuid = text.getGUID() -- Save the guid so we know how to reference it\r\nend\r\n\r\nfunction updateScore()\r\n    local scoreValue = getScore()\r\n    local scoreText = getObjectFromGUID(save_data.scoreTextGuid)\r\n    scoreText.setValue(''..scoreValue) -- Convert the number to a string and passes it to the text object\r\nend\r\n\r\nfunction getScore()\r\n    local score = 0\r\n    local zone = getObjectFromGUID(scoreZoneGuid)\r\n    local objects = zone.getObjects() -- get objects already in the zone\r\n    for key,object in ipairs(objects) do -- key = 1|2|3|etc, object = actual TTS object\r\n        local description = object.getDescription() -- get the description\r\n        local number = tonumber(description)  -- convert it to a number\r\n        if(number ~= nil) then -- check if you actually get a number (tonumber returns nil if it isn't)\r\n            score = score + number\r\n        end\r\n    end\r\n    return score\r\nend",
  2095.       "LuaScriptState": "null",
  2096.       "XmlUI": ""
  2097.     },
  2098.     {
  2099.       "GUID": "5ff2ab",
  2100.       "Name": "3DText",
  2101.       "Transform": {
  2102.         "posX": 0.999989,
  2103.         "posY": 1.00000846,
  2104.         "posZ": 1.00000381,
  2105.         "rotX": 90.0,
  2106.         "rotY": 0.0,
  2107.         "rotZ": 0.0,
  2108.         "scaleX": 1.0,
  2109.         "scaleY": 1.0,
  2110.         "scaleZ": 1.0
  2111.       },
  2112.       "Nickname": "",
  2113.       "Description": "",
  2114.       "GMNotes": "",
  2115.       "AltLookAngle": {
  2116.         "x": 0.0,
  2117.         "y": 0.0,
  2118.         "z": 0.0
  2119.       },
  2120.       "ColorDiffuse": {
  2121.         "r": 1.0,
  2122.         "g": 1.0,
  2123.         "b": 1.0
  2124.       },
  2125.       "LayoutGroupSortIndex": 0,
  2126.       "Value": 0,
  2127.       "Locked": true,
  2128.       "Grid": true,
  2129.       "Snap": true,
  2130.       "IgnoreFoW": false,
  2131.       "MeasureMovement": false,
  2132.       "DragSelectable": true,
  2133.       "Autoraise": true,
  2134.       "Sticky": true,
  2135.       "Tooltip": true,
  2136.       "GridProjection": false,
  2137.       "HideWhenFaceDown": false,
  2138.       "Hands": false,
  2139.       "Text": {
  2140.         "Text": "The score of objects in the zone is 0",
  2141.         "colorstate": {
  2142.           "r": 1.0,
  2143.           "g": 1.0,
  2144.           "b": 1.0
  2145.         },
  2146.         "fontSize": 40
  2147.       },
  2148.       "LuaScript": "",
  2149.       "LuaScriptState": "",
  2150.       "XmlUI": ""
  2151.     },
  2152.     {
  2153.       "GUID": "0909a2",
  2154.       "Name": "Deck",
  2155.       "Transform": {
  2156.         "posX": -1.62008286,
  2157.         "posY": 1.957552,
  2158.         "posZ": 1.13116431,
  2159.         "rotX": 0.016834924,
  2160.         "rotY": 180.0314,
  2161.         "rotZ": 180.07991,
  2162.         "scaleX": 1.2007668,
  2163.         "scaleY": 1.0,
  2164.         "scaleZ": 1.2007668
  2165.       },
  2166.       "Nickname": "",
  2167.       "Description": "",
  2168.       "GMNotes": "",
  2169.       "AltLookAngle": {
  2170.         "x": 0.0,
  2171.         "y": 0.0,
  2172.         "z": 0.0
  2173.       },
  2174.       "ColorDiffuse": {
  2175.         "r": 0.713235259,
  2176.         "g": 0.713235259,
  2177.         "b": 0.713235259
  2178.       },
  2179.       "LayoutGroupSortIndex": 0,
  2180.       "Value": 0,
  2181.       "Locked": false,
  2182.       "Grid": true,
  2183.       "Snap": true,
  2184.       "IgnoreFoW": false,
  2185.       "MeasureMovement": false,
  2186.       "DragSelectable": true,
  2187.       "Autoraise": true,
  2188.       "Sticky": true,
  2189.       "Tooltip": true,
  2190.       "GridProjection": false,
  2191.       "HideWhenFaceDown": true,
  2192.       "Hands": false,
  2193.       "SidewaysCard": false,
  2194.       "DeckIDs": [
  2195.         311,
  2196.         314,
  2197.         307,
  2198.         309,
  2199.         306,
  2200.         308,
  2201.         315,
  2202.         311,
  2203.         309,
  2204.         320,
  2205.         311,
  2206.         307,
  2207.         319,
  2208.         310,
  2209.         306,
  2210.         310,
  2211.         302,
  2212.         303,
  2213.         313,
  2214.         308,
  2215.         307,
  2216.         300,
  2217.         321,
  2218.         309,
  2219.         307,
  2220.         311,
  2221.         303,
  2222.         320,
  2223.         319,
  2224.         309,
  2225.         307,
  2226.         302,
  2227.         306,
  2228.         306,
  2229.         320,
  2230.         305,
  2231.         305,
  2232.         308,
  2233.         311,
  2234.         310,
  2235.         310,
  2236.         311,
  2237.         321,
  2238.         304,
  2239.         307,
  2240.         306,
  2241.         310,
  2242.         310,
  2243.         304,
  2244.         308,
  2245.         321,
  2246.         318,
  2247.         309,
  2248.         309,
  2249.         304,
  2250.         310,
  2251.         307,
  2252.         311,
  2253.         309,
  2254.         316,
  2255.         307,
  2256.         305,
  2257.         305,
  2258.         311,
  2259.         311,
  2260.         301,
  2261.         311,
  2262.         308,
  2263.         309,
  2264.         301,
  2265.         306,
  2266.         310,
  2267.         308,
  2268.         319,
  2269.         317,
  2270.         304,
  2271.         302,
  2272.         310,
  2273.         308,
  2274.         308,
  2275.         309,
  2276.         305,
  2277.         311,
  2278.         306,
  2279.         311,
  2280.         310,
  2281.         308,
  2282.         309,
  2283.         310,
  2284.         305,
  2285.         303,
  2286.         303,
  2287.         304,
  2288.         312
  2289.       ],
  2290.       "CustomDeck": {
  2291.         "3": {
  2292.           "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2293.           "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2294.           "NumWidth": 6,
  2295.           "NumHeight": 4,
  2296.           "BackIsHidden": true,
  2297.           "UniqueBack": false,
  2298.           "Type": 0
  2299.         }
  2300.       },
  2301.       "LuaScript": "",
  2302.       "LuaScriptState": "",
  2303.       "XmlUI": "",
  2304.       "ContainedObjects": [
  2305.         {
  2306.           "GUID": "8fad77",
  2307.           "Name": "Card",
  2308.           "Transform": {
  2309.             "posX": -18.8967037,
  2310.             "posY": 1.51774919,
  2311.             "posZ": -12.5327415,
  2312.             "rotX": 359.9556,
  2313.             "rotY": 224.999969,
  2314.             "rotZ": 0.06735838,
  2315.             "scaleX": 1.2007668,
  2316.             "scaleY": 1.0,
  2317.             "scaleZ": 1.2007668
  2318.           },
  2319.           "Nickname": "",
  2320.           "Description": "12",
  2321.           "GMNotes": "",
  2322.           "AltLookAngle": {
  2323.             "x": 0.0,
  2324.             "y": 0.0,
  2325.             "z": 0.0
  2326.           },
  2327.           "ColorDiffuse": {
  2328.             "r": 0.713235259,
  2329.             "g": 0.713235259,
  2330.             "b": 0.713235259
  2331.           },
  2332.           "LayoutGroupSortIndex": 0,
  2333.           "Value": 0,
  2334.           "Locked": false,
  2335.           "Grid": true,
  2336.           "Snap": true,
  2337.           "IgnoreFoW": false,
  2338.           "MeasureMovement": false,
  2339.           "DragSelectable": true,
  2340.           "Autoraise": true,
  2341.           "Sticky": true,
  2342.           "Tooltip": true,
  2343.           "GridProjection": false,
  2344.           "HideWhenFaceDown": true,
  2345.           "Hands": true,
  2346.           "CardID": 311,
  2347.           "SidewaysCard": false,
  2348.           "CustomDeck": {
  2349.             "3": {
  2350.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2351.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2352.               "NumWidth": 6,
  2353.               "NumHeight": 4,
  2354.               "BackIsHidden": true,
  2355.               "UniqueBack": false,
  2356.               "Type": 0
  2357.             }
  2358.           },
  2359.           "LuaScript": "",
  2360.           "LuaScriptState": "",
  2361.           "XmlUI": ""
  2362.         },
  2363.         {
  2364.           "GUID": "1f603b",
  2365.           "Name": "Card",
  2366.           "Transform": {
  2367.             "posX": -1.60016119,
  2368.             "posY": 2.432621,
  2369.             "posZ": 1.13145959,
  2370.             "rotX": 0.0101249292,
  2371.             "rotY": 180.000229,
  2372.             "rotZ": 180.165588,
  2373.             "scaleX": 1.2007668,
  2374.             "scaleY": 1.0,
  2375.             "scaleZ": 1.2007668
  2376.           },
  2377.           "Nickname": "",
  2378.           "Description": "2",
  2379.           "GMNotes": "",
  2380.           "AltLookAngle": {
  2381.             "x": 0.0,
  2382.             "y": 0.0,
  2383.             "z": 0.0
  2384.           },
  2385.           "ColorDiffuse": {
  2386.             "r": 0.713235259,
  2387.             "g": 0.713235259,
  2388.             "b": 0.713235259
  2389.           },
  2390.           "Tags": [
  2391.             "special"
  2392.           ],
  2393.           "LayoutGroupSortIndex": 0,
  2394.           "Value": 0,
  2395.           "Locked": false,
  2396.           "Grid": true,
  2397.           "Snap": true,
  2398.           "IgnoreFoW": false,
  2399.           "MeasureMovement": false,
  2400.           "DragSelectable": true,
  2401.           "Autoraise": true,
  2402.           "Sticky": true,
  2403.           "Tooltip": true,
  2404.           "GridProjection": false,
  2405.           "HideWhenFaceDown": true,
  2406.           "Hands": true,
  2407.           "CardID": 314,
  2408.           "SidewaysCard": false,
  2409.           "CustomDeck": {
  2410.             "3": {
  2411.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2412.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2413.               "NumWidth": 6,
  2414.               "NumHeight": 4,
  2415.               "BackIsHidden": true,
  2416.               "UniqueBack": false,
  2417.               "Type": 0
  2418.             }
  2419.           },
  2420.           "LuaScript": "",
  2421.           "LuaScriptState": "",
  2422.           "XmlUI": ""
  2423.         },
  2424.         {
  2425.           "GUID": "9ce94d",
  2426.           "Name": "Card",
  2427.           "Transform": {
  2428.             "posX": 18.8967,
  2429.             "posY": 1.50932586,
  2430.             "posZ": -12.5327387,
  2431.             "rotX": 0.0547294,
  2432.             "rotY": 135.0,
  2433.             "rotZ": 0.035640575,
  2434.             "scaleX": 1.2007668,
  2435.             "scaleY": 1.0,
  2436.             "scaleZ": 1.2007668
  2437.           },
  2438.           "Nickname": "",
  2439.           "Description": "8",
  2440.           "GMNotes": "",
  2441.           "AltLookAngle": {
  2442.             "x": 0.0,
  2443.             "y": 0.0,
  2444.             "z": 0.0
  2445.           },
  2446.           "ColorDiffuse": {
  2447.             "r": 0.713235259,
  2448.             "g": 0.713235259,
  2449.             "b": 0.713235259
  2450.           },
  2451.           "LayoutGroupSortIndex": 0,
  2452.           "Value": 0,
  2453.           "Locked": false,
  2454.           "Grid": true,
  2455.           "Snap": true,
  2456.           "IgnoreFoW": false,
  2457.           "MeasureMovement": false,
  2458.           "DragSelectable": true,
  2459.           "Autoraise": true,
  2460.           "Sticky": true,
  2461.           "Tooltip": true,
  2462.           "GridProjection": false,
  2463.           "HideWhenFaceDown": true,
  2464.           "Hands": true,
  2465.           "CardID": 307,
  2466.           "SidewaysCard": false,
  2467.           "CustomDeck": {
  2468.             "3": {
  2469.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2470.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2471.               "NumWidth": 6,
  2472.               "NumHeight": 4,
  2473.               "BackIsHidden": true,
  2474.               "UniqueBack": false,
  2475.               "Type": 0
  2476.             }
  2477.           },
  2478.           "LuaScript": "",
  2479.           "LuaScriptState": "",
  2480.           "XmlUI": ""
  2481.         },
  2482.         {
  2483.           "GUID": "a88ffd",
  2484.           "Name": "Card",
  2485.           "Transform": {
  2486.             "posX": -10.7200928,
  2487.             "posY": 3.005011,
  2488.             "posZ": 6.30789948,
  2489.             "rotX": 0.016694054,
  2490.             "rotY": 179.976059,
  2491.             "rotZ": 0.0825016946,
  2492.             "scaleX": 1.2007668,
  2493.             "scaleY": 1.0,
  2494.             "scaleZ": 1.2007668
  2495.           },
  2496.           "Nickname": "",
  2497.           "Description": "10",
  2498.           "GMNotes": "",
  2499.           "AltLookAngle": {
  2500.             "x": 0.0,
  2501.             "y": 0.0,
  2502.             "z": 0.0
  2503.           },
  2504.           "ColorDiffuse": {
  2505.             "r": 0.713235259,
  2506.             "g": 0.713235259,
  2507.             "b": 0.713235259
  2508.           },
  2509.           "LayoutGroupSortIndex": 0,
  2510.           "Value": 0,
  2511.           "Locked": false,
  2512.           "Grid": true,
  2513.           "Snap": true,
  2514.           "IgnoreFoW": false,
  2515.           "MeasureMovement": false,
  2516.           "DragSelectable": true,
  2517.           "Autoraise": true,
  2518.           "Sticky": true,
  2519.           "Tooltip": true,
  2520.           "GridProjection": false,
  2521.           "HideWhenFaceDown": true,
  2522.           "Hands": true,
  2523.           "CardID": 309,
  2524.           "SidewaysCard": false,
  2525.           "CustomDeck": {
  2526.             "3": {
  2527.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2528.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2529.               "NumWidth": 6,
  2530.               "NumHeight": 4,
  2531.               "BackIsHidden": true,
  2532.               "UniqueBack": false,
  2533.               "Type": 0
  2534.             }
  2535.           },
  2536.           "LuaScript": "",
  2537.           "LuaScriptState": "",
  2538.           "XmlUI": ""
  2539.         },
  2540.         {
  2541.           "GUID": "ab011b",
  2542.           "Name": "Card",
  2543.           "Transform": {
  2544.             "posX": 3.000019,
  2545.             "posY": 2.505434,
  2546.             "posZ": -16.3500042,
  2547.             "rotX": 0.0168722011,
  2548.             "rotY": 180.0,
  2549.             "rotZ": 0.0798771456,
  2550.             "scaleX": 1.2007668,
  2551.             "scaleY": 1.0,
  2552.             "scaleZ": 1.2007668
  2553.           },
  2554.           "Nickname": "",
  2555.           "Description": "7",
  2556.           "GMNotes": "",
  2557.           "AltLookAngle": {
  2558.             "x": 0.0,
  2559.             "y": 0.0,
  2560.             "z": 0.0
  2561.           },
  2562.           "ColorDiffuse": {
  2563.             "r": 0.713235259,
  2564.             "g": 0.713235259,
  2565.             "b": 0.713235259
  2566.           },
  2567.           "LayoutGroupSortIndex": 0,
  2568.           "Value": 0,
  2569.           "Locked": false,
  2570.           "Grid": true,
  2571.           "Snap": true,
  2572.           "IgnoreFoW": false,
  2573.           "MeasureMovement": false,
  2574.           "DragSelectable": true,
  2575.           "Autoraise": true,
  2576.           "Sticky": true,
  2577.           "Tooltip": true,
  2578.           "GridProjection": false,
  2579.           "HideWhenFaceDown": true,
  2580.           "Hands": true,
  2581.           "CardID": 306,
  2582.           "SidewaysCard": false,
  2583.           "CustomDeck": {
  2584.             "3": {
  2585.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2586.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2587.               "NumWidth": 6,
  2588.               "NumHeight": 4,
  2589.               "BackIsHidden": true,
  2590.               "UniqueBack": false,
  2591.               "Type": 0
  2592.             }
  2593.           },
  2594.           "LuaScript": "",
  2595.           "LuaScriptState": "",
  2596.           "XmlUI": ""
  2597.         },
  2598.         {
  2599.           "GUID": "8f207a",
  2600.           "Name": "Card",
  2601.           "Transform": {
  2602.             "posX": -10.7205172,
  2603.             "posY": 2.05084872,
  2604.             "posZ": 6.329519,
  2605.             "rotX": 0.01685517,
  2606.             "rotY": 179.966309,
  2607.             "rotZ": 0.08065325,
  2608.             "scaleX": 1.2007668,
  2609.             "scaleY": 1.0,
  2610.             "scaleZ": 1.2007668
  2611.           },
  2612.           "Nickname": "",
  2613.           "Description": "9",
  2614.           "GMNotes": "",
  2615.           "AltLookAngle": {
  2616.             "x": 0.0,
  2617.             "y": 0.0,
  2618.             "z": 0.0
  2619.           },
  2620.           "ColorDiffuse": {
  2621.             "r": 0.713235259,
  2622.             "g": 0.713235259,
  2623.             "b": 0.713235259
  2624.           },
  2625.           "LayoutGroupSortIndex": 0,
  2626.           "Value": 0,
  2627.           "Locked": false,
  2628.           "Grid": true,
  2629.           "Snap": true,
  2630.           "IgnoreFoW": false,
  2631.           "MeasureMovement": false,
  2632.           "DragSelectable": true,
  2633.           "Autoraise": true,
  2634.           "Sticky": true,
  2635.           "Tooltip": true,
  2636.           "GridProjection": false,
  2637.           "HideWhenFaceDown": true,
  2638.           "Hands": true,
  2639.           "CardID": 308,
  2640.           "SidewaysCard": false,
  2641.           "CustomDeck": {
  2642.             "3": {
  2643.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2644.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2645.               "NumWidth": 6,
  2646.               "NumHeight": 4,
  2647.               "BackIsHidden": true,
  2648.               "UniqueBack": false,
  2649.               "Type": 0
  2650.             }
  2651.           },
  2652.           "LuaScript": "",
  2653.           "LuaScriptState": "",
  2654.           "XmlUI": ""
  2655.         },
  2656.         {
  2657.           "GUID": "d9d1e8",
  2658.           "Name": "Card",
  2659.           "Transform": {
  2660.             "posX": -10.7201052,
  2661.             "posY": 3.18100142,
  2662.             "posZ": 6.307909,
  2663.             "rotX": 0.0167042818,
  2664.             "rotY": 179.975891,
  2665.             "rotZ": 0.0825113,
  2666.             "scaleX": 1.2007668,
  2667.             "scaleY": 1.0,
  2668.             "scaleZ": 1.2007668
  2669.           },
  2670.           "Nickname": "",
  2671.           "Description": "4",
  2672.           "GMNotes": "",
  2673.           "AltLookAngle": {
  2674.             "x": 0.0,
  2675.             "y": 0.0,
  2676.             "z": 0.0
  2677.           },
  2678.           "ColorDiffuse": {
  2679.             "r": 0.713235259,
  2680.             "g": 0.713235259,
  2681.             "b": 0.713235259
  2682.           },
  2683.           "Tags": [
  2684.             "special"
  2685.           ],
  2686.           "LayoutGroupSortIndex": 0,
  2687.           "Value": 0,
  2688.           "Locked": false,
  2689.           "Grid": true,
  2690.           "Snap": true,
  2691.           "IgnoreFoW": false,
  2692.           "MeasureMovement": false,
  2693.           "DragSelectable": true,
  2694.           "Autoraise": true,
  2695.           "Sticky": true,
  2696.           "Tooltip": true,
  2697.           "GridProjection": false,
  2698.           "HideWhenFaceDown": true,
  2699.           "Hands": true,
  2700.           "CardID": 315,
  2701.           "SidewaysCard": false,
  2702.           "CustomDeck": {
  2703.             "3": {
  2704.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2705.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2706.               "NumWidth": 6,
  2707.               "NumHeight": 4,
  2708.               "BackIsHidden": true,
  2709.               "UniqueBack": false,
  2710.               "Type": 0
  2711.             }
  2712.           },
  2713.           "LuaScript": "",
  2714.           "LuaScriptState": "",
  2715.           "XmlUI": ""
  2716.         },
  2717.         {
  2718.           "GUID": "8025a5",
  2719.           "Name": "Card",
  2720.           "Transform": {
  2721.             "posX": -1.98134744,
  2722.             "posY": 3.3518343,
  2723.             "posZ": 4.68168068,
  2724.             "rotX": 0.0445508,
  2725.             "rotY": 270.000183,
  2726.             "rotZ": 180.241257,
  2727.             "scaleX": 1.2007668,
  2728.             "scaleY": 1.0,
  2729.             "scaleZ": 1.2007668
  2730.           },
  2731.           "Nickname": "",
  2732.           "Description": "12",
  2733.           "GMNotes": "",
  2734.           "AltLookAngle": {
  2735.             "x": 0.0,
  2736.             "y": 0.0,
  2737.             "z": 0.0
  2738.           },
  2739.           "ColorDiffuse": {
  2740.             "r": 0.713235259,
  2741.             "g": 0.713235259,
  2742.             "b": 0.713235259
  2743.           },
  2744.           "LayoutGroupSortIndex": 0,
  2745.           "Value": 0,
  2746.           "Locked": false,
  2747.           "Grid": true,
  2748.           "Snap": true,
  2749.           "IgnoreFoW": false,
  2750.           "MeasureMovement": false,
  2751.           "DragSelectable": true,
  2752.           "Autoraise": true,
  2753.           "Sticky": true,
  2754.           "Tooltip": true,
  2755.           "GridProjection": false,
  2756.           "HideWhenFaceDown": true,
  2757.           "Hands": true,
  2758.           "CardID": 311,
  2759.           "SidewaysCard": false,
  2760.           "CustomDeck": {
  2761.             "3": {
  2762.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2763.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2764.               "NumWidth": 6,
  2765.               "NumHeight": 4,
  2766.               "BackIsHidden": true,
  2767.               "UniqueBack": false,
  2768.               "Type": 0
  2769.             }
  2770.           },
  2771.           "LuaScript": "",
  2772.           "LuaScriptState": "",
  2773.           "XmlUI": ""
  2774.         },
  2775.         {
  2776.           "GUID": "0f14c9",
  2777.           "Name": "Card",
  2778.           "Transform": {
  2779.             "posX": -1.59988642,
  2780.             "posY": 2.42840362,
  2781.             "posZ": 1.13147736,
  2782.             "rotX": -0.000161289165,
  2783.             "rotY": 180.000366,
  2784.             "rotZ": 177.72821,
  2785.             "scaleX": 1.2007668,
  2786.             "scaleY": 1.0,
  2787.             "scaleZ": 1.2007668
  2788.           },
  2789.           "Nickname": "",
  2790.           "Description": "10",
  2791.           "GMNotes": "",
  2792.           "AltLookAngle": {
  2793.             "x": 0.0,
  2794.             "y": 0.0,
  2795.             "z": 0.0
  2796.           },
  2797.           "ColorDiffuse": {
  2798.             "r": 0.713235259,
  2799.             "g": 0.713235259,
  2800.             "b": 0.713235259
  2801.           },
  2802.           "LayoutGroupSortIndex": 0,
  2803.           "Value": 0,
  2804.           "Locked": false,
  2805.           "Grid": true,
  2806.           "Snap": true,
  2807.           "IgnoreFoW": false,
  2808.           "MeasureMovement": false,
  2809.           "DragSelectable": true,
  2810.           "Autoraise": true,
  2811.           "Sticky": true,
  2812.           "Tooltip": true,
  2813.           "GridProjection": false,
  2814.           "HideWhenFaceDown": true,
  2815.           "Hands": true,
  2816.           "CardID": 309,
  2817.           "SidewaysCard": false,
  2818.           "CustomDeck": {
  2819.             "3": {
  2820.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2821.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2822.               "NumWidth": 6,
  2823.               "NumHeight": 4,
  2824.               "BackIsHidden": true,
  2825.               "UniqueBack": false,
  2826.               "Type": 0
  2827.             }
  2828.           },
  2829.           "LuaScript": "",
  2830.           "LuaScriptState": "",
  2831.           "XmlUI": ""
  2832.         },
  2833.         {
  2834.           "GUID": "5b1e8f",
  2835.           "Name": "Card",
  2836.           "Transform": {
  2837.             "posX": -1.59990859,
  2838.             "posY": 2.43901157,
  2839.             "posZ": 1.13148725,
  2840.             "rotX": 0.0168730132,
  2841.             "rotY": 179.999954,
  2842.             "rotZ": 180.0799,
  2843.             "scaleX": 1.2007668,
  2844.             "scaleY": 1.0,
  2845.             "scaleZ": 1.2007668
  2846.           },
  2847.           "Nickname": "Second Chance",
  2848.           "Description": "",
  2849.           "GMNotes": "",
  2850.           "AltLookAngle": {
  2851.             "x": 0.0,
  2852.             "y": 0.0,
  2853.             "z": 0.0
  2854.           },
  2855.           "ColorDiffuse": {
  2856.             "r": 0.713235259,
  2857.             "g": 0.713235259,
  2858.             "b": 0.713235259
  2859.           },
  2860.           "Tags": [
  2861.             "special"
  2862.           ],
  2863.           "LayoutGroupSortIndex": 0,
  2864.           "Value": 0,
  2865.           "Locked": false,
  2866.           "Grid": true,
  2867.           "Snap": true,
  2868.           "IgnoreFoW": false,
  2869.           "MeasureMovement": false,
  2870.           "DragSelectable": true,
  2871.           "Autoraise": true,
  2872.           "Sticky": true,
  2873.           "Tooltip": true,
  2874.           "GridProjection": false,
  2875.           "HideWhenFaceDown": true,
  2876.           "Hands": true,
  2877.           "CardID": 320,
  2878.           "SidewaysCard": false,
  2879.           "CustomDeck": {
  2880.             "3": {
  2881.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2882.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2883.               "NumWidth": 6,
  2884.               "NumHeight": 4,
  2885.               "BackIsHidden": true,
  2886.               "UniqueBack": false,
  2887.               "Type": 0
  2888.             }
  2889.           },
  2890.           "LuaScript": "",
  2891.           "LuaScriptState": "",
  2892.           "XmlUI": ""
  2893.         },
  2894.         {
  2895.           "GUID": "e072d2",
  2896.           "Name": "Card",
  2897.           "Transform": {
  2898.             "posX": -10.7201538,
  2899.             "posY": 2.870458,
  2900.             "posZ": 6.30790758,
  2901.             "rotX": 0.0166980717,
  2902.             "rotY": 179.9762,
  2903.             "rotZ": 0.08250205,
  2904.             "scaleX": 1.2007668,
  2905.             "scaleY": 1.0,
  2906.             "scaleZ": 1.2007668
  2907.           },
  2908.           "Nickname": "",
  2909.           "Description": "12",
  2910.           "GMNotes": "",
  2911.           "AltLookAngle": {
  2912.             "x": 0.0,
  2913.             "y": 0.0,
  2914.             "z": 0.0
  2915.           },
  2916.           "ColorDiffuse": {
  2917.             "r": 0.713235259,
  2918.             "g": 0.713235259,
  2919.             "b": 0.713235259
  2920.           },
  2921.           "LayoutGroupSortIndex": 0,
  2922.           "Value": 0,
  2923.           "Locked": false,
  2924.           "Grid": true,
  2925.           "Snap": true,
  2926.           "IgnoreFoW": false,
  2927.           "MeasureMovement": false,
  2928.           "DragSelectable": true,
  2929.           "Autoraise": true,
  2930.           "Sticky": true,
  2931.           "Tooltip": true,
  2932.           "GridProjection": false,
  2933.           "HideWhenFaceDown": true,
  2934.           "Hands": true,
  2935.           "CardID": 311,
  2936.           "SidewaysCard": false,
  2937.           "CustomDeck": {
  2938.             "3": {
  2939.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2940.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2941.               "NumWidth": 6,
  2942.               "NumHeight": 4,
  2943.               "BackIsHidden": true,
  2944.               "UniqueBack": false,
  2945.               "Type": 0
  2946.             }
  2947.           },
  2948.           "LuaScript": "",
  2949.           "LuaScriptState": "",
  2950.           "XmlUI": ""
  2951.         },
  2952.         {
  2953.           "GUID": "c4a1b3",
  2954.           "Name": "Card",
  2955.           "Transform": {
  2956.             "posX": -10.7200994,
  2957.             "posY": 2.90335417,
  2958.             "posZ": 6.30790138,
  2959.             "rotX": 0.0166919343,
  2960.             "rotY": 179.976135,
  2961.             "rotZ": 0.08249552,
  2962.             "scaleX": 1.2007668,
  2963.             "scaleY": 1.0,
  2964.             "scaleZ": 1.2007668
  2965.           },
  2966.           "Nickname": "",
  2967.           "Description": "8",
  2968.           "GMNotes": "",
  2969.           "AltLookAngle": {
  2970.             "x": 0.0,
  2971.             "y": 0.0,
  2972.             "z": 0.0
  2973.           },
  2974.           "ColorDiffuse": {
  2975.             "r": 0.713235259,
  2976.             "g": 0.713235259,
  2977.             "b": 0.713235259
  2978.           },
  2979.           "LayoutGroupSortIndex": 0,
  2980.           "Value": 0,
  2981.           "Locked": false,
  2982.           "Grid": true,
  2983.           "Snap": true,
  2984.           "IgnoreFoW": false,
  2985.           "MeasureMovement": false,
  2986.           "DragSelectable": true,
  2987.           "Autoraise": true,
  2988.           "Sticky": true,
  2989.           "Tooltip": true,
  2990.           "GridProjection": false,
  2991.           "HideWhenFaceDown": true,
  2992.           "Hands": true,
  2993.           "CardID": 307,
  2994.           "SidewaysCard": false,
  2995.           "CustomDeck": {
  2996.             "3": {
  2997.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  2998.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  2999.               "NumWidth": 6,
  3000.               "NumHeight": 4,
  3001.               "BackIsHidden": true,
  3002.               "UniqueBack": false,
  3003.               "Type": 0
  3004.             }
  3005.           },
  3006.           "LuaScript": "",
  3007.           "LuaScriptState": "",
  3008.           "XmlUI": ""
  3009.         },
  3010.         {
  3011.           "GUID": "4363a6",
  3012.           "Name": "Card",
  3013.           "Transform": {
  3014.             "posX": -10.7201309,
  3015.             "posY": 2.959968,
  3016.             "posZ": 6.307906,
  3017.             "rotX": 0.0167024173,
  3018.             "rotY": 179.97612,
  3019.             "rotZ": 0.08250531,
  3020.             "scaleX": 1.2007668,
  3021.             "scaleY": 1.0,
  3022.             "scaleZ": 1.2007668
  3023.           },
  3024.           "Nickname": "Freeze",
  3025.           "Description": "",
  3026.           "GMNotes": "",
  3027.           "AltLookAngle": {
  3028.             "x": 0.0,
  3029.             "y": 0.0,
  3030.             "z": 0.0
  3031.           },
  3032.           "ColorDiffuse": {
  3033.             "r": 0.713235259,
  3034.             "g": 0.713235259,
  3035.             "b": 0.713235259
  3036.           },
  3037.           "Tags": [
  3038.             "special"
  3039.           ],
  3040.           "LayoutGroupSortIndex": 0,
  3041.           "Value": 0,
  3042.           "Locked": false,
  3043.           "Grid": true,
  3044.           "Snap": true,
  3045.           "IgnoreFoW": false,
  3046.           "MeasureMovement": false,
  3047.           "DragSelectable": true,
  3048.           "Autoraise": true,
  3049.           "Sticky": true,
  3050.           "Tooltip": true,
  3051.           "GridProjection": false,
  3052.           "HideWhenFaceDown": true,
  3053.           "Hands": true,
  3054.           "CardID": 319,
  3055.           "SidewaysCard": false,
  3056.           "CustomDeck": {
  3057.             "3": {
  3058.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3059.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3060.               "NumWidth": 6,
  3061.               "NumHeight": 4,
  3062.               "BackIsHidden": true,
  3063.               "UniqueBack": false,
  3064.               "Type": 0
  3065.             }
  3066.           },
  3067.           "LuaScript": "",
  3068.           "LuaScriptState": "",
  3069.           "XmlUI": ""
  3070.         },
  3071.         {
  3072.           "GUID": "2eef80",
  3073.           "Name": "Card",
  3074.           "Transform": {
  3075.             "posX": -24.553339,
  3076.             "posY": 1.63255692,
  3077.             "posZ": 6.86511,
  3078.             "rotX": 0.0168821421,
  3079.             "rotY": 179.993149,
  3080.             "rotZ": 0.07987535,
  3081.             "scaleX": 1.2007668,
  3082.             "scaleY": 1.0,
  3083.             "scaleZ": 1.2007668
  3084.           },
  3085.           "Nickname": "",
  3086.           "Description": "11",
  3087.           "GMNotes": "",
  3088.           "AltLookAngle": {
  3089.             "x": 0.0,
  3090.             "y": 0.0,
  3091.             "z": 0.0
  3092.           },
  3093.           "ColorDiffuse": {
  3094.             "r": 0.713235259,
  3095.             "g": 0.713235259,
  3096.             "b": 0.713235259
  3097.           },
  3098.           "LayoutGroupSortIndex": 0,
  3099.           "Value": 0,
  3100.           "Locked": false,
  3101.           "Grid": true,
  3102.           "Snap": true,
  3103.           "IgnoreFoW": false,
  3104.           "MeasureMovement": false,
  3105.           "DragSelectable": true,
  3106.           "Autoraise": true,
  3107.           "Sticky": true,
  3108.           "Tooltip": true,
  3109.           "GridProjection": false,
  3110.           "HideWhenFaceDown": true,
  3111.           "Hands": true,
  3112.           "CardID": 310,
  3113.           "SidewaysCard": false,
  3114.           "CustomDeck": {
  3115.             "3": {
  3116.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3117.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3118.               "NumWidth": 6,
  3119.               "NumHeight": 4,
  3120.               "BackIsHidden": true,
  3121.               "UniqueBack": false,
  3122.               "Type": 0
  3123.             }
  3124.           },
  3125.           "LuaScript": "",
  3126.           "LuaScriptState": "",
  3127.           "XmlUI": ""
  3128.         },
  3129.         {
  3130.           "GUID": "826e2b",
  3131.           "Name": "Card",
  3132.           "Transform": {
  3133.             "posX": -10.7196112,
  3134.             "posY": 2.59792542,
  3135.             "posZ": 6.32963037,
  3136.             "rotX": 0.0166904517,
  3137.             "rotY": 179.97644,
  3138.             "rotZ": 0.08250435,
  3139.             "scaleX": 1.2007668,
  3140.             "scaleY": 1.0,
  3141.             "scaleZ": 1.2007668
  3142.           },
  3143.           "Nickname": "",
  3144.           "Description": "7",
  3145.           "GMNotes": "",
  3146.           "AltLookAngle": {
  3147.             "x": 0.0,
  3148.             "y": 0.0,
  3149.             "z": 0.0
  3150.           },
  3151.           "ColorDiffuse": {
  3152.             "r": 0.713235259,
  3153.             "g": 0.713235259,
  3154.             "b": 0.713235259
  3155.           },
  3156.           "LayoutGroupSortIndex": 0,
  3157.           "Value": 0,
  3158.           "Locked": false,
  3159.           "Grid": true,
  3160.           "Snap": true,
  3161.           "IgnoreFoW": false,
  3162.           "MeasureMovement": false,
  3163.           "DragSelectable": true,
  3164.           "Autoraise": true,
  3165.           "Sticky": true,
  3166.           "Tooltip": true,
  3167.           "GridProjection": false,
  3168.           "HideWhenFaceDown": true,
  3169.           "Hands": true,
  3170.           "CardID": 306,
  3171.           "SidewaysCard": false,
  3172.           "CustomDeck": {
  3173.             "3": {
  3174.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3175.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3176.               "NumWidth": 6,
  3177.               "NumHeight": 4,
  3178.               "BackIsHidden": true,
  3179.               "UniqueBack": false,
  3180.               "Type": 0
  3181.             }
  3182.           },
  3183.           "LuaScript": "",
  3184.           "LuaScriptState": "",
  3185.           "XmlUI": ""
  3186.         },
  3187.         {
  3188.           "GUID": "4cb336",
  3189.           "Name": "Card",
  3190.           "Transform": {
  3191.             "posX": -10.7200718,
  3192.             "posY": 3.12620521,
  3193.             "posZ": 6.307904,
  3194.             "rotX": 0.016692007,
  3195.             "rotY": 179.975922,
  3196.             "rotZ": 0.0824994743,
  3197.             "scaleX": 1.2007668,
  3198.             "scaleY": 1.0,
  3199.             "scaleZ": 1.2007668
  3200.           },
  3201.           "Nickname": "",
  3202.           "Description": "11",
  3203.           "GMNotes": "",
  3204.           "AltLookAngle": {
  3205.             "x": 0.0,
  3206.             "y": 0.0,
  3207.             "z": 0.0
  3208.           },
  3209.           "ColorDiffuse": {
  3210.             "r": 0.713235259,
  3211.             "g": 0.713235259,
  3212.             "b": 0.713235259
  3213.           },
  3214.           "LayoutGroupSortIndex": 0,
  3215.           "Value": 0,
  3216.           "Locked": false,
  3217.           "Grid": true,
  3218.           "Snap": true,
  3219.           "IgnoreFoW": false,
  3220.           "MeasureMovement": false,
  3221.           "DragSelectable": true,
  3222.           "Autoraise": true,
  3223.           "Sticky": true,
  3224.           "Tooltip": true,
  3225.           "GridProjection": false,
  3226.           "HideWhenFaceDown": true,
  3227.           "Hands": true,
  3228.           "CardID": 310,
  3229.           "SidewaysCard": false,
  3230.           "CustomDeck": {
  3231.             "3": {
  3232.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3233.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3234.               "NumWidth": 6,
  3235.               "NumHeight": 4,
  3236.               "BackIsHidden": true,
  3237.               "UniqueBack": false,
  3238.               "Type": 0
  3239.             }
  3240.           },
  3241.           "LuaScript": "",
  3242.           "LuaScriptState": "",
  3243.           "XmlUI": ""
  3244.         },
  3245.         {
  3246.           "GUID": "848687",
  3247.           "Name": "Card",
  3248.           "Transform": {
  3249.             "posX": -1.59989047,
  3250.             "posY": 2.40982985,
  3251.             "posZ": 1.13147438,
  3252.             "rotX": 0.0171483643,
  3253.             "rotY": 179.999832,
  3254.             "rotZ": 180.0706,
  3255.             "scaleX": 1.2007668,
  3256.             "scaleY": 1.0,
  3257.             "scaleZ": 1.2007668
  3258.           },
  3259.           "Nickname": "",
  3260.           "Description": "3",
  3261.           "GMNotes": "",
  3262.           "AltLookAngle": {
  3263.             "x": 0.0,
  3264.             "y": 0.0,
  3265.             "z": 0.0
  3266.           },
  3267.           "ColorDiffuse": {
  3268.             "r": 0.713235259,
  3269.             "g": 0.713235259,
  3270.             "b": 0.713235259
  3271.           },
  3272.           "LayoutGroupSortIndex": 0,
  3273.           "Value": 0,
  3274.           "Locked": false,
  3275.           "Grid": true,
  3276.           "Snap": true,
  3277.           "IgnoreFoW": false,
  3278.           "MeasureMovement": false,
  3279.           "DragSelectable": true,
  3280.           "Autoraise": true,
  3281.           "Sticky": true,
  3282.           "Tooltip": true,
  3283.           "GridProjection": false,
  3284.           "HideWhenFaceDown": true,
  3285.           "Hands": true,
  3286.           "CardID": 302,
  3287.           "SidewaysCard": false,
  3288.           "CustomDeck": {
  3289.             "3": {
  3290.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3291.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3292.               "NumWidth": 6,
  3293.               "NumHeight": 4,
  3294.               "BackIsHidden": true,
  3295.               "UniqueBack": false,
  3296.               "Type": 0
  3297.             }
  3298.           },
  3299.           "LuaScript": "",
  3300.           "LuaScriptState": "",
  3301.           "XmlUI": ""
  3302.         },
  3303.         {
  3304.           "GUID": "c5b4be",
  3305.           "Name": "Card",
  3306.           "Transform": {
  3307.             "posX": -10.7195692,
  3308.             "posY": 2.69666481,
  3309.             "posZ": 6.329625,
  3310.             "rotX": 0.0166909341,
  3311.             "rotY": 179.976349,
  3312.             "rotZ": 0.08250208,
  3313.             "scaleX": 1.2007668,
  3314.             "scaleY": 1.0,
  3315.             "scaleZ": 1.2007668
  3316.           },
  3317.           "Nickname": "",
  3318.           "Description": "4",
  3319.           "GMNotes": "",
  3320.           "AltLookAngle": {
  3321.             "x": 0.0,
  3322.             "y": 0.0,
  3323.             "z": 0.0
  3324.           },
  3325.           "ColorDiffuse": {
  3326.             "r": 0.713235259,
  3327.             "g": 0.713235259,
  3328.             "b": 0.713235259
  3329.           },
  3330.           "LayoutGroupSortIndex": 0,
  3331.           "Value": 0,
  3332.           "Locked": false,
  3333.           "Grid": true,
  3334.           "Snap": true,
  3335.           "IgnoreFoW": false,
  3336.           "MeasureMovement": false,
  3337.           "DragSelectable": true,
  3338.           "Autoraise": true,
  3339.           "Sticky": true,
  3340.           "Tooltip": true,
  3341.           "GridProjection": false,
  3342.           "HideWhenFaceDown": true,
  3343.           "Hands": true,
  3344.           "CardID": 303,
  3345.           "SidewaysCard": false,
  3346.           "CustomDeck": {
  3347.             "3": {
  3348.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3349.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3350.               "NumWidth": 6,
  3351.               "NumHeight": 4,
  3352.               "BackIsHidden": true,
  3353.               "UniqueBack": false,
  3354.               "Type": 0
  3355.             }
  3356.           },
  3357.           "LuaScript": "",
  3358.           "LuaScriptState": "",
  3359.           "XmlUI": ""
  3360.         },
  3361.         {
  3362.           "GUID": "48a7f7",
  3363.           "Name": "Card",
  3364.           "Transform": {
  3365.             "posX": 15.007638,
  3366.             "posY": 1.46727407,
  3367.             "posZ": -23.4929,
  3368.             "rotX": 0.06841156,
  3369.             "rotY": 134.999832,
  3370.             "rotZ": 0.044550322,
  3371.             "scaleX": 1.2007668,
  3372.             "scaleY": 1.0,
  3373.             "scaleZ": 1.2007668
  3374.           },
  3375.           "Nickname": "x2 Multiplier",
  3376.           "Description": "",
  3377.           "GMNotes": "",
  3378.           "AltLookAngle": {
  3379.             "x": 0.0,
  3380.             "y": 0.0,
  3381.             "z": 0.0
  3382.           },
  3383.           "ColorDiffuse": {
  3384.             "r": 0.713235259,
  3385.             "g": 0.713235259,
  3386.             "b": 0.713235259
  3387.           },
  3388.           "Tags": [
  3389.             "special"
  3390.           ],
  3391.           "LayoutGroupSortIndex": 0,
  3392.           "Value": 0,
  3393.           "Locked": false,
  3394.           "Grid": true,
  3395.           "Snap": true,
  3396.           "IgnoreFoW": false,
  3397.           "MeasureMovement": false,
  3398.           "DragSelectable": true,
  3399.           "Autoraise": true,
  3400.           "Sticky": true,
  3401.           "Tooltip": true,
  3402.           "GridProjection": false,
  3403.           "HideWhenFaceDown": true,
  3404.           "Hands": true,
  3405.           "CardID": 313,
  3406.           "SidewaysCard": false,
  3407.           "CustomDeck": {
  3408.             "3": {
  3409.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3410.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3411.               "NumWidth": 6,
  3412.               "NumHeight": 4,
  3413.               "BackIsHidden": true,
  3414.               "UniqueBack": false,
  3415.               "Type": 0
  3416.             }
  3417.           },
  3418.           "LuaScript": "",
  3419.           "LuaScriptState": "",
  3420.           "XmlUI": ""
  3421.         },
  3422.         {
  3423.           "GUID": "ae3973",
  3424.           "Name": "Card",
  3425.           "Transform": {
  3426.             "posX": -10.7201605,
  3427.             "posY": 2.892389,
  3428.             "posZ": 6.30790949,
  3429.             "rotX": 0.0166940615,
  3430.             "rotY": 179.976166,
  3431.             "rotZ": 0.08249786,
  3432.             "scaleX": 1.2007668,
  3433.             "scaleY": 1.0,
  3434.             "scaleZ": 1.2007668
  3435.           },
  3436.           "Nickname": "",
  3437.           "Description": "9",
  3438.           "GMNotes": "",
  3439.           "AltLookAngle": {
  3440.             "x": 0.0,
  3441.             "y": 0.0,
  3442.             "z": 0.0
  3443.           },
  3444.           "ColorDiffuse": {
  3445.             "r": 0.713235259,
  3446.             "g": 0.713235259,
  3447.             "b": 0.713235259
  3448.           },
  3449.           "LayoutGroupSortIndex": 0,
  3450.           "Value": 0,
  3451.           "Locked": false,
  3452.           "Grid": true,
  3453.           "Snap": true,
  3454.           "IgnoreFoW": false,
  3455.           "MeasureMovement": false,
  3456.           "DragSelectable": true,
  3457.           "Autoraise": true,
  3458.           "Sticky": true,
  3459.           "Tooltip": true,
  3460.           "GridProjection": false,
  3461.           "HideWhenFaceDown": true,
  3462.           "Hands": true,
  3463.           "CardID": 308,
  3464.           "SidewaysCard": false,
  3465.           "CustomDeck": {
  3466.             "3": {
  3467.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3468.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3469.               "NumWidth": 6,
  3470.               "NumHeight": 4,
  3471.               "BackIsHidden": true,
  3472.               "UniqueBack": false,
  3473.               "Type": 0
  3474.             }
  3475.           },
  3476.           "LuaScript": "",
  3477.           "LuaScriptState": "",
  3478.           "XmlUI": ""
  3479.         },
  3480.         {
  3481.           "GUID": "4e40e5",
  3482.           "Name": "Card",
  3483.           "Transform": {
  3484.             "posX": -10.7201777,
  3485.             "posY": 2.8022716,
  3486.             "posZ": 6.30791855,
  3487.             "rotX": 0.0166876689,
  3488.             "rotY": 179.976273,
  3489.             "rotZ": 0.08250379,
  3490.             "scaleX": 1.2007668,
  3491.             "scaleY": 1.0,
  3492.             "scaleZ": 1.2007668
  3493.           },
  3494.           "Nickname": "",
  3495.           "Description": "8",
  3496.           "GMNotes": "",
  3497.           "AltLookAngle": {
  3498.             "x": 0.0,
  3499.             "y": 0.0,
  3500.             "z": 0.0
  3501.           },
  3502.           "ColorDiffuse": {
  3503.             "r": 0.713235259,
  3504.             "g": 0.713235259,
  3505.             "b": 0.713235259
  3506.           },
  3507.           "LayoutGroupSortIndex": 0,
  3508.           "Value": 0,
  3509.           "Locked": false,
  3510.           "Grid": true,
  3511.           "Snap": true,
  3512.           "IgnoreFoW": false,
  3513.           "MeasureMovement": false,
  3514.           "DragSelectable": true,
  3515.           "Autoraise": true,
  3516.           "Sticky": true,
  3517.           "Tooltip": true,
  3518.           "GridProjection": false,
  3519.           "HideWhenFaceDown": true,
  3520.           "Hands": true,
  3521.           "CardID": 307,
  3522.           "SidewaysCard": false,
  3523.           "CustomDeck": {
  3524.             "3": {
  3525.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3526.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3527.               "NumWidth": 6,
  3528.               "NumHeight": 4,
  3529.               "BackIsHidden": true,
  3530.               "UniqueBack": false,
  3531.               "Type": 0
  3532.             }
  3533.           },
  3534.           "LuaScript": "",
  3535.           "LuaScriptState": "",
  3536.           "XmlUI": ""
  3537.         },
  3538.         {
  3539.           "GUID": "6c7484",
  3540.           "Name": "Card",
  3541.           "Transform": {
  3542.             "posX": -10.7200413,
  3543.             "posY": 3.07080269,
  3544.             "posZ": 6.30789566,
  3545.             "rotX": 0.0166915338,
  3546.             "rotY": 179.976,
  3547.             "rotZ": 0.0824997053,
  3548.             "scaleX": 1.2007668,
  3549.             "scaleY": 1.0,
  3550.             "scaleZ": 1.2007668
  3551.           },
  3552.           "Nickname": "",
  3553.           "Description": "1",
  3554.           "GMNotes": "",
  3555.           "AltLookAngle": {
  3556.             "x": 0.0,
  3557.             "y": 0.0,
  3558.             "z": 0.0
  3559.           },
  3560.           "ColorDiffuse": {
  3561.             "r": 0.713235259,
  3562.             "g": 0.713235259,
  3563.             "b": 0.713235259
  3564.           },
  3565.           "LayoutGroupSortIndex": 0,
  3566.           "Value": 0,
  3567.           "Locked": false,
  3568.           "Grid": true,
  3569.           "Snap": true,
  3570.           "IgnoreFoW": false,
  3571.           "MeasureMovement": false,
  3572.           "DragSelectable": true,
  3573.           "Autoraise": true,
  3574.           "Sticky": true,
  3575.           "Tooltip": true,
  3576.           "GridProjection": false,
  3577.           "HideWhenFaceDown": true,
  3578.           "Hands": true,
  3579.           "CardID": 300,
  3580.           "SidewaysCard": false,
  3581.           "CustomDeck": {
  3582.             "3": {
  3583.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3584.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3585.               "NumWidth": 6,
  3586.               "NumHeight": 4,
  3587.               "BackIsHidden": true,
  3588.               "UniqueBack": false,
  3589.               "Type": 0
  3590.             }
  3591.           },
  3592.           "LuaScript": "",
  3593.           "LuaScriptState": "",
  3594.           "XmlUI": ""
  3595.         },
  3596.         {
  3597.           "GUID": "f6dfbe",
  3598.           "Name": "Card",
  3599.           "Transform": {
  3600.             "posX": -21.3715382,
  3601.             "posY": 1.51986444,
  3602.             "posZ": -17.1289444,
  3603.             "rotX": 359.955444,
  3604.             "rotY": 225.0,
  3605.             "rotZ": 0.0684106648,
  3606.             "scaleX": 1.2007668,
  3607.             "scaleY": 1.0,
  3608.             "scaleZ": 1.2007668
  3609.           },
  3610.           "Nickname": "Flip Three",
  3611.           "Description": "",
  3612.           "GMNotes": "",
  3613.           "AltLookAngle": {
  3614.             "x": 0.0,
  3615.             "y": 0.0,
  3616.             "z": 0.0
  3617.           },
  3618.           "ColorDiffuse": {
  3619.             "r": 0.713235259,
  3620.             "g": 0.713235259,
  3621.             "b": 0.713235259
  3622.           },
  3623.           "Tags": [
  3624.             "special"
  3625.           ],
  3626.           "LayoutGroupSortIndex": 0,
  3627.           "Value": 0,
  3628.           "Locked": false,
  3629.           "Grid": true,
  3630.           "Snap": true,
  3631.           "IgnoreFoW": false,
  3632.           "MeasureMovement": false,
  3633.           "DragSelectable": true,
  3634.           "Autoraise": true,
  3635.           "Sticky": true,
  3636.           "Tooltip": true,
  3637.           "GridProjection": false,
  3638.           "HideWhenFaceDown": true,
  3639.           "Hands": true,
  3640.           "CardID": 321,
  3641.           "SidewaysCard": false,
  3642.           "CustomDeck": {
  3643.             "3": {
  3644.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3645.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3646.               "NumWidth": 6,
  3647.               "NumHeight": 4,
  3648.               "BackIsHidden": true,
  3649.               "UniqueBack": false,
  3650.               "Type": 0
  3651.             }
  3652.           },
  3653.           "LuaScript": "",
  3654.           "LuaScriptState": "",
  3655.           "XmlUI": ""
  3656.         },
  3657.         {
  3658.           "GUID": "8c46d7",
  3659.           "Name": "Card",
  3660.           "Transform": {
  3661.             "posX": -4.49999,
  3662.             "posY": 2.514712,
  3663.             "posZ": -20.3500137,
  3664.             "rotX": 0.0168713611,
  3665.             "rotY": 180.000031,
  3666.             "rotZ": 0.07987714,
  3667.             "scaleX": 1.2007668,
  3668.             "scaleY": 1.0,
  3669.             "scaleZ": 1.2007668
  3670.           },
  3671.           "Nickname": "",
  3672.           "Description": "10",
  3673.           "GMNotes": "",
  3674.           "AltLookAngle": {
  3675.             "x": 0.0,
  3676.             "y": 0.0,
  3677.             "z": 0.0
  3678.           },
  3679.           "ColorDiffuse": {
  3680.             "r": 0.713235259,
  3681.             "g": 0.713235259,
  3682.             "b": 0.713235259
  3683.           },
  3684.           "LayoutGroupSortIndex": 0,
  3685.           "Value": 0,
  3686.           "Locked": false,
  3687.           "Grid": true,
  3688.           "Snap": true,
  3689.           "IgnoreFoW": false,
  3690.           "MeasureMovement": false,
  3691.           "DragSelectable": true,
  3692.           "Autoraise": true,
  3693.           "Sticky": true,
  3694.           "Tooltip": true,
  3695.           "GridProjection": false,
  3696.           "HideWhenFaceDown": true,
  3697.           "Hands": true,
  3698.           "CardID": 309,
  3699.           "SidewaysCard": false,
  3700.           "CustomDeck": {
  3701.             "3": {
  3702.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3703.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3704.               "NumWidth": 6,
  3705.               "NumHeight": 4,
  3706.               "BackIsHidden": true,
  3707.               "UniqueBack": false,
  3708.               "Type": 0
  3709.             }
  3710.           },
  3711.           "LuaScript": "",
  3712.           "LuaScriptState": "",
  3713.           "XmlUI": ""
  3714.         },
  3715.         {
  3716.           "GUID": "e96eb7",
  3717.           "Name": "Card",
  3718.           "Transform": {
  3719.             "posX": -10.7200708,
  3720.             "posY": 3.26809072,
  3721.             "posZ": 6.30790329,
  3722.             "rotX": 0.0166961625,
  3723.             "rotY": 179.975815,
  3724.             "rotZ": 0.0825073943,
  3725.             "scaleX": 1.2007668,
  3726.             "scaleY": 1.0,
  3727.             "scaleZ": 1.2007668
  3728.           },
  3729.           "Nickname": "",
  3730.           "Description": "8",
  3731.           "GMNotes": "",
  3732.           "AltLookAngle": {
  3733.             "x": 0.0,
  3734.             "y": 0.0,
  3735.             "z": 0.0
  3736.           },
  3737.           "ColorDiffuse": {
  3738.             "r": 0.713235259,
  3739.             "g": 0.713235259,
  3740.             "b": 0.713235259
  3741.           },
  3742.           "LayoutGroupSortIndex": 0,
  3743.           "Value": 0,
  3744.           "Locked": false,
  3745.           "Grid": true,
  3746.           "Snap": true,
  3747.           "IgnoreFoW": false,
  3748.           "MeasureMovement": false,
  3749.           "DragSelectable": true,
  3750.           "Autoraise": true,
  3751.           "Sticky": true,
  3752.           "Tooltip": true,
  3753.           "GridProjection": false,
  3754.           "HideWhenFaceDown": true,
  3755.           "Hands": true,
  3756.           "CardID": 307,
  3757.           "SidewaysCard": false,
  3758.           "CustomDeck": {
  3759.             "3": {
  3760.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3761.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3762.               "NumWidth": 6,
  3763.               "NumHeight": 4,
  3764.               "BackIsHidden": true,
  3765.               "UniqueBack": false,
  3766.               "Type": 0
  3767.             }
  3768.           },
  3769.           "LuaScript": "",
  3770.           "LuaScriptState": "",
  3771.           "XmlUI": ""
  3772.         },
  3773.         {
  3774.           "GUID": "116ce7",
  3775.           "Name": "Card",
  3776.           "Transform": {
  3777.             "posX": -10.7202072,
  3778.             "posY": 2.755408,
  3779.             "posZ": 6.307923,
  3780.             "rotX": 0.0166858323,
  3781.             "rotY": 179.976318,
  3782.             "rotZ": 0.082504414,
  3783.             "scaleX": 1.2007668,
  3784.             "scaleY": 1.0,
  3785.             "scaleZ": 1.2007668
  3786.           },
  3787.           "Nickname": "",
  3788.           "Description": "12",
  3789.           "GMNotes": "",
  3790.           "AltLookAngle": {
  3791.             "x": 0.0,
  3792.             "y": 0.0,
  3793.             "z": 0.0
  3794.           },
  3795.           "ColorDiffuse": {
  3796.             "r": 0.713235259,
  3797.             "g": 0.713235259,
  3798.             "b": 0.713235259
  3799.           },
  3800.           "LayoutGroupSortIndex": 0,
  3801.           "Value": 0,
  3802.           "Locked": false,
  3803.           "Grid": true,
  3804.           "Snap": true,
  3805.           "IgnoreFoW": false,
  3806.           "MeasureMovement": false,
  3807.           "DragSelectable": true,
  3808.           "Autoraise": true,
  3809.           "Sticky": true,
  3810.           "Tooltip": true,
  3811.           "GridProjection": false,
  3812.           "HideWhenFaceDown": true,
  3813.           "Hands": true,
  3814.           "CardID": 311,
  3815.           "SidewaysCard": false,
  3816.           "CustomDeck": {
  3817.             "3": {
  3818.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3819.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3820.               "NumWidth": 6,
  3821.               "NumHeight": 4,
  3822.               "BackIsHidden": true,
  3823.               "UniqueBack": false,
  3824.               "Type": 0
  3825.             }
  3826.           },
  3827.           "LuaScript": "",
  3828.           "LuaScriptState": "",
  3829.           "XmlUI": ""
  3830.         },
  3831.         {
  3832.           "GUID": "d428e4",
  3833.           "Name": "Card",
  3834.           "Transform": {
  3835.             "posX": 12.5327625,
  3836.             "posY": 1.47207153,
  3837.             "posZ": -18.8967075,
  3838.             "rotX": 0.06848029,
  3839.             "rotY": 134.999954,
  3840.             "rotZ": 0.0441951379,
  3841.             "scaleX": 1.2007668,
  3842.             "scaleY": 1.0,
  3843.             "scaleZ": 1.2007668
  3844.           },
  3845.           "Nickname": "",
  3846.           "Description": "4",
  3847.           "GMNotes": "",
  3848.           "AltLookAngle": {
  3849.             "x": 0.0,
  3850.             "y": 0.0,
  3851.             "z": 0.0
  3852.           },
  3853.           "ColorDiffuse": {
  3854.             "r": 0.713235259,
  3855.             "g": 0.713235259,
  3856.             "b": 0.713235259
  3857.           },
  3858.           "LayoutGroupSortIndex": 0,
  3859.           "Value": 0,
  3860.           "Locked": false,
  3861.           "Grid": true,
  3862.           "Snap": true,
  3863.           "IgnoreFoW": false,
  3864.           "MeasureMovement": false,
  3865.           "DragSelectable": true,
  3866.           "Autoraise": true,
  3867.           "Sticky": true,
  3868.           "Tooltip": true,
  3869.           "GridProjection": false,
  3870.           "HideWhenFaceDown": true,
  3871.           "Hands": true,
  3872.           "CardID": 303,
  3873.           "SidewaysCard": false,
  3874.           "CustomDeck": {
  3875.             "3": {
  3876.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3877.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3878.               "NumWidth": 6,
  3879.               "NumHeight": 4,
  3880.               "BackIsHidden": true,
  3881.               "UniqueBack": false,
  3882.               "Type": 0
  3883.             }
  3884.           },
  3885.           "LuaScript": "",
  3886.           "LuaScriptState": "",
  3887.           "XmlUI": ""
  3888.         },
  3889.         {
  3890.           "GUID": "546360",
  3891.           "Name": "Card",
  3892.           "Transform": {
  3893.             "posX": -10.7200956,
  3894.             "posY": 3.015976,
  3895.             "posZ": 6.307901,
  3896.             "rotX": 0.016701499,
  3897.             "rotY": 179.976044,
  3898.             "rotZ": 0.08250593,
  3899.             "scaleX": 1.2007668,
  3900.             "scaleY": 1.0,
  3901.             "scaleZ": 1.2007668
  3902.           },
  3903.           "Nickname": "Second Chance",
  3904.           "Description": "",
  3905.           "GMNotes": "",
  3906.           "AltLookAngle": {
  3907.             "x": 0.0,
  3908.             "y": 0.0,
  3909.             "z": 0.0
  3910.           },
  3911.           "ColorDiffuse": {
  3912.             "r": 0.713235259,
  3913.             "g": 0.713235259,
  3914.             "b": 0.713235259
  3915.           },
  3916.           "Tags": [
  3917.             "special"
  3918.           ],
  3919.           "LayoutGroupSortIndex": 0,
  3920.           "Value": 0,
  3921.           "Locked": false,
  3922.           "Grid": true,
  3923.           "Snap": true,
  3924.           "IgnoreFoW": false,
  3925.           "MeasureMovement": false,
  3926.           "DragSelectable": true,
  3927.           "Autoraise": true,
  3928.           "Sticky": true,
  3929.           "Tooltip": true,
  3930.           "GridProjection": false,
  3931.           "HideWhenFaceDown": true,
  3932.           "Hands": true,
  3933.           "CardID": 320,
  3934.           "SidewaysCard": false,
  3935.           "CustomDeck": {
  3936.             "3": {
  3937.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3938.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  3939.               "NumWidth": 6,
  3940.               "NumHeight": 4,
  3941.               "BackIsHidden": true,
  3942.               "UniqueBack": false,
  3943.               "Type": 0
  3944.             }
  3945.           },
  3946.           "LuaScript": "",
  3947.           "LuaScriptState": "",
  3948.           "XmlUI": ""
  3949.         },
  3950.         {
  3951.           "GUID": "9db9db",
  3952.           "Name": "Card",
  3953.           "Transform": {
  3954.             "posX": -1.59987545,
  3955.             "posY": 2.390492,
  3956.             "posZ": 1.13147223,
  3957.             "rotX": 0.0161876678,
  3958.             "rotY": 179.999878,
  3959.             "rotZ": 180.074066,
  3960.             "scaleX": 1.2007668,
  3961.             "scaleY": 1.0,
  3962.             "scaleZ": 1.2007668
  3963.           },
  3964.           "Nickname": "Freeze",
  3965.           "Description": "",
  3966.           "GMNotes": "",
  3967.           "AltLookAngle": {
  3968.             "x": 0.0,
  3969.             "y": 0.0,
  3970.             "z": 0.0
  3971.           },
  3972.           "ColorDiffuse": {
  3973.             "r": 0.713235259,
  3974.             "g": 0.713235259,
  3975.             "b": 0.713235259
  3976.           },
  3977.           "Tags": [
  3978.             "special"
  3979.           ],
  3980.           "LayoutGroupSortIndex": 0,
  3981.           "Value": 0,
  3982.           "Locked": false,
  3983.           "Grid": true,
  3984.           "Snap": true,
  3985.           "IgnoreFoW": false,
  3986.           "MeasureMovement": false,
  3987.           "DragSelectable": true,
  3988.           "Autoraise": true,
  3989.           "Sticky": true,
  3990.           "Tooltip": true,
  3991.           "GridProjection": false,
  3992.           "HideWhenFaceDown": true,
  3993.           "Hands": true,
  3994.           "CardID": 319,
  3995.           "SidewaysCard": false,
  3996.           "CustomDeck": {
  3997.             "3": {
  3998.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  3999.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4000.               "NumWidth": 6,
  4001.               "NumHeight": 4,
  4002.               "BackIsHidden": true,
  4003.               "UniqueBack": false,
  4004.               "Type": 0
  4005.             }
  4006.           },
  4007.           "LuaScript": "",
  4008.           "LuaScriptState": "",
  4009.           "XmlUI": ""
  4010.         },
  4011.         {
  4012.           "GUID": "353ff8",
  4013.           "Name": "Card",
  4014.           "Transform": {
  4015.             "posX": -10.720067,
  4016.             "posY": 3.15583754,
  4017.             "posZ": 6.307904,
  4018.             "rotX": 0.0166923329,
  4019.             "rotY": 179.975891,
  4020.             "rotZ": 0.082486935,
  4021.             "scaleX": 1.2007668,
  4022.             "scaleY": 1.0,
  4023.             "scaleZ": 1.2007668
  4024.           },
  4025.           "Nickname": "",
  4026.           "Description": "10",
  4027.           "GMNotes": "",
  4028.           "AltLookAngle": {
  4029.             "x": 0.0,
  4030.             "y": 0.0,
  4031.             "z": 0.0
  4032.           },
  4033.           "ColorDiffuse": {
  4034.             "r": 0.713235259,
  4035.             "g": 0.713235259,
  4036.             "b": 0.713235259
  4037.           },
  4038.           "LayoutGroupSortIndex": 0,
  4039.           "Value": 0,
  4040.           "Locked": false,
  4041.           "Grid": true,
  4042.           "Snap": true,
  4043.           "IgnoreFoW": false,
  4044.           "MeasureMovement": false,
  4045.           "DragSelectable": true,
  4046.           "Autoraise": true,
  4047.           "Sticky": true,
  4048.           "Tooltip": true,
  4049.           "GridProjection": false,
  4050.           "HideWhenFaceDown": true,
  4051.           "Hands": true,
  4052.           "CardID": 309,
  4053.           "SidewaysCard": false,
  4054.           "CustomDeck": {
  4055.             "3": {
  4056.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4057.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4058.               "NumWidth": 6,
  4059.               "NumHeight": 4,
  4060.               "BackIsHidden": true,
  4061.               "UniqueBack": false,
  4062.               "Type": 0
  4063.             }
  4064.           },
  4065.           "LuaScript": "",
  4066.           "LuaScriptState": "",
  4067.           "XmlUI": ""
  4068.         },
  4069.         {
  4070.           "GUID": "6d611e",
  4071.           "Name": "Card",
  4072.           "Transform": {
  4073.             "posX": -10.7195883,
  4074.             "posY": 2.70794129,
  4075.             "posZ": 6.329634,
  4076.             "rotX": 0.0166859943,
  4077.             "rotY": 179.976364,
  4078.             "rotZ": 0.08250356,
  4079.             "scaleX": 1.2007668,
  4080.             "scaleY": 1.0,
  4081.             "scaleZ": 1.2007668
  4082.           },
  4083.           "Nickname": "",
  4084.           "Description": "8",
  4085.           "GMNotes": "",
  4086.           "AltLookAngle": {
  4087.             "x": 0.0,
  4088.             "y": 0.0,
  4089.             "z": 0.0
  4090.           },
  4091.           "ColorDiffuse": {
  4092.             "r": 0.713235259,
  4093.             "g": 0.713235259,
  4094.             "b": 0.713235259
  4095.           },
  4096.           "LayoutGroupSortIndex": 0,
  4097.           "Value": 0,
  4098.           "Locked": false,
  4099.           "Grid": true,
  4100.           "Snap": true,
  4101.           "IgnoreFoW": false,
  4102.           "MeasureMovement": false,
  4103.           "DragSelectable": true,
  4104.           "Autoraise": true,
  4105.           "Sticky": true,
  4106.           "Tooltip": true,
  4107.           "GridProjection": false,
  4108.           "HideWhenFaceDown": true,
  4109.           "Hands": true,
  4110.           "CardID": 307,
  4111.           "SidewaysCard": false,
  4112.           "CustomDeck": {
  4113.             "3": {
  4114.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4115.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4116.               "NumWidth": 6,
  4117.               "NumHeight": 4,
  4118.               "BackIsHidden": true,
  4119.               "UniqueBack": false,
  4120.               "Type": 0
  4121.             }
  4122.           },
  4123.           "LuaScript": "",
  4124.           "LuaScriptState": "",
  4125.           "XmlUI": ""
  4126.         },
  4127.         {
  4128.           "GUID": "c23666",
  4129.           "Name": "Card",
  4130.           "Transform": {
  4131.             "posX": 12.5327387,
  4132.             "posY": 1.51486063,
  4133.             "posZ": -18.8967,
  4134.             "rotX": 0.0540597,
  4135.             "rotY": 135.0,
  4136.             "rotZ": 0.0311557781,
  4137.             "scaleX": 1.2007668,
  4138.             "scaleY": 1.0,
  4139.             "scaleZ": 1.2007668
  4140.           },
  4141.           "Nickname": "",
  4142.           "Description": "3",
  4143.           "GMNotes": "",
  4144.           "AltLookAngle": {
  4145.             "x": 0.0,
  4146.             "y": 0.0,
  4147.             "z": 0.0
  4148.           },
  4149.           "ColorDiffuse": {
  4150.             "r": 0.713235259,
  4151.             "g": 0.713235259,
  4152.             "b": 0.713235259
  4153.           },
  4154.           "LayoutGroupSortIndex": 0,
  4155.           "Value": 0,
  4156.           "Locked": false,
  4157.           "Grid": true,
  4158.           "Snap": true,
  4159.           "IgnoreFoW": false,
  4160.           "MeasureMovement": false,
  4161.           "DragSelectable": true,
  4162.           "Autoraise": true,
  4163.           "Sticky": true,
  4164.           "Tooltip": true,
  4165.           "GridProjection": false,
  4166.           "HideWhenFaceDown": true,
  4167.           "Hands": true,
  4168.           "CardID": 302,
  4169.           "SidewaysCard": false,
  4170.           "CustomDeck": {
  4171.             "3": {
  4172.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4173.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4174.               "NumWidth": 6,
  4175.               "NumHeight": 4,
  4176.               "BackIsHidden": true,
  4177.               "UniqueBack": false,
  4178.               "Type": 0
  4179.             }
  4180.           },
  4181.           "LuaScript": "",
  4182.           "LuaScriptState": "",
  4183.           "XmlUI": ""
  4184.         },
  4185.         {
  4186.           "GUID": "8e1e0b",
  4187.           "Name": "Card",
  4188.           "Transform": {
  4189.             "posX": -10.7201023,
  4190.             "posY": 2.91431952,
  4191.             "posZ": 6.30790234,
  4192.             "rotX": 0.01669104,
  4193.             "rotY": 179.976135,
  4194.             "rotZ": 0.08249625,
  4195.             "scaleX": 1.2007668,
  4196.             "scaleY": 1.0,
  4197.             "scaleZ": 1.2007668
  4198.           },
  4199.           "Nickname": "",
  4200.           "Description": "7",
  4201.           "GMNotes": "",
  4202.           "AltLookAngle": {
  4203.             "x": 0.0,
  4204.             "y": 0.0,
  4205.             "z": 0.0
  4206.           },
  4207.           "ColorDiffuse": {
  4208.             "r": 0.713235259,
  4209.             "g": 0.713235259,
  4210.             "b": 0.713235259
  4211.           },
  4212.           "LayoutGroupSortIndex": 0,
  4213.           "Value": 0,
  4214.           "Locked": false,
  4215.           "Grid": true,
  4216.           "Snap": true,
  4217.           "IgnoreFoW": false,
  4218.           "MeasureMovement": false,
  4219.           "DragSelectable": true,
  4220.           "Autoraise": true,
  4221.           "Sticky": true,
  4222.           "Tooltip": true,
  4223.           "GridProjection": false,
  4224.           "HideWhenFaceDown": true,
  4225.           "Hands": true,
  4226.           "CardID": 306,
  4227.           "SidewaysCard": false,
  4228.           "CustomDeck": {
  4229.             "3": {
  4230.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4231.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4232.               "NumWidth": 6,
  4233.               "NumHeight": 4,
  4234.               "BackIsHidden": true,
  4235.               "UniqueBack": false,
  4236.               "Type": 0
  4237.             }
  4238.           },
  4239.           "LuaScript": "",
  4240.           "LuaScriptState": "",
  4241.           "XmlUI": ""
  4242.         },
  4243.         {
  4244.           "GUID": "ebaab2",
  4245.           "Name": "Card",
  4246.           "Transform": {
  4247.             "posX": -10.7195921,
  4248.             "posY": 2.71890664,
  4249.             "posZ": 6.329635,
  4250.             "rotX": 0.0166851189,
  4251.             "rotY": 179.976349,
  4252.             "rotZ": 0.08250538,
  4253.             "scaleX": 1.2007668,
  4254.             "scaleY": 1.0,
  4255.             "scaleZ": 1.2007668
  4256.           },
  4257.           "Nickname": "",
  4258.           "Description": "7",
  4259.           "GMNotes": "",
  4260.           "AltLookAngle": {
  4261.             "x": 0.0,
  4262.             "y": 0.0,
  4263.             "z": 0.0
  4264.           },
  4265.           "ColorDiffuse": {
  4266.             "r": 0.713235259,
  4267.             "g": 0.713235259,
  4268.             "b": 0.713235259
  4269.           },
  4270.           "LayoutGroupSortIndex": 0,
  4271.           "Value": 0,
  4272.           "Locked": false,
  4273.           "Grid": true,
  4274.           "Snap": true,
  4275.           "IgnoreFoW": false,
  4276.           "MeasureMovement": false,
  4277.           "DragSelectable": true,
  4278.           "Autoraise": true,
  4279.           "Sticky": true,
  4280.           "Tooltip": true,
  4281.           "GridProjection": false,
  4282.           "HideWhenFaceDown": true,
  4283.           "Hands": true,
  4284.           "CardID": 306,
  4285.           "SidewaysCard": false,
  4286.           "CustomDeck": {
  4287.             "3": {
  4288.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4289.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4290.               "NumWidth": 6,
  4291.               "NumHeight": 4,
  4292.               "BackIsHidden": true,
  4293.               "UniqueBack": false,
  4294.               "Type": 0
  4295.             }
  4296.           },
  4297.           "LuaScript": "",
  4298.           "LuaScriptState": "",
  4299.           "XmlUI": ""
  4300.         },
  4301.         {
  4302.           "GUID": "4362d7",
  4303.           "Name": "Card",
  4304.           "Transform": {
  4305.             "posX": -1.5998863,
  4306.             "posY": 2.5901978,
  4307.             "posZ": 1.13147724,
  4308.             "rotX": 359.259949,
  4309.             "rotY": 180.075592,
  4310.             "rotZ": 174.972748,
  4311.             "scaleX": 1.2007668,
  4312.             "scaleY": 1.0,
  4313.             "scaleZ": 1.2007668
  4314.           },
  4315.           "Nickname": "Second Chance",
  4316.           "Description": "",
  4317.           "GMNotes": "",
  4318.           "AltLookAngle": {
  4319.             "x": 0.0,
  4320.             "y": 0.0,
  4321.             "z": 0.0
  4322.           },
  4323.           "ColorDiffuse": {
  4324.             "r": 0.713235259,
  4325.             "g": 0.713235259,
  4326.             "b": 0.713235259
  4327.           },
  4328.           "Tags": [
  4329.             "special"
  4330.           ],
  4331.           "LayoutGroupSortIndex": 0,
  4332.           "Value": 0,
  4333.           "Locked": false,
  4334.           "Grid": true,
  4335.           "Snap": true,
  4336.           "IgnoreFoW": false,
  4337.           "MeasureMovement": false,
  4338.           "DragSelectable": true,
  4339.           "Autoraise": true,
  4340.           "Sticky": true,
  4341.           "Tooltip": true,
  4342.           "GridProjection": false,
  4343.           "HideWhenFaceDown": true,
  4344.           "Hands": true,
  4345.           "CardID": 320,
  4346.           "SidewaysCard": false,
  4347.           "CustomDeck": {
  4348.             "3": {
  4349.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4350.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4351.               "NumWidth": 6,
  4352.               "NumHeight": 4,
  4353.               "BackIsHidden": true,
  4354.               "UniqueBack": false,
  4355.               "Type": 0
  4356.             }
  4357.           },
  4358.           "LuaScript": "",
  4359.           "LuaScriptState": "",
  4360.           "XmlUI": ""
  4361.         },
  4362.         {
  4363.           "GUID": "755ba7",
  4364.           "Name": "Card",
  4365.           "Transform": {
  4366.             "posX": -18.8967,
  4367.             "posY": 1.55562019,
  4368.             "posZ": -12.53274,
  4369.             "rotX": 359.967743,
  4370.             "rotY": 224.999969,
  4371.             "rotZ": 0.050541874,
  4372.             "scaleX": 1.2007668,
  4373.             "scaleY": 1.0,
  4374.             "scaleZ": 1.2007668
  4375.           },
  4376.           "Nickname": "",
  4377.           "Description": "6",
  4378.           "GMNotes": "",
  4379.           "AltLookAngle": {
  4380.             "x": 0.0,
  4381.             "y": 0.0,
  4382.             "z": 0.0
  4383.           },
  4384.           "ColorDiffuse": {
  4385.             "r": 0.713235259,
  4386.             "g": 0.713235259,
  4387.             "b": 0.713235259
  4388.           },
  4389.           "LayoutGroupSortIndex": 0,
  4390.           "Value": 0,
  4391.           "Locked": false,
  4392.           "Grid": true,
  4393.           "Snap": true,
  4394.           "IgnoreFoW": false,
  4395.           "MeasureMovement": false,
  4396.           "DragSelectable": true,
  4397.           "Autoraise": true,
  4398.           "Sticky": true,
  4399.           "Tooltip": true,
  4400.           "GridProjection": false,
  4401.           "HideWhenFaceDown": true,
  4402.           "Hands": true,
  4403.           "CardID": 305,
  4404.           "SidewaysCard": false,
  4405.           "CustomDeck": {
  4406.             "3": {
  4407.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4408.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4409.               "NumWidth": 6,
  4410.               "NumHeight": 4,
  4411.               "BackIsHidden": true,
  4412.               "UniqueBack": false,
  4413.               "Type": 0
  4414.             }
  4415.           },
  4416.           "LuaScript": "",
  4417.           "LuaScriptState": "",
  4418.           "XmlUI": ""
  4419.         },
  4420.         {
  4421.           "GUID": "7601c6",
  4422.           "Name": "Card",
  4423.           "Transform": {
  4424.             "posX": -10.7201872,
  4425.             "posY": 2.75777316,
  4426.             "posZ": 6.307914,
  4427.             "rotX": 0.01669054,
  4428.             "rotY": 179.976288,
  4429.             "rotZ": 0.08249966,
  4430.             "scaleX": 1.2007668,
  4431.             "scaleY": 1.0,
  4432.             "scaleZ": 1.2007668
  4433.           },
  4434.           "Nickname": "",
  4435.           "Description": "6",
  4436.           "GMNotes": "",
  4437.           "AltLookAngle": {
  4438.             "x": 0.0,
  4439.             "y": 0.0,
  4440.             "z": 0.0
  4441.           },
  4442.           "ColorDiffuse": {
  4443.             "r": 0.713235259,
  4444.             "g": 0.713235259,
  4445.             "b": 0.713235259
  4446.           },
  4447.           "LayoutGroupSortIndex": 0,
  4448.           "Value": 0,
  4449.           "Locked": false,
  4450.           "Grid": true,
  4451.           "Snap": true,
  4452.           "IgnoreFoW": false,
  4453.           "MeasureMovement": false,
  4454.           "DragSelectable": true,
  4455.           "Autoraise": true,
  4456.           "Sticky": true,
  4457.           "Tooltip": true,
  4458.           "GridProjection": false,
  4459.           "HideWhenFaceDown": true,
  4460.           "Hands": true,
  4461.           "CardID": 305,
  4462.           "SidewaysCard": false,
  4463.           "CustomDeck": {
  4464.             "3": {
  4465.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4466.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4467.               "NumWidth": 6,
  4468.               "NumHeight": 4,
  4469.               "BackIsHidden": true,
  4470.               "UniqueBack": false,
  4471.               "Type": 0
  4472.             }
  4473.           },
  4474.           "LuaScript": "",
  4475.           "LuaScriptState": "",
  4476.           "XmlUI": ""
  4477.         },
  4478.         {
  4479.           "GUID": "78f323",
  4480.           "Name": "Card",
  4481.           "Transform": {
  4482.             "posX": -10.7205372,
  4483.             "posY": 2.04894257,
  4484.             "posZ": 6.32952547,
  4485.             "rotX": 0.0168538522,
  4486.             "rotY": 179.966309,
  4487.             "rotZ": 0.08064202,
  4488.             "scaleX": 1.2007668,
  4489.             "scaleY": 1.0,
  4490.             "scaleZ": 1.2007668
  4491.           },
  4492.           "Nickname": "",
  4493.           "Description": "9",
  4494.           "GMNotes": "",
  4495.           "AltLookAngle": {
  4496.             "x": 0.0,
  4497.             "y": 0.0,
  4498.             "z": 0.0
  4499.           },
  4500.           "ColorDiffuse": {
  4501.             "r": 0.713235259,
  4502.             "g": 0.713235259,
  4503.             "b": 0.713235259
  4504.           },
  4505.           "LayoutGroupSortIndex": 0,
  4506.           "Value": 0,
  4507.           "Locked": false,
  4508.           "Grid": true,
  4509.           "Snap": true,
  4510.           "IgnoreFoW": false,
  4511.           "MeasureMovement": false,
  4512.           "DragSelectable": true,
  4513.           "Autoraise": true,
  4514.           "Sticky": true,
  4515.           "Tooltip": true,
  4516.           "GridProjection": false,
  4517.           "HideWhenFaceDown": true,
  4518.           "Hands": true,
  4519.           "CardID": 308,
  4520.           "SidewaysCard": false,
  4521.           "CustomDeck": {
  4522.             "3": {
  4523.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4524.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4525.               "NumWidth": 6,
  4526.               "NumHeight": 4,
  4527.               "BackIsHidden": true,
  4528.               "UniqueBack": false,
  4529.               "Type": 0
  4530.             }
  4531.           },
  4532.           "LuaScript": "",
  4533.           "LuaScriptState": "",
  4534.           "XmlUI": ""
  4535.         },
  4536.         {
  4537.           "GUID": "6bee83",
  4538.           "Name": "Card",
  4539.           "Transform": {
  4540.             "posX": -10.7201281,
  4541.             "posY": 2.94900322,
  4542.             "posZ": 6.30790472,
  4543.             "rotX": 0.0166943464,
  4544.             "rotY": 179.976135,
  4545.             "rotZ": 0.08249881,
  4546.             "scaleX": 1.2007668,
  4547.             "scaleY": 1.0,
  4548.             "scaleZ": 1.2007668
  4549.           },
  4550.           "Nickname": "",
  4551.           "Description": "12",
  4552.           "GMNotes": "",
  4553.           "AltLookAngle": {
  4554.             "x": 0.0,
  4555.             "y": 0.0,
  4556.             "z": 0.0
  4557.           },
  4558.           "ColorDiffuse": {
  4559.             "r": 0.713235259,
  4560.             "g": 0.713235259,
  4561.             "b": 0.713235259
  4562.           },
  4563.           "LayoutGroupSortIndex": 0,
  4564.           "Value": 0,
  4565.           "Locked": false,
  4566.           "Grid": true,
  4567.           "Snap": true,
  4568.           "IgnoreFoW": false,
  4569.           "MeasureMovement": false,
  4570.           "DragSelectable": true,
  4571.           "Autoraise": true,
  4572.           "Sticky": true,
  4573.           "Tooltip": true,
  4574.           "GridProjection": false,
  4575.           "HideWhenFaceDown": true,
  4576.           "Hands": true,
  4577.           "CardID": 311,
  4578.           "SidewaysCard": false,
  4579.           "CustomDeck": {
  4580.             "3": {
  4581.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4582.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4583.               "NumWidth": 6,
  4584.               "NumHeight": 4,
  4585.               "BackIsHidden": true,
  4586.               "UniqueBack": false,
  4587.               "Type": 0
  4588.             }
  4589.           },
  4590.           "LuaScript": "",
  4591.           "LuaScriptState": "",
  4592.           "XmlUI": ""
  4593.         },
  4594.         {
  4595.           "GUID": "c63691",
  4596.           "Name": "Card",
  4597.           "Transform": {
  4598.             "posX": -14.6540585,
  4599.             "posY": 1.54991889,
  4600.             "posZ": -16.7753811,
  4601.             "rotX": 359.9669,
  4602.             "rotY": 224.999969,
  4603.             "rotZ": 0.0515832938,
  4604.             "scaleX": 1.2007668,
  4605.             "scaleY": 1.0,
  4606.             "scaleZ": 1.2007668
  4607.           },
  4608.           "Nickname": "",
  4609.           "Description": "11",
  4610.           "GMNotes": "",
  4611.           "AltLookAngle": {
  4612.             "x": 0.0,
  4613.             "y": 0.0,
  4614.             "z": 0.0
  4615.           },
  4616.           "ColorDiffuse": {
  4617.             "r": 0.713235259,
  4618.             "g": 0.713235259,
  4619.             "b": 0.713235259
  4620.           },
  4621.           "LayoutGroupSortIndex": 0,
  4622.           "Value": 0,
  4623.           "Locked": false,
  4624.           "Grid": true,
  4625.           "Snap": true,
  4626.           "IgnoreFoW": false,
  4627.           "MeasureMovement": false,
  4628.           "DragSelectable": true,
  4629.           "Autoraise": true,
  4630.           "Sticky": true,
  4631.           "Tooltip": true,
  4632.           "GridProjection": false,
  4633.           "HideWhenFaceDown": true,
  4634.           "Hands": true,
  4635.           "CardID": 310,
  4636.           "SidewaysCard": false,
  4637.           "CustomDeck": {
  4638.             "3": {
  4639.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4640.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4641.               "NumWidth": 6,
  4642.               "NumHeight": 4,
  4643.               "BackIsHidden": true,
  4644.               "UniqueBack": false,
  4645.               "Type": 0
  4646.             }
  4647.           },
  4648.           "LuaScript": "",
  4649.           "LuaScriptState": "",
  4650.           "XmlUI": ""
  4651.         },
  4652.         {
  4653.           "GUID": "442690",
  4654.           "Name": "Card",
  4655.           "Transform": {
  4656.             "posX": -12.8862915,
  4657.             "posY": 1.54886889,
  4658.             "posZ": -12.8862934,
  4659.             "rotX": 359.966736,
  4660.             "rotY": 224.999969,
  4661.             "rotZ": 0.0517791,
  4662.             "scaleX": 1.2007668,
  4663.             "scaleY": 1.0,
  4664.             "scaleZ": 1.2007668
  4665.           },
  4666.           "Nickname": "",
  4667.           "Description": "11",
  4668.           "GMNotes": "",
  4669.           "AltLookAngle": {
  4670.             "x": 0.0,
  4671.             "y": 0.0,
  4672.             "z": 0.0
  4673.           },
  4674.           "ColorDiffuse": {
  4675.             "r": 0.713235259,
  4676.             "g": 0.713235259,
  4677.             "b": 0.713235259
  4678.           },
  4679.           "LayoutGroupSortIndex": 0,
  4680.           "Value": 0,
  4681.           "Locked": false,
  4682.           "Grid": true,
  4683.           "Snap": true,
  4684.           "IgnoreFoW": false,
  4685.           "MeasureMovement": false,
  4686.           "DragSelectable": true,
  4687.           "Autoraise": true,
  4688.           "Sticky": true,
  4689.           "Tooltip": true,
  4690.           "GridProjection": false,
  4691.           "HideWhenFaceDown": true,
  4692.           "Hands": true,
  4693.           "CardID": 310,
  4694.           "SidewaysCard": false,
  4695.           "CustomDeck": {
  4696.             "3": {
  4697.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4698.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4699.               "NumWidth": 6,
  4700.               "NumHeight": 4,
  4701.               "BackIsHidden": true,
  4702.               "UniqueBack": false,
  4703.               "Type": 0
  4704.             }
  4705.           },
  4706.           "LuaScript": "",
  4707.           "LuaScriptState": "",
  4708.           "XmlUI": ""
  4709.         },
  4710.         {
  4711.           "GUID": "edf71a",
  4712.           "Name": "Card",
  4713.           "Transform": {
  4714.             "posX": -10.7201624,
  4715.             "posY": 2.78830361,
  4716.             "posZ": 6.30791044,
  4717.             "rotX": 0.0166914668,
  4718.             "rotY": 179.976257,
  4719.             "rotZ": 0.08249424,
  4720.             "scaleX": 1.2007668,
  4721.             "scaleY": 1.0,
  4722.             "scaleZ": 1.2007668
  4723.           },
  4724.           "Nickname": "",
  4725.           "Description": "12",
  4726.           "GMNotes": "",
  4727.           "AltLookAngle": {
  4728.             "x": 0.0,
  4729.             "y": 0.0,
  4730.             "z": 0.0
  4731.           },
  4732.           "ColorDiffuse": {
  4733.             "r": 0.713235259,
  4734.             "g": 0.713235259,
  4735.             "b": 0.713235259
  4736.           },
  4737.           "LayoutGroupSortIndex": 0,
  4738.           "Value": 0,
  4739.           "Locked": false,
  4740.           "Grid": true,
  4741.           "Snap": true,
  4742.           "IgnoreFoW": false,
  4743.           "MeasureMovement": false,
  4744.           "DragSelectable": true,
  4745.           "Autoraise": true,
  4746.           "Sticky": true,
  4747.           "Tooltip": true,
  4748.           "GridProjection": false,
  4749.           "HideWhenFaceDown": true,
  4750.           "Hands": true,
  4751.           "CardID": 311,
  4752.           "SidewaysCard": false,
  4753.           "CustomDeck": {
  4754.             "3": {
  4755.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4756.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4757.               "NumWidth": 6,
  4758.               "NumHeight": 4,
  4759.               "BackIsHidden": true,
  4760.               "UniqueBack": false,
  4761.               "Type": 0
  4762.             }
  4763.           },
  4764.           "LuaScript": "",
  4765.           "LuaScriptState": "",
  4766.           "XmlUI": ""
  4767.         },
  4768.         {
  4769.           "GUID": "6beb42",
  4770.           "Name": "Card",
  4771.           "Transform": {
  4772.             "posX": -1.59988379,
  4773.             "posY": 2.41982079,
  4774.             "posZ": 1.13146126,
  4775.             "rotX": 0.0109974807,
  4776.             "rotY": 179.999878,
  4777.             "rotZ": 180.075684,
  4778.             "scaleX": 1.2007668,
  4779.             "scaleY": 1.0,
  4780.             "scaleZ": 1.2007668
  4781.           },
  4782.           "Nickname": "Flip Three",
  4783.           "Description": "",
  4784.           "GMNotes": "",
  4785.           "AltLookAngle": {
  4786.             "x": 0.0,
  4787.             "y": 0.0,
  4788.             "z": 0.0
  4789.           },
  4790.           "ColorDiffuse": {
  4791.             "r": 0.713235259,
  4792.             "g": 0.713235259,
  4793.             "b": 0.713235259
  4794.           },
  4795.           "Tags": [
  4796.             "special"
  4797.           ],
  4798.           "LayoutGroupSortIndex": 0,
  4799.           "Value": 0,
  4800.           "Locked": false,
  4801.           "Grid": true,
  4802.           "Snap": true,
  4803.           "IgnoreFoW": false,
  4804.           "MeasureMovement": false,
  4805.           "DragSelectable": true,
  4806.           "Autoraise": true,
  4807.           "Sticky": true,
  4808.           "Tooltip": true,
  4809.           "GridProjection": false,
  4810.           "HideWhenFaceDown": true,
  4811.           "Hands": true,
  4812.           "CardID": 321,
  4813.           "SidewaysCard": false,
  4814.           "CustomDeck": {
  4815.             "3": {
  4816.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4817.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4818.               "NumWidth": 6,
  4819.               "NumHeight": 4,
  4820.               "BackIsHidden": true,
  4821.               "UniqueBack": false,
  4822.               "Type": 0
  4823.             }
  4824.           },
  4825.           "LuaScript": "",
  4826.           "LuaScriptState": "",
  4827.           "XmlUI": ""
  4828.         },
  4829.         {
  4830.           "GUID": "c2bf14",
  4831.           "Name": "Card",
  4832.           "Transform": {
  4833.             "posX": -10.7196608,
  4834.             "posY": 2.53388476,
  4835.             "posZ": 6.32964039,
  4836.             "rotX": 0.0166884586,
  4837.             "rotY": 179.976517,
  4838.             "rotZ": 0.08249867,
  4839.             "scaleX": 1.2007668,
  4840.             "scaleY": 1.0,
  4841.             "scaleZ": 1.2007668
  4842.           },
  4843.           "Nickname": "",
  4844.           "Description": "5",
  4845.           "GMNotes": "",
  4846.           "AltLookAngle": {
  4847.             "x": 0.0,
  4848.             "y": 0.0,
  4849.             "z": 0.0
  4850.           },
  4851.           "ColorDiffuse": {
  4852.             "r": 0.713235259,
  4853.             "g": 0.713235259,
  4854.             "b": 0.713235259
  4855.           },
  4856.           "LayoutGroupSortIndex": 0,
  4857.           "Value": 0,
  4858.           "Locked": false,
  4859.           "Grid": true,
  4860.           "Snap": true,
  4861.           "IgnoreFoW": false,
  4862.           "MeasureMovement": false,
  4863.           "DragSelectable": true,
  4864.           "Autoraise": true,
  4865.           "Sticky": true,
  4866.           "Tooltip": true,
  4867.           "GridProjection": false,
  4868.           "HideWhenFaceDown": true,
  4869.           "Hands": true,
  4870.           "CardID": 304,
  4871.           "SidewaysCard": false,
  4872.           "CustomDeck": {
  4873.             "3": {
  4874.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4875.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4876.               "NumWidth": 6,
  4877.               "NumHeight": 4,
  4878.               "BackIsHidden": true,
  4879.               "UniqueBack": false,
  4880.               "Type": 0
  4881.             }
  4882.           },
  4883.           "LuaScript": "",
  4884.           "LuaScriptState": "",
  4885.           "XmlUI": ""
  4886.         },
  4887.         {
  4888.           "GUID": "45d5c9",
  4889.           "Name": "Card",
  4890.           "Transform": {
  4891.             "posX": -10.7200384,
  4892.             "posY": 3.05983782,
  4893.             "posZ": 6.307894,
  4894.             "rotX": 0.0166916754,
  4895.             "rotY": 179.976013,
  4896.             "rotZ": 0.08249792,
  4897.             "scaleX": 1.2007668,
  4898.             "scaleY": 1.0,
  4899.             "scaleZ": 1.2007668
  4900.           },
  4901.           "Nickname": "",
  4902.           "Description": "8",
  4903.           "GMNotes": "",
  4904.           "AltLookAngle": {
  4905.             "x": 0.0,
  4906.             "y": 0.0,
  4907.             "z": 0.0
  4908.           },
  4909.           "ColorDiffuse": {
  4910.             "r": 0.713235259,
  4911.             "g": 0.713235259,
  4912.             "b": 0.713235259
  4913.           },
  4914.           "LayoutGroupSortIndex": 0,
  4915.           "Value": 0,
  4916.           "Locked": false,
  4917.           "Grid": true,
  4918.           "Snap": true,
  4919.           "IgnoreFoW": false,
  4920.           "MeasureMovement": false,
  4921.           "DragSelectable": true,
  4922.           "Autoraise": true,
  4923.           "Sticky": true,
  4924.           "Tooltip": true,
  4925.           "GridProjection": false,
  4926.           "HideWhenFaceDown": true,
  4927.           "Hands": true,
  4928.           "CardID": 307,
  4929.           "SidewaysCard": false,
  4930.           "CustomDeck": {
  4931.             "3": {
  4932.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4933.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4934.               "NumWidth": 6,
  4935.               "NumHeight": 4,
  4936.               "BackIsHidden": true,
  4937.               "UniqueBack": false,
  4938.               "Type": 0
  4939.             }
  4940.           },
  4941.           "LuaScript": "",
  4942.           "LuaScriptState": "",
  4943.           "XmlUI": ""
  4944.         },
  4945.         {
  4946.           "GUID": "5bbea9",
  4947.           "Name": "Card",
  4948.           "Transform": {
  4949.             "posX": -10.720521,
  4950.             "posY": 2.03453469,
  4951.             "posZ": 6.32951927,
  4952.             "rotX": 0.0168553609,
  4953.             "rotY": 179.966309,
  4954.             "rotZ": 0.08065469,
  4955.             "scaleX": 1.2007668,
  4956.             "scaleY": 1.0,
  4957.             "scaleZ": 1.2007668
  4958.           },
  4959.           "Nickname": "",
  4960.           "Description": "7",
  4961.           "GMNotes": "",
  4962.           "AltLookAngle": {
  4963.             "x": 0.0,
  4964.             "y": 0.0,
  4965.             "z": 0.0
  4966.           },
  4967.           "ColorDiffuse": {
  4968.             "r": 0.713235259,
  4969.             "g": 0.713235259,
  4970.             "b": 0.713235259
  4971.           },
  4972.           "LayoutGroupSortIndex": 0,
  4973.           "Value": 0,
  4974.           "Locked": false,
  4975.           "Grid": true,
  4976.           "Snap": true,
  4977.           "IgnoreFoW": false,
  4978.           "MeasureMovement": false,
  4979.           "DragSelectable": true,
  4980.           "Autoraise": true,
  4981.           "Sticky": true,
  4982.           "Tooltip": true,
  4983.           "GridProjection": false,
  4984.           "HideWhenFaceDown": true,
  4985.           "Hands": true,
  4986.           "CardID": 306,
  4987.           "SidewaysCard": false,
  4988.           "CustomDeck": {
  4989.             "3": {
  4990.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  4991.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  4992.               "NumWidth": 6,
  4993.               "NumHeight": 4,
  4994.               "BackIsHidden": true,
  4995.               "UniqueBack": false,
  4996.               "Type": 0
  4997.             }
  4998.           },
  4999.           "LuaScript": "",
  5000.           "LuaScriptState": "",
  5001.           "XmlUI": ""
  5002.         },
  5003.         {
  5004.           "GUID": "7a6c0d",
  5005.           "Name": "Card",
  5006.           "Transform": {
  5007.             "posX": -10.7201014,
  5008.             "posY": 3.170037,
  5009.             "posZ": 6.307908,
  5010.             "rotX": 0.0166956354,
  5011.             "rotY": 179.975891,
  5012.             "rotZ": 0.08250296,
  5013.             "scaleX": 1.2007668,
  5014.             "scaleY": 1.0,
  5015.             "scaleZ": 1.2007668
  5016.           },
  5017.           "Nickname": "",
  5018.           "Description": "11",
  5019.           "GMNotes": "",
  5020.           "AltLookAngle": {
  5021.             "x": 0.0,
  5022.             "y": 0.0,
  5023.             "z": 0.0
  5024.           },
  5025.           "ColorDiffuse": {
  5026.             "r": 0.713235259,
  5027.             "g": 0.713235259,
  5028.             "b": 0.713235259
  5029.           },
  5030.           "LayoutGroupSortIndex": 0,
  5031.           "Value": 0,
  5032.           "Locked": false,
  5033.           "Grid": true,
  5034.           "Snap": true,
  5035.           "IgnoreFoW": false,
  5036.           "MeasureMovement": false,
  5037.           "DragSelectable": true,
  5038.           "Autoraise": true,
  5039.           "Sticky": true,
  5040.           "Tooltip": true,
  5041.           "GridProjection": false,
  5042.           "HideWhenFaceDown": true,
  5043.           "Hands": true,
  5044.           "CardID": 310,
  5045.           "SidewaysCard": false,
  5046.           "CustomDeck": {
  5047.             "3": {
  5048.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5049.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5050.               "NumWidth": 6,
  5051.               "NumHeight": 4,
  5052.               "BackIsHidden": true,
  5053.               "UniqueBack": false,
  5054.               "Type": 0
  5055.             }
  5056.           },
  5057.           "LuaScript": "",
  5058.           "LuaScriptState": "",
  5059.           "XmlUI": ""
  5060.         },
  5061.         {
  5062.           "GUID": "e70778",
  5063.           "Name": "Card",
  5064.           "Transform": {
  5065.             "posX": -10.72021,
  5066.             "posY": 2.76637363,
  5067.             "posZ": 6.307924,
  5068.             "rotX": 0.01668517,
  5069.             "rotY": 179.9763,
  5070.             "rotZ": 0.0825052261,
  5071.             "scaleX": 1.2007668,
  5072.             "scaleY": 1.0,
  5073.             "scaleZ": 1.2007668
  5074.           },
  5075.           "Nickname": "",
  5076.           "Description": "11",
  5077.           "GMNotes": "",
  5078.           "AltLookAngle": {
  5079.             "x": 0.0,
  5080.             "y": 0.0,
  5081.             "z": 0.0
  5082.           },
  5083.           "ColorDiffuse": {
  5084.             "r": 0.713235259,
  5085.             "g": 0.713235259,
  5086.             "b": 0.713235259
  5087.           },
  5088.           "LayoutGroupSortIndex": 0,
  5089.           "Value": 0,
  5090.           "Locked": false,
  5091.           "Grid": true,
  5092.           "Snap": true,
  5093.           "IgnoreFoW": false,
  5094.           "MeasureMovement": false,
  5095.           "DragSelectable": true,
  5096.           "Autoraise": true,
  5097.           "Sticky": true,
  5098.           "Tooltip": true,
  5099.           "GridProjection": false,
  5100.           "HideWhenFaceDown": true,
  5101.           "Hands": true,
  5102.           "CardID": 310,
  5103.           "SidewaysCard": false,
  5104.           "CustomDeck": {
  5105.             "3": {
  5106.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5107.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5108.               "NumWidth": 6,
  5109.               "NumHeight": 4,
  5110.               "BackIsHidden": true,
  5111.               "UniqueBack": false,
  5112.               "Type": 0
  5113.             }
  5114.           },
  5115.           "LuaScript": "",
  5116.           "LuaScriptState": "",
  5117.           "XmlUI": ""
  5118.         },
  5119.         {
  5120.           "GUID": "6b671b",
  5121.           "Name": "Card",
  5122.           "Transform": {
  5123.             "posX": 0.49352318,
  5124.             "posY": 3.34598923,
  5125.             "posZ": -3.45004463,
  5126.             "rotX": 0.04455088,
  5127.             "rotY": 270.000183,
  5128.             "rotZ": 180.241257,
  5129.             "scaleX": 1.2007668,
  5130.             "scaleY": 1.0,
  5131.             "scaleZ": 1.2007668
  5132.           },
  5133.           "Nickname": "",
  5134.           "Description": "5",
  5135.           "GMNotes": "",
  5136.           "AltLookAngle": {
  5137.             "x": 0.0,
  5138.             "y": 0.0,
  5139.             "z": 0.0
  5140.           },
  5141.           "ColorDiffuse": {
  5142.             "r": 0.713235259,
  5143.             "g": 0.713235259,
  5144.             "b": 0.713235259
  5145.           },
  5146.           "LayoutGroupSortIndex": 0,
  5147.           "Value": 0,
  5148.           "Locked": false,
  5149.           "Grid": true,
  5150.           "Snap": true,
  5151.           "IgnoreFoW": false,
  5152.           "MeasureMovement": false,
  5153.           "DragSelectable": true,
  5154.           "Autoraise": true,
  5155.           "Sticky": true,
  5156.           "Tooltip": true,
  5157.           "GridProjection": false,
  5158.           "HideWhenFaceDown": true,
  5159.           "Hands": true,
  5160.           "CardID": 304,
  5161.           "SidewaysCard": false,
  5162.           "CustomDeck": {
  5163.             "3": {
  5164.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5165.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5166.               "NumWidth": 6,
  5167.               "NumHeight": 4,
  5168.               "BackIsHidden": true,
  5169.               "UniqueBack": false,
  5170.               "Type": 0
  5171.             }
  5172.           },
  5173.           "LuaScript": "",
  5174.           "LuaScriptState": "",
  5175.           "XmlUI": ""
  5176.         },
  5177.         {
  5178.           "GUID": "5e6ccd",
  5179.           "Name": "Card",
  5180.           "Transform": {
  5181.             "posX": -10.7196321,
  5182.             "posY": 2.622134,
  5183.             "posZ": 6.32963848,
  5184.             "rotX": 0.01668659,
  5185.             "rotY": 179.97644,
  5186.             "rotZ": 0.08250229,
  5187.             "scaleX": 1.2007668,
  5188.             "scaleY": 1.0,
  5189.             "scaleZ": 1.2007668
  5190.           },
  5191.           "Nickname": "",
  5192.           "Description": "9",
  5193.           "GMNotes": "",
  5194.           "AltLookAngle": {
  5195.             "x": 0.0,
  5196.             "y": 0.0,
  5197.             "z": 0.0
  5198.           },
  5199.           "ColorDiffuse": {
  5200.             "r": 0.713235259,
  5201.             "g": 0.713235259,
  5202.             "b": 0.713235259
  5203.           },
  5204.           "LayoutGroupSortIndex": 0,
  5205.           "Value": 0,
  5206.           "Locked": false,
  5207.           "Grid": true,
  5208.           "Snap": true,
  5209.           "IgnoreFoW": false,
  5210.           "MeasureMovement": false,
  5211.           "DragSelectable": true,
  5212.           "Autoraise": true,
  5213.           "Sticky": true,
  5214.           "Tooltip": true,
  5215.           "GridProjection": false,
  5216.           "HideWhenFaceDown": true,
  5217.           "Hands": true,
  5218.           "CardID": 308,
  5219.           "SidewaysCard": false,
  5220.           "CustomDeck": {
  5221.             "3": {
  5222.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5223.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5224.               "NumWidth": 6,
  5225.               "NumHeight": 4,
  5226.               "BackIsHidden": true,
  5227.               "UniqueBack": false,
  5228.               "Type": 0
  5229.             }
  5230.           },
  5231.           "LuaScript": "",
  5232.           "LuaScriptState": "",
  5233.           "XmlUI": ""
  5234.         },
  5235.         {
  5236.           "GUID": "a303a8",
  5237.           "Name": "Card",
  5238.           "Transform": {
  5239.             "posX": 17.12896,
  5240.             "posY": 1.46494138,
  5241.             "posZ": -21.3715839,
  5242.             "rotX": 0.0684115,
  5243.             "rotY": 134.9999,
  5244.             "rotZ": 0.0445513353,
  5245.             "scaleX": 1.2007668,
  5246.             "scaleY": 1.0,
  5247.             "scaleZ": 1.2007668
  5248.           },
  5249.           "Nickname": "Flip Three",
  5250.           "Description": "",
  5251.           "GMNotes": "",
  5252.           "AltLookAngle": {
  5253.             "x": 0.0,
  5254.             "y": 0.0,
  5255.             "z": 0.0
  5256.           },
  5257.           "ColorDiffuse": {
  5258.             "r": 0.713235259,
  5259.             "g": 0.713235259,
  5260.             "b": 0.713235259
  5261.           },
  5262.           "Tags": [
  5263.             "special"
  5264.           ],
  5265.           "LayoutGroupSortIndex": 0,
  5266.           "Value": 0,
  5267.           "Locked": false,
  5268.           "Grid": true,
  5269.           "Snap": true,
  5270.           "IgnoreFoW": false,
  5271.           "MeasureMovement": false,
  5272.           "DragSelectable": true,
  5273.           "Autoraise": true,
  5274.           "Sticky": true,
  5275.           "Tooltip": true,
  5276.           "GridProjection": false,
  5277.           "HideWhenFaceDown": true,
  5278.           "Hands": true,
  5279.           "CardID": 321,
  5280.           "SidewaysCard": false,
  5281.           "CustomDeck": {
  5282.             "3": {
  5283.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5284.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5285.               "NumWidth": 6,
  5286.               "NumHeight": 4,
  5287.               "BackIsHidden": true,
  5288.               "UniqueBack": false,
  5289.               "Type": 0
  5290.             }
  5291.           },
  5292.           "LuaScript": "",
  5293.           "LuaScriptState": "",
  5294.           "XmlUI": ""
  5295.         },
  5296.         {
  5297.           "GUID": "43cd6b",
  5298.           "Name": "Card",
  5299.           "Transform": {
  5300.             "posX": -1.59901643,
  5301.             "posY": 2.43921,
  5302.             "posZ": 1.13153934,
  5303.             "rotX": 0.1497693,
  5304.             "rotY": 180.52681,
  5305.             "rotZ": 180.268768,
  5306.             "scaleX": 1.2007668,
  5307.             "scaleY": 1.0,
  5308.             "scaleZ": 1.2007668
  5309.           },
  5310.           "Nickname": "",
  5311.           "Description": "10",
  5312.           "GMNotes": "",
  5313.           "AltLookAngle": {
  5314.             "x": 0.0,
  5315.             "y": 0.0,
  5316.             "z": 0.0
  5317.           },
  5318.           "ColorDiffuse": {
  5319.             "r": 0.713235259,
  5320.             "g": 0.713235259,
  5321.             "b": 0.713235259
  5322.           },
  5323.           "Tags": [
  5324.             "special"
  5325.           ],
  5326.           "LayoutGroupSortIndex": 0,
  5327.           "Value": 0,
  5328.           "Locked": false,
  5329.           "Grid": true,
  5330.           "Snap": true,
  5331.           "IgnoreFoW": false,
  5332.           "MeasureMovement": false,
  5333.           "DragSelectable": true,
  5334.           "Autoraise": true,
  5335.           "Sticky": true,
  5336.           "Tooltip": true,
  5337.           "GridProjection": false,
  5338.           "HideWhenFaceDown": true,
  5339.           "Hands": true,
  5340.           "CardID": 318,
  5341.           "SidewaysCard": false,
  5342.           "CustomDeck": {
  5343.             "3": {
  5344.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5345.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5346.               "NumWidth": 6,
  5347.               "NumHeight": 4,
  5348.               "BackIsHidden": true,
  5349.               "UniqueBack": false,
  5350.               "Type": 0
  5351.             }
  5352.           },
  5353.           "LuaScript": "",
  5354.           "LuaScriptState": "",
  5355.           "XmlUI": ""
  5356.         },
  5357.         {
  5358.           "GUID": "739405",
  5359.           "Name": "Card",
  5360.           "Transform": {
  5361.             "posX": 16.77538,
  5362.             "posY": 1.51113784,
  5363.             "posZ": -14.6540594,
  5364.             "rotX": 0.0541539229,
  5365.             "rotY": 135.0,
  5366.             "rotZ": 0.03182369,
  5367.             "scaleX": 1.2007668,
  5368.             "scaleY": 1.0,
  5369.             "scaleZ": 1.2007668
  5370.           },
  5371.           "Nickname": "",
  5372.           "Description": "10",
  5373.           "GMNotes": "",
  5374.           "AltLookAngle": {
  5375.             "x": 0.0,
  5376.             "y": 0.0,
  5377.             "z": 0.0
  5378.           },
  5379.           "ColorDiffuse": {
  5380.             "r": 0.713235259,
  5381.             "g": 0.713235259,
  5382.             "b": 0.713235259
  5383.           },
  5384.           "LayoutGroupSortIndex": 0,
  5385.           "Value": 0,
  5386.           "Locked": false,
  5387.           "Grid": true,
  5388.           "Snap": true,
  5389.           "IgnoreFoW": false,
  5390.           "MeasureMovement": false,
  5391.           "DragSelectable": true,
  5392.           "Autoraise": true,
  5393.           "Sticky": true,
  5394.           "Tooltip": true,
  5395.           "GridProjection": false,
  5396.           "HideWhenFaceDown": true,
  5397.           "Hands": true,
  5398.           "CardID": 309,
  5399.           "SidewaysCard": false,
  5400.           "CustomDeck": {
  5401.             "3": {
  5402.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5403.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5404.               "NumWidth": 6,
  5405.               "NumHeight": 4,
  5406.               "BackIsHidden": true,
  5407.               "UniqueBack": false,
  5408.               "Type": 0
  5409.             }
  5410.           },
  5411.           "LuaScript": "",
  5412.           "LuaScriptState": "",
  5413.           "XmlUI": ""
  5414.         },
  5415.         {
  5416.           "GUID": "f6ff9c",
  5417.           "Name": "Card",
  5418.           "Transform": {
  5419.             "posX": -10.7203054,
  5420.             "posY": 2.28075528,
  5421.             "posZ": 6.3296566,
  5422.             "rotX": 0.0167956837,
  5423.             "rotY": 179.966248,
  5424.             "rotZ": 0.0813636258,
  5425.             "scaleX": 1.2007668,
  5426.             "scaleY": 1.0,
  5427.             "scaleZ": 1.2007668
  5428.           },
  5429.           "Nickname": "",
  5430.           "Description": "10",
  5431.           "GMNotes": "",
  5432.           "AltLookAngle": {
  5433.             "x": 0.0,
  5434.             "y": 0.0,
  5435.             "z": 0.0
  5436.           },
  5437.           "ColorDiffuse": {
  5438.             "r": 0.713235259,
  5439.             "g": 0.713235259,
  5440.             "b": 0.713235259
  5441.           },
  5442.           "LayoutGroupSortIndex": 0,
  5443.           "Value": 0,
  5444.           "Locked": false,
  5445.           "Grid": true,
  5446.           "Snap": true,
  5447.           "IgnoreFoW": false,
  5448.           "MeasureMovement": false,
  5449.           "DragSelectable": true,
  5450.           "Autoraise": true,
  5451.           "Sticky": true,
  5452.           "Tooltip": true,
  5453.           "GridProjection": false,
  5454.           "HideWhenFaceDown": true,
  5455.           "Hands": true,
  5456.           "CardID": 309,
  5457.           "SidewaysCard": false,
  5458.           "CustomDeck": {
  5459.             "3": {
  5460.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5461.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5462.               "NumWidth": 6,
  5463.               "NumHeight": 4,
  5464.               "BackIsHidden": true,
  5465.               "UniqueBack": false,
  5466.               "Type": 0
  5467.             }
  5468.           },
  5469.           "LuaScript": "",
  5470.           "LuaScriptState": "",
  5471.           "XmlUI": ""
  5472.         },
  5473.         {
  5474.           "GUID": "854ac7",
  5475.           "Name": "Card",
  5476.           "Transform": {
  5477.             "posX": -25.3466187,
  5478.             "posY": 1.53257322,
  5479.             "posZ": 7.210358,
  5480.             "rotX": 0.0168821421,
  5481.             "rotY": 179.993088,
  5482.             "rotZ": 0.07987536,
  5483.             "scaleX": 1.2007668,
  5484.             "scaleY": 1.0,
  5485.             "scaleZ": 1.2007668
  5486.           },
  5487.           "Nickname": "",
  5488.           "Description": "5",
  5489.           "GMNotes": "",
  5490.           "AltLookAngle": {
  5491.             "x": 0.0,
  5492.             "y": 0.0,
  5493.             "z": 0.0
  5494.           },
  5495.           "ColorDiffuse": {
  5496.             "r": 0.713235259,
  5497.             "g": 0.713235259,
  5498.             "b": 0.713235259
  5499.           },
  5500.           "LayoutGroupSortIndex": 0,
  5501.           "Value": 0,
  5502.           "Locked": false,
  5503.           "Grid": true,
  5504.           "Snap": true,
  5505.           "IgnoreFoW": false,
  5506.           "MeasureMovement": false,
  5507.           "DragSelectable": true,
  5508.           "Autoraise": true,
  5509.           "Sticky": true,
  5510.           "Tooltip": true,
  5511.           "GridProjection": false,
  5512.           "HideWhenFaceDown": true,
  5513.           "Hands": true,
  5514.           "CardID": 304,
  5515.           "SidewaysCard": false,
  5516.           "CustomDeck": {
  5517.             "3": {
  5518.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5519.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5520.               "NumWidth": 6,
  5521.               "NumHeight": 4,
  5522.               "BackIsHidden": true,
  5523.               "UniqueBack": false,
  5524.               "Type": 0
  5525.             }
  5526.           },
  5527.           "LuaScript": "",
  5528.           "LuaScriptState": "",
  5529.           "XmlUI": ""
  5530.         },
  5531.         {
  5532.           "GUID": "1e90e8",
  5533.           "Name": "Card",
  5534.           "Transform": {
  5535.             "posX": -10.7201567,
  5536.             "posY": 2.88142323,
  5537.             "posZ": 6.307908,
  5538.             "rotX": 0.0166994371,
  5539.             "rotY": 179.976181,
  5540.             "rotZ": 0.08250223,
  5541.             "scaleX": 1.2007668,
  5542.             "scaleY": 1.0,
  5543.             "scaleZ": 1.2007668
  5544.           },
  5545.           "Nickname": "",
  5546.           "Description": "11",
  5547.           "GMNotes": "",
  5548.           "AltLookAngle": {
  5549.             "x": 0.0,
  5550.             "y": 0.0,
  5551.             "z": 0.0
  5552.           },
  5553.           "ColorDiffuse": {
  5554.             "r": 0.713235259,
  5555.             "g": 0.713235259,
  5556.             "b": 0.713235259
  5557.           },
  5558.           "LayoutGroupSortIndex": 0,
  5559.           "Value": 0,
  5560.           "Locked": false,
  5561.           "Grid": true,
  5562.           "Snap": true,
  5563.           "IgnoreFoW": false,
  5564.           "MeasureMovement": false,
  5565.           "DragSelectable": true,
  5566.           "Autoraise": true,
  5567.           "Sticky": true,
  5568.           "Tooltip": true,
  5569.           "GridProjection": false,
  5570.           "HideWhenFaceDown": true,
  5571.           "Hands": true,
  5572.           "CardID": 310,
  5573.           "SidewaysCard": false,
  5574.           "CustomDeck": {
  5575.             "3": {
  5576.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5577.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5578.               "NumWidth": 6,
  5579.               "NumHeight": 4,
  5580.               "BackIsHidden": true,
  5581.               "UniqueBack": false,
  5582.               "Type": 0
  5583.             }
  5584.           },
  5585.           "LuaScript": "",
  5586.           "LuaScriptState": "",
  5587.           "XmlUI": ""
  5588.         },
  5589.         {
  5590.           "GUID": "20f8fd",
  5591.           "Name": "Card",
  5592.           "Transform": {
  5593.             "posX": -10.7201376,
  5594.             "posY": 3.093309,
  5595.             "posZ": 6.30791235,
  5596.             "rotX": 0.0167023782,
  5597.             "rotY": 179.975952,
  5598.             "rotZ": 0.0825075358,
  5599.             "scaleX": 1.2007668,
  5600.             "scaleY": 1.0,
  5601.             "scaleZ": 1.2007668
  5602.           },
  5603.           "Nickname": "",
  5604.           "Description": "8",
  5605.           "GMNotes": "",
  5606.           "AltLookAngle": {
  5607.             "x": 0.0,
  5608.             "y": 0.0,
  5609.             "z": 0.0
  5610.           },
  5611.           "ColorDiffuse": {
  5612.             "r": 0.713235259,
  5613.             "g": 0.713235259,
  5614.             "b": 0.713235259
  5615.           },
  5616.           "LayoutGroupSortIndex": 0,
  5617.           "Value": 0,
  5618.           "Locked": false,
  5619.           "Grid": true,
  5620.           "Snap": true,
  5621.           "IgnoreFoW": false,
  5622.           "MeasureMovement": false,
  5623.           "DragSelectable": true,
  5624.           "Autoraise": true,
  5625.           "Sticky": true,
  5626.           "Tooltip": true,
  5627.           "GridProjection": false,
  5628.           "HideWhenFaceDown": true,
  5629.           "Hands": true,
  5630.           "CardID": 307,
  5631.           "SidewaysCard": false,
  5632.           "CustomDeck": {
  5633.             "3": {
  5634.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5635.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5636.               "NumWidth": 6,
  5637.               "NumHeight": 4,
  5638.               "BackIsHidden": true,
  5639.               "UniqueBack": false,
  5640.               "Type": 0
  5641.             }
  5642.           },
  5643.           "LuaScript": "",
  5644.           "LuaScriptState": "",
  5645.           "XmlUI": ""
  5646.         },
  5647.         {
  5648.           "GUID": "4a4f76",
  5649.           "Name": "Card",
  5650.           "Transform": {
  5651.             "posX": -10.719636,
  5652.             "posY": 2.63309932,
  5653.             "posZ": 6.32964,
  5654.             "rotX": 0.0166858062,
  5655.             "rotY": 179.97644,
  5656.             "rotZ": 0.08250346,
  5657.             "scaleX": 1.2007668,
  5658.             "scaleY": 1.0,
  5659.             "scaleZ": 1.2007668
  5660.           },
  5661.           "Nickname": "",
  5662.           "Description": "12",
  5663.           "GMNotes": "",
  5664.           "AltLookAngle": {
  5665.             "x": 0.0,
  5666.             "y": 0.0,
  5667.             "z": 0.0
  5668.           },
  5669.           "ColorDiffuse": {
  5670.             "r": 0.713235259,
  5671.             "g": 0.713235259,
  5672.             "b": 0.713235259
  5673.           },
  5674.           "LayoutGroupSortIndex": 0,
  5675.           "Value": 0,
  5676.           "Locked": false,
  5677.           "Grid": true,
  5678.           "Snap": true,
  5679.           "IgnoreFoW": false,
  5680.           "MeasureMovement": false,
  5681.           "DragSelectable": true,
  5682.           "Autoraise": true,
  5683.           "Sticky": true,
  5684.           "Tooltip": true,
  5685.           "GridProjection": false,
  5686.           "HideWhenFaceDown": true,
  5687.           "Hands": true,
  5688.           "CardID": 311,
  5689.           "SidewaysCard": false,
  5690.           "CustomDeck": {
  5691.             "3": {
  5692.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5693.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5694.               "NumWidth": 6,
  5695.               "NumHeight": 4,
  5696.               "BackIsHidden": true,
  5697.               "UniqueBack": false,
  5698.               "Type": 0
  5699.             }
  5700.           },
  5701.           "LuaScript": "",
  5702.           "LuaScriptState": "",
  5703.           "XmlUI": ""
  5704.         },
  5705.         {
  5706.           "GUID": "19eb6a",
  5707.           "Name": "Card",
  5708.           "Transform": {
  5709.             "posX": -10.7203093,
  5710.             "posY": 2.291721,
  5711.             "posZ": 6.32965755,
  5712.             "rotX": 0.01676292,
  5713.             "rotY": 179.978714,
  5714.             "rotZ": 0.08154822,
  5715.             "scaleX": 1.2007668,
  5716.             "scaleY": 1.0,
  5717.             "scaleZ": 1.2007668
  5718.           },
  5719.           "Nickname": "",
  5720.           "Description": "10",
  5721.           "GMNotes": "",
  5722.           "AltLookAngle": {
  5723.             "x": 0.0,
  5724.             "y": 0.0,
  5725.             "z": 0.0
  5726.           },
  5727.           "ColorDiffuse": {
  5728.             "r": 0.713235259,
  5729.             "g": 0.713235259,
  5730.             "b": 0.713235259
  5731.           },
  5732.           "LayoutGroupSortIndex": 0,
  5733.           "Value": 0,
  5734.           "Locked": false,
  5735.           "Grid": true,
  5736.           "Snap": true,
  5737.           "IgnoreFoW": false,
  5738.           "MeasureMovement": false,
  5739.           "DragSelectable": true,
  5740.           "Autoraise": true,
  5741.           "Sticky": true,
  5742.           "Tooltip": true,
  5743.           "GridProjection": false,
  5744.           "HideWhenFaceDown": true,
  5745.           "Hands": true,
  5746.           "CardID": 309,
  5747.           "SidewaysCard": false,
  5748.           "CustomDeck": {
  5749.             "3": {
  5750.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5751.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5752.               "NumWidth": 6,
  5753.               "NumHeight": 4,
  5754.               "BackIsHidden": true,
  5755.               "UniqueBack": false,
  5756.               "Type": 0
  5757.             }
  5758.           },
  5759.           "LuaScript": "",
  5760.           "LuaScriptState": "",
  5761.           "XmlUI": ""
  5762.         },
  5763.         {
  5764.           "GUID": "285f00",
  5765.           "Name": "Card",
  5766.           "Transform": {
  5767.             "posX": -21.3715668,
  5768.             "posY": 1.56100011,
  5769.             "posZ": -17.1289349,
  5770.             "rotX": 359.964355,
  5771.             "rotY": 224.999954,
  5772.             "rotZ": 0.0547284,
  5773.             "scaleX": 1.2007668,
  5774.             "scaleY": 1.0,
  5775.             "scaleZ": 1.2007668
  5776.           },
  5777.           "Nickname": "",
  5778.           "Description": "6",
  5779.           "GMNotes": "",
  5780.           "AltLookAngle": {
  5781.             "x": 0.0,
  5782.             "y": 0.0,
  5783.             "z": 0.0
  5784.           },
  5785.           "ColorDiffuse": {
  5786.             "r": 0.713235259,
  5787.             "g": 0.713235259,
  5788.             "b": 0.713235259
  5789.           },
  5790.           "Tags": [
  5791.             "special"
  5792.           ],
  5793.           "LayoutGroupSortIndex": 0,
  5794.           "Value": 0,
  5795.           "Locked": false,
  5796.           "Grid": true,
  5797.           "Snap": true,
  5798.           "IgnoreFoW": false,
  5799.           "MeasureMovement": false,
  5800.           "DragSelectable": true,
  5801.           "Autoraise": true,
  5802.           "Sticky": true,
  5803.           "Tooltip": true,
  5804.           "GridProjection": false,
  5805.           "HideWhenFaceDown": true,
  5806.           "Hands": true,
  5807.           "CardID": 316,
  5808.           "SidewaysCard": false,
  5809.           "CustomDeck": {
  5810.             "3": {
  5811.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5812.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5813.               "NumWidth": 6,
  5814.               "NumHeight": 4,
  5815.               "BackIsHidden": true,
  5816.               "UniqueBack": false,
  5817.               "Type": 0
  5818.             }
  5819.           },
  5820.           "LuaScript": "",
  5821.           "LuaScriptState": "",
  5822.           "XmlUI": ""
  5823.         },
  5824.         {
  5825.           "GUID": "19d57a",
  5826.           "Name": "Card",
  5827.           "Transform": {
  5828.             "posX": -14.6540451,
  5829.             "posY": 1.51058972,
  5830.             "posZ": -16.7753887,
  5831.             "rotX": 359.955566,
  5832.             "rotY": 225.000137,
  5833.             "rotZ": 0.0676227659,
  5834.             "scaleX": 1.2007668,
  5835.             "scaleY": 1.0,
  5836.             "scaleZ": 1.2007668
  5837.           },
  5838.           "Nickname": "",
  5839.           "Description": "8",
  5840.           "GMNotes": "",
  5841.           "AltLookAngle": {
  5842.             "x": 0.0,
  5843.             "y": 0.0,
  5844.             "z": 0.0
  5845.           },
  5846.           "ColorDiffuse": {
  5847.             "r": 0.713235259,
  5848.             "g": 0.713235259,
  5849.             "b": 0.713235259
  5850.           },
  5851.           "LayoutGroupSortIndex": 0,
  5852.           "Value": 0,
  5853.           "Locked": false,
  5854.           "Grid": true,
  5855.           "Snap": true,
  5856.           "IgnoreFoW": false,
  5857.           "MeasureMovement": false,
  5858.           "DragSelectable": true,
  5859.           "Autoraise": true,
  5860.           "Sticky": true,
  5861.           "Tooltip": true,
  5862.           "GridProjection": false,
  5863.           "HideWhenFaceDown": true,
  5864.           "Hands": true,
  5865.           "CardID": 307,
  5866.           "SidewaysCard": false,
  5867.           "CustomDeck": {
  5868.             "3": {
  5869.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5870.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5871.               "NumWidth": 6,
  5872.               "NumHeight": 4,
  5873.               "BackIsHidden": true,
  5874.               "UniqueBack": false,
  5875.               "Type": 0
  5876.             }
  5877.           },
  5878.           "LuaScript": "",
  5879.           "LuaScriptState": "",
  5880.           "XmlUI": ""
  5881.         },
  5882.         {
  5883.           "GUID": "d88a12",
  5884.           "Name": "Card",
  5885.           "Transform": {
  5886.             "posX": -10.6554985,
  5887.             "posY": 1.78331029,
  5888.             "posZ": 6.354537,
  5889.             "rotX": 0.016913509,
  5890.             "rotY": 179.968262,
  5891.             "rotZ": 0.0798883438,
  5892.             "scaleX": 1.2007668,
  5893.             "scaleY": 1.0,
  5894.             "scaleZ": 1.2007668
  5895.           },
  5896.           "Nickname": "",
  5897.           "Description": "6",
  5898.           "GMNotes": "",
  5899.           "AltLookAngle": {
  5900.             "x": 0.0,
  5901.             "y": 0.0,
  5902.             "z": 0.0
  5903.           },
  5904.           "ColorDiffuse": {
  5905.             "r": 0.713235259,
  5906.             "g": 0.713235259,
  5907.             "b": 0.713235259
  5908.           },
  5909.           "LayoutGroupSortIndex": 0,
  5910.           "Value": 0,
  5911.           "Locked": false,
  5912.           "Grid": true,
  5913.           "Snap": true,
  5914.           "IgnoreFoW": false,
  5915.           "MeasureMovement": false,
  5916.           "DragSelectable": true,
  5917.           "Autoraise": true,
  5918.           "Sticky": true,
  5919.           "Tooltip": true,
  5920.           "GridProjection": false,
  5921.           "HideWhenFaceDown": true,
  5922.           "Hands": true,
  5923.           "CardID": 305,
  5924.           "SidewaysCard": false,
  5925.           "CustomDeck": {
  5926.             "3": {
  5927.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5928.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5929.               "NumWidth": 6,
  5930.               "NumHeight": 4,
  5931.               "BackIsHidden": true,
  5932.               "UniqueBack": false,
  5933.               "Type": 0
  5934.             }
  5935.           },
  5936.           "LuaScript": "",
  5937.           "LuaScriptState": "",
  5938.           "XmlUI": ""
  5939.         },
  5940.         {
  5941.           "GUID": "a4b639",
  5942.           "Name": "Card",
  5943.           "Transform": {
  5944.             "posX": -10.7200422,
  5945.             "posY": 3.23582888,
  5946.             "posZ": 6.307902,
  5947.             "rotX": 0.0166921988,
  5948.             "rotY": 179.97583,
  5949.             "rotZ": 0.08250146,
  5950.             "scaleX": 1.2007668,
  5951.             "scaleY": 1.0,
  5952.             "scaleZ": 1.2007668
  5953.           },
  5954.           "Nickname": "",
  5955.           "Description": "6",
  5956.           "GMNotes": "",
  5957.           "AltLookAngle": {
  5958.             "x": 0.0,
  5959.             "y": 0.0,
  5960.             "z": 0.0
  5961.           },
  5962.           "ColorDiffuse": {
  5963.             "r": 0.713235259,
  5964.             "g": 0.713235259,
  5965.             "b": 0.713235259
  5966.           },
  5967.           "LayoutGroupSortIndex": 0,
  5968.           "Value": 0,
  5969.           "Locked": false,
  5970.           "Grid": true,
  5971.           "Snap": true,
  5972.           "IgnoreFoW": false,
  5973.           "MeasureMovement": false,
  5974.           "DragSelectable": true,
  5975.           "Autoraise": true,
  5976.           "Sticky": true,
  5977.           "Tooltip": true,
  5978.           "GridProjection": false,
  5979.           "HideWhenFaceDown": true,
  5980.           "Hands": true,
  5981.           "CardID": 305,
  5982.           "SidewaysCard": false,
  5983.           "CustomDeck": {
  5984.             "3": {
  5985.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  5986.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  5987.               "NumWidth": 6,
  5988.               "NumHeight": 4,
  5989.               "BackIsHidden": true,
  5990.               "UniqueBack": false,
  5991.               "Type": 0
  5992.             }
  5993.           },
  5994.           "LuaScript": "",
  5995.           "LuaScriptState": "",
  5996.           "XmlUI": ""
  5997.         },
  5998.         {
  5999.           "GUID": "d756fe",
  6000.           "Name": "Card",
  6001.           "Transform": {
  6002.             "posX": -10.7200346,
  6003.             "posY": 3.04887223,
  6004.             "posZ": 6.30789328,
  6005.             "rotX": 0.0166912191,
  6006.             "rotY": 179.976013,
  6007.             "rotZ": 0.08249964,
  6008.             "scaleX": 1.2007668,
  6009.             "scaleY": 1.0,
  6010.             "scaleZ": 1.2007668
  6011.           },
  6012.           "Nickname": "",
  6013.           "Description": "12",
  6014.           "GMNotes": "",
  6015.           "AltLookAngle": {
  6016.             "x": 0.0,
  6017.             "y": 0.0,
  6018.             "z": 0.0
  6019.           },
  6020.           "ColorDiffuse": {
  6021.             "r": 0.713235259,
  6022.             "g": 0.713235259,
  6023.             "b": 0.713235259
  6024.           },
  6025.           "LayoutGroupSortIndex": 0,
  6026.           "Value": 0,
  6027.           "Locked": false,
  6028.           "Grid": true,
  6029.           "Snap": true,
  6030.           "IgnoreFoW": false,
  6031.           "MeasureMovement": false,
  6032.           "DragSelectable": true,
  6033.           "Autoraise": true,
  6034.           "Sticky": true,
  6035.           "Tooltip": true,
  6036.           "GridProjection": false,
  6037.           "HideWhenFaceDown": true,
  6038.           "Hands": true,
  6039.           "CardID": 311,
  6040.           "SidewaysCard": false,
  6041.           "CustomDeck": {
  6042.             "3": {
  6043.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6044.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6045.               "NumWidth": 6,
  6046.               "NumHeight": 4,
  6047.               "BackIsHidden": true,
  6048.               "UniqueBack": false,
  6049.               "Type": 0
  6050.             }
  6051.           },
  6052.           "LuaScript": "",
  6053.           "LuaScriptState": "",
  6054.           "XmlUI": ""
  6055.         },
  6056.         {
  6057.           "GUID": "125971",
  6058.           "Name": "Card",
  6059.           "Transform": {
  6060.             "posX": -10.7200985,
  6061.             "posY": 3.159072,
  6062.             "posZ": 6.30790663,
  6063.             "rotX": 0.0166959781,
  6064.             "rotY": 179.975891,
  6065.             "rotZ": 0.0825014859,
  6066.             "scaleX": 1.2007668,
  6067.             "scaleY": 1.0,
  6068.             "scaleZ": 1.2007668
  6069.           },
  6070.           "Nickname": "",
  6071.           "Description": "12",
  6072.           "GMNotes": "",
  6073.           "AltLookAngle": {
  6074.             "x": 0.0,
  6075.             "y": 0.0,
  6076.             "z": 0.0
  6077.           },
  6078.           "ColorDiffuse": {
  6079.             "r": 0.713235259,
  6080.             "g": 0.713235259,
  6081.             "b": 0.713235259
  6082.           },
  6083.           "LayoutGroupSortIndex": 0,
  6084.           "Value": 0,
  6085.           "Locked": false,
  6086.           "Grid": true,
  6087.           "Snap": true,
  6088.           "IgnoreFoW": false,
  6089.           "MeasureMovement": false,
  6090.           "DragSelectable": true,
  6091.           "Autoraise": true,
  6092.           "Sticky": true,
  6093.           "Tooltip": true,
  6094.           "GridProjection": false,
  6095.           "HideWhenFaceDown": true,
  6096.           "Hands": true,
  6097.           "CardID": 311,
  6098.           "SidewaysCard": false,
  6099.           "CustomDeck": {
  6100.             "3": {
  6101.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6102.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6103.               "NumWidth": 6,
  6104.               "NumHeight": 4,
  6105.               "BackIsHidden": true,
  6106.               "UniqueBack": false,
  6107.               "Type": 0
  6108.             }
  6109.           },
  6110.           "LuaScript": "",
  6111.           "LuaScriptState": "",
  6112.           "XmlUI": ""
  6113.         },
  6114.         {
  6115.           "GUID": "6cf55c",
  6116.           "Name": "Card",
  6117.           "Transform": {
  6118.             "posX": -10.7196407,
  6119.             "posY": 2.535919,
  6120.             "posZ": 6.329633,
  6121.             "rotX": 0.0166353937,
  6122.             "rotY": 179.9765,
  6123.             "rotZ": 0.0829789862,
  6124.             "scaleX": 1.2007668,
  6125.             "scaleY": 1.0,
  6126.             "scaleZ": 1.2007668
  6127.           },
  6128.           "Nickname": "",
  6129.           "Description": "2",
  6130.           "GMNotes": "",
  6131.           "AltLookAngle": {
  6132.             "x": 0.0,
  6133.             "y": 0.0,
  6134.             "z": 0.0
  6135.           },
  6136.           "ColorDiffuse": {
  6137.             "r": 0.713235259,
  6138.             "g": 0.713235259,
  6139.             "b": 0.713235259
  6140.           },
  6141.           "LayoutGroupSortIndex": 0,
  6142.           "Value": 0,
  6143.           "Locked": false,
  6144.           "Grid": true,
  6145.           "Snap": true,
  6146.           "IgnoreFoW": false,
  6147.           "MeasureMovement": false,
  6148.           "DragSelectable": true,
  6149.           "Autoraise": true,
  6150.           "Sticky": true,
  6151.           "Tooltip": true,
  6152.           "GridProjection": false,
  6153.           "HideWhenFaceDown": true,
  6154.           "Hands": true,
  6155.           "CardID": 301,
  6156.           "SidewaysCard": false,
  6157.           "CustomDeck": {
  6158.             "3": {
  6159.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6160.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6161.               "NumWidth": 6,
  6162.               "NumHeight": 4,
  6163.               "BackIsHidden": true,
  6164.               "UniqueBack": false,
  6165.               "Type": 0
  6166.             }
  6167.           },
  6168.           "LuaScript": "",
  6169.           "LuaScriptState": "",
  6170.           "XmlUI": ""
  6171.         },
  6172.         {
  6173.           "GUID": "6cdd75",
  6174.           "Name": "Card",
  6175.           "Transform": {
  6176.             "posX": -2.99998951,
  6177.             "posY": 2.51379871,
  6178.             "posZ": -16.3500042,
  6179.             "rotX": 0.0168724284,
  6180.             "rotY": 180.0,
  6181.             "rotZ": 0.07987788,
  6182.             "scaleX": 1.2007668,
  6183.             "scaleY": 1.0,
  6184.             "scaleZ": 1.2007668
  6185.           },
  6186.           "Nickname": "",
  6187.           "Description": "12",
  6188.           "GMNotes": "",
  6189.           "AltLookAngle": {
  6190.             "x": 0.0,
  6191.             "y": 0.0,
  6192.             "z": 0.0
  6193.           },
  6194.           "ColorDiffuse": {
  6195.             "r": 0.713235259,
  6196.             "g": 0.713235259,
  6197.             "b": 0.713235259
  6198.           },
  6199.           "LayoutGroupSortIndex": 0,
  6200.           "Value": 0,
  6201.           "Locked": false,
  6202.           "Grid": true,
  6203.           "Snap": true,
  6204.           "IgnoreFoW": false,
  6205.           "MeasureMovement": false,
  6206.           "DragSelectable": true,
  6207.           "Autoraise": true,
  6208.           "Sticky": true,
  6209.           "Tooltip": true,
  6210.           "GridProjection": false,
  6211.           "HideWhenFaceDown": true,
  6212.           "Hands": true,
  6213.           "CardID": 311,
  6214.           "SidewaysCard": false,
  6215.           "CustomDeck": {
  6216.             "3": {
  6217.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6218.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6219.               "NumWidth": 6,
  6220.               "NumHeight": 4,
  6221.               "BackIsHidden": true,
  6222.               "UniqueBack": false,
  6223.               "Type": 0
  6224.             }
  6225.           },
  6226.           "LuaScript": "",
  6227.           "LuaScriptState": "",
  6228.           "XmlUI": ""
  6229.         },
  6230.         {
  6231.           "GUID": "859eb7",
  6232.           "Name": "Card",
  6233.           "Transform": {
  6234.             "posX": -10.7201357,
  6235.             "posY": 2.87087774,
  6236.             "posZ": 6.30790758,
  6237.             "rotX": 0.0166912619,
  6238.             "rotY": 179.9762,
  6239.             "rotZ": 0.08249639,
  6240.             "scaleX": 1.2007668,
  6241.             "scaleY": 1.0,
  6242.             "scaleZ": 1.2007668
  6243.           },
  6244.           "Nickname": "",
  6245.           "Description": "9",
  6246.           "GMNotes": "",
  6247.           "AltLookAngle": {
  6248.             "x": 0.0,
  6249.             "y": 0.0,
  6250.             "z": 0.0
  6251.           },
  6252.           "ColorDiffuse": {
  6253.             "r": 0.713235259,
  6254.             "g": 0.713235259,
  6255.             "b": 0.713235259
  6256.           },
  6257.           "LayoutGroupSortIndex": 0,
  6258.           "Value": 0,
  6259.           "Locked": false,
  6260.           "Grid": true,
  6261.           "Snap": true,
  6262.           "IgnoreFoW": false,
  6263.           "MeasureMovement": false,
  6264.           "DragSelectable": true,
  6265.           "Autoraise": true,
  6266.           "Sticky": true,
  6267.           "Tooltip": true,
  6268.           "GridProjection": false,
  6269.           "HideWhenFaceDown": true,
  6270.           "Hands": true,
  6271.           "CardID": 308,
  6272.           "SidewaysCard": false,
  6273.           "CustomDeck": {
  6274.             "3": {
  6275.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6276.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6277.               "NumWidth": 6,
  6278.               "NumHeight": 4,
  6279.               "BackIsHidden": true,
  6280.               "UniqueBack": false,
  6281.               "Type": 0
  6282.             }
  6283.           },
  6284.           "LuaScript": "",
  6285.           "LuaScriptState": "",
  6286.           "XmlUI": ""
  6287.         },
  6288.         {
  6289.           "GUID": "165b8f",
  6290.           "Name": "Card",
  6291.           "Transform": {
  6292.             "posX": -1.599382,
  6293.             "posY": 2.3933847,
  6294.             "posZ": 1.13148749,
  6295.             "rotX": 0.01584696,
  6296.             "rotY": 180.000473,
  6297.             "rotZ": 182.456863,
  6298.             "scaleX": 1.2007668,
  6299.             "scaleY": 1.0,
  6300.             "scaleZ": 1.2007668
  6301.           },
  6302.           "Nickname": "",
  6303.           "Description": "10",
  6304.           "GMNotes": "",
  6305.           "AltLookAngle": {
  6306.             "x": 0.0,
  6307.             "y": 0.0,
  6308.             "z": 0.0
  6309.           },
  6310.           "ColorDiffuse": {
  6311.             "r": 0.713235259,
  6312.             "g": 0.713235259,
  6313.             "b": 0.713235259
  6314.           },
  6315.           "LayoutGroupSortIndex": 0,
  6316.           "Value": 0,
  6317.           "Locked": false,
  6318.           "Grid": true,
  6319.           "Snap": true,
  6320.           "IgnoreFoW": false,
  6321.           "MeasureMovement": false,
  6322.           "DragSelectable": true,
  6323.           "Autoraise": true,
  6324.           "Sticky": true,
  6325.           "Tooltip": true,
  6326.           "GridProjection": false,
  6327.           "HideWhenFaceDown": true,
  6328.           "Hands": true,
  6329.           "CardID": 309,
  6330.           "SidewaysCard": false,
  6331.           "CustomDeck": {
  6332.             "3": {
  6333.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6334.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6335.               "NumWidth": 6,
  6336.               "NumHeight": 4,
  6337.               "BackIsHidden": true,
  6338.               "UniqueBack": false,
  6339.               "Type": 0
  6340.             }
  6341.           },
  6342.           "LuaScript": "",
  6343.           "LuaScriptState": "",
  6344.           "XmlUI": ""
  6345.         },
  6346.         {
  6347.           "GUID": "b10e42",
  6348.           "Name": "Card",
  6349.           "Transform": {
  6350.             "posX": 14.6540813,
  6351.             "posY": 1.469745,
  6352.             "posZ": -16.7753849,
  6353.             "rotX": 0.06841199,
  6354.             "rotY": 135.000015,
  6355.             "rotZ": 0.044552587,
  6356.             "scaleX": 1.2007668,
  6357.             "scaleY": 1.0,
  6358.             "scaleZ": 1.2007668
  6359.           },
  6360.           "Nickname": "",
  6361.           "Description": "2",
  6362.           "GMNotes": "",
  6363.           "AltLookAngle": {
  6364.             "x": 0.0,
  6365.             "y": 0.0,
  6366.             "z": 0.0
  6367.           },
  6368.           "ColorDiffuse": {
  6369.             "r": 0.713235259,
  6370.             "g": 0.713235259,
  6371.             "b": 0.713235259
  6372.           },
  6373.           "LayoutGroupSortIndex": 0,
  6374.           "Value": 0,
  6375.           "Locked": false,
  6376.           "Grid": true,
  6377.           "Snap": true,
  6378.           "IgnoreFoW": false,
  6379.           "MeasureMovement": false,
  6380.           "DragSelectable": true,
  6381.           "Autoraise": true,
  6382.           "Sticky": true,
  6383.           "Tooltip": true,
  6384.           "GridProjection": false,
  6385.           "HideWhenFaceDown": true,
  6386.           "Hands": true,
  6387.           "CardID": 301,
  6388.           "SidewaysCard": false,
  6389.           "CustomDeck": {
  6390.             "3": {
  6391.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6392.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6393.               "NumWidth": 6,
  6394.               "NumHeight": 4,
  6395.               "BackIsHidden": true,
  6396.               "UniqueBack": false,
  6397.               "Type": 0
  6398.             }
  6399.           },
  6400.           "LuaScript": "",
  6401.           "LuaScriptState": "",
  6402.           "XmlUI": ""
  6403.         },
  6404.         {
  6405.           "GUID": "3a2d03",
  6406.           "Name": "Card",
  6407.           "Transform": {
  6408.             "posX": -10.6556244,
  6409.             "posY": 1.71184075,
  6410.             "posZ": 6.354563,
  6411.             "rotX": 0.016915163,
  6412.             "rotY": 179.968277,
  6413.             "rotZ": 0.07986872,
  6414.             "scaleX": 1.2007668,
  6415.             "scaleY": 1.0,
  6416.             "scaleZ": 1.2007668
  6417.           },
  6418.           "Nickname": "",
  6419.           "Description": "7",
  6420.           "GMNotes": "",
  6421.           "AltLookAngle": {
  6422.             "x": 0.0,
  6423.             "y": 0.0,
  6424.             "z": 0.0
  6425.           },
  6426.           "ColorDiffuse": {
  6427.             "r": 0.713235259,
  6428.             "g": 0.713235259,
  6429.             "b": 0.713235259
  6430.           },
  6431.           "LayoutGroupSortIndex": 0,
  6432.           "Value": 0,
  6433.           "Locked": false,
  6434.           "Grid": true,
  6435.           "Snap": true,
  6436.           "IgnoreFoW": false,
  6437.           "MeasureMovement": false,
  6438.           "DragSelectable": true,
  6439.           "Autoraise": true,
  6440.           "Sticky": true,
  6441.           "Tooltip": true,
  6442.           "GridProjection": false,
  6443.           "HideWhenFaceDown": true,
  6444.           "Hands": true,
  6445.           "CardID": 306,
  6446.           "SidewaysCard": false,
  6447.           "CustomDeck": {
  6448.             "3": {
  6449.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6450.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6451.               "NumWidth": 6,
  6452.               "NumHeight": 4,
  6453.               "BackIsHidden": true,
  6454.               "UniqueBack": false,
  6455.               "Type": 0
  6456.             }
  6457.           },
  6458.           "LuaScript": "",
  6459.           "LuaScriptState": "",
  6460.           "XmlUI": ""
  6461.         },
  6462.         {
  6463.           "GUID": "911aa1",
  6464.           "Name": "Card",
  6465.           "Transform": {
  6466.             "posX": -10.7200737,
  6467.             "posY": 2.99286437,
  6468.             "posZ": 6.30789948,
  6469.             "rotX": 0.0166918337,
  6470.             "rotY": 179.976074,
  6471.             "rotZ": 0.08249691,
  6472.             "scaleX": 1.2007668,
  6473.             "scaleY": 1.0,
  6474.             "scaleZ": 1.2007668
  6475.           },
  6476.           "Nickname": "",
  6477.           "Description": "11",
  6478.           "GMNotes": "",
  6479.           "AltLookAngle": {
  6480.             "x": 0.0,
  6481.             "y": 0.0,
  6482.             "z": 0.0
  6483.           },
  6484.           "ColorDiffuse": {
  6485.             "r": 0.713235259,
  6486.             "g": 0.713235259,
  6487.             "b": 0.713235259
  6488.           },
  6489.           "LayoutGroupSortIndex": 0,
  6490.           "Value": 0,
  6491.           "Locked": false,
  6492.           "Grid": true,
  6493.           "Snap": true,
  6494.           "IgnoreFoW": false,
  6495.           "MeasureMovement": false,
  6496.           "DragSelectable": true,
  6497.           "Autoraise": true,
  6498.           "Sticky": true,
  6499.           "Tooltip": true,
  6500.           "GridProjection": false,
  6501.           "HideWhenFaceDown": true,
  6502.           "Hands": true,
  6503.           "CardID": 310,
  6504.           "SidewaysCard": false,
  6505.           "CustomDeck": {
  6506.             "3": {
  6507.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6508.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6509.               "NumWidth": 6,
  6510.               "NumHeight": 4,
  6511.               "BackIsHidden": true,
  6512.               "UniqueBack": false,
  6513.               "Type": 0
  6514.             }
  6515.           },
  6516.           "LuaScript": "",
  6517.           "LuaScriptState": "",
  6518.           "XmlUI": ""
  6519.         },
  6520.         {
  6521.           "GUID": "439037",
  6522.           "Name": "Card",
  6523.           "Transform": {
  6524.             "posX": -10.7201061,
  6525.             "posY": 2.92528462,
  6526.             "posZ": 6.307904,
  6527.             "rotX": 0.0166912563,
  6528.             "rotY": 179.976135,
  6529.             "rotZ": 0.08249609,
  6530.             "scaleX": 1.2007668,
  6531.             "scaleY": 1.0,
  6532.             "scaleZ": 1.2007668
  6533.           },
  6534.           "Nickname": "",
  6535.           "Description": "9",
  6536.           "GMNotes": "",
  6537.           "AltLookAngle": {
  6538.             "x": 0.0,
  6539.             "y": 0.0,
  6540.             "z": 0.0
  6541.           },
  6542.           "ColorDiffuse": {
  6543.             "r": 0.713235259,
  6544.             "g": 0.713235259,
  6545.             "b": 0.713235259
  6546.           },
  6547.           "LayoutGroupSortIndex": 0,
  6548.           "Value": 0,
  6549.           "Locked": false,
  6550.           "Grid": true,
  6551.           "Snap": true,
  6552.           "IgnoreFoW": false,
  6553.           "MeasureMovement": false,
  6554.           "DragSelectable": true,
  6555.           "Autoraise": true,
  6556.           "Sticky": true,
  6557.           "Tooltip": true,
  6558.           "GridProjection": false,
  6559.           "HideWhenFaceDown": true,
  6560.           "Hands": true,
  6561.           "CardID": 308,
  6562.           "SidewaysCard": false,
  6563.           "CustomDeck": {
  6564.             "3": {
  6565.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6566.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6567.               "NumWidth": 6,
  6568.               "NumHeight": 4,
  6569.               "BackIsHidden": true,
  6570.               "UniqueBack": false,
  6571.               "Type": 0
  6572.             }
  6573.           },
  6574.           "LuaScript": "",
  6575.           "LuaScriptState": "",
  6576.           "XmlUI": ""
  6577.         },
  6578.         {
  6579.           "GUID": "6d0a8a",
  6580.           "Name": "Card",
  6581.           "Transform": {
  6582.             "posX": -10.7201414,
  6583.             "posY": 3.10427427,
  6584.             "posZ": 6.307913,
  6585.             "rotX": 0.016704265,
  6586.             "rotY": 179.975967,
  6587.             "rotZ": 0.08250868,
  6588.             "scaleX": 1.2007668,
  6589.             "scaleY": 1.0,
  6590.             "scaleZ": 1.2007668
  6591.           },
  6592.           "Nickname": "Freeze",
  6593.           "Description": "",
  6594.           "GMNotes": "",
  6595.           "AltLookAngle": {
  6596.             "x": 0.0,
  6597.             "y": 0.0,
  6598.             "z": 0.0
  6599.           },
  6600.           "ColorDiffuse": {
  6601.             "r": 0.713235259,
  6602.             "g": 0.713235259,
  6603.             "b": 0.713235259
  6604.           },
  6605.           "Tags": [
  6606.             "special"
  6607.           ],
  6608.           "LayoutGroupSortIndex": 0,
  6609.           "Value": 0,
  6610.           "Locked": false,
  6611.           "Grid": true,
  6612.           "Snap": true,
  6613.           "IgnoreFoW": false,
  6614.           "MeasureMovement": false,
  6615.           "DragSelectable": true,
  6616.           "Autoraise": true,
  6617.           "Sticky": true,
  6618.           "Tooltip": true,
  6619.           "GridProjection": false,
  6620.           "HideWhenFaceDown": true,
  6621.           "Hands": true,
  6622.           "CardID": 319,
  6623.           "SidewaysCard": false,
  6624.           "CustomDeck": {
  6625.             "3": {
  6626.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6627.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6628.               "NumWidth": 6,
  6629.               "NumHeight": 4,
  6630.               "BackIsHidden": true,
  6631.               "UniqueBack": false,
  6632.               "Type": 0
  6633.             }
  6634.           },
  6635.           "LuaScript": "",
  6636.           "LuaScriptState": "",
  6637.           "XmlUI": ""
  6638.         },
  6639.         {
  6640.           "GUID": "9466d9",
  6641.           "Name": "Card",
  6642.           "Transform": {
  6643.             "posX": -10.7196293,
  6644.             "posY": 2.61116862,
  6645.             "posZ": 6.32963753,
  6646.             "rotX": 0.016687138,
  6647.             "rotY": 179.976456,
  6648.             "rotZ": 0.08250066,
  6649.             "scaleX": 1.2007668,
  6650.             "scaleY": 1.0,
  6651.             "scaleZ": 1.2007668
  6652.           },
  6653.           "Nickname": "",
  6654.           "Description": "8",
  6655.           "GMNotes": "",
  6656.           "AltLookAngle": {
  6657.             "x": 0.0,
  6658.             "y": 0.0,
  6659.             "z": 0.0
  6660.           },
  6661.           "ColorDiffuse": {
  6662.             "r": 0.713235259,
  6663.             "g": 0.713235259,
  6664.             "b": 0.713235259
  6665.           },
  6666.           "Tags": [
  6667.             "special"
  6668.           ],
  6669.           "LayoutGroupSortIndex": 0,
  6670.           "Value": 0,
  6671.           "Locked": false,
  6672.           "Grid": true,
  6673.           "Snap": true,
  6674.           "IgnoreFoW": false,
  6675.           "MeasureMovement": false,
  6676.           "DragSelectable": true,
  6677.           "Autoraise": true,
  6678.           "Sticky": true,
  6679.           "Tooltip": true,
  6680.           "GridProjection": false,
  6681.           "HideWhenFaceDown": true,
  6682.           "Hands": true,
  6683.           "CardID": 317,
  6684.           "SidewaysCard": false,
  6685.           "CustomDeck": {
  6686.             "3": {
  6687.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6688.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6689.               "NumWidth": 6,
  6690.               "NumHeight": 4,
  6691.               "BackIsHidden": true,
  6692.               "UniqueBack": false,
  6693.               "Type": 0
  6694.             }
  6695.           },
  6696.           "LuaScript": "",
  6697.           "LuaScriptState": "",
  6698.           "XmlUI": ""
  6699.         },
  6700.         {
  6701.           "GUID": "e10c31",
  6702.           "Name": "Card",
  6703.           "Transform": {
  6704.             "posX": -10.720067,
  6705.             "posY": 2.970934,
  6706.             "posZ": 6.30789757,
  6707.             "rotX": 0.0166914985,
  6708.             "rotY": 179.9761,
  6709.             "rotZ": 0.08249675,
  6710.             "scaleX": 1.2007668,
  6711.             "scaleY": 1.0,
  6712.             "scaleZ": 1.2007668
  6713.           },
  6714.           "Nickname": "",
  6715.           "Description": "5",
  6716.           "GMNotes": "",
  6717.           "AltLookAngle": {
  6718.             "x": 0.0,
  6719.             "y": 0.0,
  6720.             "z": 0.0
  6721.           },
  6722.           "ColorDiffuse": {
  6723.             "r": 0.713235259,
  6724.             "g": 0.713235259,
  6725.             "b": 0.713235259
  6726.           },
  6727.           "LayoutGroupSortIndex": 0,
  6728.           "Value": 0,
  6729.           "Locked": false,
  6730.           "Grid": true,
  6731.           "Snap": true,
  6732.           "IgnoreFoW": false,
  6733.           "MeasureMovement": false,
  6734.           "DragSelectable": true,
  6735.           "Autoraise": true,
  6736.           "Sticky": true,
  6737.           "Tooltip": true,
  6738.           "GridProjection": false,
  6739.           "HideWhenFaceDown": true,
  6740.           "Hands": true,
  6741.           "CardID": 304,
  6742.           "SidewaysCard": false,
  6743.           "CustomDeck": {
  6744.             "3": {
  6745.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6746.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6747.               "NumWidth": 6,
  6748.               "NumHeight": 4,
  6749.               "BackIsHidden": true,
  6750.               "UniqueBack": false,
  6751.               "Type": 0
  6752.             }
  6753.           },
  6754.           "LuaScript": "",
  6755.           "LuaScriptState": "",
  6756.           "XmlUI": ""
  6757.         },
  6758.         {
  6759.           "GUID": "769659",
  6760.           "Name": "Card",
  6761.           "Transform": {
  6762.             "posX": -10.7200317,
  6763.             "posY": 3.20293283,
  6764.             "posZ": 6.307899,
  6765.             "rotX": 0.0166923162,
  6766.             "rotY": 179.975861,
  6767.             "rotZ": 0.08250121,
  6768.             "scaleX": 1.2007668,
  6769.             "scaleY": 1.0,
  6770.             "scaleZ": 1.2007668
  6771.           },
  6772.           "Nickname": "",
  6773.           "Description": "3",
  6774.           "GMNotes": "",
  6775.           "AltLookAngle": {
  6776.             "x": 0.0,
  6777.             "y": 0.0,
  6778.             "z": 0.0
  6779.           },
  6780.           "ColorDiffuse": {
  6781.             "r": 0.713235259,
  6782.             "g": 0.713235259,
  6783.             "b": 0.713235259
  6784.           },
  6785.           "LayoutGroupSortIndex": 0,
  6786.           "Value": 0,
  6787.           "Locked": false,
  6788.           "Grid": true,
  6789.           "Snap": true,
  6790.           "IgnoreFoW": false,
  6791.           "MeasureMovement": false,
  6792.           "DragSelectable": true,
  6793.           "Autoraise": true,
  6794.           "Sticky": true,
  6795.           "Tooltip": true,
  6796.           "GridProjection": false,
  6797.           "HideWhenFaceDown": true,
  6798.           "Hands": true,
  6799.           "CardID": 302,
  6800.           "SidewaysCard": false,
  6801.           "CustomDeck": {
  6802.             "3": {
  6803.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6804.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6805.               "NumWidth": 6,
  6806.               "NumHeight": 4,
  6807.               "BackIsHidden": true,
  6808.               "UniqueBack": false,
  6809.               "Type": 0
  6810.             }
  6811.           },
  6812.           "LuaScript": "",
  6813.           "LuaScriptState": "",
  6814.           "XmlUI": ""
  6815.         },
  6816.         {
  6817.           "GUID": "0048e6",
  6818.           "Name": "Card",
  6819.           "Transform": {
  6820.             "posX": 15.0076122,
  6821.             "posY": 1.514018,
  6822.             "posZ": -10.7649717,
  6823.             "rotX": 0.05408226,
  6824.             "rotY": 135.0,
  6825.             "rotZ": 0.031309776,
  6826.             "scaleX": 1.2007668,
  6827.             "scaleY": 1.0,
  6828.             "scaleZ": 1.2007668
  6829.           },
  6830.           "Nickname": "",
  6831.           "Description": "11",
  6832.           "GMNotes": "",
  6833.           "AltLookAngle": {
  6834.             "x": 0.0,
  6835.             "y": 0.0,
  6836.             "z": 0.0
  6837.           },
  6838.           "ColorDiffuse": {
  6839.             "r": 0.713235259,
  6840.             "g": 0.713235259,
  6841.             "b": 0.713235259
  6842.           },
  6843.           "LayoutGroupSortIndex": 0,
  6844.           "Value": 0,
  6845.           "Locked": false,
  6846.           "Grid": true,
  6847.           "Snap": true,
  6848.           "IgnoreFoW": false,
  6849.           "MeasureMovement": false,
  6850.           "DragSelectable": true,
  6851.           "Autoraise": true,
  6852.           "Sticky": true,
  6853.           "Tooltip": true,
  6854.           "GridProjection": false,
  6855.           "HideWhenFaceDown": true,
  6856.           "Hands": true,
  6857.           "CardID": 310,
  6858.           "SidewaysCard": false,
  6859.           "CustomDeck": {
  6860.             "3": {
  6861.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6862.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6863.               "NumWidth": 6,
  6864.               "NumHeight": 4,
  6865.               "BackIsHidden": true,
  6866.               "UniqueBack": false,
  6867.               "Type": 0
  6868.             }
  6869.           },
  6870.           "LuaScript": "",
  6871.           "LuaScriptState": "",
  6872.           "XmlUI": ""
  6873.         },
  6874.         {
  6875.           "GUID": "98cf63",
  6876.           "Name": "Card",
  6877.           "Transform": {
  6878.             "posX": -1.59862876,
  6879.             "posY": 2.34472728,
  6880.             "posZ": 1.13149989,
  6881.             "rotX": 0.0150373857,
  6882.             "rotY": 179.999084,
  6883.             "rotZ": 182.460068,
  6884.             "scaleX": 1.2007668,
  6885.             "scaleY": 1.0,
  6886.             "scaleZ": 1.2007668
  6887.           },
  6888.           "Nickname": "",
  6889.           "Description": "9",
  6890.           "GMNotes": "",
  6891.           "AltLookAngle": {
  6892.             "x": 0.0,
  6893.             "y": 0.0,
  6894.             "z": 0.0
  6895.           },
  6896.           "ColorDiffuse": {
  6897.             "r": 0.713235259,
  6898.             "g": 0.713235259,
  6899.             "b": 0.713235259
  6900.           },
  6901.           "LayoutGroupSortIndex": 0,
  6902.           "Value": 0,
  6903.           "Locked": false,
  6904.           "Grid": true,
  6905.           "Snap": true,
  6906.           "IgnoreFoW": false,
  6907.           "MeasureMovement": false,
  6908.           "DragSelectable": true,
  6909.           "Autoraise": true,
  6910.           "Sticky": true,
  6911.           "Tooltip": true,
  6912.           "GridProjection": false,
  6913.           "HideWhenFaceDown": true,
  6914.           "Hands": true,
  6915.           "CardID": 308,
  6916.           "SidewaysCard": false,
  6917.           "CustomDeck": {
  6918.             "3": {
  6919.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6920.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6921.               "NumWidth": 6,
  6922.               "NumHeight": 4,
  6923.               "BackIsHidden": true,
  6924.               "UniqueBack": false,
  6925.               "Type": 0
  6926.             }
  6927.           },
  6928.           "LuaScript": "",
  6929.           "LuaScriptState": "",
  6930.           "XmlUI": ""
  6931.         },
  6932.         {
  6933.           "GUID": "4eb22b",
  6934.           "Name": "Card",
  6935.           "Transform": {
  6936.             "posX": 1.50001633,
  6937.             "posY": 2.50634742,
  6938.             "posZ": -20.3500023,
  6939.             "rotX": 0.016871566,
  6940.             "rotY": 180.000046,
  6941.             "rotZ": 0.0798781738,
  6942.             "scaleX": 1.2007668,
  6943.             "scaleY": 1.0,
  6944.             "scaleZ": 1.2007668
  6945.           },
  6946.           "Nickname": "",
  6947.           "Description": "9",
  6948.           "GMNotes": "",
  6949.           "AltLookAngle": {
  6950.             "x": 0.0,
  6951.             "y": 0.0,
  6952.             "z": 0.0
  6953.           },
  6954.           "ColorDiffuse": {
  6955.             "r": 0.713235259,
  6956.             "g": 0.713235259,
  6957.             "b": 0.713235259
  6958.           },
  6959.           "LayoutGroupSortIndex": 0,
  6960.           "Value": 0,
  6961.           "Locked": false,
  6962.           "Grid": true,
  6963.           "Snap": true,
  6964.           "IgnoreFoW": false,
  6965.           "MeasureMovement": false,
  6966.           "DragSelectable": true,
  6967.           "Autoraise": true,
  6968.           "Sticky": true,
  6969.           "Tooltip": true,
  6970.           "GridProjection": false,
  6971.           "HideWhenFaceDown": true,
  6972.           "Hands": true,
  6973.           "CardID": 308,
  6974.           "SidewaysCard": false,
  6975.           "CustomDeck": {
  6976.             "3": {
  6977.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  6978.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  6979.               "NumWidth": 6,
  6980.               "NumHeight": 4,
  6981.               "BackIsHidden": true,
  6982.               "UniqueBack": false,
  6983.               "Type": 0
  6984.             }
  6985.           },
  6986.           "LuaScript": "",
  6987.           "LuaScriptState": "",
  6988.           "XmlUI": ""
  6989.         },
  6990.         {
  6991.           "GUID": "8fdc08",
  6992.           "Name": "Card",
  6993.           "Transform": {
  6994.             "posX": -1.599382,
  6995.             "posY": 2.36427617,
  6996.             "posZ": 1.13148749,
  6997.             "rotX": 0.0152467852,
  6998.             "rotY": 180.000488,
  6999.             "rotZ": 182.457352,
  7000.             "scaleX": 1.2007668,
  7001.             "scaleY": 1.0,
  7002.             "scaleZ": 1.2007668
  7003.           },
  7004.           "Nickname": "",
  7005.           "Description": "10",
  7006.           "GMNotes": "",
  7007.           "AltLookAngle": {
  7008.             "x": 0.0,
  7009.             "y": 0.0,
  7010.             "z": 0.0
  7011.           },
  7012.           "ColorDiffuse": {
  7013.             "r": 0.713235259,
  7014.             "g": 0.713235259,
  7015.             "b": 0.713235259
  7016.           },
  7017.           "LayoutGroupSortIndex": 0,
  7018.           "Value": 0,
  7019.           "Locked": false,
  7020.           "Grid": true,
  7021.           "Snap": true,
  7022.           "IgnoreFoW": false,
  7023.           "MeasureMovement": false,
  7024.           "DragSelectable": true,
  7025.           "Autoraise": true,
  7026.           "Sticky": true,
  7027.           "Tooltip": true,
  7028.           "GridProjection": false,
  7029.           "HideWhenFaceDown": true,
  7030.           "Hands": true,
  7031.           "CardID": 309,
  7032.           "SidewaysCard": false,
  7033.           "CustomDeck": {
  7034.             "3": {
  7035.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7036.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7037.               "NumWidth": 6,
  7038.               "NumHeight": 4,
  7039.               "BackIsHidden": true,
  7040.               "UniqueBack": false,
  7041.               "Type": 0
  7042.             }
  7043.           },
  7044.           "LuaScript": "",
  7045.           "LuaScriptState": "",
  7046.           "XmlUI": ""
  7047.         },
  7048.         {
  7049.           "GUID": "63dde3",
  7050.           "Name": "Card",
  7051.           "Transform": {
  7052.             "posX": 2.2612865,
  7053.             "posY": 3.34467,
  7054.             "posZ": 0.439040184,
  7055.             "rotX": 0.0445479639,
  7056.             "rotY": 180.000183,
  7057.             "rotZ": 180.241257,
  7058.             "scaleX": 1.2007668,
  7059.             "scaleY": 1.0,
  7060.             "scaleZ": 1.2007668
  7061.           },
  7062.           "Nickname": "",
  7063.           "Description": "6",
  7064.           "GMNotes": "",
  7065.           "AltLookAngle": {
  7066.             "x": 0.0,
  7067.             "y": 0.0,
  7068.             "z": 0.0
  7069.           },
  7070.           "ColorDiffuse": {
  7071.             "r": 0.713235259,
  7072.             "g": 0.713235259,
  7073.             "b": 0.713235259
  7074.           },
  7075.           "LayoutGroupSortIndex": 0,
  7076.           "Value": 0,
  7077.           "Locked": false,
  7078.           "Grid": true,
  7079.           "Snap": true,
  7080.           "IgnoreFoW": false,
  7081.           "MeasureMovement": false,
  7082.           "DragSelectable": true,
  7083.           "Autoraise": true,
  7084.           "Sticky": true,
  7085.           "Tooltip": true,
  7086.           "GridProjection": false,
  7087.           "HideWhenFaceDown": true,
  7088.           "Hands": true,
  7089.           "CardID": 305,
  7090.           "SidewaysCard": false,
  7091.           "CustomDeck": {
  7092.             "3": {
  7093.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7094.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7095.               "NumWidth": 6,
  7096.               "NumHeight": 4,
  7097.               "BackIsHidden": true,
  7098.               "UniqueBack": false,
  7099.               "Type": 0
  7100.             }
  7101.           },
  7102.           "LuaScript": "",
  7103.           "LuaScriptState": "",
  7104.           "XmlUI": ""
  7105.         },
  7106.         {
  7107.           "GUID": "253f02",
  7108.           "Name": "Card",
  7109.           "Transform": {
  7110.             "posX": 12.8862686,
  7111.             "posY": 1.47332835,
  7112.             "posZ": -12.8862886,
  7113.             "rotX": 0.0686355159,
  7114.             "rotY": 134.999969,
  7115.             "rotZ": 0.0430633649,
  7116.             "scaleX": 1.2007668,
  7117.             "scaleY": 1.0,
  7118.             "scaleZ": 1.2007668
  7119.           },
  7120.           "Nickname": "",
  7121.           "Description": "12",
  7122.           "GMNotes": "",
  7123.           "AltLookAngle": {
  7124.             "x": 0.0,
  7125.             "y": 0.0,
  7126.             "z": 0.0
  7127.           },
  7128.           "ColorDiffuse": {
  7129.             "r": 0.713235259,
  7130.             "g": 0.713235259,
  7131.             "b": 0.713235259
  7132.           },
  7133.           "LayoutGroupSortIndex": 0,
  7134.           "Value": 0,
  7135.           "Locked": false,
  7136.           "Grid": true,
  7137.           "Snap": true,
  7138.           "IgnoreFoW": false,
  7139.           "MeasureMovement": false,
  7140.           "DragSelectable": true,
  7141.           "Autoraise": true,
  7142.           "Sticky": true,
  7143.           "Tooltip": true,
  7144.           "GridProjection": false,
  7145.           "HideWhenFaceDown": true,
  7146.           "Hands": true,
  7147.           "CardID": 311,
  7148.           "SidewaysCard": false,
  7149.           "CustomDeck": {
  7150.             "3": {
  7151.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7152.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7153.               "NumWidth": 6,
  7154.               "NumHeight": 4,
  7155.               "BackIsHidden": true,
  7156.               "UniqueBack": false,
  7157.               "Type": 0
  7158.             }
  7159.           },
  7160.           "LuaScript": "",
  7161.           "LuaScriptState": "",
  7162.           "XmlUI": ""
  7163.         },
  7164.         {
  7165.           "GUID": "9adb6d",
  7166.           "Name": "Card",
  7167.           "Transform": {
  7168.             "posX": -10.7200356,
  7169.             "posY": 3.21389818,
  7170.             "posZ": 6.30790043,
  7171.             "rotX": 0.0166920256,
  7172.             "rotY": 179.975861,
  7173.             "rotZ": 0.08250134,
  7174.             "scaleX": 1.2007668,
  7175.             "scaleY": 1.0,
  7176.             "scaleZ": 1.2007668
  7177.           },
  7178.           "Nickname": "",
  7179.           "Description": "7",
  7180.           "GMNotes": "",
  7181.           "AltLookAngle": {
  7182.             "x": 0.0,
  7183.             "y": 0.0,
  7184.             "z": 0.0
  7185.           },
  7186.           "ColorDiffuse": {
  7187.             "r": 0.713235259,
  7188.             "g": 0.713235259,
  7189.             "b": 0.713235259
  7190.           },
  7191.           "LayoutGroupSortIndex": 0,
  7192.           "Value": 0,
  7193.           "Locked": false,
  7194.           "Grid": true,
  7195.           "Snap": true,
  7196.           "IgnoreFoW": false,
  7197.           "MeasureMovement": false,
  7198.           "DragSelectable": true,
  7199.           "Autoraise": true,
  7200.           "Sticky": true,
  7201.           "Tooltip": true,
  7202.           "GridProjection": false,
  7203.           "HideWhenFaceDown": true,
  7204.           "Hands": true,
  7205.           "CardID": 306,
  7206.           "SidewaysCard": false,
  7207.           "CustomDeck": {
  7208.             "3": {
  7209.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7210.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7211.               "NumWidth": 6,
  7212.               "NumHeight": 4,
  7213.               "BackIsHidden": true,
  7214.               "UniqueBack": false,
  7215.               "Type": 0
  7216.             }
  7217.           },
  7218.           "LuaScript": "",
  7219.           "LuaScriptState": "",
  7220.           "XmlUI": ""
  7221.         },
  7222.         {
  7223.           "GUID": "8ed7cf",
  7224.           "Name": "Card",
  7225.           "Transform": {
  7226.             "posX": -10.7195721,
  7227.             "posY": 2.68179,
  7228.             "posZ": 6.329625,
  7229.             "rotX": 0.0166916456,
  7230.             "rotY": 179.976364,
  7231.             "rotZ": 0.08249318,
  7232.             "scaleX": 1.2007668,
  7233.             "scaleY": 1.0,
  7234.             "scaleZ": 1.2007668
  7235.           },
  7236.           "Nickname": "",
  7237.           "Description": "12",
  7238.           "GMNotes": "",
  7239.           "AltLookAngle": {
  7240.             "x": 0.0,
  7241.             "y": 0.0,
  7242.             "z": 0.0
  7243.           },
  7244.           "ColorDiffuse": {
  7245.             "r": 0.713235259,
  7246.             "g": 0.713235259,
  7247.             "b": 0.713235259
  7248.           },
  7249.           "LayoutGroupSortIndex": 0,
  7250.           "Value": 0,
  7251.           "Locked": false,
  7252.           "Grid": true,
  7253.           "Snap": true,
  7254.           "IgnoreFoW": false,
  7255.           "MeasureMovement": false,
  7256.           "DragSelectable": true,
  7257.           "Autoraise": true,
  7258.           "Sticky": true,
  7259.           "Tooltip": true,
  7260.           "GridProjection": false,
  7261.           "HideWhenFaceDown": true,
  7262.           "Hands": true,
  7263.           "CardID": 311,
  7264.           "SidewaysCard": false,
  7265.           "CustomDeck": {
  7266.             "3": {
  7267.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7268.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7269.               "NumWidth": 6,
  7270.               "NumHeight": 4,
  7271.               "BackIsHidden": true,
  7272.               "UniqueBack": false,
  7273.               "Type": 0
  7274.             }
  7275.           },
  7276.           "LuaScript": "",
  7277.           "LuaScriptState": "",
  7278.           "XmlUI": ""
  7279.         },
  7280.         {
  7281.           "GUID": "d84185",
  7282.           "Name": "Card",
  7283.           "Transform": {
  7284.             "posX": -1.59938276,
  7285.             "posY": 2.3350668,
  7286.             "posZ": 1.13148808,
  7287.             "rotX": 0.015087096,
  7288.             "rotY": 180.000488,
  7289.             "rotZ": 182.456314,
  7290.             "scaleX": 1.2007668,
  7291.             "scaleY": 1.0,
  7292.             "scaleZ": 1.2007668
  7293.           },
  7294.           "Nickname": "",
  7295.           "Description": "11",
  7296.           "GMNotes": "",
  7297.           "AltLookAngle": {
  7298.             "x": 0.0,
  7299.             "y": 0.0,
  7300.             "z": 0.0
  7301.           },
  7302.           "ColorDiffuse": {
  7303.             "r": 0.713235259,
  7304.             "g": 0.713235259,
  7305.             "b": 0.713235259
  7306.           },
  7307.           "LayoutGroupSortIndex": 0,
  7308.           "Value": 0,
  7309.           "Locked": false,
  7310.           "Grid": true,
  7311.           "Snap": true,
  7312.           "IgnoreFoW": false,
  7313.           "MeasureMovement": false,
  7314.           "DragSelectable": true,
  7315.           "Autoraise": true,
  7316.           "Sticky": true,
  7317.           "Tooltip": true,
  7318.           "GridProjection": false,
  7319.           "HideWhenFaceDown": true,
  7320.           "Hands": true,
  7321.           "CardID": 310,
  7322.           "SidewaysCard": false,
  7323.           "CustomDeck": {
  7324.             "3": {
  7325.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7326.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7327.               "NumWidth": 6,
  7328.               "NumHeight": 4,
  7329.               "BackIsHidden": true,
  7330.               "UniqueBack": false,
  7331.               "Type": 0
  7332.             }
  7333.           },
  7334.           "LuaScript": "",
  7335.           "LuaScriptState": "",
  7336.           "XmlUI": ""
  7337.         },
  7338.         {
  7339.           "GUID": "ffbc62",
  7340.           "Name": "Card",
  7341.           "Transform": {
  7342.             "posX": -10.7200994,
  7343.             "posY": 3.0269413,
  7344.             "posZ": 6.307902,
  7345.             "rotX": 0.0167027954,
  7346.             "rotY": 179.976044,
  7347.             "rotZ": 0.08250663,
  7348.             "scaleX": 1.2007668,
  7349.             "scaleY": 1.0,
  7350.             "scaleZ": 1.2007668
  7351.           },
  7352.           "Nickname": "",
  7353.           "Description": "9",
  7354.           "GMNotes": "",
  7355.           "AltLookAngle": {
  7356.             "x": 0.0,
  7357.             "y": 0.0,
  7358.             "z": 0.0
  7359.           },
  7360.           "ColorDiffuse": {
  7361.             "r": 0.713235259,
  7362.             "g": 0.713235259,
  7363.             "b": 0.713235259
  7364.           },
  7365.           "LayoutGroupSortIndex": 0,
  7366.           "Value": 0,
  7367.           "Locked": false,
  7368.           "Grid": true,
  7369.           "Snap": true,
  7370.           "IgnoreFoW": false,
  7371.           "MeasureMovement": false,
  7372.           "DragSelectable": true,
  7373.           "Autoraise": true,
  7374.           "Sticky": true,
  7375.           "Tooltip": true,
  7376.           "GridProjection": false,
  7377.           "HideWhenFaceDown": true,
  7378.           "Hands": true,
  7379.           "CardID": 308,
  7380.           "SidewaysCard": false,
  7381.           "CustomDeck": {
  7382.             "3": {
  7383.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7384.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7385.               "NumWidth": 6,
  7386.               "NumHeight": 4,
  7387.               "BackIsHidden": true,
  7388.               "UniqueBack": false,
  7389.               "Type": 0
  7390.             }
  7391.           },
  7392.           "LuaScript": "",
  7393.           "LuaScriptState": "",
  7394.           "XmlUI": ""
  7395.         },
  7396.         {
  7397.           "GUID": "f4bef4",
  7398.           "Name": "Card",
  7399.           "Transform": {
  7400.             "posX": -10.720192,
  7401.             "posY": 2.74145913,
  7402.             "posZ": 6.30791426,
  7403.             "rotX": 0.016690718,
  7404.             "rotY": 179.9763,
  7405.             "rotZ": 0.08249916,
  7406.             "scaleX": 1.2007668,
  7407.             "scaleY": 1.0,
  7408.             "scaleZ": 1.2007668
  7409.           },
  7410.           "Nickname": "",
  7411.           "Description": "10",
  7412.           "GMNotes": "",
  7413.           "AltLookAngle": {
  7414.             "x": 0.0,
  7415.             "y": 0.0,
  7416.             "z": 0.0
  7417.           },
  7418.           "ColorDiffuse": {
  7419.             "r": 0.713235259,
  7420.             "g": 0.713235259,
  7421.             "b": 0.713235259
  7422.           },
  7423.           "LayoutGroupSortIndex": 0,
  7424.           "Value": 0,
  7425.           "Locked": false,
  7426.           "Grid": true,
  7427.           "Snap": true,
  7428.           "IgnoreFoW": false,
  7429.           "MeasureMovement": false,
  7430.           "DragSelectable": true,
  7431.           "Autoraise": true,
  7432.           "Sticky": true,
  7433.           "Tooltip": true,
  7434.           "GridProjection": false,
  7435.           "HideWhenFaceDown": true,
  7436.           "Hands": true,
  7437.           "CardID": 309,
  7438.           "SidewaysCard": false,
  7439.           "CustomDeck": {
  7440.             "3": {
  7441.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7442.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7443.               "NumWidth": 6,
  7444.               "NumHeight": 4,
  7445.               "BackIsHidden": true,
  7446.               "UniqueBack": false,
  7447.               "Type": 0
  7448.             }
  7449.           },
  7450.           "LuaScript": "",
  7451.           "LuaScriptState": "",
  7452.           "XmlUI": ""
  7453.         },
  7454.         {
  7455.           "GUID": "1df149",
  7456.           "Name": "Card",
  7457.           "Transform": {
  7458.             "posX": -10.7201843,
  7459.             "posY": 2.82420278,
  7460.             "posZ": 6.307921,
  7461.             "rotX": 0.0166845173,
  7462.             "rotY": 179.976257,
  7463.             "rotZ": 0.08250674,
  7464.             "scaleX": 1.2007668,
  7465.             "scaleY": 1.0,
  7466.             "scaleZ": 1.2007668
  7467.           },
  7468.           "Nickname": "",
  7469.           "Description": "11",
  7470.           "GMNotes": "",
  7471.           "AltLookAngle": {
  7472.             "x": 0.0,
  7473.             "y": 0.0,
  7474.             "z": 0.0
  7475.           },
  7476.           "ColorDiffuse": {
  7477.             "r": 0.713235259,
  7478.             "g": 0.713235259,
  7479.             "b": 0.713235259
  7480.           },
  7481.           "LayoutGroupSortIndex": 0,
  7482.           "Value": 0,
  7483.           "Locked": false,
  7484.           "Grid": true,
  7485.           "Snap": true,
  7486.           "IgnoreFoW": false,
  7487.           "MeasureMovement": false,
  7488.           "DragSelectable": true,
  7489.           "Autoraise": true,
  7490.           "Sticky": true,
  7491.           "Tooltip": true,
  7492.           "GridProjection": false,
  7493.           "HideWhenFaceDown": true,
  7494.           "Hands": true,
  7495.           "CardID": 310,
  7496.           "SidewaysCard": false,
  7497.           "CustomDeck": {
  7498.             "3": {
  7499.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7500.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7501.               "NumWidth": 6,
  7502.               "NumHeight": 4,
  7503.               "BackIsHidden": true,
  7504.               "UniqueBack": false,
  7505.               "Type": 0
  7506.             }
  7507.           },
  7508.           "LuaScript": "",
  7509.           "LuaScriptState": "",
  7510.           "XmlUI": ""
  7511.         },
  7512.         {
  7513.           "GUID": "5e7956",
  7514.           "Name": "Card",
  7515.           "Transform": {
  7516.             "posX": -10.7196074,
  7517.             "posY": 2.64889455,
  7518.             "posZ": 6.329635,
  7519.             "rotX": 0.0166872926,
  7520.             "rotY": 179.976425,
  7521.             "rotZ": 0.08250099,
  7522.             "scaleX": 1.2007668,
  7523.             "scaleY": 1.0,
  7524.             "scaleZ": 1.2007668
  7525.           },
  7526.           "Nickname": "",
  7527.           "Description": "6",
  7528.           "GMNotes": "",
  7529.           "AltLookAngle": {
  7530.             "x": 0.0,
  7531.             "y": 0.0,
  7532.             "z": 0.0
  7533.           },
  7534.           "ColorDiffuse": {
  7535.             "r": 0.713235259,
  7536.             "g": 0.713235259,
  7537.             "b": 0.713235259
  7538.           },
  7539.           "LayoutGroupSortIndex": 0,
  7540.           "Value": 0,
  7541.           "Locked": false,
  7542.           "Grid": true,
  7543.           "Snap": true,
  7544.           "IgnoreFoW": false,
  7545.           "MeasureMovement": false,
  7546.           "DragSelectable": true,
  7547.           "Autoraise": true,
  7548.           "Sticky": true,
  7549.           "Tooltip": true,
  7550.           "GridProjection": false,
  7551.           "HideWhenFaceDown": true,
  7552.           "Hands": true,
  7553.           "CardID": 305,
  7554.           "SidewaysCard": false,
  7555.           "CustomDeck": {
  7556.             "3": {
  7557.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7558.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7559.               "NumWidth": 6,
  7560.               "NumHeight": 4,
  7561.               "BackIsHidden": true,
  7562.               "UniqueBack": false,
  7563.               "Type": 0
  7564.             }
  7565.           },
  7566.           "LuaScript": "",
  7567.           "LuaScriptState": "",
  7568.           "XmlUI": ""
  7569.         },
  7570.         {
  7571.           "GUID": "317dfa",
  7572.           "Name": "Card",
  7573.           "Transform": {
  7574.             "posX": 15.0076361,
  7575.             "posY": 1.47101593,
  7576.             "posZ": -10.7649765,
  7577.             "rotX": 0.06847729,
  7578.             "rotY": 134.999954,
  7579.             "rotZ": 0.0442074127,
  7580.             "scaleX": 1.2007668,
  7581.             "scaleY": 1.0,
  7582.             "scaleZ": 1.2007668
  7583.           },
  7584.           "Nickname": "",
  7585.           "Description": "4",
  7586.           "GMNotes": "",
  7587.           "AltLookAngle": {
  7588.             "x": 0.0,
  7589.             "y": 0.0,
  7590.             "z": 0.0
  7591.           },
  7592.           "ColorDiffuse": {
  7593.             "r": 0.713235259,
  7594.             "g": 0.713235259,
  7595.             "b": 0.713235259
  7596.           },
  7597.           "LayoutGroupSortIndex": 0,
  7598.           "Value": 0,
  7599.           "Locked": false,
  7600.           "Grid": true,
  7601.           "Snap": true,
  7602.           "IgnoreFoW": false,
  7603.           "MeasureMovement": false,
  7604.           "DragSelectable": true,
  7605.           "Autoraise": true,
  7606.           "Sticky": true,
  7607.           "Tooltip": true,
  7608.           "GridProjection": false,
  7609.           "HideWhenFaceDown": true,
  7610.           "Hands": true,
  7611.           "CardID": 303,
  7612.           "SidewaysCard": false,
  7613.           "CustomDeck": {
  7614.             "3": {
  7615.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7616.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7617.               "NumWidth": 6,
  7618.               "NumHeight": 4,
  7619.               "BackIsHidden": true,
  7620.               "UniqueBack": false,
  7621.               "Type": 0
  7622.             }
  7623.           },
  7624.           "LuaScript": "",
  7625.           "LuaScriptState": "",
  7626.           "XmlUI": ""
  7627.         },
  7628.         {
  7629.           "GUID": "2e3ad8",
  7630.           "Name": "Card",
  7631.           "Transform": {
  7632.             "posX": -1.59938109,
  7633.             "posY": 2.38370728,
  7634.             "posZ": 1.13148749,
  7635.             "rotX": 0.0156655628,
  7636.             "rotY": 180.000473,
  7637.             "rotZ": 182.459885,
  7638.             "scaleX": 1.2007668,
  7639.             "scaleY": 1.0,
  7640.             "scaleZ": 1.2007668
  7641.           },
  7642.           "Nickname": "",
  7643.           "Description": "4",
  7644.           "GMNotes": "",
  7645.           "AltLookAngle": {
  7646.             "x": 0.0,
  7647.             "y": 0.0,
  7648.             "z": 0.0
  7649.           },
  7650.           "ColorDiffuse": {
  7651.             "r": 0.713235259,
  7652.             "g": 0.713235259,
  7653.             "b": 0.713235259
  7654.           },
  7655.           "LayoutGroupSortIndex": 0,
  7656.           "Value": 0,
  7657.           "Locked": false,
  7658.           "Grid": true,
  7659.           "Snap": true,
  7660.           "IgnoreFoW": false,
  7661.           "MeasureMovement": false,
  7662.           "DragSelectable": true,
  7663.           "Autoraise": true,
  7664.           "Sticky": true,
  7665.           "Tooltip": true,
  7666.           "GridProjection": false,
  7667.           "HideWhenFaceDown": true,
  7668.           "Hands": true,
  7669.           "CardID": 303,
  7670.           "SidewaysCard": false,
  7671.           "CustomDeck": {
  7672.             "3": {
  7673.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7674.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7675.               "NumWidth": 6,
  7676.               "NumHeight": 4,
  7677.               "BackIsHidden": true,
  7678.               "UniqueBack": false,
  7679.               "Type": 0
  7680.             }
  7681.           },
  7682.           "LuaScript": "",
  7683.           "LuaScriptState": "",
  7684.           "XmlUI": ""
  7685.         },
  7686.         {
  7687.           "GUID": "8be14b",
  7688.           "Name": "Card",
  7689.           "Transform": {
  7690.             "posX": 18.8967266,
  7691.             "posY": 1.46507967,
  7692.             "posZ": -12.5327454,
  7693.             "rotX": 0.06841181,
  7694.             "rotY": 134.999878,
  7695.             "rotZ": 0.04455061,
  7696.             "scaleX": 1.2007668,
  7697.             "scaleY": 1.0,
  7698.             "scaleZ": 1.2007668
  7699.           },
  7700.           "Nickname": "",
  7701.           "Description": "5",
  7702.           "GMNotes": "",
  7703.           "AltLookAngle": {
  7704.             "x": 0.0,
  7705.             "y": 0.0,
  7706.             "z": 0.0
  7707.           },
  7708.           "ColorDiffuse": {
  7709.             "r": 0.713235259,
  7710.             "g": 0.713235259,
  7711.             "b": 0.713235259
  7712.           },
  7713.           "LayoutGroupSortIndex": 0,
  7714.           "Value": 0,
  7715.           "Locked": false,
  7716.           "Grid": true,
  7717.           "Snap": true,
  7718.           "IgnoreFoW": false,
  7719.           "MeasureMovement": false,
  7720.           "DragSelectable": true,
  7721.           "Autoraise": true,
  7722.           "Sticky": true,
  7723.           "Tooltip": true,
  7724.           "GridProjection": false,
  7725.           "HideWhenFaceDown": true,
  7726.           "Hands": true,
  7727.           "CardID": 304,
  7728.           "SidewaysCard": false,
  7729.           "CustomDeck": {
  7730.             "3": {
  7731.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7732.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7733.               "NumWidth": 6,
  7734.               "NumHeight": 4,
  7735.               "BackIsHidden": true,
  7736.               "UniqueBack": false,
  7737.               "Type": 0
  7738.             }
  7739.           },
  7740.           "LuaScript": "",
  7741.           "LuaScriptState": "",
  7742.           "XmlUI": ""
  7743.         },
  7744.         {
  7745.           "GUID": "8cdbed",
  7746.           "Name": "Card",
  7747.           "Transform": {
  7748.             "posX": 16.7754078,
  7749.             "posY": 1.46740711,
  7750.             "posZ": -14.65407,
  7751.             "rotX": 0.06846624,
  7752.             "rotY": 134.9999,
  7753.             "rotZ": 0.0442454927,
  7754.             "scaleX": 1.2007668,
  7755.             "scaleY": 1.0,
  7756.             "scaleZ": 1.2007668
  7757.           },
  7758.           "Nickname": "",
  7759.           "Description": "0",
  7760.           "GMNotes": "",
  7761.           "AltLookAngle": {
  7762.             "x": 0.0,
  7763.             "y": 0.0,
  7764.             "z": 0.0
  7765.           },
  7766.           "ColorDiffuse": {
  7767.             "r": 0.713235259,
  7768.             "g": 0.713235259,
  7769.             "b": 0.713235259
  7770.           },
  7771.           "LayoutGroupSortIndex": 0,
  7772.           "Value": 0,
  7773.           "Locked": false,
  7774.           "Grid": true,
  7775.           "Snap": true,
  7776.           "IgnoreFoW": false,
  7777.           "MeasureMovement": false,
  7778.           "DragSelectable": true,
  7779.           "Autoraise": true,
  7780.           "Sticky": true,
  7781.           "Tooltip": true,
  7782.           "GridProjection": false,
  7783.           "HideWhenFaceDown": true,
  7784.           "Hands": true,
  7785.           "CardID": 312,
  7786.           "SidewaysCard": false,
  7787.           "CustomDeck": {
  7788.             "3": {
  7789.               "FaceURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600139/2352702DCC4E424CB9292E1F91F448CB6E6FF941/",
  7790.               "BackURL": "https://steamusercontent-a.akamaihd.net/ugc/2383055195966600864/E40954C0F83D9817BE6C9435E61DF65BFD1BACC6/",
  7791.               "NumWidth": 6,
  7792.               "NumHeight": 4,
  7793.               "BackIsHidden": true,
  7794.               "UniqueBack": false,
  7795.               "Type": 0
  7796.             }
  7797.           },
  7798.           "LuaScript": "",
  7799.           "LuaScriptState": "",
  7800.           "XmlUI": ""
  7801.         }
  7802.       ]
  7803.     },
  7804.     {
  7805.       "GUID": "f1d8a1",
  7806.       "Name": "ScriptingTrigger",
  7807.       "Transform": {
  7808.         "posX": -16.4734573,
  7809.         "posY": 4.06359434,
  7810.         "posZ": -15.8063564,
  7811.         "rotX": 0.0,
  7812.         "rotY": 44.33372,
  7813.         "rotZ": 0.0,
  7814.         "scaleX": 14.2830753,
  7815.         "scaleY": 5.1,
  7816.         "scaleZ": 13.5738564
  7817.       },
  7818.       "Nickname": "",
  7819.       "Description": "",
  7820.       "GMNotes": "",
  7821.       "AltLookAngle": {
  7822.         "x": 0.0,
  7823.         "y": 0.0,
  7824.         "z": 0.0
  7825.       },
  7826.       "ColorDiffuse": {
  7827.         "r": 1.0,
  7828.         "g": 1.0,
  7829.         "b": 1.0,
  7830.         "a": 0.509803951
  7831.       },
  7832.       "LayoutGroupSortIndex": 0,
  7833.       "Value": 0,
  7834.       "Locked": true,
  7835.       "Grid": true,
  7836.       "Snap": true,
  7837.       "IgnoreFoW": false,
  7838.       "MeasureMovement": false,
  7839.       "DragSelectable": true,
  7840.       "Autoraise": true,
  7841.       "Sticky": true,
  7842.       "Tooltip": true,
  7843.       "GridProjection": false,
  7844.       "HideWhenFaceDown": false,
  7845.       "Hands": false,
  7846.       "LuaScript": "local scoreZoneGuid = 'f1d8a1' -- the guid of your zone\r\nsave_data = {\r\n    scoreTextGuid = '' -- will be initialized in the 'onLoad' function\r\n}\r\n\r\n--#region : Event listeners\r\nfunction onLoad(save_state) -- called when loading a save or when creating the object this script is placed in\r\n    if(save_state == '' or save_state == nil or save_state == 'null') then\r\n        -- no save data found\r\n    else\r\n        save_data = JSON.decode(save_state)\r\n    end\r\n    if(save_data.scoreTextGuid == nil or save_data.scoreTextGuid == '') then\r\n        spawnText() -- Initializes the text object\r\n    end\r\nend\r\n\r\nfunction onSave() -- called on each (auto)save action\r\n    local json_data = JSON.encode(settings)\r\n\r\n    if(false) then -- set to true & save to clear save data\r\n        json_data = \"\"\r\n    end\r\n    return json_data\r\nend\r\nfunction onDestroy() -- called when the object this script is placed in is destroyed\r\n    -- Delete the text object\r\n    local textObject = getObjectFromGUID(save_data.scoreTextGuid)\r\n    if(textObject ~= nil) then\r\n        destroyObject(textObject)\r\n    end\r\nend\r\n\r\nfunction onObjectEnterScriptingZone(zone, enter_object)\r\n    local zoneGuid = zone.getGUID()\r\n    if(zoneGuid ~= scoreZoneGuid) then return end -- Ignore all events for zones that aren't the score zone\r\n    Wait.frames(updateScore, 1) -- wait 1 frame for the object to actually appear in the zone\r\nend\r\nfunction onObjectLeaveScriptingZone(zone, enter_object)\r\n    local zoneGuid = zone.getGUID()\r\n    if(zoneGuid ~= scoreZoneGuid) then return end -- Ignore all events for zones that aren't the score zone\r\n    Wait.frames(updateScore, 1) -- wait 1 frame for the object to actually disappear from the zone\r\nend\r\n--#endregion : Event listeners\r\n\r\nfunction spawnText()\r\n    local text = spawnObject({\r\n        type = '3DText',\r\n        rotation = {90.00, 45.33, 0.00}, -- TODO: Change rotation as needed\r\n        position = {-8.68, 1.87, -7.79} -- TODO: Change this to a better location\r\n    })\r\n    text.setValue('0') -- Set a default text value\r\n    text.TextTool.setFontSize(100)  -- TODO: Check if this is the right size\r\n    text.TextTool.setFontColor({0.96, 0.439, 0.807})\r\n    save_data.scoreTextGuid = text.getGUID() -- Save the guid so we know how to reference it\r\nend\r\n\r\nfunction updateScore()\r\n    local scoreValue = getScore()\r\n    local scoreText = getObjectFromGUID(save_data.scoreTextGuid)\r\n    scoreText.setValue(''..scoreValue) -- Convert the number to a string and passes it to the text object\r\nend\r\n\r\nfunction getScore()\r\n    local score = 0\r\n    local zone = getObjectFromGUID(scoreZoneGuid)\r\n    local objects = zone.getObjects() -- get objects already in the zone\r\n    for key,object in ipairs(objects) do -- key = 1|2|3|etc, object = actual TTS object\r\n        local description = object.getDescription() -- get the description\r\n        local number = tonumber(description)  -- convert it to a number\r\n        if(number ~= nil) then -- check if you actually get a number (tonumber returns nil if it isn't)\r\n            score = score + number\r\n        end\r\n    end\r\n    return score\r\nend",
  7847.       "LuaScriptState": "null",
  7848.       "XmlUI": ""
  7849.     },
  7850.     {
  7851.       "GUID": "e0971f",
  7852.       "Name": "ScriptingTrigger",
  7853.       "Transform": {
  7854.         "posX": 15.5113144,
  7855.         "posY": 4.00251055,
  7856.         "posZ": -16.5242825,
  7857.         "rotX": 0.0,
  7858.         "rotY": 314.6668,
  7859.         "rotZ": 0.0,
  7860.         "scaleX": 13.8485394,
  7861.         "scaleY": 5.1,
  7862.         "scaleZ": 13.0904713
  7863.       },
  7864.       "Nickname": "",
  7865.       "Description": "",
  7866.       "GMNotes": "",
  7867.       "AltLookAngle": {
  7868.         "x": 0.0,
  7869.         "y": 0.0,
  7870.         "z": 0.0
  7871.       },
  7872.       "ColorDiffuse": {
  7873.         "r": 1.0,
  7874.         "g": 1.0,
  7875.         "b": 1.0,
  7876.         "a": 0.509803951
  7877.       },
  7878.       "LayoutGroupSortIndex": 0,
  7879.       "Value": 0,
  7880.       "Locked": true,
  7881.       "Grid": true,
  7882.       "Snap": true,
  7883.       "IgnoreFoW": false,
  7884.       "MeasureMovement": false,
  7885.       "DragSelectable": true,
  7886.       "Autoraise": true,
  7887.       "Sticky": true,
  7888.       "Tooltip": true,
  7889.       "GridProjection": false,
  7890.       "HideWhenFaceDown": false,
  7891.       "Hands": false,
  7892.       "LuaScript": "local scoreZoneGuid = 'e0971f' -- the guid of your zone\r\nsave_data = {\r\n    scoreTextGuid = '' -- will be initialized in the 'onLoad' function\r\n}\r\n\r\n--#region : Event listeners\r\nfunction onLoad(save_state) -- called when loading a save or when creating the object this script is placed in\r\n    if(save_state == '' or save_state == nil or save_state == 'null') then\r\n        -- no save data found\r\n    else\r\n        save_data = JSON.decode(save_state)\r\n    end\r\n    if(save_data.scoreTextGuid == nil or save_data.scoreTextGuid == '') then\r\n        spawnText() -- Initializes the text object\r\n    end\r\nend\r\n\r\nfunction onSave() -- called on each (auto)save action\r\n    local json_data = JSON.encode(settings)\r\n\r\n    if(false) then -- set to true & save to clear save data\r\n        json_data = \"\"\r\n    end\r\n    return json_data\r\nend\r\nfunction onDestroy() -- called when the object this script is placed in is destroyed\r\n    -- Delete the text object\r\n    local textObject = getObjectFromGUID(save_data.scoreTextGuid)\r\n    if(textObject ~= nil) then\r\n        destroyObject(textObject)\r\n    end\r\nend\r\n\r\nfunction onObjectEnterScriptingZone(zone, enter_object)\r\n    local zoneGuid = zone.getGUID()\r\n    if(zoneGuid ~= scoreZoneGuid) then return end -- Ignore all events for zones that aren't the score zone\r\n    Wait.frames(updateScore, 1) -- wait 1 frame for the object to actually appear in the zone\r\nend\r\nfunction onObjectLeaveScriptingZone(zone, enter_object)\r\n    local zoneGuid = zone.getGUID()\r\n    if(zoneGuid ~= scoreZoneGuid) then return end -- Ignore all events for zones that aren't the score zone\r\n    Wait.frames(updateScore, 1) -- wait 1 frame for the object to actually disappear from the zone\r\nend\r\n--#endregion : Event listeners\r\n\r\nfunction spawnText()\r\n    local text = spawnObject({\r\n        type = '3DText',\r\n        rotation = {90.00, 314.55, 0.00}, -- TODO: Change rotation as needed\r\n        position = {9.89, 1.47, -10.01} -- TODO: Change this to a better location\r\n    })\r\n    text.setValue('0') -- Set a default text value\r\n    text.TextTool.setFontSize(100)  -- TODO: Check if this is the right size\r\n    text.TextTool.setFontColor({0.956, 0.392, 0.113})\r\n    save_data.scoreTextGuid = text.getGUID() -- Save the guid so we know how to reference it\r\nend\r\n\r\nfunction updateScore()\r\n    local scoreValue = getScore()\r\n    local scoreText = getObjectFromGUID(save_data.scoreTextGuid)\r\n    scoreText.setValue(''..scoreValue) -- Convert the number to a string and passes it to the text object\r\nend\r\n\r\nfunction getScore()\r\n    local score = 0\r\n    local zone = getObjectFromGUID(scoreZoneGuid)\r\n    local objects = zone.getObjects() -- get objects already in the zone\r\n    for key,object in ipairs(objects) do -- key = 1|2|3|etc, object = actual TTS object\r\n        local description = object.getDescription() -- get the description\r\n        local number = tonumber(description)  -- convert it to a number\r\n        if(number ~= nil) then -- check if you actually get a number (tonumber returns nil if it isn't)\r\n            score = score + number\r\n        end\r\n    end\r\n    return score\r\nend",
  7893.       "LuaScriptState": "null",
  7894.       "XmlUI": ""
  7895.     },
  7896.     {
  7897.       "GUID": "46e972",
  7898.       "Name": "3DText",
  7899.       "Transform": {
  7900.         "posX": -1.335144E-05,
  7901.         "posY": 1.610007,
  7902.         "posZ": -10.9499931,
  7903.         "rotX": 90.0,
  7904.         "rotY": -1.84237389E-10,
  7905.         "rotZ": 0.0,
  7906.         "scaleX": 1.0,
  7907.         "scaleY": 1.0,
  7908.         "scaleZ": 1.0
  7909.       },
  7910.       "Nickname": "",
  7911.       "Description": "",
  7912.       "GMNotes": "",
  7913.       "AltLookAngle": {
  7914.         "x": 0.0,
  7915.         "y": 0.0,
  7916.         "z": 0.0
  7917.       },
  7918.       "ColorDiffuse": {
  7919.         "r": 1.0,
  7920.         "g": 1.0,
  7921.         "b": 1.0
  7922.       },
  7923.       "LayoutGroupSortIndex": 0,
  7924.       "Value": 0,
  7925.       "Locked": true,
  7926.       "Grid": true,
  7927.       "Snap": true,
  7928.       "IgnoreFoW": false,
  7929.       "MeasureMovement": false,
  7930.       "DragSelectable": true,
  7931.       "Autoraise": true,
  7932.       "Sticky": true,
  7933.       "Tooltip": true,
  7934.       "GridProjection": false,
  7935.       "HideWhenFaceDown": false,
  7936.       "Hands": false,
  7937.       "Text": {
  7938.         "Text": "0",
  7939.         "colorstate": {
  7940.           "r": 0.856,
  7941.           "g": 0.1,
  7942.           "b": 0.094
  7943.         },
  7944.         "fontSize": 100
  7945.       },
  7946.       "LuaScript": "",
  7947.       "LuaScriptState": "",
  7948.       "XmlUI": ""
  7949.     },
  7950.     {
  7951.       "GUID": "c17402",
  7952.       "Name": "3DText",
  7953.       "Transform": {
  7954.         "posX": -8.68003,
  7955.         "posY": 1.87000787,
  7956.         "posZ": -10.01,
  7957.         "rotX": 90.0,
  7958.         "rotY": 45.45001,
  7959.         "rotZ": 0.0,
  7960.         "scaleX": 1.0,
  7961.         "scaleY": 1.0,
  7962.         "scaleZ": 1.0
  7963.       },
  7964.       "Nickname": "",
  7965.       "Description": "",
  7966.       "GMNotes": "",
  7967.       "AltLookAngle": {
  7968.         "x": 0.0,
  7969.         "y": 0.0,
  7970.         "z": 0.0
  7971.       },
  7972.       "ColorDiffuse": {
  7973.         "r": 1.0,
  7974.         "g": 1.0,
  7975.         "b": 1.0
  7976.       },
  7977.       "LayoutGroupSortIndex": 0,
  7978.       "Value": 0,
  7979.       "Locked": true,
  7980.       "Grid": true,
  7981.       "Snap": true,
  7982.       "IgnoreFoW": false,
  7983.       "MeasureMovement": false,
  7984.       "DragSelectable": true,
  7985.       "Autoraise": true,
  7986.       "Sticky": true,
  7987.       "Tooltip": true,
  7988.       "GridProjection": false,
  7989.       "HideWhenFaceDown": false,
  7990.       "Hands": false,
  7991.       "Text": {
  7992.         "Text": "0",
  7993.         "colorstate": {
  7994.           "r": 0.96,
  7995.           "g": 0.439,
  7996.           "b": 0.807
  7997.         },
  7998.         "fontSize": 100
  7999.       },
  8000.       "LuaScript": "",
  8001.       "LuaScriptState": "",
  8002.       "XmlUI": ""
  8003.     },
  8004.     {
  8005.       "GUID": "54e10a",
  8006.       "Name": "3DText",
  8007.       "Transform": {
  8008.         "posX": 9.88999,
  8009.         "posY": 1.47000909,
  8010.         "posZ": -10.01,
  8011.         "rotX": 90.0,
  8012.         "rotY": 314.55,
  8013.         "rotZ": 0.0,
  8014.         "scaleX": 1.0,
  8015.         "scaleY": 1.0,
  8016.         "scaleZ": 1.0
  8017.       },
  8018.       "Nickname": "",
  8019.       "Description": "",
  8020.       "GMNotes": "",
  8021.       "AltLookAngle": {
  8022.         "x": 0.0,
  8023.         "y": 0.0,
  8024.         "z": 0.0
  8025.       },
  8026.       "ColorDiffuse": {
  8027.         "r": 1.0,
  8028.         "g": 1.0,
  8029.         "b": 1.0
  8030.       },
  8031.       "LayoutGroupSortIndex": 0,
  8032.       "Value": 0,
  8033.       "Locked": true,
  8034.       "Grid": true,
  8035.       "Snap": true,
  8036.       "IgnoreFoW": false,
  8037.       "MeasureMovement": false,
  8038.       "DragSelectable": true,
  8039.       "Autoraise": true,
  8040.       "Sticky": true,
  8041.       "Tooltip": true,
  8042.       "GridProjection": false,
  8043.       "HideWhenFaceDown": false,
  8044.       "Hands": false,
  8045.       "Text": {
  8046.         "Text": "0",
  8047.         "colorstate": {
  8048.           "r": 0.956,
  8049.           "g": 0.392,
  8050.           "b": 0.113
  8051.         },
  8052.         "fontSize": 100
  8053.       },
  8054.       "LuaScript": "",
  8055.       "LuaScriptState": "",
  8056.       "XmlUI": ""
  8057.     }
  8058.   ]
  8059. }
Advertisement
Add Comment
Please, Sign In to add comment