Closed Sigma88 closed 5 years ago
Hi, the features associated with the ferries expansion are not implemented.
A while ago TheLimeyDragon helped me to implement the tile data for several expansions so that the tiles could be used, even if the special features did not work. The Ferries was one of those expansions.
Unfortunately, I didn't have a way to make this very clear with the current control panel design. I had decided to enable the "Tiles" button of the expansion to show that the tiles were implemented, while leaving the feature buttons disabled.
I know this isn't very clear and you're not the first person to be confused by this, but I can't think of another way to do it without quite a bit of work.
thanks,
I might take a look at the code, if I can understand the language maybe I can help
(if you are ok with it)
Ok, I think I have a workaround for you if you are interested.
You can link multiple cards together in a single card with multiple states
instead of having the card image look like this:
you can have 3 different cards looking like this: (this is just a proof of concept, I can make the art look better :D )
and you link them in a single card with 3 states
Then, when you go to play, you can change the state to the one you want before positioning the card
I've tried it on a single player game and it works, it also works with all the rest of the scripting (meeple positioning and point scoring)
you can use this if you want: https://i.imgur.com/CWJ4xsd.jpg
I tried making the deck for now, and this is the result.
However these are not recognised by the script, I will need some time to look at how the script works to integrate that
{ "SaveName": "", "GameMode": "", "Gravity": 0.5, "PlayArea": 0.5, "Date": "", "Table": "", "Sky": "", "Note": "", "Rules": "", "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "ObjectStates": [ { "Name": "Deck", "Transform": { "posX": -9.478983, "posY": 1.01347291, "posZ": -3.17735839, "rotX": 4.869676E-07, "rotY": 89.93875, "rotZ": 1.75342177E-06, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": [ 5319, 5320, 5306, 5307, 5313, 5317, 5318, 5326 ], "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "ContainedObjects": [ { "Name": "Card", "Transform": { "posX": -9.472829, "posY": 1.83359277, "posZ": -3.176651, "rotX": 3.11282444, "rotY": 89.94402, "rotZ": 0.267238826, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5319, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "924b61", "States": { "2": { "Name": "Card", "Transform": { "posX": 14.5386868, "posY": 3.03284836, "posZ": 10.06075, "rotX": 0.0, "rotY": 45.0000038, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5303, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "ca93af" }, "3": { "Name": "Card", "Transform": { "posX": 12.3731623, "posY": 3.13284826, "posZ": 12.2262764, "rotX": 0.0, "rotY": 45.0000038, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5311, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "1c03f2" } } }, { "Name": "Card", "Transform": { "posX": -11.15023, "posY": 1.99367034, "posZ": -4.83169127, "rotX": 321.219666, "rotY": 358.765961, "rotZ": -0.0028708505, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5320, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "5df335", "States": { "2": { "Name": "Card", "Transform": { "posX": 3.07336, "posY": 3.0328486, "posZ": 17.2092285, "rotX": 0.0, "rotY": 0.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5304, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "aa9802" }, "3": { "Name": "Card", "Transform": { "posX": -1.32321593E-05, "posY": 3.1328485, "posZ": 17.1985016, "rotX": 0.0, "rotY": 0.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5312, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "4682ee" } } }, { "Name": "Card", "Transform": { "posX": -11.1242666, "posY": 1.34534609, "posZ": -3.17935634, "rotX": 356.9164, "rotY": 269.995667, "rotZ": 359.690918, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5306, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "c813b0", "States": { "2": { "Name": "Card", "Transform": { "posX": -17.4208832, "posY": 3.13284826, "posZ": -0.163090229, "rotX": 0.0, "rotY": 270.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5314, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "deff68" }, "3": { "Name": "Card", "Transform": { "posX": -17.4208832, "posY": 3.24426, "posZ": -3.23189354, "rotX": 0.0, "rotY": 270.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5322, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "ad037f" } } }, { "Name": "Card", "Transform": { "posX": -12.1377182, "posY": 1.03228283, "posZ": -2.853555, "rotX": 359.983063, "rotY": 353.293335, "rotZ": -0.001425356, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5307, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "9ca573", "States": { "2": { "Name": "Card", "Transform": { "posX": -10.1423655, "posY": 3.24335027, "posZ": -14.6122465, "rotX": 0.0, "rotY": 225.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5323, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "c1fabd" }, "3": { "Name": "Card", "Transform": { "posX": -12.3097649, "posY": 3.13284826, "posZ": -12.4448442, "rotX": 0.0, "rotY": 225.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5315, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "df31de" } } }, { "Name": "Card", "Transform": { "posX": -10.131876, "posY": 1.14970148, "posZ": -3.179006, "rotX": 357.5269, "rotY": 229.238388, "rotZ": 181.79541, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5313, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "ba03a4", "States": { "2": { "Name": "Card", "Transform": { "posX": -10.2302008, "posY": 3.03284836, "posZ": 14.3692465, "rotX": 0.0, "rotY": 315.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5305, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "f6d4a5" }, "3": { "Name": "Card", "Transform": { "posX": -14.5652828, "posY": 3.24343348, "posZ": 10.0341682, "rotX": 0.0, "rotY": 315.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5321, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "eb1622" } } }, { "Name": "Card", "Transform": { "posX": -9.498532, "posY": 1.54413319, "posZ": -3.17872119, "rotX": 359.670837, "rotY": 179.9774, "rotZ": 3.14902043, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5317, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "2a3ad2", "States": { "2": { "Name": "Card", "Transform": { "posX": 10.2017384, "posY": 3.03284836, "posZ": -14.307972, "rotX": 0.0, "rotY": 135.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5301, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "6e234c" }, "3": { "Name": "Card", "Transform": { "posX": 12.3672628, "posY": 3.13284826, "posZ": -12.1424456, "rotX": 0.0, "rotY": 135.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5309, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "11e62d" } } }, { "Name": "Card", "Transform": { "posX": -11.1832676, "posY": 1.77930057, "posZ": -3.18102264, "rotX": 3.05425024, "rotY": 90.01666, "rotZ": 0.244912624, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5318, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "4eff36", "States": { "2": { "Name": "Card", "Transform": { "posX": 17.3902683, "posY": 3.03284836, "posZ": -3.02387047, "rotX": 0.0, "rotY": 90.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5302, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "238d66" }, "3": { "Name": "Card", "Transform": { "posX": 17.3902683, "posY": 3.13284826, "posZ": 0.03864491, "rotX": 0.0, "rotY": 90.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5310, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "ddd88a" } } }, { "Name": "Card", "Transform": { "posX": -11.1055565, "posY": 1.487098, "posZ": -3.17844272, "rotX": 359.699829, "rotY": 180.022415, "rotZ": 3.220574, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5326, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "1594f4", "States": { "2": { "Name": "Card", "Transform": { "posX": -3.17572117, "posY": 3.03284836, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5300, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "53dfe3" }, "3": { "Name": "Card", "Transform": { "posX": -1.90462589, "posY": 3.13284826, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5308, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "419e28" }, "4": { "Name": "Card", "Transform": { "posX": -0.6335301, "posY": 3.23284841, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5316, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "62ba74" }, "5": { "Name": "Card", "Transform": { "posX": 0.6375658, "posY": 3.33284831, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5324, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "6abb4c" }, "6": { "Name": "Card", "Transform": { "posX": 1.9086616, "posY": 3.43284845, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 1.0, "scaleY": 1.0, "scaleZ": 1.0 }, "Nickname": "", "Description": "", "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": 5325, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "GUID": "ee4de0" } } } ], "GUID": "fc5427" } ], "TabStates": {}, "VersionNumber": "" }
That's actually a decent idea. Personally I would rather stick with picking up and dropping bridge objects and dealing with the onObjectDropped events, since it fits the tabletop theme better. However, this would undoubtedly be a much harder implementation. Using object states would greatly simplify the scripting since each state could have a separate script defining the connected quadrants for the road. Then you could just call removeTile and then addTile with the new tileData.
However one issue you would need to overcome is to find a good way to allow the user to choose which which state they want. The easiest way I can think to do this is to add a confirm button, then to allow the player to change the states at will (with the number keys) before pressing that confirm button to progress the stateMachine.. A fancier way would be to add buttons to change to each of the states.
The biggest issue that I see with using states is the potential for accidents/trolling when it comes to changing those states. As far as I know, there is no permission in TTS that can limit the ability to change states, so any player can change these states as they wish. Locking an object doesn't prevent players from changing the states. In order to prevent these accidents/trolling from making the game out of sync, you would probably need to add some special handling for onObjectDestroy() and possibly onObjectSpawn() in order to call removeTile and addTile to keep the featureMap in working order. To prevent all of this work it might make sense to create a TTS feature request to ask for them to add this permission limiting.
Regardless, unfortunately I am super busy right now, so I couldn't help much beyond basic advice or a code review. If you wanted to take on this project, though, you are welcome.
Actually another idea might be to detect when someone changes a state, and force it back to the original state if the player is not currently allowed. Again, I don't think there's an easy way to detect when a state is changed, so you'd need to listen for the onObjectSpawn() event if I'm not mistaken.
Yes I don't think this is a good long term solution, nor a very sofisticated one.
However since in the current state the only way to use the expansion would be to disable the scripts and just play manually, I think a good temporary solution would be to use this "workaround" and assume people will play "by the rules" and not trolling.
Here's the code I have been using for my tests and it seems to work more than fine :D
{ "SaveName": "", "GameMode": "", "Gravity": 0.5, "PlayArea": 0.5, "Date": "", "Table": "", "Sky": "", "Note": "", "Rules": "", "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "ObjectStates": [ { "Name": "Deck", "Transform": { "posX": 9.54, "posY": 1.02580714, "posZ": 23.85, "rotX": -6.071588E-08, "rotY": 179.989319, "rotZ": 180.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": [ 5319, 5320, 5306, 5307, 5313, 5317, 5318, 5326 ], "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "", "LuaScriptState": "", "ContainedObjects": [ { "Name": "Card", "Transform": { "posX": -9.472829, "posY": 1.83359277, "posZ": -3.176651, "rotX": 3.11282444, "rotY": 89.94402, "rotZ": 0.267238826, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5319, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "924b61", "States": { "2": { "Name": "Card", "Transform": { "posX": 14.5386868, "posY": 3.03284836, "posZ": 10.06075, "rotX": 0.0, "rotY": 45.0000038, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5303, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "ca93af" }, "3": { "Name": "Card", "Transform": { "posX": 12.3731623, "posY": 3.13284826, "posZ": 12.2262764, "rotX": 0.0, "rotY": 45.0000038, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5311, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "1c03f2" } } }, { "Name": "Card", "Transform": { "posX": -11.15023, "posY": 1.99367034, "posZ": -4.83169127, "rotX": 321.219666, "rotY": 358.765961, "rotZ": -0.0028708505, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5320, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "5df335", "States": { "2": { "Name": "Card", "Transform": { "posX": 3.07336, "posY": 3.0328486, "posZ": 17.2092285, "rotX": 0.0, "rotY": 0.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5304, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "aa9802" }, "3": { "Name": "Card", "Transform": { "posX": -1.32321593E-05, "posY": 3.1328485, "posZ": 17.1985016, "rotX": 0.0, "rotY": 0.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5312, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "4682ee" } } }, { "Name": "Card", "Transform": { "posX": -11.1242666, "posY": 1.34534609, "posZ": -3.17935634, "rotX": 356.9164, "rotY": 269.995667, "rotZ": 359.690918, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5306, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "c813b0", "States": { "2": { "Name": "Card", "Transform": { "posX": -17.4208832, "posY": 3.13284826, "posZ": -0.163090229, "rotX": 0.0, "rotY": 270.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5314, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "deff68" }, "3": { "Name": "Card", "Transform": { "posX": -17.4208832, "posY": 3.24426, "posZ": -3.23189354, "rotX": 0.0, "rotY": 270.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5322, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "ad037f" } } }, { "Name": "Card", "Transform": { "posX": -12.1377182, "posY": 1.03228283, "posZ": -2.853555, "rotX": 359.983063, "rotY": 353.293335, "rotZ": -0.001425356, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5307, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "9ca573", "States": { "2": { "Name": "Card", "Transform": { "posX": -10.1423655, "posY": 3.24335027, "posZ": -14.6122465, "rotX": 0.0, "rotY": 225.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5323, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "c1fabd" }, "3": { "Name": "Card", "Transform": { "posX": -12.3097649, "posY": 3.13284826, "posZ": -12.4448442, "rotX": 0.0, "rotY": 225.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5315, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "df31de" } } }, { "Name": "Card", "Transform": { "posX": -10.131876, "posY": 1.14970148, "posZ": -3.179006, "rotX": 357.5269, "rotY": 229.238388, "rotZ": 181.79541, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5313, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6}, {7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "ba03a4", "States": { "2": { "Name": "Card", "Transform": { "posX": -10.2302008, "posY": 3.03284836, "posZ": 14.3692465, "rotX": 0.0, "rotY": 315.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5305, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "f6d4a5" }, "3": { "Name": "Card", "Transform": { "posX": -14.5652828, "posY": 3.24343348, "posZ": 10.0341682, "rotX": 0.0, "rotY": 315.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5321, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'City', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "eb1622" } } }, { "Name": "Card", "Transform": { "posX": -9.498532, "posY": 1.54413319, "posZ": -3.17872119, "rotX": 359.670837, "rotY": 179.9774, "rotZ": 3.14902043, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5317, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "2a3ad2", "States": { "2": { "Name": "Card", "Transform": { "posX": 10.2017384, "posY": 3.03284836, "posZ": -14.307972, "rotX": 0.0, "rotY": 135.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5301, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "6e234c" }, "3": { "Name": "Card", "Transform": { "posX": 12.3672628, "posY": 3.13284826, "posZ": -12.1424456, "rotX": 0.0, "rotY": 135.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5309, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "11e62d" } } }, { "Name": "Card", "Transform": { "posX": -11.1832676, "posY": 1.77930057, "posZ": -3.18102264, "rotX": 3.05425024, "rotY": 90.01666, "rotZ": 0.244912624, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5318, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "4eff36", "States": { "2": { "Name": "Card", "Transform": { "posX": 17.3902683, "posY": 3.03284836, "posZ": -3.02387047, "rotX": 0.0, "rotY": 90.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5302, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "238d66" }, "3": { "Name": "Card", "Transform": { "posX": 17.3902683, "posY": 3.13284826, "posZ": 0.03864491, "rotX": 0.0, "rotY": 90.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5310, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "ddd88a" } } }, { "Name": "Card", "Transform": { "posX": -11.1055565, "posY": 1.487098, "posZ": -3.17844272, "rotX": 359.699829, "rotY": 180.022415, "rotZ": 3.220574, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5326, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Road', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 12}, {6, 7}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "1594f4", "States": { "2": { "Name": "Card", "Transform": { "posX": -3.17572117, "posY": 3.03284836, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5300, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Road', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 3}}\nlinkedOctants = {{5, 12}, {6, 7}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "53dfe3" }, "3": { "Name": "Card", "Transform": { "posX": -1.90462589, "posY": 3.13284826, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5308, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Road', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{3, 4}}\nlinkedOctants = {{5, 12}, {6, 7}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "419e28" }, "4": { "Name": "Card", "Transform": { "posX": -0.6335301, "posY": 3.23284841, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5316, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Road', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{1, 4}}\nlinkedOctants = {{5, 12}, {6, 7}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "62ba74" }, "5": { "Name": "Card", "Transform": { "posX": 0.6375658, "posY": 3.33284831, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5324, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Road', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{1, 2}}\nlinkedOctants = {{5, 12}, {6, 7}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "6abb4c" }, "6": { "Name": "Card", "Transform": { "posX": 1.9086616, "posY": 3.43284845, "posZ": -17.3453884, "rotX": 0.0, "rotY": 180.0, "rotZ": 0.0, "scaleX": 0.5, "scaleY": 1.0, "scaleZ": 0.5 }, "Nickname": "", "Description": "", "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": 5325, "SidewaysCard": false, "CustomDeck": { "53": { "FaceURL": "https://i.imgur.com/CWJ4xsd.jpg", "BackURL": "https://drive.google.com/uc?export=download&id=0BzBZwl-j9sHXbTRucmllWnRCN00", "NumWidth": 8, "NumHeight": 4, "BackIsHidden": false, "UniqueBack": false } }, "XmlUI": "", "LuaScript": "sides = {'Road', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{1, 3}}\nlinkedOctants = {{5, 12}, {6, 7}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}", "LuaScriptState": "", "GUID": "ee4de0" } } } ], "GUID": "fc5427" } ], "TabStates": {}, "VersionNumber": "" }
(this is also compatible with your mod scripts, except for the initial setup)
Don't have the time to look at it in detail but from a quick glance, it looks like you've gotten the hang of the tileData format, which is a great start!
For what I did the syntax was pretty easy to understand, I'm pretty happy with the result, all I need to do is start the game then load the custom object and shuffle the tiles into the deck
Integrating it with the starting script will be a bit more complicated, I have tried looking at the code briefly but I didn't have enough time to understand what I need to do in order to make it work properly
Hmm I was looking at the rules and thinking about this a bit more. I think the tiles actually need more work. When a player extends the road, they should be given the opportunity to change the orientation of the road. In order for the mod to know that the lake is associated with the road, they need to be linked together in specialFeatures. For example,
"LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', nil, nil}}",
The 2nd parameter for each special feature represents the linked feature numbers. By having it as nil, the special feature is essentially not linked to any specific tile feature and instead is only linked to the tile itself. This is useful for things like the Volcano, Dragon, etc. Since we want it to be associated with the road, it would need to be changed to
"LuaScript": "sides = {'Field', 'Road', 'Road', 'Road'}\nlinkedQuadrants = {{2, 4}}\nlinkedOctants = {{5, 6, 7, 12}, {8, 9}, {10, 11}}\nspecialFeatures = {{'Lake', {2, 4}, nil}}",
This only needs to be linked to the road that has the ferry, per the official rules:
364 The road must include a wooden ferry to allow movement of that ferry in this situation. Thus, if adding onto a road that ends at a lake without the wooden ferry connection, the ferry cannot be moved. (2/2013)
As for setup, it's actually rather simple:
1) You'll need to add your tiles to the Ferries expansion bag (You can delete the tiles that are already there). Make sure you save the GUID of your tile stack for the next step. Don't forget to save the game and load. 2) Replace the GUID here with the one for your new tile stack: https://github.com/DinnerBuffet/TTSCarcassonne/blob/master/scripts/global.ttslua#L254
That should be all you need to do to get the new tiles working with the setup script.
As for the rest, I can try to give some advice when you get to it. The most challenging part is going to be
If there are two ferries on the road that was just extended, the player may only move the first ferry in the road – the ferry that is closest to the tile that was just placed
Currently there is no logic in the game for finding the closest tile to anything. You might need some special traversal logic in order to do this. The game already has a tileTraversal method: https://github.com/DinnerBuffet/TTSCarcassonne/blob/master/scripts/tile_traversal.ttslua#L121
However, it is is currently coded as a breadth-first search and the code is very confusing and badly needing a refactor. I think you could skip this logic for now and maybe I can find some time to help with this but again, I am very busy for the coming weeks.
I'm having some trouble with setting up the Atom stuff
I downloaded the program and the tts plugin, I linked my github account to atom
However, I don't understand how to generate the lua files for the cards (I can write them manually but I assume Atom can do it automatically)
The cards are not currently setup for code check in. I use the following manual process to backup the card data to github:
1) Load the save file 2) In Atom, Packages->Tabletop Simulator->Get Lua Scripts (You don't need to do this if Atom was already open). Your game scripts should now show up in the project folder under Tabletop Simulator Lua 3) Right click this folder and click Show in File Manager 4) Copy any scripts that you want to backup to (git folder)->TTSCarcassonne->tile_data->(expansion folder)
The cards would be kind of a pain to setup for versioning since I would need to add #includes to all 500+ of them.
I thought about this a bit more and figured I could at least setup the save files for versioning. That way any changes to the cards could be checked in more easily. I don't know if this is going to work well since I'm not sure if the ordering of the items in the JSON are deterministic. There's a chance a small change could make the commits into an unreadable mess. I'm going to try it out. I added the save file here: https://github.com/DinnerBuffet/TTSCarcassonne/blob/master/Carcassonne.json
Again, this would be a manual process of copying the save file from your save folder to your git folder or setting up a symlink.
I wasn't able to setup atom to update the scripts in the save, but I did some progress by editing the script manually
for now I was able to setup the events where to check for lakes in the tiles
What issue specifically are you having with the atom setup? I would start with getting Atom to work with a simple mod first to make sure it's working, then follow the steps that I put in the README for getting this mod to work.
I was playing a game today but I couldn't get the ferries expansion to work properly
do you know if the scripting for that expansion works correctly?