Tabletop Simulator

Tabletop Simulator

Pathfinder Adventure Card Society (Sanctioned Implementation)
37 Comments
WaffleBone 23 May, 2022 @ 7:31pm 
@cartmanbeck @Nickademus
Are you guys still working on this? Any plans to pull in v1 PFACG cards?
nanobenavides 13 Sep, 2021 @ 6:26pm 
Im trying to play a 4 game player and when i click build locations im gettin errors about no found locations, when i dont need more locations, any tutorial? thanks
Eregar 22 Jul, 2021 @ 7:28am 
I just imported my new Witch deck, but the pictures are missing. They point to a imgur image that no longer exists. :(
Is there anything I can do to fix this?
Kord 15 Jul, 2021 @ 8:31pm 
Is there a way i can forcefully reactivate the turn tracker on a game?
I usually save my games and load them to continue where we are, and usually the time tracker gets lost in the process (no longer appears in the screen). I could only fix this if i save all the assets of a current game, create a fresh server a place them.
Nickademus  [author] 29 Jun, 2021 @ 4:05pm 
This is in the works. A new set of cards with clear art is being made.
Kord 29 May, 2021 @ 4:45pm 
Is there a chance to fix some of the art on cards that show pixelated? Examples, Allies Horse (0) and Fox (1), Story Bane Ancient Skeleton (1)
cartmanbeck  [author] 7 Jul, 2020 @ 12:47pm 
Thank you all for the error reporting. I'll get on fixing as many of these as I can. Especially thank you to Ben for the suggestion on how to make the sideboards non-interactable.

I believe the asset loading issue should be fixed now.
Ben 29 Jun, 2020 @ 1:38am 
There is an error in your script in global on line 102 decks["proxies"] = proxies_deck
It should be decks["supporters"] = supporters_deck

looks like you copy/pasted and missed changing the line.

Also I would suggest for the 4 boards on the edge of the table setting a script to
function onload() self.interactable = false end
so they can't be targeted. I've accidentally unlocked them because they are can be targeted.

I am also getting the failure to import as others have mentioned.
Nemesor 23 Jun, 2020 @ 7:25pm 
In the same boat with the failure to render/import border.
zigdon 20 Jun, 2020 @ 4:06pm 
Same, looks like the board border isn't loading, when I open it up I'm presented with an "import object" screen that fails to process the images.
Aldath 17 Jun, 2020 @ 3:47pm 
Having issues with this version, can't load some of the assets.
Zalarian 17 Jun, 2020 @ 6:08am 
I ran into same issue with red screen. One thing that worked for me was saving the game and then going back into it. That and leaving the character sheet in the bag. I am also seeing invisible cards but I am still troubleshooting the root cause of that.
StalkingWolf 5 Jun, 2020 @ 9:17pm 
Trying out the new version, and clicking on the generated character sheet gives a red screen where the various upgrades can be ticked off, but I cannot figure out how to get back to the game from that. ESC tries to close the game, and right clicking does not help. Assistance appreciated!
Bear 28 May, 2020 @ 7:53am 
It would be really helpful if you included notes with new releases so we know what you fixed/added.
paul.grogan 24 May, 2020 @ 3:02pm 
Thanks for the update with the fixed cards including the errata :)
vlbarta 16 May, 2020 @ 9:51am 
The last part sorts the cards - if there is a deck in the zone (meaning at least 2 cards), it will shuffle the card in. If there is no card or 1 card (tag ~= "Deck"), the card is put into the zone position. "1 card present" situation may have different behaviour (such as putting the card on top) - to change this, GetDeck function would need to be tweaked ("if ... or v.tag == "Card").

Further advantages: you can easily add and modify the script whenever a new card type is introduced and it will work perfectly the same (using the same operations all the time); you may add "junk" zone for cards that can't be identified in the case structure (Else: zone=...(junk_GUID)) and they will be put there.
vlbarta 16 May, 2020 @ 9:45am 
No checks or assignments of zones before extracting description and the case structure, which looks like this (all cases assign different area into "zone"):
elseif string.match(description,"Location") then
zone = getObjectFromGUID(locations_GUID)

After the case:
deck = getDeck(zone)
if deck.tag == "Deck" then
deck.putObject(card)
else
card.SetPosition(zone.getPosition())
end
vlbarta 16 May, 2020 @ 9:42am 
I used as much of cartmanbeck's code as possible, only tweaking it a little and improving it.
If I can't send it somehowe, here are the changes: Unnecessary checks removed from clearCardsFromZone - they are in the moveCardByDescription. Card sorter was shrunk to a single OnCollisionEnter trigger that calls the global moveCardByDescription function (modified original local function ClearCards...). The moveCardByDescription now looks like this:
vlbarta 16 May, 2020 @ 9:35am 
I've just been playing with the scripting in order to fix the bugs present in this, and eventually found solution to every problem I've encountered. I have it saved in a text file, but I am not sure how to send it to cartmanbeck. I also did some code optimization to eliminate unnecessary operations.
1) There were redundant checkings for decks in a given zone (none of them working as intended)
2) Card sorting spot used a different function to place card in their decks than the Clear Board
3) All zones/decks were checked for each card being sorted, not just the card's zone/deck
JoshuaCBirk 13 May, 2020 @ 8:08am 
It's broken for me as well
vlbarta 12 May, 2020 @ 5:09pm 
Uh oh. Automatic sorting of cards is broken now (outputs an error in script). If you are working on it, then I am sorry for mentioning it. If you didn't know about it, well - now you know!
Knaughx 12 May, 2020 @ 12:08pm 
Hi, wanted you know that your mod has been added to my collection: Board Game Geek - BGG - May 2020 - Best Mod for each of the Top 500 Rated Games. Collection here: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2086043930

