diff --git a/Arkham SCE.json b/Arkham SCE.json index 59a538c..a7f7c16 100644 --- a/Arkham SCE.json +++ b/Arkham SCE.json @@ -1,9 +1,9 @@ { - "SaveName": "SCE 1.4064", + "SaveName": "SCE 1.4065", "GameMode": "Arkham Horror LCG - Super Complete Edition", "Gravity": 0.5, "PlayArea": 1.0, - "Date": "4/30/2020 3:16:22 PM", + "Date": "5/6/2020 9:39:48 PM", "Table": "Table_None", "Sky": "Sky_Museum", "SkyURL": "https://i.imgur.com/GkQqaOF.jpg", @@ -195,9 +195,9 @@ "rotX": 0.0, "rotY": 90.0, "rotZ": 0.0, - "scaleX": 22.6103, + "scaleX": 22.6124611, "scaleY": 7.002465, - "scaleZ": 6.947475 + "scaleZ": 6.94843864 } }, { @@ -209,9 +209,9 @@ "rotX": 0.0, "rotY": 90.0, "rotZ": 0.0, - "scaleX": 22.6101685, + "scaleX": 22.6123314, "scaleY": 7.0, - "scaleZ": 6.94742346 + "scaleZ": 6.94838858 } }, { @@ -802,7 +802,7 @@ } }, "XmlUI": "", - "LuaScript": "-- set true to enable debug logging\nDEBUG = false\n\nfunction log(message)\n if DEBUG then\n print(message)\n end\nend\n\n--[[\nKnown locations and clues. We check this to determine if we should\natttempt to spawn clues, first we look for _ and if\nwe find nothing we look for \nformat is [location_guid -> clueCount]\n]]\nLOCATIONS_DATA_JSON = [[\n{\n \"Study\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Study_670914\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Attic_377b20\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Attic\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cellar_5d3bcc\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cellar\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Bathroom\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Bedroom\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Far Above Your House\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Deep Below Your House\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Northside_86faac\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Northside\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Graveyard\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Miskatonic University_cedb0a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Miskatonic University\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Downtown_1aa7cb\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Downtown\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"St. Mary's Hospital\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Easttown_88245c\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Easttown\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Southside\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Rivertown\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Your House_377b20\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Your House_b28633\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Ritual Site\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Arkham Woods_e8e04b\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Arkham Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"New Orleans_5ab18a\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"New Orleans\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Riverside_ab9d69\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Riverside\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Wilderness_3c5ea8\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Wilderness\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unhallowed Land_552a1d\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Unhallowed Land\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Flooded\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Venetian Garden\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Guardian\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Canal-side\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Accademia Bridge\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Bridge of Sighs\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Warren Observatory\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Science Building\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Orne Library\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Administration Building\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Student Union\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Humanities Building\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Dormitories\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Faculty Offices\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Faculty Offices_1c567d\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n\n \"La Bella Luna\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Back Hall Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Museum Entrance\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Security Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Security Office_fcb3e4\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Administration Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Administration Office_d2eb25\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Exhibit Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Exhibit Hall_563240\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Exhibit Hall_f3ffb6\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Exhibit Hall_0b0c58\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Exhibit Hall_2d87e6\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Exhibit Hall_da02ea\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n\n \"Train Car\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Train Car_f3f902\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Train Car_905f69\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Train Car_a3a321\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Train Car_464528\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Train Car_3cfca4\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Train Car_64ffb0\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Train Car_0fb5f0\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Engine Car\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"House in the Reeds\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Osborn's General Store\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Congregational Church\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Bishop's Brook\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Burned Ruins\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Schoolhouse\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Dunwich Village\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Dunwich Village_ac4427\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Cold Spring Glen\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Cold Spring Glen_e58475\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Ten-Acre Meadow\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Ten-Acre Meadow_05b0dd\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Blasted Heath\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Blasted Heath_995fe7\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Whateley Ruins\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Devil's Hop Yard\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Devil's Hop Yard_f7dd31\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Base of the Hill\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Base of the Hill_de3ca2\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Ascending Path\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Ascending Path_0e5289\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Sentinel Peak\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Diverging Path\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Diverging Path_7239aa\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Altered Path\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"The Edge of the Universe\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Tear Through Time\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Prismatic Cascade\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Towering Luminosity\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"front\"},\n \"Tear Through Space\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n \"Endless Bridge\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n \"Dimensional Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Steps of Y'hagharl\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Unstable Vortex\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Indecipherable Stairs\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Backstage Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Backstage Doorway_0797a9\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lobby Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lobby Doorway_7605cf\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lobby\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Backstage\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Balcony\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Foyer\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Historical Society\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Historical Society_40f79d\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_b352f8\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_0cf5d5\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_abc0cb\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_ab6a72\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Hidden Library\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n\n \"Patient Confinement\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Asylum Halls\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Asylum Halls_f99530\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Asylum Halls_576595\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Infirmary\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Basement Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Yard\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Garden\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Kitchen\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Mess Hall\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Grand Guignol\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Montmartre\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Montparnasse\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Notre-Dame\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Gare d'Orsay\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Opéra Garnier\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Canal Saint-Martin\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Le Marais\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Gardens of Luxembourg\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Père Lachaise Cemetery\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Catacombs\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Catacombs_29170f\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_f1237c\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_c3151e\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_14b1cb\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_81920c\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_c14c8b\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_ea2a55\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Catacombs_8bcab3\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Catacombs_7c7f4a\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Catacombs_80cf41\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n\n \"Abbey Church\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Porte de l'Avancée\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Grand Rue\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cloister\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Knight's Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Chœur Gothique\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Outer Wall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Outer Wall_014bd6\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"North Tower\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"North Tower_69eae5\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Chapel of St. Aubert\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Chapel of St. Aubert_e75ba8\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Abbey Tower\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Abbey Tower_2f3d21\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Shores of Hali\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Dark Spires\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Palace of the King\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"front\"},\n \"Palace of the King_60d758\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Ruins of Carcosa\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Dim Streets\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Depths of Demhe\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Bleak Plains\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Recesses of Your Own Mind\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"The Throne Room\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Stage of the Ward Theatre\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Serpent’s Haven\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Ruins of Eztli\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Rope Bridge\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Overgrown Ruins\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"River Canyon\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Path of Thorns\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Temple of the Fang\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Circuitous Trail\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Chamber of Time\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Ancient Hall\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Grand Chamber\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Entryway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Underground Ruins\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Burial Pit\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Secret Passage\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Town Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Curiositie Shoppe\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"At the Station_7edfb0\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"At the Station_e2806c\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"At the Station_28ebe1\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"At the Station_e59778\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Sacred Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Chapultepec Hill\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Chapultepec Hill_b5d586\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Canals of Tenochtitlán\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Lake Xochimilco\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Lake Xochimilco_e3a79d\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Templo Mayor\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Templo Mayor_f3c531\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Temples of Tenochtitlán\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Temples of Tenochtitlán_c097d8\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Mouth of K'n-yan\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Stone Altar\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Time-Wracked Woods\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Vast Passages\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Perilous Gulch\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Dark Hollow\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Hall of Idolatry\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Crystal Pillars\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Interview Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Interview Room_508f85\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Interview Room_4440de\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Halls of Pnakotus\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Deconstruction Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Towers of Pnakotus\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Laboratory of the Great Race\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Yithian Orrery\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Great Library\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"back\"},\n\n \"City of the Serpents\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Bridge over N'kai\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Abandoned Site\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Caverns of Yoth\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Hall of Heresy\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Bright Canyon\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Forked Path\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Nexus of N'kai\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"A Pocket in Time\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"City of the Unseen\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n \"Valusia\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Shores of R’lyeh\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n \"Atlantis\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n \"Pnakotus\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Ruins of New York\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Yuggoth\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Mu\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"front\"},\n\n \"Billiards Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Billiards Room_33990b\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Trophy Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Trophy Room_e9160a\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Master Bedroom\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Balcony_1b5483\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Office_a1bd9a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods_1539ea\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods_d3f8c3\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods_eca18e\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Paths into Twilight\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n\n \"The Imperial Entrance\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Dark Stairwell\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Stairway\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Balcony\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Back Booths\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Lobby\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Backroom Door\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Backroom Door_ed439d\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Dining Area\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Dance Floor\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Gateway to the East\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Back Alley\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Mingzhu Laundry\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Dragon's Den\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"The Phoenix's Nest\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Golden Temple of the Heavens\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Flea Market\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Zihao's House of Fighting Arts\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Daiyu's Tea Garden\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Moldy Halls\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Decrepit Door\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Walter Gilman's Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unknown Places_b538f8\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Unknown Places_7bea34\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Unknown Places\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Unknown Places_9a471d\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unknown Places_0ac3ea\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Strange Geometry\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n \"Site of the Sacrifice\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n\n \"Hangman's Brook\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Abandoned Chapel\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Haunted Fields\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Lobby_1c2dfe\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lobby_bcd556\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lodge Gates_fa6a29\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lodge Gates\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lodge Cellar\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lodge Cellar_8ea4fd\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lounge\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Vault\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Inner Sanctum\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Library\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Library_47ccbc\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Sanctum Doorway\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Sanctum Doorway_4da6c3\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"The Geist-Trap\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Forbidding Shore\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unvisited Isle\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Rivertown_92ee68\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Rivertown_db4b20\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Southside_c898a0\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Southside_e7f5fa\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Silver Twilight Lodge\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Silver Twilight Lodge_17e686\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Hangman's Hill\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Hangman's Hill_5f4d8a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Cosmic Ingress\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Cosmos\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cosmos_a89dbf\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_1a0ad2\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_30fc53\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_8f3e16\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_4e8ae3\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_a8d84d\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"back\"},\n \"Cosmos_7a3ece\": {\"type\": \"fixed\", \"value\": 6, \"clueSide\": \"back\"},\n \"Cosmos_311eb1\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Seventy Steps\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Seven Hundred Steps\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Base of the Steps\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Enchanted Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Stairwell\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Basement Door_42fa87\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Basement Door\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Waiting Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Emergency Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Experimental Therapies Ward\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Records Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Foyer_9a9f9a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Room 245\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Hotel Roof\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Office_b3ed47\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Room 212\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Basement\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Second Floor Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Room 225\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Restaurant\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Suite Balcony\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Ulthar\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Dylath-Leen\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Mt. Ngranek\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Baharna\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Zulan-Thek\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Sarnath\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"City-Which-Appears-On-No-Map\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Celephaïs\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Nameless Ruins\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Kadatheron\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Ilek-Vad\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Ruins of Ib\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Temple of Unattainable Desires\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Hazuth-Kleg\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Serannian\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Mysterious Stairs\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Mysterious Stairs_df1a40\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Attic_10faf9\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unmarked Tomb\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Upstairs Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Front Porch\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Downstairs Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Downstairs Doorway_c93906\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Burial Ground\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Temple of the Moon Lizard\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"City of the Moon-Beasts\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Moon-Forest\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Dark Crater\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Caverns Beneath the Moon\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Black Core\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Light Side of the Moon\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"City of Gugs\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Vaults of Zin\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Plain of the Ghouls\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Sea of Bones\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Vale of Pnath\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Crag of the Ghouls\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Sea of Pitch\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Plateau of Leng\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cold Wastes\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Monastery of Leng\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Onyx Gates\": {\"type\": \"fixed\", \"value\": 12, \"clueSide\": \"back\"},\n \"Forsaken Tower\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"The Crater\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Quarantine Zone\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Quarantine Zone_5f2a9b\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Quarantine Zone_4a8e9c\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Quarantine Zone_5193e9\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Quarantine Zone_b3a920\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"The Great Web\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Great Web_39ace3\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_727790\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_5c5ec4\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_361fd7\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_dfdc8c\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"XXXX\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"xxx\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"}\n}\n]]\n\n--[[\nPlayer cards with token counts and types\n]]\nPLAYER_CARD_DATA_JSON = [[\n{\n \"Flashlight\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Shrivelling\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Shrivelling (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Grotesque Statue (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Forbidden Knowledge\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \".45 Automatic\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Shotgun (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Liquid Courage\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Song of the Dead (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Cover Up\": {\n \"tokenType\": \"clue\",\n \"tokenCount\": 3\n },\n \"Roland's .38 Special\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"First Aid\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scrying\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".41 Derringer\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Painkillers\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Smoking Pipe\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Clarity of Mind\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Rite of Seeking\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"M1918 BAR (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 8\n },\n \"Ornate Bow (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 1\n },\n \".41 Derringer (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Suggestion (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Chicago Typewriter (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Lupara (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"First Aid (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Springfield M1903 (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".32 Colt\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 6\n },\n \"Venturer\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Lockpicks (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Finn's Trusty .38\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".45 Automatic (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Lightning Gun (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Strange Solution (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Strange Solution (4):Empowering Elixir\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Arcane Insight (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Archaic Glyphs (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"In the Know (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Rite of Seeking (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Alchemical Transmutation\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scrying (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Shrivelling (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Mists of R'lyeh\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Mists of R'lyeh (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Colt Vest Pocket\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Old Hunting Rifle (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Thermos\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Feed the Mind (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Seal of the Seventh Sign (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 7\n },\n \"Flamethrower (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Pnakotic Manuscripts (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Kerosene (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Shards of the Void (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Try and Try Again (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Arcane Initiate\": {\n \"tokenType\": \"doom\",\n \"tokenCount\": 1\n },\n \"Detective's Colt 1911s\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Extra Ammunition (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Rite of Seeking (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Arcane Initiate (3)\": {\n \"tokenType\": \"doom\",\n \"tokenCount\": 1\n },\n \"Clarity of Mind (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Fingerprint Kit\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Truth from Fiction\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Enchanted Blade\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Tennessee Sour Mash\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Scroll of Secrets\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".45 Thompson\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Mr. \\\"Rook\\\"\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scroll of Secrets (3):Seeker\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scroll of Secrets (3):Mystic\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Enchanted Blade (3):Guardian\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Enchanted Blade (3):Mystic\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \".45 Thompson (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Esoteric Atlas (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Tennessee Sour Mash (3):Rogue\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Tennessee Sour Mash (3):Survivor\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Mk1 Grenades (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Dayana Esperence\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Pendant of the Queen\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".32 Colt (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 6\n },\n \"Alchemical Transmutation (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Suggestion (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Gate Box\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Tony's .38 Long Colt\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Gregory Gry\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 9\n },\n \"Scroll of Prophecies\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Healing Words\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Otherworld Codex (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".35 Winchester\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Old Book of Lore (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Sawed-Off Shotgun (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Mind's Eye (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"xxx\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n }\n}\n]]\nLOCATIONS_DATA = JSON.decode(LOCATIONS_DATA_JSON)\nPLAYER_CARD_DATA = JSON.decode(PLAYER_CARD_DATA_JSON)\n\nPLAYER_CARD_TOKEN_OFFSETS = {\n [1] = {\n { 0, 3, -0.2 },\n },\n [2] = {\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 },\n },\n [3] = {\n { 0, 3, -0.9 },\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 },\n },\n [4] = {\n { 0.4, 3, -0.9 },\n { -0.4, 3, -0.9 },\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 }\n },\n [5] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 }\n },\n [6] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n },\n [7] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { 0, 3, 0.5 },\n },\n [8] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { -0.35, 3, 0.5 },\n { 0.35, 3, 0.5 },\n },\n [9] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { 0.7, 3, 0.5 },\n { 0, 3, 0.5 },\n { -0.7, 3, 0.5 },\n },\n [12] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { 0.7, 3, 0.5 },\n { 0, 3, 0.5 },\n { -0.7, 3, 0.5 },\n { 0.7, 3, 1.2 },\n { 0, 3, 1.2 },\n { -0.7, 3, 1.2 },\n }\n\n}\n\nmodeData = {\n ['Core Set'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Devourer Below'] = {\n easy = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' },\n normal = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' },\n hard = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' },\n expert = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' }\n },\n -----------------The Dunwich Legacy\n\n ['The Dunwich Legacy'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'red', 'blue' } }\n },\n ['The Miskatonic Museum'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Essex County Express'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Blood on the Altar'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Undimensioned and Unseen'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Where Doom Awaits'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Lost in Time and Space'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n -----------------The Path to Carcosa\n\n ['The Path to Carcosa'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'skull', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'red', 'blue' } }\n },\n ['The Last King'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['Echoes of the Past'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['The Unspeakable Oath'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['A Phantom of Truth'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['The Pallid Mask'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['Black Stars Rise'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['Dim Carcosa'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'red', 'blue' } }\n },\n -----------------The Forgotten Age\n\n ['The Forgotten Age'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm6', 'm8', 'skull', 'skull', 'elder', 'red', 'blue' } }\n },\n ['The Doom of Eztli'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Threads of Fate'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Boundary Beyond'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The City of Archives'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Depths of Yoth'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Heart of the Elders'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Shattered Aeons'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } }\n },\n\n -----------------The Circle Undone\n\n ['The Circle Undone'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm6', 'm8', 'skull', 'skull', 'red', 'blue' } }\n },\n ['The Witching Hour'] = {\n standalone = { token = { 'p1', '0', '0', 'm1','m1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Wages of Sin'] = {\n standalone = { token = { 'p1', '0', '0', 'm1','m1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['For the Greater Good'] = {\n standalone = { token = { 'p1', '0', '0', 'm1','m1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n\n -----------------The Dream-Eaters\n\n ['TDE_A'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['TDE_B'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n ['The Search For Kadath'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['A Thousand Shapes of Horror'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n ['Dark Side of the Moon'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Point of No Return'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n ['Where the Gods Dwell'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Weaver of the Cosmos'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n\n -----------------The Side Missions\n --official\n ['Curse of the Rougarou'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Carnevale of Horrors'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Labyrinths of Lunacy'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { 'p1', '0','m1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'red', 'blue' } }\n },\n ['Guardians of the Abyss'] = {\n normal = { token = { 'p1', 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['Excelsior'] = {\n normal = { token = { 'p1', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n --fan-made\n ['The Nephew Calls'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Outsider'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Stranger Things'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Winter Winds'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'skull', 'cultist', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'cultist', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'cultist', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'cultist', 'red', 'blue' } }\n },\n ['The Festival'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Forbidding Desert'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Happys Funhouse'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm5', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Knightfall'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'cultist', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Last Call at Roxies'] = {\n easy = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'elder', 'red', 'blue' } }\n },\n ['The Limens of Belief'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Blood Spilled in Salem'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Bread and Circuses'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['Bridge of Sighs'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Collector'] = {\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Colour out of Space'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Curse of Amultep'] = {\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Dying Star'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'blue', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'blue', 'red', 'blue' } }\n },\n ['Against the Wendigo'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Pensher Wyrm'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'elder', 'red', 'blue' } }\n },\n ['Approaching Storm'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Into the Shadowlands'] = {\n easy = { token = { 'p1', 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['London Set 1'] = {\n easy = { token = { 'p2', 'p1', '0', '0', '0', 'm1', 'm2', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm2', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm2', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n },\n ['London Set 2'] = {\n normal = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'elder', 'tablet', 'red', 'blue' } },\n },\n ['London Set 3'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n },\n ['Delta Green'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['Jennys Choice'] = {\n easy = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4','skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Blob'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['The Initiation'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm6', 'm8', 'skull', 'skull', 'elder', 'red', 'blue' } }\n },\n ['Consternation'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'red', 'blue' } },\n },\n ['Of Sphinx'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'elder', 'cultist', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'elder', 'cultist', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'elder', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['XXXX'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n\n}\n\nfunction onSave()\n local globalState = JSON.encode(SPAWNED_PLAYER_CARD_GUIDS)\n log('saving global state: ' .. globalState)\n self.script_state = globalState\nend\n\nfunction onload(save_state)\n if save_state ~= '' then\n log('loading global state: ' .. save_state)\n SPAWNED_PLAYER_CARD_GUIDS = JSON.decode(save_state)\n else\n SPAWNED_PLAYER_CARD_GUIDS = {}\n end\nend\n\nfunction getSpawnedPlayerCardGuid(params)\n local guid = params[1]\n if SPAWNED_PLAYER_CARD_GUIDS == nil then\n return nil\n end\n return SPAWNED_PLAYER_CARD_GUIDS[guid]\nend\n\nfunction setSpawnedPlayerCardGuid(params)\n local guid = params[1]\n local value = params[2]\n if SPAWNED_PLAYER_CARD_GUIDS ~= nil then\n SPAWNED_PLAYER_CARD_GUIDS[guid] = value\n return true\n end\n return false\nend", + "LuaScript": "-- set true to enable debug logging\nDEBUG = false\n\nfunction log(message)\n if DEBUG then\n print(message)\n end\nend\n\n--[[\nKnown locations and clues. We check this to determine if we should\natttempt to spawn clues, first we look for _ and if\nwe find nothing we look for \nformat is [location_guid -> clueCount]\n]]\nLOCATIONS_DATA_JSON = [[\n{\n \"Study\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Study_670914\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Attic_377b20\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Attic\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cellar_5d3bcc\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cellar\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Bathroom\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Bedroom\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Far Above Your House\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Deep Below Your House\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Northside_86faac\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Northside\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Graveyard\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Miskatonic University_cedb0a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Miskatonic University\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Downtown_1aa7cb\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Downtown\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"St. Mary's Hospital\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Easttown_88245c\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Easttown\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Southside\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Rivertown\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Your House_377b20\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Your House_b28633\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Ritual Site\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Arkham Woods_e8e04b\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Arkham Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"New Orleans_5ab18a\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"New Orleans\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Riverside_ab9d69\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Riverside\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Wilderness_3c5ea8\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Wilderness\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unhallowed Land_552a1d\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Unhallowed Land\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Flooded\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Venetian Garden\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Guardian\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Canal-side\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Accademia Bridge\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Bridge of Sighs\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Warren Observatory\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Science Building\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Orne Library\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Administration Building\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Student Union\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Humanities Building\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Dormitories\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Faculty Offices\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Faculty Offices_1c567d\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n\n \"La Bella Luna\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Back Hall Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Museum Entrance\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Security Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Security Office_fcb3e4\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Administration Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Administration Office_d2eb25\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Exhibit Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Exhibit Hall_563240\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Exhibit Hall_f3ffb6\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Exhibit Hall_0b0c58\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Exhibit Hall_2d87e6\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Exhibit Hall_da02ea\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n\n \"Train Car\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Train Car_f3f902\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Train Car_905f69\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Train Car_a3a321\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Train Car_464528\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Train Car_3cfca4\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Train Car_64ffb0\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Train Car_0fb5f0\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Engine Car\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"House in the Reeds\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Osborn's General Store\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Congregational Church\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Bishop's Brook\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Burned Ruins\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Schoolhouse\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Dunwich Village\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Dunwich Village_ac4427\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Cold Spring Glen\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Cold Spring Glen_e58475\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Ten-Acre Meadow\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Ten-Acre Meadow_05b0dd\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Blasted Heath\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Blasted Heath_995fe7\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Whateley Ruins\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Devil's Hop Yard\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Devil's Hop Yard_f7dd31\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Base of the Hill\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Base of the Hill_de3ca2\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Ascending Path\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Ascending Path_0e5289\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Sentinel Peak\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Diverging Path\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Diverging Path_7239aa\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Altered Path\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"The Edge of the Universe\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Tear Through Time\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Prismatic Cascade\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Towering Luminosity\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"front\"},\n \"Tear Through Space\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n \"Endless Bridge\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n \"Dimensional Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Steps of Y'hagharl\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Unstable Vortex\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Indecipherable Stairs\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Backstage Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Backstage Doorway_0797a9\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lobby Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lobby Doorway_7605cf\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lobby\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Backstage\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Balcony\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Foyer\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Historical Society\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Historical Society_40f79d\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_b352f8\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_0cf5d5\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_abc0cb\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Historical Society_ab6a72\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Hidden Library\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n\n \"Patient Confinement\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Asylum Halls\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Asylum Halls_f99530\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Asylum Halls_576595\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Infirmary\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Basement Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Yard\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Garden\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Kitchen\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Mess Hall\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Grand Guignol\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Montmartre\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Montparnasse\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Notre-Dame\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Gare d'Orsay\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Opéra Garnier\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Canal Saint-Martin\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Le Marais\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Gardens of Luxembourg\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Père Lachaise Cemetery\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Catacombs\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Catacombs_29170f\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_f1237c\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_c3151e\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_14b1cb\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_81920c\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_c14c8b\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Catacombs_ea2a55\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Catacombs_8bcab3\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Catacombs_7c7f4a\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Catacombs_80cf41\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n\n \"Abbey Church\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Porte de l'Avancée\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Grand Rue\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cloister\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Knight's Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Chœur Gothique\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Outer Wall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Outer Wall_014bd6\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"North Tower\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"North Tower_69eae5\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Chapel of St. Aubert\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Chapel of St. Aubert_e75ba8\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Abbey Tower\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n \"Abbey Tower_2f3d21\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Shores of Hali\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Dark Spires\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Palace of the King\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"front\"},\n \"Palace of the King_60d758\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Ruins of Carcosa\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Dim Streets\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Depths of Demhe\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Bleak Plains\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Recesses of Your Own Mind\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"The Throne Room\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Stage of the Ward Theatre\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Serpent’s Haven\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Ruins of Eztli\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Rope Bridge\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Overgrown Ruins\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"River Canyon\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Path of Thorns\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Temple of the Fang\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Circuitous Trail\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Chamber of Time\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Ancient Hall\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Grand Chamber\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Entryway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Underground Ruins\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Burial Pit\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Secret Passage\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Town Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Curiositie Shoppe\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"At the Station_7edfb0\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"At the Station_e2806c\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"At the Station_28ebe1\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"At the Station_e59778\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Sacred Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Chapultepec Hill\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Chapultepec Hill_b5d586\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Canals of Tenochtitlán\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Lake Xochimilco\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Lake Xochimilco_e3a79d\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Templo Mayor\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Templo Mayor_f3c531\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Temples of Tenochtitlán\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Temples of Tenochtitlán_c097d8\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Mouth of K'n-yan\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Stone Altar\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Time-Wracked Woods\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Vast Passages\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Perilous Gulch\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Dark Hollow\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Hall of Idolatry\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Crystal Pillars\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Interview Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Interview Room_508f85\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Interview Room_4440de\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Halls of Pnakotus\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Deconstruction Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Towers of Pnakotus\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Laboratory of the Great Race\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Yithian Orrery\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Great Library\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"back\"},\n\n \"City of the Serpents\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Bridge over N'kai\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Abandoned Site\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Caverns of Yoth\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Hall of Heresy\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Bright Canyon\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Forked Path\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Nexus of N'kai\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"A Pocket in Time\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"City of the Unseen\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n \"Valusia\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n\n \"Shores of R’lyeh\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n \"Atlantis\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"front\"},\n \"Pnakotus\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Ruins of New York\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Yuggoth\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"front\"},\n \"Mu\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"front\"},\n\n \"Billiards Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Billiards Room_33990b\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Trophy Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Trophy Room_e9160a\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Master Bedroom\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Balcony_1b5483\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Office_a1bd9a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods_1539ea\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods_d3f8c3\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Witch-Haunted Woods_eca18e\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Paths into Twilight\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n\n \"The Imperial Entrance\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Dark Stairwell\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Stairway\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Balcony\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Back Booths\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Lobby\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Backroom Door\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Backroom Door_ed439d\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Dining Area\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Dance Floor\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Gateway to the East\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Back Alley\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Mingzhu Laundry\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Dragon's Den\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"The Phoenix's Nest\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Golden Temple of the Heavens\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Flea Market\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Zihao's House of Fighting Arts\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Daiyu's Tea Garden\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Moldy Halls\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Decrepit Door\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Walter Gilman's Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unknown Places_b538f8\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Unknown Places_7bea34\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Unknown Places\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Unknown Places_9a471d\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unknown Places_0ac3ea\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Strange Geometry\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"front\"},\n \"Site of the Sacrifice\": {\"type\": \"perPlayer\", \"value\": 3, \"clueSide\": \"back\"},\n\n \"Hangman's Brook\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Abandoned Chapel\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Haunted Fields\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Lobby_1c2dfe\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lobby_bcd556\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lodge Gates_fa6a29\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lodge Gates\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lodge Cellar\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Lodge Cellar_8ea4fd\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Lounge\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Vault\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Inner Sanctum\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Library\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Library_47ccbc\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Sanctum Doorway\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Sanctum Doorway_4da6c3\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"The Geist-Trap\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Forbidding Shore\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unvisited Isle\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Rivertown_92ee68\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Rivertown_db4b20\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Southside_c898a0\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Southside_e7f5fa\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Silver Twilight Lodge\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Silver Twilight Lodge_17e686\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Hangman's Hill\": {\"type\": \"fixed\", \"value\": 0, \"clueSide\": \"back\"},\n \"Hangman's Hill_5f4d8a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Cosmic Ingress\": {\"type\": \"fixed\", \"value\": 3, \"clueSide\": \"back\"},\n \"Cosmos\": {\"type\": \"fixed\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cosmos_a89dbf\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_1a0ad2\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_30fc53\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_8f3e16\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_4e8ae3\": {\"type\": \"fixed\", \"value\": 2, \"clueSide\": \"back\"},\n \"Cosmos_a8d84d\": {\"type\": \"fixed\", \"value\": 4, \"clueSide\": \"back\"},\n \"Cosmos_7a3ece\": {\"type\": \"fixed\", \"value\": 6, \"clueSide\": \"back\"},\n \"Cosmos_311eb1\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Seventy Steps\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Seven Hundred Steps\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Base of the Steps\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Enchanted Woods\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Stairwell\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Basement Door_42fa87\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Basement Door\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Waiting Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Emergency Room\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Experimental Therapies Ward\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Records Office\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"Foyer_9a9f9a\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Room 245\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Hotel Roof\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Office_b3ed47\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Room 212\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Basement\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Second Floor Hall\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Room 225\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Restaurant\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Suite Balcony\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Ulthar\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Dylath-Leen\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Mt. Ngranek\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Baharna\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Zulan-Thek\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Sarnath\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"City-Which-Appears-On-No-Map\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Celephaïs\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Nameless Ruins\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Kadatheron\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Ilek-Vad\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Ruins of Ib\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Temple of Unattainable Desires\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Hazuth-Kleg\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Serannian\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Mysterious Stairs\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Mysterious Stairs_df1a40\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Attic_10faf9\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Unmarked Tomb\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Upstairs Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Front Porch\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Downstairs Doorway\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Downstairs Doorway_c93906\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Burial Ground\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"Temple of the Moon Lizard\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"City of the Moon-Beasts\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Moon-Forest\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Dark Crater\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Caverns Beneath the Moon\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Black Core\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Light Side of the Moon\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"City of Gugs\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Vaults of Zin\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Plain of the Ghouls\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Sea of Bones\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Vale of Pnath\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n \"Crag of the Ghouls\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"front\"},\n \"Sea of Pitch\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"front\"},\n\n \"Plateau of Leng\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Cold Wastes\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Monastery of Leng\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Onyx Gates\": {\"type\": \"fixed\", \"value\": 12, \"clueSide\": \"back\"},\n \"Forsaken Tower\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n\n \"The Crater\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Quarantine Zone\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"Quarantine Zone_5f2a9b\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Quarantine Zone_4a8e9c\": {\"type\": \"perPlayer\", \"value\": 0, \"clueSide\": \"back\"},\n \"Quarantine Zone_5193e9\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"Quarantine Zone_b3a920\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"The Great Web\": {\"type\": \"perPlayer\", \"value\": 1, \"clueSide\": \"back\"},\n \"The Great Web_39ace3\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_727790\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_5c5ec4\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_361fd7\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"The Great Web_dfdc8c\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n\n \"XXXX\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"},\n \"xxx\": {\"type\": \"perPlayer\", \"value\": 2, \"clueSide\": \"back\"}\n}\n]]\n\n--[[\nPlayer cards with token counts and types\n]]\nPLAYER_CARD_DATA_JSON = [[\n{\n \"Flashlight\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Shrivelling\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Shrivelling (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Grotesque Statue (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Forbidden Knowledge\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \".45 Automatic\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Shotgun (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Liquid Courage\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Song of the Dead (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Cover Up\": {\n \"tokenType\": \"clue\",\n \"tokenCount\": 3\n },\n \"Roland's .38 Special\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"First Aid\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scrying\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".41 Derringer\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Painkillers\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Smoking Pipe\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Clarity of Mind\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Rite of Seeking\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"M1918 BAR (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 8\n },\n \"Ornate Bow (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 1\n },\n \".41 Derringer (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Suggestion (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Chicago Typewriter (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Lupara (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"First Aid (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Springfield M1903 (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".32 Colt\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 6\n },\n \"Venturer\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Lockpicks (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Finn's Trusty .38\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".45 Automatic (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Lightning Gun (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Strange Solution (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Strange Solution (4):Empowering Elixir\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Arcane Insight (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Archaic Glyphs (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"In the Know (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Rite of Seeking (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Alchemical Transmutation\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scrying (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Shrivelling (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Mists of R'lyeh\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Mists of R'lyeh (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Colt Vest Pocket\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Old Hunting Rifle (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Thermos\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Feed the Mind (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Seal of the Seventh Sign (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 7\n },\n \"Flamethrower (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Pnakotic Manuscripts (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Kerosene (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Shards of the Void (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Try and Try Again (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Arcane Initiate\": {\n \"tokenType\": \"doom\",\n \"tokenCount\": 1\n },\n \"Detective's Colt 1911s\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Extra Ammunition (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Rite of Seeking (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Arcane Initiate (3)\": {\n \"tokenType\": \"doom\",\n \"tokenCount\": 1\n },\n \"Clarity of Mind (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Fingerprint Kit\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Truth from Fiction\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Enchanted Blade\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Tennessee Sour Mash\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Scroll of Secrets\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".45 Thompson\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Mr. \\\"Rook\\\"\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scroll of Secrets (3):Seeker\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Scroll of Secrets (3):Mystic\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Enchanted Blade (3):Guardian\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Enchanted Blade (3):Mystic\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \".45 Thompson (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Esoteric Atlas (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Tennessee Sour Mash (3):Rogue\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Tennessee Sour Mash (3):Survivor\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Mk1 Grenades (4)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Dayana Esperence\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Pendant of the Queen\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".32 Colt (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 6\n },\n \"Alchemical Transmutation (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Suggestion (1)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Gate Box\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Tony's .38 Long Colt\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Gregory Gry\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 9\n },\n \"Scroll of Prophecies\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 4\n },\n \"Healing Words\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"Otherworld Codex (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \".35 Winchester\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 5\n },\n \"Old Book of Lore (3)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Sawed-Off Shotgun (5)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 2\n },\n \"Mind's Eye (2)\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n },\n \"xxx\": {\n \"tokenType\": \"resource\",\n \"tokenCount\": 3\n }\n}\n]]\nLOCATIONS_DATA = JSON.decode(LOCATIONS_DATA_JSON)\nPLAYER_CARD_DATA = JSON.decode(PLAYER_CARD_DATA_JSON)\n\nPLAYER_CARD_TOKEN_OFFSETS = {\n [1] = {\n { 0, 3, -0.2 },\n },\n [2] = {\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 },\n },\n [3] = {\n { 0, 3, -0.9 },\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 },\n },\n [4] = {\n { 0.4, 3, -0.9 },\n { -0.4, 3, -0.9 },\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 }\n },\n [5] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.4, 3, -0.2 },\n { -0.4, 3, -0.2 }\n },\n [6] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n },\n [7] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { 0, 3, 0.5 },\n },\n [8] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { -0.35, 3, 0.5 },\n { 0.35, 3, 0.5 },\n },\n [9] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { 0.7, 3, 0.5 },\n { 0, 3, 0.5 },\n { -0.7, 3, 0.5 },\n },\n [12] = {\n { 0.7, 3, -0.9 },\n { 0, 3, -0.9 },\n { -0.7, 3, -0.9 },\n { 0.7, 3, -0.2 },\n { 0, 3, -0.2 },\n { -0.7, 3, -0.2 },\n { 0.7, 3, 0.5 },\n { 0, 3, 0.5 },\n { -0.7, 3, 0.5 },\n { 0.7, 3, 1.2 },\n { 0, 3, 1.2 },\n { -0.7, 3, 1.2 },\n }\n\n}\n\nmodeData = {\n ['Core Set'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Devourer Below'] = {\n easy = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' },\n normal = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' },\n hard = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' },\n expert = { parent = 'Core Set', append = { 'elder' }, message = 'An additional token for the preparation of this scenario has been added to the bag.' }\n },\n -----------------The Dunwich Legacy\n\n ['The Dunwich Legacy'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'red', 'blue' } }\n },\n ['The Miskatonic Museum'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Essex County Express'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Blood on the Altar'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Undimensioned and Unseen'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Where Doom Awaits'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Lost in Time and Space'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n -----------------The Path to Carcosa\n\n ['The Path to Carcosa'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'skull', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'red', 'blue' } }\n },\n ['The Last King'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['Echoes of the Past'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['The Unspeakable Oath'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['A Phantom of Truth'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['The Pallid Mask'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['Black Stars Rise'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'red', 'blue' }, random = { {'cultist', 'cultist'}, {'tablet', 'tablet'}, {'elder', 'elder'} } }\n },\n ['Dim Carcosa'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'red', 'blue' } }\n },\n -----------------The Forgotten Age\n\n ['The Forgotten Age'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm6', 'm8', 'skull', 'skull', 'elder', 'red', 'blue' } }\n },\n ['The Doom of Eztli'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Threads of Fate'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Boundary Beyond'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The City of Archives'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Depths of Yoth'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Heart of the Elders'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Shattered Aeons'] = {\n standalone = { token = { 'p1', '0', '0', '0','m1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } }\n },\n\n -----------------The Circle Undone\n\n ['The Circle Undone'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm6', 'm8', 'skull', 'skull', 'red', 'blue' } }\n },\n ['The Witching Hour'] = {\n standalone = { token = { 'p1', '0', '0', 'm1','m1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Wages of Sin'] = {\n standalone = { token = { 'p1', '0', '0', 'm1','m1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['For the Greater Good'] = {\n standalone = { token = { 'p1', '0', '0', 'm1','m1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n\n -----------------The Dream-Eaters\n\n ['TDE_A'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['TDE_B'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n ['The Search For Kadath'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['A Thousand Shapes of Horror'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n ['Dark Side of the Moon'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Point of No Return'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n ['Where the Gods Dwell'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Weaver of the Cosmos'] = {\n standalone = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'cultist', 'elder', 'elder', 'red', 'blue' } }\n },\n\n -----------------The Side Missions\n --official\n ['Curse of the Rougarou'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Carnevale of Horrors'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Labyrinths of Lunacy'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { 'p1', '0','m1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'red', 'blue' } }\n },\n ['Guardians of the Abyss'] = {\n normal = { token = { 'p1', 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['Excelsior'] = {\n normal = { token = { 'p1', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['Read or Die'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n\n --fan-made\n ['The Nephew Calls'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Outsider'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Stranger Things'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Winter Winds'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'skull', 'cultist', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'cultist', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'cultist', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'cultist', 'red', 'blue' } }\n },\n ['The Festival'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Forbidding Desert'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Happys Funhouse'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm5', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Knightfall'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'cultist', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Last Call at Roxies'] = {\n easy = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'elder', 'red', 'blue' } }\n },\n ['The Limens of Belief'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }\n },\n ['Blood Spilled in Salem'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Bread and Circuses'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['Bridge of Sighs'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Collector'] = {\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Colour out of Space'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Curse of Amultep'] = {\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['The Dying Star'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'blue', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'blue', 'red', 'blue' } }\n },\n ['Against the Wendigo'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Pensher Wyrm'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'elder', 'red', 'blue' } }\n },\n ['Approaching Storm'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['Into the Shadowlands'] = {\n easy = { token = { 'p1', 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['London Set 1'] = {\n easy = { token = { 'p2', 'p1', '0', '0', '0', 'm1', 'm2', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm2', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm2', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },\n },\n ['London Set 2'] = {\n normal = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'elder', 'tablet', 'red', 'blue' } },\n },\n ['London Set 3'] = {\n normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n },\n ['Delta Green'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['Jennys Choice'] = {\n easy = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4','skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'elder', 'red', 'blue' } }\n },\n ['The Blob'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },\n },\n ['The Initiation'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'elder', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm6', 'm8', 'skull', 'skull', 'elder', 'red', 'blue' } }\n },\n ['Consternation'] = {\n normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' } },\n hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'red', 'blue' } },\n },\n ['Of Sphinx'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'elder', 'cultist', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'elder', 'cultist', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'elder', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n ['XXXX'] = {\n easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },\n expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }\n },\n\n}\n\nfunction onSave()\n local globalState = JSON.encode(SPAWNED_PLAYER_CARD_GUIDS)\n log('saving global state: ' .. globalState)\n self.script_state = globalState\nend\n\nfunction onload(save_state)\n if save_state ~= '' then\n log('loading global state: ' .. save_state)\n SPAWNED_PLAYER_CARD_GUIDS = JSON.decode(save_state)\n else\n SPAWNED_PLAYER_CARD_GUIDS = {}\n end\nend\n\nfunction getSpawnedPlayerCardGuid(params)\n local guid = params[1]\n if SPAWNED_PLAYER_CARD_GUIDS == nil then\n return nil\n end\n return SPAWNED_PLAYER_CARD_GUIDS[guid]\nend\n\nfunction setSpawnedPlayerCardGuid(params)\n local guid = params[1]\n local value = params[2]\n if SPAWNED_PLAYER_CARD_GUIDS ~= nil then\n SPAWNED_PLAYER_CARD_GUIDS[guid] = value\n return true\n end\n return false\nend\n", "LuaScriptState": "{\"1186a1\":true,\"1339b0\":true,\"462291\":true,\"529289\":true,\"682878\":true,\"a58a8f\":true,\"bcca6e\":true,\"ec44aa\":true}", "GUID": "708279" }, @@ -1175,7 +1175,7 @@ "posZ": -31.9828682, "rotX": 359.918152, "rotY": 269.674561, - "rotZ": 0.0173959918, + "rotZ": 0.0173960309, "scaleX": 0.325000376, "scaleY": 0.325000376, "scaleZ": 0.325000376 @@ -40917,9 +40917,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.374544829, - "g": 0.374544829, - "b": 0.374544829 + "r": 0.37454465, + "g": 0.37454465, + "b": 0.37454465 }, "Locked": true, "Grid": true, @@ -41046,9 +41046,9 @@ { "Name": "3DText", "Transform": { - "posX": -48.92113, - "posY": 1.25338256, - "posZ": 71.390686, + "posX": -48.9211349, + "posY": 1.25338674, + "posZ": 71.39088, "rotX": 90.0, "rotY": 90.0, "rotZ": 0.0, @@ -42210,8 +42210,8 @@ }, "Rotation": { "x": -3.66321835E-08, - "y": 0.0280850045, - "z": -2.184345E-07 + "y": 0.028085025, + "z": -2.18434337E-07 } }, { @@ -42222,7 +42222,7 @@ }, "Rotation": { "x": -3.6553363E-08, - "y": 0.0281123258, + "y": 0.0281123444, "z": -5.402876E-07 } }, @@ -42234,7 +42234,7 @@ }, "Rotation": { "x": -3.67513557E-08, - "y": 0.0281430613, + "y": 0.0281430818, "z": 2.6679524E-07 } }, @@ -42246,7 +42246,7 @@ }, "Rotation": { "x": -3.76656857E-08, - "y": 0.0281430613, + "y": 0.0281430818, "z": -2.79978553E-06 } }, @@ -42258,7 +42258,7 @@ }, "Rotation": { "x": -3.518123E-08, - "y": 0.0281430613, + "y": 0.0281430818, "z": 6.636666E-07 } }, @@ -42922,7 +42922,7 @@ }, "XmlUI": "", "LuaScript": "-- set true to enable debug logging\nDEBUG = false\n\n-- we use this to turn off collision handling (for clue spawning)\n-- until after load is complete (probably a better way to do this)\nCOLLISION_ENABLED = false\n\n-- TODO get the log function from global instead\n-- log = Global.call('getLogFunction', this)\nfunction getLogFunction(object)\n return function (message)\n if DEBUG then\n print(message)\n end\n end\nend\n\nlog = getLogFunction(self)\n\nfunction onload(save_state)\n self.interactable = DEBUG\n local dataHelper = getObjectFromGUID('708279')\n LOCATIONS = dataHelper.getTable('LOCATIONS_DATA')\n\n TOKEN_PLAYER_ONE = Global.getTable('tokenplayerone')\n COUNTER = getObjectFromGUID('f182ee')\n log('attempting to load state: ' .. save_state)\n if save_state ~= '' then\n SPAWNED_LOCATION_GUIDS = JSON.decode(save_state)\n end\n COLLISION_ENABLED = true\nend\n\nfunction onSave()\n local spawned_locations = JSON.encode(SPAWNED_LOCATION_GUIDS)\n self.script_state = spawned_locations\nend\n\n--[[\nrecords locations we have spawned clues for, we write this to the save\nfile onsave() so we don't spawn clues again after a load\n]]\nSPAWNED_LOCATION_GUIDS = {}\n\nfunction isAlreadySpawned(object)\n return SPAWNED_LOCATION_GUIDS[object.getGUID()] ~= nil\nend\n\nfunction markSpawned(object)\n SPAWNED_LOCATION_GUIDS[object.getGUID()] = 1\nend\n\nfunction buildKey(object)\n return object.getName() .. '_' .. object.getGUID()\nend\n\n-- try the compound key then the name alone as default\nfunction getLocation(object)\n return LOCATIONS[buildKey(object)] or LOCATIONS[object.getName()]\nend\n\nfunction isLocationWithClues(object)\n return getLocation(object) ~= nil\nend\n\n--[[\nReturn the number of clues to spawn on this location\n]]\nfunction getClueCount(object, isFaceDown, playerCount)\n if not isLocationWithClues(object) then\n error('attempted to get clue for unexpected object: ' .. object.getName())\n end\n local details = getLocation(object)\n log(object.getName() .. ' : ' .. details['type'] .. ' : ' .. details['value'] .. ' : ' .. details['clueSide'])\n if ((isFaceDown and details['clueSide'] == 'back')\n or (not isFaceDown and details['clueSide'] == 'front')) then\n if details['type'] == 'fixed' then\n return details['value']\n elseif details['type'] == 'perPlayer' then\n return details['value'] * playerCount\n end\n error('unexpected location type: ' .. details['type'])\n end\n return 0\nend\n\nfunction spawnToken(position, number)\n local obj_parameters = {}\n obj_parameters.type = 'Custom_Token'\n obj_parameters.position = position\n obj_parameters.rotation = {3.87674022, -90, 0.239081308}\n local token = spawnObject(obj_parameters)\n local custom = {}\n custom.thickness = 0.1\n custom.merge_distance = 5.0\n custom.stackable = true\n if number == '1' then\n custom.image = TOKEN_PLAYER_ONE.damageone\n token.setCustomObject(custom)\n token.scale {0.17, 1, 0.17}\n return token\n end\n\n if number == '2' then\n custom.image = TOKEN_PLAYER_ONE.damagethree\n token.setCustomObject(custom)\n token.scale {0.18, 1, 0.18}\n return token\n end\n\n if number == '3' then\n custom.image = TOKEN_PLAYER_ONE.clue\n token.setCustomObject(custom)\n token.scale {0.15, 1, 0.15}\n token.use_snap_points=false\n return token\n end\n\n if number == '4' then\n custom.image = TOKEN_PLAYER_ONE.doom\n token.setCustomObject(custom)\n token.scale {0.17, 1, 0.17}\n token.use_snap_points=false\n return token\n end\nend\n\nfunction spawnCluesAtLocation(clueCount, collision_info)\n local object = collision_info.collision_object\n if isAlreadySpawned(object) then\n error('tried to spawn clue for already spawned location:' .. object.getName())\n end\n\n local obj_parameters = {}\n obj_parameters.type = 'Custom_Token'\n obj_parameters.position = {\n object.getPosition()[1],\n object.getPosition()[2] + 1,\n object.getPosition()[3]\n }\n\n log('spawning clues for ' .. object.getName() .. '_' .. object.getGUID())\n local playerCount = COUNTER.getVar('val')\n log('player count is ' .. playerCount .. ', clue count is ' .. clueCount)\n -- mark this location as spawned, can't happen again\n markSpawned(object)\n i = 0\n while i < clueCount do\n if i < 4 then\n obj_parameters.position = {\n collision_info.collision_object.getPosition()[1] + 0.3,\n collision_info.collision_object.getPosition()[2] + 0.2,\n collision_info.collision_object.getPosition()[3] - 0.8 + (0.55 * i)\n }\n elseif i < 8 then\n obj_parameters.position = {\n collision_info.collision_object.getPosition()[1] + 0.85,\n collision_info.collision_object.getPosition()[2] + 0.2,\n collision_info.collision_object.getPosition()[3] - 3 + (0.55 * i)\n }\n else\n obj_parameters.position = {\n collision_info.collision_object.getPosition()[1] + 0.575,\n collision_info.collision_object.getPosition()[2] + 0.4,\n collision_info.collision_object.getPosition()[3] - 5.2 + (0.55 * i)}\n end\n spawnToken(obj_parameters.position, '3')\n i = i + 1\n end\nend\n\nfunction onCollisionEnter(collision_info)\n -- short circuit all collision stuff until we've loaded state\n if not COLLISION_ENABLED then\n return\n end\n\n -- check if we should spawn clues here\n local object = collision_info.collision_object\n if isLocationWithClues(object) and not isAlreadySpawned(object) then\n -- this isn't an either/or as down/up here means at a relatively low angle\n -- local isFaceUp = not object.is_face_down\n -- local isFaceDown = (object.getRotation()[3] > 160 and object.getRotation()[3] < 200)\n local playerCount = COUNTER.getVar('val')\n local clueCount = getClueCount(object, object.is_face_down, playerCount)\n if clueCount > 0 then\n spawnCluesAtLocation(clueCount, collision_info)\n end\n end\nend", - "LuaScriptState": "{\"46bf2e\":1,\"4787ca\":1,\"6442b7\":1,\"64b0a5\":1,\"6d3a3b\":1,\"728f30\":1,\"7380f1\":1,\"74b3c0\":1,\"89a573\":1,\"9471f2\":1,\"9f1a49\":1,\"bdf29a\":1,\"d8bfce\":1,\"f2f951\":1,\"f71821\":1}", + "LuaScriptState": "{\"46bf2e\":1,\"4787ca\":1,\"5cc2d6\":1,\"6442b7\":1,\"64b0a5\":1,\"6d3a3b\":1,\"728f30\":1,\"7380f1\":1,\"74b3c0\":1,\"89a573\":1,\"9471f2\":1,\"9f1a49\":1,\"bdf29a\":1,\"d8bfce\":1,\"f2f951\":1,\"f71821\":1}", "GUID": "721ba2" }, { @@ -43078,12 +43078,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 32.3002663, - "posY": 1.8711859, - "posZ": 0.1399816, + "posX": 32.30029, + "posY": 1.87118578, + "posZ": 0.1399795, "rotX": 359.920135, "rotY": 269.997559, - "rotZ": 0.0168764368, + "rotZ": 0.0168766268, "scaleX": 5.0, "scaleY": 5.0, "scaleZ": 5.0 @@ -362555,12 +362555,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 32.29998, - "posY": 2.31515551, - "posZ": 14.5000067, - "rotX": 359.932922, - "rotY": 270.0008, - "rotZ": 0.0139444722, + "posX": 32.2998123, + "posY": 2.31663656, + "posZ": 0.140040323, + "rotX": 359.932739, + "rotY": 270.0, + "rotZ": 0.0142060053, "scaleX": 2.21, "scaleY": 0.46, "scaleZ": 2.42 @@ -370921,9 +370921,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.1411041, - "g": 0.1411041, - "b": 0.1411041 + "r": 0.141103745, + "g": 0.141103745, + "b": 0.141103745 }, "Locked": true, "Grid": false, @@ -370980,9 +370980,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.1411041, - "g": 0.1411041, - "b": 0.1411041 + "r": 0.141103745, + "g": 0.141103745, + "b": 0.141103745 }, "Locked": true, "Grid": false, @@ -371039,9 +371039,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.1411041, - "g": 0.1411041, - "b": 0.1411041 + "r": 0.141103745, + "g": 0.141103745, + "b": 0.141103745 }, "Locked": true, "Grid": false, @@ -371147,9 +371147,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.282277167, - "g": 0.0705336854, - "b": 0.0705336854 + "r": 0.282276779, + "g": 0.07053342, + "b": 0.07053342 }, "Locked": true, "Grid": true, @@ -371340,8 +371340,8 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.19252187, - "g": 0.248171628, + "r": 0.192521513, + "g": 0.24817124, "b": 0.4512195 }, "Locked": true, @@ -373026,8 +373026,8 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.19252187, - "g": 0.248171628, + "r": 0.192521513, + "g": 0.24817124, "b": 0.4512195 }, "Locked": true, @@ -374084,9 +374084,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.282277167, - "g": 0.0705336854, - "b": 0.0705336854 + "r": 0.282276779, + "g": 0.07053342, + "b": 0.07053342 }, "Locked": true, "Grid": true, @@ -374561,7 +374561,7 @@ "posZ": -1.23968494, "rotX": 359.9201, "rotY": 270.013245, - "rotZ": 0.0168618839, + "rotZ": 0.016861951, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 @@ -374570,8 +374570,8 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.19252187, - "g": 0.248171628, + "r": 0.192521513, + "g": 0.24817124, "b": 0.4512195 }, "Locked": true, @@ -375036,7 +375036,7 @@ "posZ": 1.09087777, "rotX": 359.9201, "rotY": 270.0118, - "rotZ": 0.0168706365, + "rotZ": 0.0168707222, "scaleX": 0.8, "scaleY": 1.0, "scaleZ": 0.8 @@ -375628,9 +375628,9 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.282277167, - "g": 0.0705336854, - "b": 0.0705336854 + "r": 0.282276779, + "g": 0.07053342, + "b": 0.07053342 }, "Locked": true, "Grid": true, @@ -376003,12 +376003,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 63.0268936, - "posY": 1.76423061, - "posZ": 0.140368715, + "posX": 63.0269661, + "posY": 1.76423037, + "posZ": 0.140376523, "rotX": 359.9201, "rotY": 270.002472, - "rotZ": 0.0168690123, + "rotZ": 0.016868677, "scaleX": 2.00002885, "scaleY": 0.10587021, "scaleZ": 1.69295752 @@ -417223,12 +417223,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 63.02746, - "posY": 1.77258968, - "posZ": 28.5308933, + "posX": 63.0275879, + "posY": 1.77258956, + "posZ": 28.5309258, "rotX": 359.9201, - "rotY": 269.997681, - "rotZ": 0.01687603, + "rotY": 269.997559, + "rotZ": 0.0168762933, "scaleX": 2.00002885, "scaleY": 0.10587021, "scaleZ": 1.69295752 @@ -438380,9 +438380,9 @@ { "Name": "3DText", "Transform": { - "posX": -17.9178619, - "posY": 1.26787734, - "posZ": 84.5694, + "posX": -17.9178, + "posY": 1.2678659, + "posZ": 84.5694962, "rotX": 90.0, "rotY": 89.8333054, "rotZ": 0.0, @@ -438425,8 +438425,8 @@ { "Name": "3DText", "Transform": { - "posX": -17.92626, - "posY": 1.26582217, + "posX": -17.926178, + "posY": 1.26581085, "posZ": 77.5883, "rotX": 90.0, "rotY": 89.8333054, @@ -438470,8 +438470,8 @@ { "Name": "3DText", "Transform": { - "posX": -17.9616413, - "posY": 1.2641151, + "posX": -17.96157, + "posY": 1.26410365, "posZ": 71.80011, "rotX": 90.0, "rotY": 89.8333054, @@ -438515,8 +438515,8 @@ { "Name": "3DText", "Transform": { - "posX": -17.8957062, - "posY": 1.26278758, + "posX": -17.895628, + "posY": 1.26277614, "posZ": 67.1832352, "rotX": 90.0, "rotY": 89.8333054, @@ -438560,8 +438560,8 @@ { "Name": "3DText", "Transform": { - "posX": -17.9076576, - "posY": 1.26142466, + "posX": -17.9075584, + "posY": 1.26141322, "posZ": 62.54165, "rotX": 90.0, "rotY": 89.8333054, @@ -438605,9 +438605,9 @@ { "Name": "3DText", "Transform": { - "posX": -26.7903652, - "posY": 1.35646224, - "posZ": 84.40107, + "posX": -26.7902813, + "posY": 1.35645092, + "posZ": 84.40119, "rotX": 90.0, "rotY": 90.00012, "rotZ": 0.0, @@ -438650,8 +438650,8 @@ { "Name": "3DText", "Transform": { - "posX": -26.77413, - "posY": 1.35477436, + "posX": -26.77408, + "posY": 1.35476291, "posZ": 78.61272, "rotX": 90.0, "rotY": 90.00012, @@ -440807,9 +440807,9 @@ { "Name": "3DText", "Transform": { - "posX": -5.142346, - "posY": 1.30326021, - "posZ": -69.05541, + "posX": -5.142239, + "posY": 1.3032372, + "posZ": -69.0559158, "rotX": 90.0, "rotY": 90.1663742, "rotZ": 0.0, @@ -440856,7 +440856,7 @@ "posY": 1.45272863, "posZ": 70.5374, "rotX": 359.983215, - "rotY": 5.10145073E-05, + "rotY": 5.101455E-05, "rotZ": 0.0221881457, "scaleX": 0.09185542, "scaleY": 0.112467624, @@ -441104,8 +441104,8 @@ { "Name": "3DText", "Transform": { - "posX": 74.89506, - "posY": 1.29401243, + "posX": 74.89544, + "posY": 1.29396677, "posZ": 61.1048546, "rotX": 90.0, "rotY": 90.52323, @@ -453029,12 +453029,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 63.0290031, - "posY": 1.76845586, - "posZ": 14.50042, + "posX": 63.0291061, + "posY": 1.76845574, + "posZ": 14.5004253, "rotX": 359.9201, - "rotY": 269.996521, - "rotZ": 0.0168777835, + "rotY": 269.9963, + "rotZ": 0.0168781988, "scaleX": 2.00002885, "scaleY": 0.10587021, "scaleZ": 1.69295752 @@ -714837,12 +714837,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 29.9965935, - "posY": 3.049899, + "posX": 29.9965973, + "posY": 3.04989624, "posZ": -26.97731, - "rotX": 0.07004659, + "rotX": 0.0700488538, "rotY": 134.999985, - "rotZ": 0.0459735319, + "rotZ": 0.04597561, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 @@ -774354,9 +774354,9 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 1.75531733, - "posY": 1.57838893, - "posZ": -14.1874151, + "posX": 1.75532317, + "posY": 1.578389, + "posZ": -14.1874323, "rotX": 359.931335, "rotY": 315.009277, "rotZ": 359.955139, @@ -774440,7 +774440,7 @@ "HideWhenFaceDown": false, "Hands": false, "CustomImage": { - "ImageURL": "https://i.imgur.com/btEtVfd.png", + "ImageURL": "https://i.imgur.com/bfTg2hb.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, @@ -774536,7 +774536,7 @@ "HideWhenFaceDown": false, "Hands": false, "CustomImage": { - "ImageURL": "https://i.imgur.com/nEmqjmj.png", + "ImageURL": "https://i.imgur.com/w3XbrCC.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, @@ -774555,12 +774555,12 @@ { "Name": "Custom_Tile", "Transform": { - "posX": 1.75448167, - "posY": 2.362014, - "posZ": -14.185729, - "rotX": 359.9404, - "rotY": 315.009216, - "rotZ": 359.9652, + "posX": -48.538784, + "posY": 2.0073154, + "posZ": 4.50848055, + "rotX": 359.920135, + "rotY": 269.97467, + "rotZ": 0.0169066116, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 @@ -774584,7 +774584,7 @@ "HideWhenFaceDown": false, "Hands": false, "CustomImage": { - "ImageURL": "https://i.imgur.com/w3XbrCC.png", + "ImageURL": "https://i.imgur.com/VzhJJaH.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, @@ -774598,7 +774598,55 @@ "XmlUI": "", "LuaScript": "", "LuaScriptState": "", - "GUID": "1699e6" + "GUID": "8da6ff" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -52.01243, + "posY": 2.036932, + "posZ": 5.799737, + "rotX": 359.920135, + "rotY": 269.97467, + "rotZ": 0.016906634, + "scaleX": 0.81, + "scaleY": 1.0, + "scaleZ": 0.81 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/1plY463.png", + "ImageSecondaryURL": "", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 2, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "73747d" }, { "Name": "Custom_Tile", @@ -774648,6 +774696,198 @@ "LuaScriptState": "", "GUID": "163ca4" }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -10.6612959, + "posY": 4.504573, + "posZ": 27.849432, + "rotX": 0.0, + "rotY": 260.0, + "rotZ": 0.0, + "scaleX": 0.81, + "scaleY": 1.0, + "scaleZ": 0.81 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/nEmqjmj.png", + "ImageSecondaryURL": "", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 2, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -10.6612959, + "posY": 4.504573, + "posZ": 27.849432, + "rotX": 0.0, + "rotY": 260.0, + "rotZ": 0.0, + "scaleX": 0.81, + "scaleY": 1.0, + "scaleZ": 0.81 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/btEtVfd.png", + "ImageSecondaryURL": "", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 2, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -10.6612959, + "posY": 4.504573, + "posZ": 27.849432, + "rotX": 0.0, + "rotY": 260.0, + "rotZ": 0.0, + "scaleX": 0.81, + "scaleY": 1.0, + "scaleZ": 0.81 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/stbBxtx.png", + "ImageSecondaryURL": "", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 2, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -10.6612959, + "posY": 4.504573, + "posZ": 27.849432, + "rotX": 0.0, + "rotY": 260.0, + "rotZ": 0.0, + "scaleX": 0.81, + "scaleY": 1.0, + "scaleZ": 0.81 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/w3XbrCC.png", + "ImageSecondaryURL": "", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 2, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "" + }, { "Name": "Custom_Tile", "Transform": { @@ -774696,54 +774936,6 @@ "LuaScriptState": "", "GUID": "be93cf" }, - { - "Name": "Custom_Tile", - "Transform": { - "posX": -10.6612959, - "posY": 4.504573, - "posZ": 27.849432, - "rotX": 0.0, - "rotY": 260.0, - "rotZ": 0.0, - "scaleX": 0.81, - "scaleY": 1.0, - "scaleZ": 0.81 - }, - "Nickname": "", - "Description": "", - "GMNotes": "", - "ColorDiffuse": { - "r": 1.0, - "g": 1.0, - "b": 1.0 - }, - "Locked": false, - "Grid": true, - "Snap": true, - "IgnoreFoW": false, - "Autoraise": true, - "Sticky": true, - "Tooltip": true, - "GridProjection": false, - "HideWhenFaceDown": false, - "Hands": false, - "CustomImage": { - "ImageURL": "https://i.imgur.com/w3XbrCC.png", - "ImageSecondaryURL": "", - "ImageScalar": 1.0, - "WidthScale": 0.0, - "CustomTile": { - "Type": 2, - "Thickness": 0.1, - "Stackable": false, - "Stretch": true - } - }, - "XmlUI": "", - "LuaScript": "", - "LuaScriptState": "", - "GUID": "" - }, { "Name": "Custom_Tile", "Transform": { @@ -774795,12 +774987,12 @@ { "Name": "Custom_Tile", "Transform": { - "posX": -10.6612959, - "posY": 4.504573, - "posZ": 27.849432, - "rotX": 0.0, - "rotY": 260.0, - "rotZ": 0.0, + "posX": -52.1016121, + "posY": 1.63770664, + "posZ": 5.83287573, + "rotX": 359.920227, + "rotY": 269.974731, + "rotZ": 0.0185068, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 @@ -774838,55 +775030,7 @@ "XmlUI": "", "LuaScript": "", "LuaScriptState": "", - "GUID": "" - }, - { - "Name": "Custom_Tile", - "Transform": { - "posX": -10.6612959, - "posY": 4.504573, - "posZ": 27.849432, - "rotX": 0.0, - "rotY": 260.0, - "rotZ": 0.0, - "scaleX": 0.81, - "scaleY": 1.0, - "scaleZ": 0.81 - }, - "Nickname": "", - "Description": "", - "GMNotes": "", - "ColorDiffuse": { - "r": 1.0, - "g": 1.0, - "b": 1.0 - }, - "Locked": false, - "Grid": true, - "Snap": true, - "IgnoreFoW": false, - "Autoraise": true, - "Sticky": true, - "Tooltip": true, - "GridProjection": false, - "HideWhenFaceDown": false, - "Hands": false, - "CustomImage": { - "ImageURL": "https://i.imgur.com/stbBxtx.png", - "ImageSecondaryURL": "", - "ImageScalar": 1.0, - "WidthScale": 0.0, - "CustomTile": { - "Type": 2, - "Thickness": 0.1, - "Stackable": false, - "Stretch": true - } - }, - "XmlUI": "", - "LuaScript": "", - "LuaScriptState": "", - "GUID": "" + "GUID": "d1ebf6" }, { "Name": "Custom_Tile", @@ -774939,12 +775083,12 @@ { "Name": "Custom_Tile", "Transform": { - "posX": -48.538784, - "posY": 2.0073154, - "posZ": 4.50848055, - "rotX": 359.920135, - "rotY": 269.97467, - "rotZ": 0.0169066116, + "posX": 1.75448167, + "posY": 2.362014, + "posZ": -14.185729, + "rotX": 359.9404, + "rotY": 315.009216, + "rotZ": 359.9652, "scaleX": 0.81, "scaleY": 1.0, "scaleZ": 0.81 @@ -774968,7 +775112,7 @@ "HideWhenFaceDown": false, "Hands": false, "CustomImage": { - "ImageURL": "https://i.imgur.com/VzhJJaH.png", + "ImageURL": "https://i.imgur.com/w3XbrCC.png", "ImageSecondaryURL": "", "ImageScalar": 1.0, "WidthScale": 0.0, @@ -774982,7 +775126,7 @@ "XmlUI": "", "LuaScript": "", "LuaScriptState": "", - "GUID": "8da6ff" + "GUID": "1699e6" }, { "Name": "Custom_Tile", @@ -775031,150 +775175,6 @@ "LuaScript": "", "LuaScriptState": "", "GUID": "" - }, - { - "Name": "Custom_Tile", - "Transform": { - "posX": -10.6612959, - "posY": 4.504573, - "posZ": 27.849432, - "rotX": 0.0, - "rotY": 260.0, - "rotZ": 0.0, - "scaleX": 0.81, - "scaleY": 1.0, - "scaleZ": 0.81 - }, - "Nickname": "", - "Description": "", - "GMNotes": "", - "ColorDiffuse": { - "r": 1.0, - "g": 1.0, - "b": 1.0 - }, - "Locked": false, - "Grid": true, - "Snap": true, - "IgnoreFoW": false, - "Autoraise": true, - "Sticky": true, - "Tooltip": true, - "GridProjection": false, - "HideWhenFaceDown": false, - "Hands": false, - "CustomImage": { - "ImageURL": "https://i.imgur.com/w3XbrCC.png", - "ImageSecondaryURL": "", - "ImageScalar": 1.0, - "WidthScale": 0.0, - "CustomTile": { - "Type": 2, - "Thickness": 0.1, - "Stackable": false, - "Stretch": true - } - }, - "XmlUI": "", - "LuaScript": "", - "LuaScriptState": "", - "GUID": "" - }, - { - "Name": "Custom_Tile", - "Transform": { - "posX": -52.01243, - "posY": 2.036932, - "posZ": 5.799737, - "rotX": 359.920135, - "rotY": 269.97467, - "rotZ": 0.016906634, - "scaleX": 0.81, - "scaleY": 1.0, - "scaleZ": 0.81 - }, - "Nickname": "", - "Description": "", - "GMNotes": "", - "ColorDiffuse": { - "r": 1.0, - "g": 1.0, - "b": 1.0 - }, - "Locked": false, - "Grid": true, - "Snap": true, - "IgnoreFoW": false, - "Autoraise": true, - "Sticky": true, - "Tooltip": true, - "GridProjection": false, - "HideWhenFaceDown": false, - "Hands": false, - "CustomImage": { - "ImageURL": "https://i.imgur.com/1plY463.png", - "ImageSecondaryURL": "", - "ImageScalar": 1.0, - "WidthScale": 0.0, - "CustomTile": { - "Type": 2, - "Thickness": 0.1, - "Stackable": false, - "Stretch": true - } - }, - "XmlUI": "", - "LuaScript": "", - "LuaScriptState": "", - "GUID": "73747d" - }, - { - "Name": "Custom_Tile", - "Transform": { - "posX": -52.1016121, - "posY": 1.63770664, - "posZ": 5.83287573, - "rotX": 359.920227, - "rotY": 269.974731, - "rotZ": 0.0185068, - "scaleX": 0.81, - "scaleY": 1.0, - "scaleZ": 0.81 - }, - "Nickname": "", - "Description": "", - "GMNotes": "", - "ColorDiffuse": { - "r": 1.0, - "g": 1.0, - "b": 1.0 - }, - "Locked": false, - "Grid": true, - "Snap": true, - "IgnoreFoW": false, - "Autoraise": true, - "Sticky": true, - "Tooltip": true, - "GridProjection": false, - "HideWhenFaceDown": false, - "Hands": false, - "CustomImage": { - "ImageURL": "https://i.imgur.com/bfTg2hb.png", - "ImageSecondaryURL": "", - "ImageScalar": 1.0, - "WidthScale": 0.0, - "CustomTile": { - "Type": 2, - "Thickness": 0.1, - "Stackable": false, - "Stretch": true - } - }, - "XmlUI": "", - "LuaScript": "", - "LuaScriptState": "", - "GUID": "d1ebf6" } ], "GUID": "fea079" @@ -775182,12 +775182,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 51.7484779, + "posX": 51.7485123, "posY": 1.41776741, - "posZ": 28.5304356, + "posZ": 28.5304489, "rotX": 359.920135, - "rotY": 269.987549, - "rotZ": 0.0168898553, + "rotY": 269.987244, + "rotZ": 0.01689069, "scaleX": 1.0, "scaleY": 0.139652729, "scaleZ": 1.0 @@ -785408,12 +785408,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 51.6530037, + "posX": 51.6530457, "posY": 1.413769, - "posZ": 14.5000887, + "posZ": 14.500103, "rotX": 359.9201, - "rotY": 270.018, - "rotZ": 0.016847793, + "rotY": 270.0177, + "rotZ": 0.0168474913, "scaleX": 1.0, "scaleY": 0.139652729, "scaleZ": 1.0 @@ -818207,12 +818207,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 51.65543, - "posY": 1.40953732, - "posZ": 0.1400313, + "posX": 51.655468, + "posY": 1.4095372, + "posZ": 0.140035853, "rotX": 359.920135, - "rotY": 269.998779, - "rotZ": 0.0168747641, + "rotY": 269.9988, + "rotZ": 0.016874671, "scaleX": 1.0, "scaleY": 0.139652729, "scaleZ": 1.0 @@ -863996,9 +863996,9 @@ "posX": -9.742425, "posY": 1.30773139, "posZ": -49.81, - "rotX": 0.0208094, + "rotX": 0.02080943, "rotY": 270.003174, - "rotZ": 0.01677172, + "rotZ": 0.0167717617, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -864044,14 +864044,14 @@ "CastShadows": true }, "XmlUI": "", - "LuaScript": "function updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction onload(saved_data)\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,3,7}, rotation={0,0,0}, height=700, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects()\r\n createSetupActionButtons()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects()\r\n local howManyButtons = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1* 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor +12\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj) end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=800, width=800,\r\n color={0.75,0.25,0.25,0.6},\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons()\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,3,7}, rotation={0,0,0}, height=700, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,3,-7}, rotation={0,0,0}, height=700, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n-- self.createButton({\r\n-- label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n-- position={3,2.5,6}, rotation={0,0,0}, height=550, width=1100,\r\n-- font_size=400, color={0,0,0}, font_color={1,1,1}\r\n-- })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj)\r\n local color = {0,1,0,0.6}\r\n if memoryList[obj.getGUID()] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n if next(memoryList) == nil then\r\n broadcastToAll(\"You cannot submit without any selections.\", {0.75, 0.25, 0.25})\r\n else\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n end\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={2.4,3,7}, rotation={0,0,0}, height=850, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-2.4,3,7}, rotation={0,0,0}, height=850, width=2200,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n-- self.createButton({\r\n-- label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n-- position={2,0.3,0}, rotation={0,90,0}, height=350, width=800,\r\n-- font_size=250, color={0,0,0}, font_color={1,1,1}\r\n-- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot,\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local deltaPos = {}\r\n local bounds = obj.getBounds()\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + (bounds.size.y - bounds.offset.y)\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend", - "LuaScriptState": "{\"ml\":{\"011254\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2688,\"z\":-76.9456},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"02abdb\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2711,\"z\":-69.0606},\"rot\":{\"x\":359.9792,\"y\":89.9998,\"z\":359.9832}},\"0d6388\":{\"lock\":false,\"pos\":{\"x\":-26.3001,\"y\":1.2734,\"z\":-61.241},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}},\"0de2c4\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.36,\"z\":-67.8206},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"171f17\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3806,\"z\":-53.4381},\"rot\":{\"x\":0.0168,\"y\":180.0172,\"z\":359.9792}},\"226716\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3592,\"z\":-70.2906},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"25e2db\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3668,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":180.0103,\"z\":359.9792}},\"307044\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.355,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"3ddfeb\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3554,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"41bfc7\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3615,\"z\":-62.4609},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"4ad11b\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"543164\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3596,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"5e04b0\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3818,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":269.9929,\"z\":0.0168}},\"6330da\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3645,\"z\":-52.152},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"6938eb\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3714,\"z\":-61.2414},\"rot\":{\"x\":0.0168,\"y\":180.0105,\"z\":359.9792}},\"779aa6\":{\"lock\":false,\"pos\":{\"x\":-16.6394,\"y\":1.3546,\"z\":-86.0186},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"7a6af2\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3657,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0193,\"z\":0.0168}},\"9015b4\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3691,\"z\":-69.0756},\"rot\":{\"x\":0.0168,\"y\":180.0104,\"z\":359.9792}},\"90ea00\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3645,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":180.0104,\"z\":359.9792}},\"965031\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3726,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":270.0054,\"z\":0.0168}},\"978a0e\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.2757,\"z\":-53.4368},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"9e80b9\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3638,\"z\":-54.6207},\"rot\":{\"x\":0.0208,\"y\":270.0121,\"z\":0.0168}},\"bde4a6\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3642,\"z\":-53.3904},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"bed196\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3703,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":270.0321,\"z\":0.0168}},\"d6fdbf\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3622,\"z\":-60.001},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"d9fb86\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3569,\"z\":-78.1756},\"rot\":{\"x\":0.0208,\"y\":270.0092,\"z\":0.0168}},\"dc27c7\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.2665,\"z\":-84.818},\"rot\":{\"x\":359.9792,\"y\":90.0028,\"z\":359.9832}},\"de216f\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3619,\"z\":-61.231},\"rot\":{\"x\":0.0208,\"y\":270.0004,\"z\":0.0168}},\"e04b48\":{\"lock\":false,\"pos\":{\"x\":-16.6426,\"y\":1.3576,\"z\":-75.6992},\"rot\":{\"x\":0.0209,\"y\":269.806,\"z\":0.0167}},\"e9ad05\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.368,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9965,\"z\":0.0168}}}}", + "LuaScript": "function updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction onload(saved_data)\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,3,7}, rotation={0,0,0}, height=700, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects()\r\n createSetupActionButtons()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects()\r\n local howManyButtons = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1* 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor +12\r\n objPos.z = objPos.z * globalScaleFactor\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj) end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=800, width=800,\r\n color={0.75,0.25,0.25,0.6},\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons()\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,3,7}, rotation={0,0,0}, height=700, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,3,-7}, rotation={0,0,0}, height=700, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={3,2.5,6}, rotation={0,0,0}, height=550, width=1100,\r\n font_size=400, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj)\r\n local color = {0,1,0,0.6}\r\n if memoryList[obj.getGUID()] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n if next(memoryList) == nil then\r\n broadcastToAll(\"You cannot submit without any selections.\", {0.75, 0.25, 0.25})\r\n else\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n end\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={2.4,3,7}, rotation={0,0,0}, height=850, width=2000,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-2.4,3,7}, rotation={0,0,0}, height=850, width=2200,\r\n font_size=700, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={2,0.3,0}, rotation={0,90,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot,\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local deltaPos = {}\r\n local bounds = obj.getBounds()\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + (bounds.size.y - bounds.offset.y)\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend", + "LuaScriptState": "{\"ml\":{\"011254\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2688,\"z\":-76.9456},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"02abdb\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.2711,\"z\":-69.0606},\"rot\":{\"x\":359.9792,\"y\":89.9998,\"z\":359.9832}},\"0d6388\":{\"lock\":false,\"pos\":{\"x\":-26.3001,\"y\":1.2734,\"z\":-61.241},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}},\"0de2c4\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.36,\"z\":-67.8206},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"171f17\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3806,\"z\":-53.4381},\"rot\":{\"x\":0.0168,\"y\":180.0172,\"z\":359.9792}},\"1f564c\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3695,\"z\":-61.2414},\"rot\":{\"x\":0.0168,\"y\":179.9996,\"z\":359.9792}},\"226716\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3592,\"z\":-70.2906},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"25e2db\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3668,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":180.0102,\"z\":359.9792}},\"307044\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.355,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"3ddfeb\":{\"lock\":false,\"pos\":{\"x\":-16.6385,\"y\":1.3554,\"z\":-83.5415},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"41bfc7\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3615,\"z\":-62.4609},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"4ad11b\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3573,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"543164\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3596,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"5e04b0\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3818,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":269.9929,\"z\":0.0168}},\"6330da\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3645,\"z\":-52.152},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"779aa6\":{\"lock\":false,\"pos\":{\"x\":-16.6394,\"y\":1.3546,\"z\":-86.0186},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"7a6af2\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3657,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270.0193,\"z\":0.0168}},\"9015b4\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3691,\"z\":-69.0756},\"rot\":{\"x\":0.0168,\"y\":180.0103,\"z\":359.9792}},\"90ea00\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3645,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":180.0103,\"z\":359.9792}},\"965031\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3726,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":270.0054,\"z\":0.0168}},\"978a0e\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.2757,\"z\":-53.4368},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"9e80b9\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3638,\"z\":-54.6207},\"rot\":{\"x\":0.0208,\"y\":270.0121,\"z\":0.0168}},\"bde4a6\":{\"lock\":false,\"pos\":{\"x\":-16.64,\"y\":1.3642,\"z\":-53.3904},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"bed196\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3703,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":270.0321,\"z\":0.0168}},\"d6fdbf\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3622,\"z\":-60.001},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"d9fb86\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3569,\"z\":-78.1756},\"rot\":{\"x\":0.0208,\"y\":270.0092,\"z\":0.0168}},\"dc27c7\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.2665,\"z\":-84.818},\"rot\":{\"x\":359.9792,\"y\":90.0028,\"z\":359.9832}},\"de216f\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3619,\"z\":-61.231},\"rot\":{\"x\":0.0208,\"y\":270.0004,\"z\":0.0168}},\"e04b48\":{\"lock\":false,\"pos\":{\"x\":-16.6426,\"y\":1.3576,\"z\":-75.6992},\"rot\":{\"x\":0.0209,\"y\":269.806,\"z\":0.0167}},\"e9ad05\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.368,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9964,\"z\":0.0168}}}}", "ContainedObjects": [ { "Name": "Custom_Model_Bag", "Transform": { "posX": -26.3002, - "posY": 1.268811, + "posY": 1.26881135, "posZ": -76.9456, "rotX": 359.979156, "rotY": 90.00021, @@ -865861,7 +865861,7 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -26.3002, - "posY": 1.27111983, + "posY": 1.27112007, "posZ": -69.0606, "rotX": 359.979156, "rotY": 89.99982, @@ -866003,12 +866003,12 @@ { "Name": "Deck", "Transform": { - "posX": 77.31793, - "posY": 2.65278935, - "posZ": -50.9242935, - "rotX": -0.00080119865, - "rotY": 270.006348, - "rotZ": 179.991867, + "posX": -26.2937946, + "posY": 3.59156919, + "posZ": -69.0609, + "rotX": 2.07718515, + "rotY": 270.0216, + "rotZ": 180.025833, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 @@ -867687,7 +867687,7 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -26.3001, - "posY": 1.27340817, + "posY": 1.27340865, "posZ": -61.241, "rotX": 359.979156, "rotY": 89.99988, @@ -867731,20 +867731,20 @@ "LuaScriptState": "", "ContainedObjects": [ { - "Name": "Card", + "Name": "CardCustom", "Transform": { - "posX": 78.29718, - "posY": 2.537541, - "posZ": -65.42324, - "rotX": -0.0009365005, - "rotY": 270.021362, - "rotZ": 359.991974, + "posX": -26.6042881, + "posY": 3.88982177, + "posZ": -75.5289154, + "rotX": 0.02080861, + "rotY": 270.0021, + "rotZ": 0.0167713948, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, - "Nickname": "Daisy's Tote Bag", - "Description": "", + "Nickname": "The Necronomicon (Advanced)", + "Description": "John Dee Translation", "GMNotes": "", "ColorDiffuse": { "r": 0.713235259, @@ -867761,14 +867761,14 @@ "GridProjection": false, "HideWhenFaceDown": true, "Hands": true, - "CardID": 230522, + "CardID": 231700, "SidewaysCard": false, "CustomDeck": { - "2305": { - "FaceURL": "http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/", - "BackURL": "https://i.imgur.com/EcbhVuh.jpg/", - "NumWidth": 10, - "NumHeight": 7, + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736531119/B300331BEF8B29732A2AD6123D59380B7ECB631C/", + "BackURL": "https://i.imgur.com/EcbhVuh.jpg", + "NumWidth": 1, + "NumHeight": 1, "BackIsHidden": true, "UniqueBack": false } @@ -867776,7 +867776,55 @@ "XmlUI": "", "LuaScript": "", "LuaScriptState": "", - "GUID": "321cb7" + "GUID": "4a131b" + }, + { + "Name": "CardCustom", + "Transform": { + "posX": -24.3653736, + "posY": 3.88984632, + "posZ": -75.7083, + "rotX": 0.0208088327, + "rotY": 270.000061, + "rotZ": 0.0167694669, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Daisy's Tote Bag (Advanced)", + "Description": "Item.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 231600, + "SidewaysCard": false, + "CustomDeck": { + "2316": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736529784/BEB850DCAA5497CC1A96E1603C0D3AFFE8B0F2BB/", + "BackURL": "https://i.imgur.com/EcbhVuh.jpg", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "9c4900" }, { "Name": "Card", @@ -867826,15 +867874,63 @@ "LuaScriptState": "", "GUID": "6b2550" }, + { + "Name": "Card", + "Transform": { + "posX": 78.29718, + "posY": 2.537541, + "posZ": -65.42324, + "rotX": -0.0009365005, + "rotY": 270.021362, + "rotZ": 359.991974, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Daisy's Tote Bag", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 230522, + "SidewaysCard": false, + "CustomDeck": { + "2305": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/", + "BackURL": "https://i.imgur.com/EcbhVuh.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "321cb7" + }, { "Name": "Deck", "Transform": { - "posX": 77.592804, - "posY": 2.65482783, - "posZ": -65.13024, - "rotX": -0.0008074848, - "rotY": 270.0, - "rotZ": 179.991867, + "posX": -26.300148, + "posY": 3.55840659, + "posZ": -61.24097, + "rotX": 0.0208242778, + "rotY": 269.999969, + "rotZ": 180.016769, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 @@ -869499,9 +869595,9 @@ "posX": -16.6401, "posY": 1.35995436, "posZ": -67.8206, - "rotX": 0.0208168123, + "rotX": 0.0208162013, "rotY": 270.0, - "rotZ": 0.0167680737, + "rotZ": 0.0167679321, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -869545,8 +869641,8 @@ "posX": -22.6139, "posY": 1.38058448, "posZ": -53.4381, - "rotX": 0.0167780258, - "rotY": 180.017212, + "rotX": 0.0167780612, + "rotY": 180.017166, "rotZ": 359.9792, "scaleX": 1.1, "scaleY": 1.0, @@ -869688,15 +869784,286 @@ ], "GUID": "171f17" }, + { + "Name": "Deck", + "Transform": { + "posX": -22.6169, + "posY": 1.36946034, + "posZ": -61.2414, + "rotX": 0.0167716518, + "rotY": 179.999619, + "rotZ": 359.9792, + "scaleX": 1.1, + "scaleY": 1.0, + "scaleZ": 1.1 + }, + "Nickname": "Daisy Walkers", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "SidewaysCard": true, + "DeckIDs": [ + 273901, + 274001, + 232000, + 269901 + ], + "CustomDeck": { + "2739": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736569204/9F5F294127B638FECFF0BC88A0F93387AF994431/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + }, + "2740": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736572954/79FAF352FE90F08BE9247753F39798A878925EAA/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + }, + "2320": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736547182/E9E6AA92778B14BA7BFAEC97F69CEEA08D1F0A7A/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736547357/1E906AD9E4FCA8FE6C801B6C478D06484219C355/", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + }, + "2699": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "ContainedObjects": [ + { + "Name": "Card", + "Transform": { + "posX": 6.35614, + "posY": 1.55218, + "posZ": 26.5504665, + "rotX": 0.01687278, + "rotY": 179.998337, + "rotZ": 0.07987888, + "scaleX": 1.1, + "scaleY": 1.0, + "scaleZ": 1.1 + }, + "Nickname": "Daisy Walker (Parallel Back)", + "Description": "The Librarian", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 273901, + "SidewaysCard": true, + "CustomDeck": { + "2700": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736569204/9F5F294127B638FECFF0BC88A0F93387AF994431/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "2f2e0d" + }, + { + "Name": "Card", + "Transform": { + "posX": 6.36464453, + "posY": 1.70693767, + "posZ": 26.2024059, + "rotX": 0.0169077758, + "rotY": 179.972809, + "rotZ": 0.07987033, + "scaleX": 1.1, + "scaleY": 1.0, + "scaleZ": 1.1 + }, + "Nickname": "Daisy Walker (Parallel Front)", + "Description": "The Librarian", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 274001, + "SidewaysCard": true, + "CustomDeck": { + "2701": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736572954/79FAF352FE90F08BE9247753F39798A878925EAA/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "e8cafc" + }, + { + "Name": "CardCustom", + "Transform": { + "posX": 6.16175938, + "posY": 1.72549057, + "posZ": 25.9675388, + "rotX": 0.01688088, + "rotY": 179.9925, + "rotZ": 0.07987741, + "scaleX": 1.1, + "scaleY": 1.0, + "scaleZ": 1.1 + }, + "Nickname": "Daisy Walker (Parallel)", + "Description": "The Librarian", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 232000, + "SidewaysCard": true, + "CustomDeck": { + "2320": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736547182/E9E6AA92778B14BA7BFAEC97F69CEEA08D1F0A7A/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736547357/1E906AD9E4FCA8FE6C801B6C478D06484219C355/", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "b2d4e6" + }, + { + "Name": "Card", + "Transform": { + "posX": -20.0124359, + "posY": 1.53021038, + "posZ": -65.10881, + "rotX": 0.0167763438, + "rotY": 180.010422, + "rotZ": 359.9792, + "scaleX": 1.1, + "scaleY": 1.0, + "scaleZ": 1.1 + }, + "Nickname": "Daisy Walker", + "Description": "The Librarian", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 269901, + "SidewaysCard": true, + "CustomDeck": { + "2699": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "6938eb" + } + ], + "GUID": "1f564c" + }, { "Name": "Custom_Model", "Transform": { "posX": -16.6401024, - "posY": 1.35923147, + "posY": 1.35923135, "posZ": -70.2906, - "rotX": 0.02081644, + "rotX": 0.0208171029, "rotY": 269.999939, - "rotZ": 0.0167678688, + "rotZ": 0.016767934, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -869738,10 +870105,10 @@ "Name": "Card", "Transform": { "posX": -22.6157, - "posY": 1.36682677, + "posY": 1.36682665, "posZ": -76.946, - "rotX": 0.0167755112, - "rotY": 180.010239, + "rotX": 0.0167756, + "rotY": 180.010178, "rotZ": 359.9792, "scaleX": 1.1, "scaleY": 1.0, @@ -869786,11 +870153,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.6401978, - "posY": 1.354979, + "posY": 1.3549788, "posZ": -84.8182, - "rotX": 0.0208167974, + "rotX": 0.0208166782, "rotY": 270.000183, - "rotZ": 0.0167679619, + "rotZ": 0.0167680271, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -869832,11 +870199,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.6385, - "posY": 1.35535336, + "posY": 1.35535324, "posZ": -83.5415, - "rotX": 0.02081642, + "rotX": 0.0208170488, "rotY": 269.999725, - "rotZ": 0.0167682711, + "rotZ": 0.0167678744, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -869878,11 +870245,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.64, - "posY": 1.36152339, + "posY": 1.36152327, "posZ": -62.4609, - "rotX": 0.020816341, + "rotX": 0.0208164621, "rotY": 270.000031, - "rotZ": 0.0167677235, + "rotZ": 0.0167679451, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -869924,11 +870291,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.6396027, - "posY": 1.35728359, + "posY": 1.35728347, "posZ": -76.9456, - "rotX": 0.02081626, + "rotX": 0.0208166186, "rotY": 270.000122, - "rotZ": 0.0167677738, + "rotZ": 0.0167679545, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -869970,11 +870337,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.6403, - "posY": 1.35959148, + "posY": 1.35959136, "posZ": -69.0603, - "rotX": 0.0208168067, + "rotX": 0.020816572, "rotY": 269.999725, - "rotZ": 0.0167676546, + "rotZ": 0.0167674646, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -870018,9 +870385,9 @@ "posX": -19.3, "posY": 1.38178873, "posZ": -53.4358, - "rotX": 0.02081257, + "rotX": 0.0208133012, "rotY": 269.99292, - "rotZ": 0.0167671759, + "rotZ": 0.0167672019, "scaleX": 0.6, "scaleY": 1.0, "scaleZ": 0.6 @@ -870173,11 +870540,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.64, - "posY": 1.3645407, + "posY": 1.36454082, "posZ": -52.152, - "rotX": 0.0208162479, + "rotX": 0.0208159722, "rotY": 270.000183, - "rotZ": 0.0167680383, + "rotZ": 0.0167682674, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -870215,63 +870582,15 @@ "LuaScriptState": "", "GUID": "6330da" }, - { - "Name": "Card", - "Transform": { - "posX": -22.6169, - "posY": 1.37142324, - "posZ": -61.2414, - "rotX": 0.01677552, - "rotY": 180.010437, - "rotZ": 359.9792, - "scaleX": 1.1, - "scaleY": 1.0, - "scaleZ": 1.1 - }, - "Nickname": "Daisy Walker", - "Description": "The Librarian", - "GMNotes": "", - "ColorDiffuse": { - "r": 0.713235259, - "g": 0.713235259, - "b": 0.713235259 - }, - "Locked": false, - "Grid": true, - "Snap": true, - "IgnoreFoW": false, - "Autoraise": true, - "Sticky": true, - "Tooltip": true, - "GridProjection": false, - "HideWhenFaceDown": false, - "Hands": true, - "CardID": 269901, - "SidewaysCard": true, - "CustomDeck": { - "2699": { - "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/", - "BackURL": "http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/", - "NumWidth": 10, - "NumHeight": 7, - "BackIsHidden": true, - "UniqueBack": true - } - }, - "XmlUI": "", - "LuaScript": "", - "LuaScriptState": "", - "GUID": "6938eb" - }, { "Name": "Custom_Model", "Transform": { "posX": -16.6394, "posY": 1.35462785, "posZ": -86.0186, - "rotX": 0.020815935, + "rotX": 0.02081681, "rotY": 270.000122, - "rotZ": 0.0167683139, + "rotZ": 0.0167680588, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -870313,11 +870632,11 @@ "Name": "Card", "Transform": { "posX": -19.2998, - "posY": 1.36572671, + "posY": 1.36572659, "posZ": -84.8182, - "rotX": 0.0208047088, + "rotX": 0.0208050236, "rotY": 270.0193, - "rotZ": 0.0167767946, + "rotZ": 0.0167767983, "scaleX": 0.6, "scaleY": 1.0, "scaleZ": 0.6 @@ -870363,7 +870682,7 @@ "posX": -22.6157, "posY": 1.36913049, "posZ": -69.0756, - "rotX": 0.0167752448, + "rotX": 0.0167755317, "rotY": 180.0103, "rotZ": 359.9792, "scaleX": 1.1, @@ -870411,8 +870730,8 @@ "posX": -22.6169, "posY": 1.36452186, "posZ": -84.8185, - "rotX": 0.0167755969, - "rotY": 180.010376, + "rotX": 0.0167755187, + "rotY": 180.010315, "rotZ": 359.9792, "scaleX": 1.1, "scaleY": 1.0, @@ -870457,11 +870776,11 @@ "Name": "Card", "Transform": { "posX": -19.3001, - "posY": 1.37263024, + "posY": 1.37263012, "posZ": -61.2332, - "rotX": 0.0208091624, + "rotX": 0.0208088644, "rotY": 270.005432, - "rotZ": 0.016771879, + "rotZ": 0.0167720653, "scaleX": 0.6, "scaleY": 1.0, "scaleZ": 0.6 @@ -870505,11 +870824,11 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -26.3, - "posY": 1.27569246, + "posY": 1.2756927, "posZ": -53.4368, "rotX": 359.979156, "rotY": 90.0002441, - "rotZ": 359.983215, + "rotZ": 359.983246, "scaleX": 2.0, "scaleY": 2.0, "scaleZ": 2.0 @@ -870879,12 +871198,12 @@ { "Name": "Deck", "Transform": { - "posX": -26.3000126, - "posY": 3.55382943, - "posZ": -53.43686, - "rotX": 0.0207990222, + "posX": -26.3000088, + "posY": 3.55014443, + "posZ": -53.43685, + "rotX": 0.0208622366, "rotY": 269.988129, - "rotZ": 180.017181, + "rotZ": 180.0168, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 @@ -872549,9 +872868,9 @@ "posX": -16.64, "posY": 1.36381817, "posZ": -54.6207, - "rotX": 0.0208123662, + "rotX": 0.0208128151, "rotY": 270.012115, - "rotZ": 0.016772436, + "rotZ": 0.0167723373, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -872593,11 +872912,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.64, - "posY": 1.3641783, + "posY": 1.36417818, "posZ": -53.3904, - "rotX": 0.0208161883, + "rotX": 0.02081656, "rotY": 270.000031, - "rotZ": 0.0167685114, + "rotZ": 0.0167679, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -872641,9 +872960,9 @@ "posX": -19.2959, "posY": 1.37034047, "posZ": -69.0607, - "rotX": 0.0208011363, + "rotX": 0.02080092, "rotY": 270.032074, - "rotZ": 0.0167814512, + "rotZ": 0.0167816989, "scaleX": 0.6, "scaleY": 1.0, "scaleZ": 0.6 @@ -872689,9 +873008,9 @@ "posX": -16.6401, "posY": 1.36224329, "posZ": -60.001, - "rotX": 0.02081652, + "rotX": 0.0208159946, "rotY": 270.000549, - "rotZ": 0.0167682171, + "rotZ": 0.0167683586, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -872735,9 +873054,9 @@ "posX": -16.6401, "posY": 1.35692334, "posZ": -78.1756, - "rotX": 0.02081399, + "rotX": 0.0208137669, "rotY": 270.0092, - "rotZ": 0.01677147, + "rotZ": 0.0167713854, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -872779,7 +873098,7 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -26.2996, - "posY": 1.26650751, + "posY": 1.26650774, "posZ": -84.818, "rotX": 359.979156, "rotY": 90.00282, @@ -874605,11 +874924,11 @@ "Name": "Custom_Model", "Transform": { "posX": -16.6401, - "posY": 1.36188316, + "posY": 1.36188328, "posZ": -61.231, - "rotX": 0.0208163, + "rotX": 0.0208164863, "rotY": 270.000366, - "rotZ": 0.0167682432, + "rotZ": 0.0167682525, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -874653,9 +874972,9 @@ "posX": -16.6426, "posY": 1.3576473, "posZ": -75.6992, - "rotX": 0.0208733883, + "rotX": 0.0208730586, "rotY": 269.806, - "rotZ": 0.0166975632, + "rotZ": 0.0166976526, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -874699,9 +875018,9 @@ "posX": -19.2936, "posY": 1.36803448, "posZ": -76.9415, - "rotX": 0.0208116937, + "rotX": 0.02081166, "rotY": 269.9964, - "rotZ": 0.0167685337, + "rotZ": 0.0167685151, "scaleX": 0.6, "scaleY": 1.0, "scaleZ": 0.6 @@ -874748,11 +875067,11 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -9.742667, - "posY": 1.30589092, + "posY": 1.3058908, "posZ": -56.0992737, - "rotX": 0.0208119042, + "rotX": 0.0208121575, "rotY": 269.993225, - "rotZ": 0.0167682581, + "rotZ": 0.0167682283, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -885510,11 +885829,11 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -9.742768, - "posY": 1.30398881, + "posY": 1.3039887, "posZ": -62.5954056, - "rotX": 0.02081231, + "rotX": 0.0208123624, "rotY": 269.9932, - "rotZ": 0.0167679712, + "rotZ": 0.0167681351, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -899062,11 +899381,11 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -9.742978, - "posY": 1.30202961, + "posY": 1.30202937, "posZ": -69.2888641, - "rotX": 0.02081216, + "rotX": 0.0208121762, "rotY": 269.99353, - "rotZ": 0.0167679563, + "rotZ": 0.01676823, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -909473,9 +909792,9 @@ "posX": -9.74272251, "posY": 1.300049, "posZ": -76.0554, - "rotX": 0.0208108034, + "rotX": 0.0208108481, "rotY": 269.9984, - "rotZ": 0.01676987, + "rotZ": 0.0167700388, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -923256,11 +923575,11 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -9.74, - "posY": 1.29806519, + "posY": 1.29806542, "posZ": -82.83582, - "rotX": 0.02081028, + "rotX": 0.02081025, "rotY": 270.0003, - "rotZ": 0.0167705789, + "rotZ": 0.01677079, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -934565,11 +934884,11 @@ "Name": "Custom_Model_Bag", "Transform": { "posX": -9.739967, - "posY": 1.296074, + "posY": 1.29607415, "posZ": -89.63861, - "rotX": 0.0208098665, + "rotX": 0.0208100118, "rotY": 270.0011, - "rotZ": 0.0167709757, + "rotZ": 0.0167711079, "scaleX": 0.5, "scaleY": 0.139652729, "scaleZ": 0.5 @@ -939971,7 +940290,7 @@ "Description": "", "GMNotes": "", "ColorDiffuse": { - "r": 0.106254317, + "r": 0.106254138, "g": 0.008296312, "b": 0.0 }, @@ -940151,12 +940470,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 51.65624, + "posX": 51.6562729, "posY": 1.40948629, - "posZ": -13.7183952, + "posZ": -13.71841, "rotX": 359.920135, - "rotY": 270.0054, - "rotZ": 0.016865002, + "rotY": 270.005066, + "rotZ": 0.0168649964, "scaleX": 1.0, "scaleY": 0.139652729, "scaleZ": 1.0 @@ -978430,12 +978749,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 51.65229, - "posY": 1.40532494, - "posZ": -27.8697472, + "posX": 51.6523247, + "posY": 1.4053247, + "posZ": -27.86977, "rotX": 359.920135, - "rotY": 269.999634, - "rotZ": 0.0168730877, + "rotY": 269.999329, + "rotZ": 0.0168735366, "scaleX": 1.0, "scaleY": 0.139652729, "scaleZ": 1.0 @@ -1021911,12 +1022230,12 @@ { "Name": "Custom_Model_Bag", "Transform": { - "posX": 32.2998, + "posX": 32.2998543, "posY": 1.44891191, - "posZ": 28.530014, + "posZ": 28.5300636, "rotX": 359.920135, - "rotY": 269.998962, - "rotZ": 0.0168731678, + "rotY": 269.9987, + "rotZ": 0.016873898, "scaleX": 1.0, "scaleY": 0.139652729, "scaleZ": 1.0 @@ -1055448,9 +1055767,9 @@ "Transform": { "posX": -17.7868061, "posY": 1.57197785, - "posZ": 19.2607555, + "posZ": 19.260767, "rotX": 359.9831, - "rotY": 359.96582, + "rotY": 359.9664, "rotZ": 359.920135, "scaleX": 0.45, "scaleY": 0.6, @@ -1055725,10 +1056044,10 @@ "Name": "Custom_Model", "Transform": { "posX": -19.0252037, - "posY": 1.57370424, - "posZ": 19.2607574, + "posY": 1.57370412, + "posZ": 19.26078, "rotX": 359.9831, - "rotY": 359.9657, + "rotY": 359.965454, "rotZ": 359.920135, "scaleX": 0.45, "scaleY": 0.6, @@ -1056002,11 +1056321,11 @@ { "Name": "Custom_Model", "Transform": { - "posX": -20.2555027, + "posX": -20.2555084, "posY": 1.57541943, - "posZ": 19.2607422, + "posZ": 19.2607536, "rotX": 359.9831, - "rotY": 359.96582, + "rotY": 359.966125, "rotZ": 359.920135, "scaleX": 0.45, "scaleY": 0.6, @@ -1056281,11 +1056600,11 @@ "Name": "Custom_Model", "Transform": { "posX": -47.7645073, - "posY": 1.61465454, - "posZ": 22.2657185, + "posY": 1.61465478, + "posZ": 22.2657375, "rotX": 359.9201, - "rotY": 270.000977, - "rotZ": 0.016886469, + "rotY": 270.000366, + "rotZ": 0.0168940816, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1056559,11 +1056878,11 @@ "Name": "Custom_Model", "Transform": { "posX": -47.76499, - "posY": 1.614293, + "posY": 1.61429274, "posZ": 21.0344219, - "rotX": 359.920074, - "rotY": 270.000671, - "rotZ": 0.016893791, + "rotX": 359.9201, + "rotY": 270.001068, + "rotZ": 0.0168857984, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1056836,12 +1057155,12 @@ { "Name": "Custom_Model", "Transform": { - "posX": -47.76591, + "posX": -47.7659378, "posY": 1.61502075, - "posZ": 23.5024433, + "posZ": 23.5024662, "rotX": 359.9201, - "rotY": 270.000427, - "rotZ": 0.0168997049, + "rotY": 269.999756, + "rotZ": 0.01688904, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1057114,12 +1057433,12 @@ { "Name": "Custom_Model", "Transform": { - "posX": -47.7640266, - "posY": 1.60188341, - "posZ": -21.1023865, + "posX": -47.7640762, + "posY": 1.60188365, + "posZ": -21.10241, "rotX": 359.9201, - "rotY": 270.0008, - "rotZ": 0.0168948676, + "rotY": 269.9998, + "rotZ": 0.0168919, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1057392,12 +1057711,12 @@ { "Name": "Custom_Model", "Transform": { - "posX": -47.7640266, - "posY": 1.601519, - "posZ": -22.3407879, + "posX": -47.7640724, + "posY": 1.60151923, + "posZ": -22.34081, "rotX": 359.9201, - "rotY": 270.0011, - "rotZ": 0.0168866348, + "rotY": 270.00177, + "rotZ": 0.0168861486, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1057670,12 +1057989,12 @@ { "Name": "Custom_Model", "Transform": { - "posX": -47.76402, + "posX": -47.76404, "posY": 1.60115683, - "posZ": -23.5711, - "rotX": 359.920074, - "rotY": 270.000977, - "rotZ": 0.0168994, + "posZ": -23.5711231, + "rotX": 359.9201, + "rotY": 270.0, + "rotZ": 0.0168962684, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1057948,12 +1058267,12 @@ { "Name": "Custom_Model", "Transform": { - "posX": -18.90329, - "posY": 1.5621618, - "posZ": -19.3594685, - "rotX": 0.0168764982, - "rotY": 179.988251, - "rotZ": 0.07987957, + "posX": -18.9032917, + "posY": 1.56216192, + "posZ": -19.35948, + "rotX": 0.0168808736, + "rotY": 179.988785, + "rotZ": 0.07988464, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1058227,11 +1058546,11 @@ "Name": "Custom_Model", "Transform": { "posX": -17.6732578, - "posY": 1.560447, - "posZ": -19.3592529, - "rotX": 0.0168735962, - "rotY": 179.98819, - "rotZ": 0.07988334, + "posY": 1.5604471, + "posZ": -19.3592644, + "rotX": 0.0168760438, + "rotY": 179.98967, + "rotZ": 0.07987866, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1058504,12 +1058823,12 @@ { "Name": "Custom_Model", "Transform": { - "posX": -20.1419659, + "posX": -20.1419773, "posY": 1.56388867, - "posZ": -19.3592682, - "rotX": 0.0168714244, - "rotY": 179.988083, - "rotZ": 0.07988017, + "posZ": -19.3592911, + "rotX": 0.0168816745, + "rotY": 179.98941, + "rotZ": 0.07988174, "scaleX": 0.45, "scaleY": 0.6, "scaleZ": 0.45 @@ -1058782,18 +1059101,18 @@ { "Name": "Notecard", "Transform": { - "posX": 22.7632828, - "posY": 1.51609957, - "posZ": -12.4811115, - "rotX": 0.07988448, - "rotY": 90.0209961, + "posX": 24.2929459, + "posY": 1.51388335, + "posZ": -12.7654858, + "rotX": 0.079884775, + "rotY": 90.02103, "rotZ": 359.983154, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, - "Nickname": "SCE v1.4064 - 4/30/2020", - "Description": "That is not dead which can eternal lie. \n\nThank you for finding us, weary Investigator. Unforseen and dire circumstances have led us to meet in such a surreptitious, but through adversity we shall prevail.\nYou will find some things of great interest in the Leaked Items box. We hope it gives you some joy in these trying times.", + "Nickname": "SCE v1.4065 - 5/6/2020", + "Description": "Apologies for the delay! The forces of the Mythos confound and perplex.\n\nAdded Parallel Daisy Walker.\nShe can be found underneath Core Set Daisy.\n\nAlso added Daisy's Challenge Scenario: Read or Die", "GMNotes": "", "ColorDiffuse": { "r": 1.0, @@ -1058813,23 +1059132,3223 @@ "XmlUI": "", "LuaScript": "", "LuaScriptState": "", - "GUID": "bbb010", - "States": { - "2": { - "Name": "Notecard", + "GUID": "bbb010" + }, + { + "Name": "Custom_Model_Bag", + "Transform": { + "posX": 32.4523163, + "posY": 1.43240285, + "posZ": -13.1238127, + "rotX": 359.920135, + "rotY": 269.999939, + "rotZ": 0.0168734044, + "scaleX": 2.21, + "scaleY": 0.46, + "scaleZ": 2.42 + }, + "Nickname": "Read or Die", + "Description": "Challenge Scenario", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "MaterialIndex": -1, + "MeshIndex": -1, + "CustomMesh": { + "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", + "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/1011565751983250718/F776DC9FDACBDDF16C8A4989E148489917A052F6/", + "NormalURL": "", + "ColliderURL": "", + "Convex": true, + "MaterialIndex": 3, + "TypeIndex": 6, + "CustomShader": { + "SpecularColor": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "SpecularIntensity": 0.0, + "SpecularSharpness": 2.0, + "FresnelStrength": 0.0 + }, + "CastShadows": true + }, + "XmlUI": "", + "LuaScript": "function updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction onload(saved_data)\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects()\r\n createSetupActionButtons()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects()\r\n local howManyButtons = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1* 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor + 2\r\n objPos.z = objPos.z * globalScaleFactor * 0.9\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj) end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=400, width=400,\r\n color={0.75,0.25,0.25,0.6},\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons()\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={0,0.3,-2}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={0,0.3,-2.8}, rotation={0,180,0}, height=350, width=1100,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-2,0.3,0}, rotation={0,270,0}, height=350, width=800,\r\n font_size=250, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj)\r\n local color = {0,1,0,0.6}\r\n if memoryList[obj.getGUID()] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n memoryList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n self.editButton({index=index, color=color})\r\n memoryList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n if next(memoryList) == nil then\r\n broadcastToAll(\"You cannot submit without any selections.\", {0.75, 0.25, 0.25})\r\n else\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n end\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n-- self.createButton({\r\n-- label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n-- position={2,0.3,0}, rotation={0,90,0}, height=350, width=800,\r\n-- font_size=250, color={0,0,0}, font_color={1,1,1}\r\n-- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot,\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local deltaPos = {}\r\n local bounds = obj.getBounds()\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + (bounds.size.y - bounds.offset.y)\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend\r\n", + "LuaScriptState": "{\"ml\":{\"0b6166\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6931,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0169}},\"116eb9\":{\"lock\":false,\"pos\":{\"x\":-17.12,\"y\":1.6793,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0169}},\"1ed6d5\":{\"lock\":false,\"pos\":{\"x\":-26.8623,\"y\":1.6176,\"z\":-4.4728},\"rot\":{\"x\":0.0446,\"y\":44.9999,\"z\":359.9316}},\"25652c\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6167,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":270.011,\"z\":0.0169}},\"4541f6\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6862,\"z\":-0.0299},\"rot\":{\"x\":359.9218,\"y\":269.9987,\"z\":0.016}},\"47b306\":{\"lock\":false,\"pos\":{\"x\":-30.2244,\"y\":1.6909,\"z\":-15.28},\"rot\":{\"x\":359.9201,\"y\":269.9996,\"z\":0.0169}},\"4901f8\":{\"lock\":false,\"pos\":{\"x\":-26.8973,\"y\":1.619,\"z\":-0.0345},\"rot\":{\"x\":359.9201,\"y\":270.0111,\"z\":0.0169}},\"4bd010\":{\"lock\":false,\"pos\":{\"x\":-36.7731,\"y\":1.7045,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0169}},\"52e361\":{\"lock\":false,\"pos\":{\"x\":-15.0137,\"y\":1.6712,\"z\":-9.996},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":0.0169}},\"556e96\":{\"lock\":false,\"pos\":{\"x\":-3.9274,\"y\":1.7824,\"z\":5.7571},\"rot\":{\"x\":359.9197,\"y\":270,\"z\":180.0168}},\"64a96b\":{\"lock\":false,\"pos\":{\"x\":-17.1201,\"y\":1.6748,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0169}},\"66197b\":{\"lock\":false,\"pos\":{\"x\":-3.9912,\"y\":1.6632,\"z\":15.0046},\"rot\":{\"x\":359.9197,\"y\":269.9999,\"z\":0.0168}},\"70df0b\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6976,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0169}},\"7234af\":{\"lock\":false,\"pos\":{\"x\":-33.6012,\"y\":1.6283,\"z\":-0.1123},\"rot\":{\"x\":359.9201,\"y\":270.0112,\"z\":0.0169}},\"739b98\":{\"lock\":false,\"pos\":{\"x\":-27.0616,\"y\":1.6204,\"z\":3.8989},\"rot\":{\"x\":359.9315,\"y\":314.9926,\"z\":359.9554}},\"7d30ce\":{\"lock\":false,\"pos\":{\"x\":-20.5607,\"y\":1.6091,\"z\":-3.6976},\"rot\":{\"x\":359.9316,\"y\":314.9958,\"z\":359.9554}},\"7f6452\":{\"lock\":false,\"pos\":{\"x\":-14.7653,\"y\":1.751,\"z\":5.0207},\"rot\":{\"x\":357.2015,\"y\":0.0614,\"z\":359.919}},\"a2fcc1\":{\"lock\":false,\"pos\":{\"x\":-3.956,\"y\":1.6556,\"z\":-10.4412},\"rot\":{\"x\":359.9197,\"y\":269.9997,\"z\":0.0168}},\"b00f35\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6954,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":0.0169}},\"b58f4c\":{\"lock\":false,\"pos\":{\"x\":-2.7247,\"y\":1.6571,\"z\":0.3733},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.0803}},\"b5928a\":{\"lock\":false,\"pos\":{\"x\":-4.145,\"y\":1.5828,\"z\":-15.1672},\"rot\":{\"x\":359.9197,\"y\":270.0014,\"z\":0.0168}},\"d70162\":{\"lock\":false,\"pos\":{\"x\":-20.2601,\"y\":1.6109,\"z\":3.9765},\"rot\":{\"x\":0.0446,\"y\":45.0011,\"z\":359.9316}},\"d7558d\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6203,\"z\":-11.51},\"rot\":{\"x\":0.0169,\"y\":180,\"z\":0.08}},\"f704e9\":{\"lock\":false,\"pos\":{\"x\":-2.6884,\"y\":1.6555,\"z\":-5.0486},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.0803}}}}", + "ContainedObjects": [ + { + "Name": "Card", "Transform": { - "posX": 22.7632771, - "posY": 1.51609957, - "posZ": -12.48111, - "rotX": 0.07988456, - "rotY": 90.0209961, - "rotZ": 359.983154, + "posX": -30.2242, + "posY": 1.69309223, + "posZ": -7.70000458, + "rotX": 359.9201, + "rotY": 269.999725, + "rotZ": 0.0168763679, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, - "Nickname": "SCE v1.4064 - 4/30/2020", - "Description": "Additionally, the action trackers change states in proper class order now.\n\n\nUntil we meet again.", + "Nickname": "Administration Building", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233506, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "0b6166" + }, + { + "Name": "Card", + "Transform": { + "posX": -17.12, + "posY": 1.67930114, + "posZ": 7.57001, + "rotX": 359.920258, + "rotY": 270.000153, + "rotZ": 0.0158608481, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Orne Library", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233503, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "116eb9" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -26.8623, + "posY": 1.61764109, + "posZ": -4.47280025, + "rotX": 0.04456534, + "rotY": 44.999836, + "rotZ": 359.9316, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "1ed6d5", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -23.6765, + "posY": 1.61674464, + "posZ": 7.569998, + "rotX": 359.9201, + "rotY": 270.010956, + "rotZ": 0.0168845989, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "25652c", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "Card", + "Transform": { + "posX": -23.6764984, + "posY": 1.68622029, + "posZ": -0.0299020838, + "rotX": 359.9201, + "rotY": 269.998657, + "rotZ": 0.0168781877, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Miskatonic Quad", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233501, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "4541f6" + }, + { + "Name": "Card", + "Transform": { + "posX": -30.2244, + "posY": 1.69086039, + "posZ": -15.2800026, + "rotX": 359.9201, + "rotY": 269.999542, + "rotZ": 0.0168767963, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Faculty Offices", + "Description": "The Night is Still Young", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233507, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "47b306" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -26.8973, + "posY": 1.61899662, + "posZ": -0.034500733, + "rotX": 359.9201, + "rotY": 270.011139, + "rotZ": 0.0168845151, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "4901f8", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "Card", + "Transform": { + "posX": -36.7731, + "posY": 1.70448279, + "posZ": -0.0300014522, + "rotX": 359.9201, + "rotY": 269.999756, + "rotZ": 0.0168764032, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Dormitories", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233505, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "4bd010" + }, + { + "Name": "Card", + "Transform": { + "posX": -15.0137024, + "posY": 1.67120612, + "posZ": -9.996003, + "rotX": 359.9201, + "rotY": 270.0, + "rotZ": 0.0168765448, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "\"Jazz\" Mulligan", + "Description": "The Head Janitor", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 234103, + "SidewaysCard": false, + "CustomDeck": { + "2341": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "52e361" + }, + { + "Name": "Deck", + "Transform": { + "posX": -3.92740059, + "posY": 1.7823683, + "posZ": 5.75710344, + "rotX": 359.919739, + "rotY": 270.0, + "rotZ": 180.016815, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Encounter Deck", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": false, + "SidewaysCard": false, + "DeckIDs": [ + 232812, + 270219, + 232813, + 232818, + 232817, + 232829, + 270327, + 232814, + 232829, + 232817, + 232818, + 232810, + 270430, + 232811, + 232810, + 270431, + 270431, + 270219, + 232828, + 232828, + 232813, + 270327, + 232810, + 232813, + 270430, + 232812, + 232811, + 270219, + 232817, + 232827, + 232811, + 232827 + ], + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + }, + "2702": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + }, + "2703": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + }, + "2704": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "ContainedObjects": [ + { + "Name": "Card", + "Transform": { + "posX": 3.12950444, + "posY": 1.70759833, + "posZ": 8.101044, + "rotX": 359.920135, + "rotY": 269.999878, + "rotZ": 0.0168764461, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Light of Aforgomon", + "Description": "\tPact. Power.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232812, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "6c2f4a" + }, + { + "Name": "Card", + "Transform": { + "posX": -15.7747707, + "posY": 1.753205, + "posZ": 5.66288233, + "rotX": 359.921753, + "rotY": 270.001221, + "rotZ": 0.0162846111, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Ancient Evils", + "Description": "Omen.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270219, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "6e7cb8" + }, + { + "Name": "Card", + "Transform": { + "posX": 2.15501428, + "posY": 1.69501209, + "posZ": 7.444842, + "rotX": 359.935822, + "rotY": 269.994781, + "rotZ": 7.50431871, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Thrall", + "Description": "Humanoid. Monster. Abomination.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232813, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "fbe20d" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.646352, + "posY": 1.548182, + "posZ": 0.144670352, + "rotX": 359.920135, + "rotY": 269.999939, + "rotZ": 0.0168772917, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Eager for Death", + "Description": "Omen.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232818, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "60ef9e" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.24814034, + "posY": 1.70613587, + "posZ": 4.471411, + "rotX": 359.920135, + "rotY": 269.9999, + "rotZ": 0.0168776922, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Whippoorwill", + "Description": "\tCreature.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232817, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "61c583" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.163001, + "posY": 1.550591, + "posZ": 6.036887, + "rotX": 359.920135, + "rotY": 269.9999, + "rotZ": 0.0168760177, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Arcane Barrier", + "Description": "\tHex. Obstacle.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232829, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "2d6b0f" + }, + { + "Name": "Card", + "Transform": { + "posX": -17.60739, + "posY": 1.58022821, + "posZ": 8.422101, + "rotX": 359.920349, + "rotY": 269.999756, + "rotZ": 0.0154577158, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Locked Door", + "Description": "Obstacle.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270327, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "ab3719" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.394843, + "posY": 1.54970729, + "posZ": 4.13393164, + "rotX": 359.920135, + "rotY": 269.999939, + "rotZ": 0.0168757457, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Wizard of Yog-Sothoth", + "Description": "Humanoid. Sorcerer.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232814, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "e44036" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.36834574, + "posY": 1.70658445, + "posZ": 6.162498, + "rotX": 359.920135, + "rotY": 269.9999, + "rotZ": 0.01687594, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Arcane Barrier", + "Description": "\tHex. Obstacle.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232829, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "db1aee" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.24814034, + "posY": 1.72339261, + "posZ": 4.471411, + "rotX": 359.920441, + "rotY": 269.9999, + "rotZ": 0.0163779482, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Whippoorwill", + "Description": "\tCreature.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232817, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "de3bd5" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.37573743, + "posY": 1.7043395, + "posZ": 0.209344044, + "rotX": 359.920135, + "rotY": 269.999939, + "rotZ": 0.0168772619, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Eager for Death", + "Description": "Omen.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232818, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "40e9d0" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.15239716, + "posY": 1.70869577, + "posZ": 11.50471, + "rotX": 359.920135, + "rotY": 269.999969, + "rotZ": 0.01687689, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Visions of Futures Past", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232810, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "42d459" + }, + { + "Name": "Card", + "Transform": { + "posX": -20.7980976, + "posY": 1.58471787, + "posZ": 8.655001, + "rotX": 359.9206, + "rotY": 270.001221, + "rotZ": 0.0136531973, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Yithian Observer", + "Description": "Monster. Yithian.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270430, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "ab3719" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.89250565, + "posY": 1.70636082, + "posZ": 8.19774, + "rotX": 359.920135, + "rotY": 269.999969, + "rotZ": 0.01687832, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Beyond the Veil", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232811, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "9cb0b3" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.15239716, + "posY": 1.72595167, + "posZ": 11.50471, + "rotX": 359.9199, + "rotY": 269.999969, + "rotZ": 0.0165576525, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Visions of Futures Past", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232810, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "de3bd5" + }, + { + "Name": "Card", + "Transform": { + "posX": -20.624012, + "posY": 1.58353865, + "posZ": 5.391288, + "rotX": 359.92038, + "rotY": 270.0011, + "rotZ": 0.0152683891, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Offer of Power", + "Description": "Pact.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270431, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "ad01d5" + }, + { + "Name": "Card", + "Transform": { + "posX": -21.1143684, + "posY": 1.74799216, + "posZ": 5.51088, + "rotX": 359.927856, + "rotY": 270.00116, + "rotZ": 0.008664682, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Offer of Power", + "Description": "Pact.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270431, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "1e4b6f" + }, + { + "Name": "Card", + "Transform": { + "posX": -15.6701107, + "posY": 1.57669926, + "posZ": 5.718232, + "rotX": 359.920654, + "rotY": 270.001251, + "rotZ": 0.0133364461, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Ancient Evils", + "Description": "Omen.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270219, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "6e7cb8" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.0437057, + "posY": 1.55163479, + "posZ": 9.017338, + "rotX": 359.920135, + "rotY": 269.999939, + "rotZ": 0.0168782789, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Terror from Beyond", + "Description": "\tHex. Terror.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232828, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "851dc1" + }, + { + "Name": "Card", + "Transform": { + "posX": 2.82296681, + "posY": 1.708395, + "posZ": 9.019801, + "rotX": 359.920135, + "rotY": 269.999939, + "rotZ": 0.0168783069, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Terror from Beyond", + "Description": "\tHex. Terror.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232828, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "8906a9" + }, + { + "Name": "Card", + "Transform": { + "posX": 2.76801586, + "posY": 1.60063446, + "posZ": 8.933262, + "rotX": 359.9319, + "rotY": 269.992828, + "rotZ": 0.0655015, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Thrall", + "Description": "Humanoid. Monster. Abomination.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232813, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "76139c" + }, + { + "Name": "Card", + "Transform": { + "posX": -18.06458, + "posY": 1.74395728, + "posZ": 8.675678, + "rotX": 359.928467, + "rotY": 269.9997, + "rotZ": 0.006147271, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Locked Door", + "Description": "Obstacle.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270327, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "4904d0" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.43124938, + "posY": 1.55177522, + "posZ": 11.3293571, + "rotX": 359.920135, + "rotY": 269.999969, + "rotZ": 0.0168769564, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Visions of Futures Past", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232810, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "de3bd5" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.32377672, + "posY": 1.55104816, + "posZ": 8.903832, + "rotX": 359.921722, + "rotY": 269.997437, + "rotZ": 0.008892595, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Thrall", + "Description": "Humanoid. Monster. Abomination.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232813, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "9b9792" + }, + { + "Name": "Card", + "Transform": { + "posX": -21.04713, + "posY": 1.74898231, + "posZ": 8.319516, + "rotX": 359.925964, + "rotY": 270.001221, + "rotZ": 0.0171930045, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Yithian Observer", + "Description": "Monster. Yithian.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270430, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "4c04b5" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.103076, + "posY": 1.5511409, + "posZ": 7.621261, + "rotX": 359.920135, + "rotY": 269.999878, + "rotZ": 0.0168763418, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Light of Aforgomon", + "Description": "\tPact. Power.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232812, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "de3bd5" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.89250565, + "posY": 1.72360778, + "posZ": 8.19774, + "rotX": 359.920837, + "rotY": 269.999969, + "rotZ": 0.0158282, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Beyond the Veil", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232811, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "d56ff7" + }, + { + "Name": "Card", + "Transform": { + "posX": -15.808506, + "posY": 1.73237514, + "posZ": 5.64793253, + "rotX": 359.9293, + "rotY": 270.001251, + "rotZ": 0.01372296, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Ancient Evils", + "Description": "Omen.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 270219, + "SidewaysCard": false, + "CustomDeck": { + "2317": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/775106514377430057/E4E5A51434CEF23EF5D04A104F352520304AA550/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "8af879" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.19784832, + "posY": 1.54999852, + "posZ": 4.190304, + "rotX": 359.920135, + "rotY": 269.9999, + "rotZ": 0.0168776866, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Whippoorwill", + "Description": "\tCreature.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232817, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "de3bd5" + }, + { + "Name": "Card", + "Transform": { + "posX": 2.622002, + "posY": 1.55319154, + "posZ": 12.3073425, + "rotX": 359.920135, + "rotY": 269.9999, + "rotZ": 0.0168778151, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Pushed into the Beyond", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232827, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "de3bd5" + }, + { + "Name": "Card", + "Transform": { + "posX": 3.917338, + "posY": 1.55012894, + "posZ": 8.039298, + "rotX": 359.920135, + "rotY": 269.999969, + "rotZ": 0.01687837, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Beyond the Veil", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232811, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "d56ff7" + }, + { + "Name": "Card", + "Transform": { + "posX": 2.70456314, + "posY": 1.70989764, + "posZ": 12.504797, + "rotX": 359.920135, + "rotY": 269.9999, + "rotZ": 0.0168777462, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Pushed into the Beyond", + "Description": "Hex.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232827, + "SidewaysCard": false, + "CustomDeck": { + "2328": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "d91086" + } + ], + "GUID": "556e96" + }, + { + "Name": "Card", + "Transform": { + "posX": -17.1201, + "posY": 1.67481935, + "posZ": -7.70000172, + "rotX": 359.9201, + "rotY": 269.9998, + "rotZ": 0.0168764647, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Science Building", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233509, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "64a96b" + }, + { + "Name": "Card", + "Transform": { + "posX": -3.9912014, + "posY": 1.66317463, + "posZ": 15.0046082, + "rotX": 359.919739, + "rotY": 269.999969, + "rotZ": 0.01684078, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Dr. Henry Armitage", + "Description": "The Head Librarian", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232900, + "SidewaysCard": false, + "CustomDeck": { + "2329": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/", + "BackURL": "https://i.imgur.com/EcbhVuh.jpg", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "66197b" + }, + { + "Name": "Card", + "Transform": { + "posX": -30.2243, + "posY": 1.69758868, + "posZ": 7.5700016, + "rotX": 359.9201, + "rotY": 269.999817, + "rotZ": 0.0168765187, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Humanities Bulding", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233502, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "70df0b" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -33.6012, + "posY": 1.62832189, + "posZ": -0.112300754, + "rotX": 359.9201, + "rotY": 270.011169, + "rotZ": 0.0168845579, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "7234af", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -27.0616, + "posY": 1.6203841, + "posZ": 3.89889956, + "rotX": 359.931549, + "rotY": 314.992584, + "rotZ": 359.955444, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "739b98", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -20.5606956, + "posY": 1.6090821, + "posZ": -3.697601, + "rotX": 359.93158, + "rotY": 314.995758, + "rotZ": 359.955444, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "7d30ce", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "CardCustom", + "Transform": { + "posX": -14.7652922, + "posY": 1.75086, + "posZ": 5.020704, + "rotX": 357.2043, + "rotY": 0.06156617, + "rotZ": 359.9199, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Namer of the Dead", + "Description": "Presence Within the Grimoire", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 231800, + "SidewaysCard": false, + "CustomDeck": { + "2318": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736532717/8A5447C52CCA46977B87E3363E5FC47839C11727/", + "BackURL": "https://i.imgur.com/sRsWiSG.jpg/", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "7f6452" + }, + { + "Name": "CardCustom", + "Transform": { + "posX": -3.9560008, + "posY": 1.65564811, + "posZ": -10.4412031, + "rotX": 359.919739, + "rotY": 269.999664, + "rotZ": 0.01684145, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Scenario", + "Description": "Read or Die", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 232100, + "SidewaysCard": false, + "CustomDeck": { + "2321": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736551619/926F857CA442C9CAFDE6392C4FB1FC1AB1DFD040/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736551840/6C8534FFFAC128BBD6CD9F370B95E10A8E58B168/", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "a2fcc1" + }, + { + "Name": "Card", + "Transform": { + "posX": -30.2242, + "posY": 1.69535065, + "posZ": -0.0300009213, + "rotX": 359.9201, + "rotY": 270.000031, + "rotZ": 0.0168762319, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Student Union", + "Description": "Miskatonic.", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": true, + "CardID": 233504, + "SidewaysCard": false, + "CustomDeck": { + "2335": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/", + "NumWidth": 10, + "NumHeight": 7, + "BackIsHidden": true, + "UniqueBack": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "b00f35" + }, + { + "Name": "CardCustom", + "Transform": { + "posX": -2.7247, + "posY": 1.65710139, + "posZ": 0.37330097, + "rotX": 0.01683513, + "rotY": 180.0, + "rotZ": 0.08025754, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Mortal Inquiry", + "Description": "Agenda 1", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232300, + "SidewaysCard": true, + "CustomDeck": { + "2323": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736557920/CA08909CA827A9E0F8779E89B38318358A81D421/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736554645/CFB1E2B66071026F84FF4F93FEB4B7A228ACD7F0/", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "b58f4c" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -4.145003, + "posY": 1.58281064, + "posZ": -15.16721, + "rotX": 359.919739, + "rotY": 270.001343, + "rotZ": 0.0168360919, + "scaleX": 2.2, + "scaleY": 1.0, + "scaleZ": 2.2 + }, + "Nickname": "Read or Die", + "Description": "click to set chaos token difficulty", "GMNotes": "", "ColorDiffuse": { "r": 1.0, @@ -1058846,12 +1062365,427 @@ "GridProjection": false, "HideWhenFaceDown": false, "Hands": false, + "CustomImage": { + "ImageURL": "http://cloud-3.steamusercontent.com/ugc/965354846165100486/3DC8FCEF364B30758B09EF96AF9458F2B8E64D56/", + "ImageSecondaryURL": "https://i.imgur.com/EcbhVuh.jpg/", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "name = 'Read or Die'\r\n\r\nfunction onLoad()\r\n Global.call('createSetupButtons', {object=self, key=name})\r\nend\r\n\r\nfunction easyClick()\r\n Global.call('fillContainer', {object=self, key=name, mode='easy'})\r\nend\r\n\r\nfunction normalClick()\r\n Global.call('fillContainer', {object=self, key=name, mode='normal'})\r\nend\r\n\r\nfunction hardClick()\r\n Global.call('fillContainer', {object=self, key=name, mode='hard'})\r\nend\r\n\r\nfunction expertClick()\r\n Global.call('fillContainer', {object=self, key=name, mode='expert'})\r\nend\r\n", + "LuaScriptState": "", + "GUID": "b5928a" + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -20.2600956, + "posY": 1.61092281, + "posZ": 3.97650146, + "rotX": 0.0445668548, + "rotY": 45.0010643, + "rotZ": 359.9316, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", - "GUID": "04d173" + "GUID": "d70162", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "Custom_Tile", + "Transform": { + "posX": -30.2242, + "posY": 1.62025654, + "posZ": -11.510004, + "rotX": 0.01687166, + "rotY": 180.0, + "rotZ": 0.07994176, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/vppt2my.png", + "ImageSecondaryURL": "https://i.imgur.com/vppt2my.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "d7558d", + "States": { + "2": { + "Name": "Custom_Tile", + "Transform": { + "posX": -39.7933121, + "posY": 1.63758957, + "posZ": 2.038383, + "rotX": 359.9201, + "rotY": 269.9961, + "rotZ": 0.0168742146, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/HyfE8m8.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "44b0c5" + }, + "3": { + "Name": "Custom_Tile", + "Transform": { + "posX": -38.8217163, + "posY": 1.99356019, + "posZ": 0.4159239, + "rotX": 359.9201, + "rotY": 272.9828, + "rotZ": 0.01687373, + "scaleX": 0.8, + "scaleY": 1.0, + "scaleZ": 0.8 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.6045295, + "g": 0.6045295, + "b": 0.6045295 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomImage": { + "ImageURL": "https://i.imgur.com/dHKBLoD.png", + "ImageSecondaryURL": "https://i.imgur.com/HyfE8m8.png", + "ImageScalar": 1.0, + "WidthScale": 0.0, + "CustomTile": { + "Type": 3, + "Thickness": 0.1, + "Stackable": false, + "Stretch": true + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "5b38c6" + } + } + }, + { + "Name": "CardCustom", + "Transform": { + "posX": -2.68839979, + "posY": 1.65545726, + "posZ": -5.04860163, + "rotX": 0.0168351158, + "rotY": 180.000015, + "rotZ": 0.0802576542, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "Speed Reading", + "Description": "Act 1", + "GMNotes": "", + "ColorDiffuse": { + "r": 0.713235259, + "g": 0.713235259, + "b": 0.713235259 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": true, + "Hands": true, + "CardID": 232400, + "SidewaysCard": true, + "CustomDeck": { + "2324": { + "FaceURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736560700/8FC34EE0BB5F409D6FE2D1B0C8376BDBB76E52AF/", + "BackURL": "http://cloud-3.steamusercontent.com/ugc/1017195287736560872/9F8CC6A9AC2CAFA75FF0C2F8A6D3E1E9384CFF21/", + "NumWidth": 1, + "NumHeight": 1, + "BackIsHidden": true, + "UniqueBack": false + } + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "f704e9" } - } + ], + "GUID": "0fad66", + "AttachedDecals": [ + { + "Transform": { + "posX": -0.0021877822, + "posY": -0.08963572, + "posZ": -0.00288731651, + "rotX": 270.0, + "rotY": 359.869568, + "rotZ": 0.0, + "scaleX": 2.00000215, + "scaleY": 2.00000238, + "scaleZ": 2.00000262 + }, + "CustomDecal": { + "Name": "dunwich_back", + "ImageURL": "http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/", + "Size": 7.4 + } + } + ] + }, + { + "Name": "Custom_PDF", + "Transform": { + "posX": -1.46565163, + "posY": 1.47562265, + "posZ": -26.93042, + "rotX": 359.920135, + "rotY": 269.9955, + "rotZ": 0.0168779325, + "scaleX": 4.37573433, + "scaleY": 1.0, + "scaleZ": 4.37573433 + }, + "Nickname": "", + "Description": "", + "GMNotes": "", + "ColorDiffuse": { + "r": 1.0, + "g": 1.0, + "b": 1.0 + }, + "Locked": false, + "Grid": true, + "Snap": true, + "IgnoreFoW": false, + "Autoraise": true, + "Sticky": true, + "Tooltip": true, + "GridProjection": false, + "HideWhenFaceDown": false, + "Hands": false, + "CustomPDF": { + "PDFUrl": "http://cloud-3.steamusercontent.com/ugc/1017195287736584494/A0E90E3760E7B1FE910D322CC85EAD25E6185E02/", + "PDFPassword": "", + "PDFPage": 1, + "PDFPageOffset": 0 + }, + "XmlUI": "", + "LuaScript": "", + "LuaScriptState": "", + "GUID": "7f7fb0" } ], "SnapPoints": [ @@ -1059572,7 +1063506,7 @@ "Rotation": { "x": 359.9201, "y": 269.981476, - "z": 0.0169174224 + "z": 0.01691748 } }, {