Any chance of a video tut on customizing the play-field layout?
Is it easy to add own images for that asset? if i make card game so only what need to know is it easy to add images. And is there AI opponent which i can play against, if making some single player system
whatâs that game? I am curious. Just checked this asset and consider to do some game for that asset
Hey helheimgames,
Each of the card placements are actors placed within the level, so they can be moved and rotated around the area to meet your layout needs. The settings on each placement and how they can handle cards can easily be demoâd in the editor when you make changes. If there is anything you are looking to do or want to know if it is supported, feel free to reply or send a support email.
Hey tero83,
Yep, this is really simple. All you will need to do out of the box is import your custom images and when you create cards in the data table, you can simply reference the image you want to use and it should work seamlessly both in-hand and on the board. If you have custom sizes for your assets then the widgets/models will need to be modified to fit your card size, but this shouldnt be too difficult. If you checkout the Marketplace trailer there is a section on card creation which shows how cards are setup
As for AI, a high level and customisable AI was added to the toolkit in version 1.2. This has been setup for the example game that comes with the toolkit so there will need to be some changes and logic added so you AI knows how to play, but its definitely will give you a big head start.
The Cyber Monday Sale has begun and the CCG Toolkitwill be 60% OFF for today only.
Jump straight in and start feeling your creativity bloom with the easy to use framework, creating card sets, designing arenas, and adding new mechanics and playing straight away. Multiplayer, AI, 10+ example abilities⌠what more do you need.
Any questions or support can be posted here on the forum page, or send an email to
Happy Dev-ing!
How can I get the AI to use a player controlled deck? Also, I deleted a deck from the saved folder but it still appears in the load deck list. Where else do I have to remove it from? Is there a way to reset the saved data?
Hey Benni.Lodge!
By Player controlled, do you refer to a deck created by the player? Or would this be having both players using the same deck?
As for the deck list, this is created on load if they do not exist. The easiest way to get rid of these decks If you do not want them at all would be to navigate to Game/CCGToolkit/CardGame/DEVELOPER_PrebuildDecks/PreBuildDecks_DataTable and remove the table rows you want to be removed.
Great, I can be a Texas Holdâem
Thanks, Iâm enjoying working on your stuff.
I was wondering how I could implement attacking creatures damaging themselves based on the power of the card they are attacking, same as Hearthstone. I tried to use the retaliation damage ability but it just inifinite loops. Where would be the best place to implement this?
Great to hear!
For the hearthstone like damage, this is really simple to setup. If you navigate to the Interactions function library, find the âDeal damage to cardâ function which applies the damage to the receiving card. If you duplicate the âTakes Damageâ interface call, and swap the Receiving and Talking Card references (and set the damage amount based on the receiving cards damage), you will be able to setup applying damage back to the attacking card.
So Iâve had the tool kit for a long time, and recently revisited my projects, I was wondering how I might be able to add a graveyard view history, e.g. you click either playerâs graveyard and youâre able to see all the cards in it. Iâve tried to add OnClicked Event to the graveyard Blue Print, it doesnât seem to work during game play. Another system Iâd like to try to implement is the MTG tap system and stack system, but that comes later. Also, when Iâm doing testing between to active players who ever âjoinsâ the game looses the placement cells.
Hey Tallahlf,
Graveyard history is definitely possible. The âGraveyardListâ array is replicated to clients so they can use this to see what cards are available. Hhowever the âGraveyardStructListâ is not, but can easily be by setting the replication property to âReplicatedâ. If the issue is with selecting the graveyard, there could be a few things at play. In order to have a OnClicked event triggered there needs to be a valid collision volume with the right settings. By default the collision box is set to âOverlapAllDynamicâ which may not be triggering the OnClicked event. Setting this to âBlock Allâ should fix your issue.
For the MTG Tap and Stack systems, let me know more about what you are trying to do/ unsure of and I can give you some more details.
The placement issue on second player connecting is known but this is more on the engine side then the toolkit unfortunately. The issue occurs when joining games through the editor from the menu. If you start the game with multiple players when the arena is already loaded in the editor, you should not longer see this issue. Also if you build your game .exe the issue should also not occur.
Hope this helps!
@ Thank you for your help my friend, Iâm sure I will need it again, for a little elaboration on the MTG systems Iâm looking for, The âtapâ system, a player will lay a mana card in the mana zone, and in order to use the mana card, he would need to tap it (turn side ways add 1 mana of the color mana card to his mana pool) With the mana in his pool he could then cast cards from his/her hand, if the player doesnât use all of the mana they tapped at the end of their turn they take 1 damage for each mana left in their pool (optional)
Stack system is just a rule for how the cards are played and countered, Player will play a card, player 2 will play a card to counter that, so the order in which the cards played will go top to bottom. Let me know if I need to explain more, I hope you can get the general meaning of what is being looked for.
hi , how can I do that after a game I give a player a certain amount of money and that he can use it to unlock a card, you could guide me on what I should do that I should read, greetings !!
Thanks for the details.
These mechanics are possible with a few changes in the flow and where checks are made. The Tap system should be able to use the current setup, but instead of mana accumulating on each turn, have the new âPoolâ placement add mana instead.
As for the Stack, this may or may not be an easy change to make. Any âdelayedâ or countering is difficult if your relying on real-time play. If its simply player 1 plays a card, then the turn is moved to player 2, then back to player 1 etc then this should be really simple.
Let me know any questions you have on how to get these implemented (when the time comes) and where you may be stuck, we can go into more details there.
@ Thank for the response, Iâm going to look through the blue prints and see where the most efficient placement will be.
A few nights ago I had added a custom set and 5-10 cards, but when I started working on it again a few days later, the project wouldnât load and was throwing a shader error, but i was able to fix it by restarting my project. I hope that it doesnât happen in the future.
Edit: Iâm looking through some of the enums and a question arises from âability type enumâ, the one âOn Dropâ what does this do? Is this the enum called when a card leaves a playerâs hand and goes into the field ?
If the shader issue does happen again, you can post the logs/errors you were seeing and we might be able to narrow down the issue and a workaround. Sounds like an engine bug.
Correcto! On drop can be seen as when the card is placed on the board, and its triggered in the 3D card blueprint on the "Card Played
Yo Malibu. I readâs response to this question. I was wondering if you made any progress on this problem? Itâs definitely something Iâd like to include in my project.
Cheers.
Hey, thanks for your last bit of advice, I implemented it just as you said.
If I want to play a card and not bother with a placement (e.g. itâs a spell that doesnât need a placement, it should just affect the board with itâs ability immediately) is there an easy way of doing this? If I just want it to stay in front of the Player and his opponent for a couple seconds then go to the graveyard. Is there a way for me to bypass the placement validity checking?
There are a few ways of going about this, but the easiest would be to add a branch when placing cards based on the card types and reroute your functionality around this.
For anything that is, a spell for example, you could get the card type, use a branch/switch node to re-route the flow so that the placement checks are skipped and the card is handled/created. There are checks on both client and server for validating the placement, so if you just follow the flow from placing cards, sending the server info, to the server play card validation checks you should be able to get things running.
I dont have the engine in front of me at the moment, but if you get stuck or if your unsure where to check then let me know and I can get back to you with some function names at a later time.