The collection used this priority system:

1. Mod's Files Availability: Mod with all/most files still available for download
2. Feature completeness: Mod with greatest inclusion of expansions and/or promos available for the board game title
2. Scripting: Mod with scripting that most reduces work in setup/play for players
3. Component Quality: Mod with the best visuals/usability in terms of component quality
4. Table Setup/Ambiance: Mod with the best immersion with table, background, and other modeling.

Please also note that a mod that makes selection for this list very well could be one in which the mod author borrowed the majority of assets from another workshop listing, so full thanks to all who worked on a mod.

Thanks for your hard work!
vlbarta 12 May, 2020 @ 7:06am 
3) Currently, recharging keeps the orientation; unfortunately, I don't know the command to check orientation or flip it - for decks, it might be chacking the top card. It is useful to some people, so maybe leave that as it is and put a note somewhere than when you need to shuffle your deck, select and press G should work
vlbarta 12 May, 2020 @ 7:05am 
OK, after some testing with the scripting, I was able to get it work (mostly):
1) the proximity level is set waaaay too low. It works with proximity of 1 instead of 0.005 (it does not recharge anything placed into the character card spot - distance of 5 recharged anything even from the discard pile). That's probably why it recharged only when flipping, because the position was spot-on and flipping just triggered the collision sub-routine.
2) If you change the condition at the start of this sub-routine to:
if collision_info.collision_object.tag == "Card" or collision_info.collision_object.tag == "Deck" then
it will correctly recharge even decks when placed on the recharge spot
Bear 12 May, 2020 @ 6:56am 
Have a few thoughts from poking around a bit. Another mod I saw had [x] on card names so that you could filter to a specific level, like [0] to see level 0 cards when making your starting deck. Also, I may be in the minority, but I recommend moving the hand zones back to the table edge. In the past when I've played games where they were all that close to the play surface we had a lot of trouble with accidentally putting cards in each other's hands when trying to play stuff, but maybe there is some TTS property I don't know about that prevents that? My TTS knowledge is limited and my Lua is rusty, but if there are particular things you're wanting to do that are "stretch" goals, feel free to friend me and shoot a message and I'll see if I can find the time. :)
vlbarta 12 May, 2020 @ 6:41am 
It seems to me that there is some sort of problem with triggering the whole script, maybe with placing tolerance? It does not work correctly on decks (at least for me). I don't know anything about scipting in TTS to help you find the culprit in the programming of the spot, sorry.
In the heavily scripted PACG version, we usually do the recharge by taking the card (I don't think it works with multiple cards), pressing right button and sliding it to the deck. It works nicely, but takes a little practice and there has to be nothing in the way.
vlbarta 12 May, 2020 @ 6:41am 
I should have read your instructions how to use decals more thoroughly. It's working nicely.
I tested the recharge spot again, and to be sure everything is as clean as possible, I Deleted & Unsubscribed and then Subscribed again. Unfortunately, it stille does not seem to work correctly for me.
1) Placing a single card on the recharge spot (tested mainly on the white colour spot in the lower right), regardless of its orientation does nothing. It just sits there, but pressing F to flip it immediately recharges it, with the new orientation. That is, if it was placed faceup into the spot and flipped, it will be recharged face down. If it was face down, it will be recharged face up.
2) Placing a deck of two cards on the spot does nothing regardless of orientation. Flipping does not work either, no card is recharged.
3) Taking a card out of the deck of two cards immediately triggers the recharge script and the one remaining card is recharged.
cartmanbeck  [author] 11 May, 2020 @ 6:33pm 
The way to remove a decal that you stuck in the wrong place, is to just click on that decal with the decal tool again... it disappears and you can choose a new spot.

