CCG Toolkit | Multiplayer Card Game Framework

Hey, is there a chance to have the CCG Toolkit running on v4.23 soon ?

Hey t1n1n1!

UE4.23 support should be on its way out really soon!

If your feeling lucky, you can duplicate your project or create a new project, right click on the .uproject file and select ā€œSwitch Engine Versionsā€. This will allow you to open the project in 4.23 and you can give it a go. If you do, let me know if there is any issues on your end.

Card Text Question: This question is mainly about the Card Description text but could also apply to the Card Name or Card Type text. How is the text prevented from escaping the edge of the card? And how does the description text wrap (for those longer descriptions)?

Iā€™m a noob so apologies if Iā€™m missing something obvious.

Hey

First of all nice work! This toolkit is amazing.
I want to also setup a looting system. Wanted to ask you, where I can find an array of all inluding cards that are available.

greetings

Iā€™m just now diving into this and was wondering a few things:

Whatā€™s the best way to add an ability that the player can choose to trigger when they decide (ie. Click a creature in play to activate its ability)?

Whatā€™s the best method for having a condition style card (example: +1 to all Warrior cards while in play; this card stays in play and just adds +1 to base attack for warriors in play, that come into play and are in play)?

Where do I look to set that cards cannot attack the player unless there are enemy cards blocking?

Where should I look to add a custom animation when attacking the player or other cards?

Hey M1nsDev,

Apologies for the late response.

There isnā€™t a single helper function to do this, but the deck builder has an example on how this can be done. You could easily setup a function library and a custom function that will hold a list of all the active card sets(data tables). From this you can loop through each of the data tables and get the all the row names from the array. You can then append all of the results from each of the sets to give you the full list of cards you want to loot from. This will also allow you to add additional filters for cards or sets you want to include/not include and all the rest.

Hey Rolento,

  1. To add player triggered abilities, you will need to add an additional input you want to use. This could be a simple mouse input or mouse input to display some custom UI for the card. You could then have this input call to the server and trigger an ability based on a custom ability trigger when this input is pressed. This will tie into the current system without to many additions/changes.

  2. The current system doesnt allow for dynamic conditions, a system would need to be built to fully support this. However this could be done by having two abilities, One triggered when it enters the field, another when the card leaves the field. The entering ability can loop through all player cards on the board, and this can modify one of the card stats based on the ability, the leaving ability (sent to graveyard) cold then do the same but in reverse. Now, this wouldnā€™t cater for cards being played after it has already been in play, but you could counter this by having an additional trigger or state that can triggers when a card is played on the board.

  3. This would be based on how cards can block the player. The easiest way to do this would be to setup a condition check when the player is attempting it attack the player on interaction. This could be done in the player controller, in the ā€œRun Card Interactionā€ function or in the ā€œDeal Damage To Playerā€ function.

  4. The animation should be triggered and run on the actor which is playing the anim. So if its a card animation, the 3D Card blueprint would be the best place. If its the receiving player, then the Board Player (or your own custom actor) would work the best.

Hope this helps!
Aaron

Awesome! thanks! Iā€™ll give these suggestions a go :smiley:

Keep up the awesome work <3

@First off, amazing asset. Pretty rock solid IMO, and for the most part, things make sense just browsing through without needing documentation.

I do have a question however: Iā€™m wanting to build a game with a LARGE variety of effects (not visual, but like draw, set aside, etc). Currently it looks like thereā€™s just an ability index and a really large list of possible effects. I feel like thatā€™s going to become very unmanageable for my game. Do you have any other suggestions?

UE4.24 support has been added!

UE4.24 support has been finally added and released on the Marketplace!

This update has a number of bug fixes for player state and UI initialization on clients, as well as some minor fixes for card interactions on mobile devices.

For any bugs with the update or any questions about upgrading existing projects, feel free to send a support email to [EMAIL=ā€œā€].

Happy Devā€™ing!

Hey LordZardeck,

I have a few suggestions, but the one I would recommend would be the ā€œAbility Objectā€ approach, which would replace the current array of ability structs with an array of Ability Object reference.

You would basically have a base AbilityObjectBase class that includes a bunch of common functionality, such as the Owning Card, Owning Player, Event Trigger Ability Etc that every ability would use. You can then derive all abilities from this class, and setup the ability triggers to Construct the Ability Object, set the necessary data and call the Trigger ability event which you could then have run any/all the effects you want to have.

This could also be done through blueprints or C++, and require some but not to many changes to the framework.

Happy to provide some more details if this sounds like a good solution!

Hi there @,

Thank you very much for this great Toolkit.

Im trying to add two or three functionalities to the cards, maybe you can help me. I want to have some utility cards, so i need a way to chose if the card can Heal other cards (increase CardĀ“s Health) or can Add Damage to other card (increase another cardĀ“s Damage). I want the card to have the posibility to target and aim the card to add life or damage.

At the moment i find it impossible to do and ive been struggling to do it without any success. Can you help me?

Thanks a lot for your help!

Hey Nadascio,

There are a couple of areas to consider when adding a feature like this to the toolkit, and diving into this could also help give you a better idea on where and how you want to integrate the feature.

  1. Input/Event/Trigger - How the utility is going to be activated. This could be an ability when a card is placed on the board, a user key input, dropping a card on another card, or using the current targeting logic etc. This will ultimately tell you where the chain should start and how you will need to collect the necessary information, such as the target card which can then be fed into the logic which does the modifications.

If you want to use the targeting mechanic, the best place to start would be in the CardGamePlayerController->RunCardInteraction function. This is where the targeting logic ends up and runs the interaction, and by default the damage that occurs when interacting with other cards or the player. This is where you may store a reference to the target card which can be used during your ability.

2.** Ability/Utility/Script** - Once you have your input and the target reference, the script could be your custom ability or a separate set of logic. This logic will then be able to get the target reference or you could pass it through when calling the utility, depending on how unique or ingrained the utilities are within your project.

The actual logic for modifying stats, such as the health or dealing damage is quite straight forward, as seen in the example abilities or Interaction functions.

  1. Cleanup - Lastly, its always good to think about any cleanup that needs to occur after the utility has run. This could simply be clearing the target reference, moving the utility card to the graveyard, etc. Just to round of the edges and avoid unnecessary bugs down the chain.

As always, this is just an overview, let me know if you have any other questions about this. Hope it helps

Aaron

Hi @, really liking this product :slight_smile:

I have a question.

Iā€™d like to be able to select and play a card by clicking on it. I donā€™t want to drag and drop it onto the game table. How can I go about doing this?

Thanks!

I just purchased this toolkit and Iā€™m really impressed with it so far. Iā€™ve ran into my first issue though and since Iā€™ve no prior experience with Unreal Engine, Iā€™m really not sure how to go about it. I want minions to take damage when they hit another minion (equal to the attack of the minion they hit). I did this by adding ā€œretaliation damageā€ to my minions (I have only made 2 so far and they have no other abilities other than this one). When one of these minions attacks another with the same ā€œretaliation damageā€ ability. The game stops and I get an error which I have attached as an image to this message. Is there something Iā€™ve done wrong? Or are there any suggestions as to how else I might have minions take damage when they attack other minions. Any replies would be appreciated :slight_smile:

Hello I couldnā€™t really find out how to start the game through the card position editor to make a new card layout. So if anyone could help it would be appreciated.

Hi,
I am testing the gameplay and having an issue.
1: Some cards are not going to graveyard even after 0 health. How can I solve that issue? I created a new card type for them, are there any changes needed for them to work?
2: I am trying to find the victory and defeated function to play custom sound and effects besides the message log.

Thank you in advance for your help.

I am having an issue after creating Card Sets and adding them into Deck Builder. I get an error telling me to go back to the main menu and render my custom set. I have no clue what that means, I followed the guide on the ccgtoolkit wordpress.

I am also having an issue with my Arena, I had duplicated one of them and editing the style to my liking but I cannot choose to play that arena when I start in the Main Menu.

Any help would be very much appreciated!

Iā€™m sure this is a long shot but does anyone know how to edit the size of the image within the Card_Model static mesh because when you use a custom frame with thinner walls you begin to see transparency.

You should be able to export the card mesh to a 3D application and change the scale of the polys on the mesh itself, then reimport. Should be easy enough with Maya or blender.

Aaron

Hello, is it possible to insert rankings and sorts of micro transactions that would be connected to a website?