The funny little icon is a remnant of a slightly pre-final version of the cards that I was given to use for this. At some point I'd love to get good scanned copies of the cards in to replace those, but it's not going to happen any time soon.

Thanks all for playing with this! I have enjoyed working on it so far (except for making the recharge spot work... it's REALLY irritating!) LOL
cartmanbeck  [author] 11 May, 2020 @ 6:33pm 
I think I fixed the recharge issue yesterday, so if you all wouldn't mind loading up a clean copy and trying it out for me, I'd appreciate it. I left it so that you could recharge cards faceup because I know of a lot of players who do that in real life... they recharge cards faceup to remind themselves of cards they have recharged, since you technically could just write them down and know what order those cards are in. I might have to make it flip them facedown by default to fix the other issues, though. I'll think on it.
vlbarta 9 May, 2020 @ 4:37pm 
That's how it's working for me once I hit F to flip the card - the new state is retained. If there are several cards, nothing happens at all and when I flip the cards, only one "may" get recharged. I wonder where is the problem :)
paul.grogan 9 May, 2020 @ 3:29pm 
Yeah, the recharge for me seems to work, but you need to put the card face down on the recharge slot. If you put it face up, it puts it on the bottom of the deck face up, and not actually on the bottom of the deck, but as a separate card.
vlbarta 9 May, 2020 @ 7:26am 
3) The recharge spot does not work as intended - when you drop the cards there, nothing much happens until you flip the card / deck (F): then, one card gets recharged. Also, the recharged card keeps its orientation (after flip), so you have different orientations in the deck now. Which prevents shuffling, grabbing the whole deck and so on.
4) A special spot for Buried cards would be extremely convenient for characters heavily using that approach - like Amiri, Hakon etc.
5) Decals for marking cards work nicely, until you hit the wrong spot. The delete button deletes all decals, so you could repair that damage, but it also deleted all decals from the list, so there are no "mark" decals anywhere and I did not find a way how to fix it - apart from returning time.
Otherwise, it is perfect and thank you very much for doing this

P.S.: All Dragon's Demand cards have funny little icon instead of the expansion symbol. Paizo community rules?
vlbarta 9 May, 2020 @ 7:26am 
Hello Cartmanbeck, I just tested your build and it works pretty well. There are, however, small bugs or recommendations for better work:
1) If a whole deck of cards from the Vaults gets emptied / moved / deleted, placing the cards on the Sorter spot will ouput an error (incorrect boolean input) and do nothing. So if for example someone wants (for some reason) to recreate the Vault, he/she needs to put one card of that type into the rectangles and then the sorter works. In adventure 6 of CoCT, it is possible to have so few e.g. armors (if all level 0-3 armors are removed from the game) that the deck can be emptied by building locations.
2) I would suggest moving the Society pad somewhat downward, as there is not enough space for displayed armors / allies / cohorts / items near the deck. If there is a little space between deck and the pad under it, the displayed cards can be placed there.
paul.grogan 8 May, 2020 @ 2:34pm 
I dont suppose there is any possibility of the cards being updated to include the errata?
paul.grogan 8 May, 2020 @ 2:19pm 
woohoo!
cartmanbeck  [author] 5 May, 2020 @ 6:46am 
Thanks Daniel, that should now be fixed!
Daniel Anand 3 May, 2020 @ 5:48pm 
It looks like the drop here to Recharge from Player's Mats are sending cards to the top of the Deck, and not the bottom.