So I am trying to make the taunt work first, and this is what I came up with what I read in earlier posts on the forum
Doesn’t seem to work, still new to unreal so not sure what is going on.
So I am trying to make the taunt work first, and this is what I came up with what I read in earlier posts on the forum
Doesn’t seem to work, still new to unreal so not sure what is going on.
Hey MFHad0uken,
Interesting solution, I can see a few things for why this wouldn’t be working for you. Ultimately, you would be wanting to get the opponents cards and search through these to find the first or one taunt card in the list. In your solution I cant seem to see any reference to getting the opponents cards, so lets see if we can get something working for you.
My suggestion in the latest version of the toolkit would be to add the following example to your “Deal Damage to Card” function.
This solution basicly follows the following logic:
You shouldn’t have to add this anywhere else as both the AI and Players use this same function. This isn’t the most efficient way of doing this but you shouldn’t see any real impact to performance at all, and once you get this working you can refactor the code so it works better for your project.
Let me know if this works for you!
Dear,
I just bought your toolkit, it’s amazing, you must be spending much time in creating and fixing the bugs. It’s truly awesome.
By the way i’m new to game development, and i want to publish my game to IOS apps store one day. If this is the plan, what would you recommend me to do?
Sorry i’m abit long winded, but i really need your kind advise of above.
Many Thanks.
Hey Xiao Wan,
Really glad to hear your enjoying the toolkit!
To your questions…
You will require a mac to build the project for submission to the app store or complete build to your devices for testing (Unless this has changed recently?)
To deploy to an IOS device for testing you are required to be an apple developer. You can test your game in the mobile preview, but I would suggest signing up to the program as its really worth it being able to see your game running on device.
You should not have any troubles deploying to an IOS device. Personally I do not have a mac, so I have not been able to submit any projects based off the toolkit to the app store. Maybe another user has had success with this?
Multi-platform is a beast on its own really. Unreal handles most of the muscle work here to make other platforms accessible and deployable for almost all devices from the one project. Design wise, you will need to take into account that some platforms may or may not have the muscle to run as many visuals, code, post processing effects, etc per frame and performance issues may arise on lower end machines (Anything from assets, to complex code, post processing limitations etc), the list can go on for days. You have the option to branch a build and setup/ optimise the project based on the platform, however you shouldn’t do this unless its necessary (Such as porting from a visually detailed PC/Console game to a mobile platform)
This is definitely possible, as likely expected you will need to modify the toolkit to meet these requirements.
Hope this helps
Hey, I am failing to get all rows. I have added them in so it should work, can you tell me what you think may be the issue?
Thanks!
Hey Zarsie,
Can be a number of different reasons for this, but in the images you attached only two of the 3 inputs are being used by the select node. Looks like your empire set may not be returned from the collapsed code into the select node.
If you still seem to be getting this error you can reply with another image of your “Get Card Data” function changes so we can have a look. If you are using UE4.16 > you should also be able to change this function to be like suggested in post #132 of this thread to be easier to add your card sets to reduce the hassle of adding your new card sets.
Also, one of the more common reasons for this would simply be to open the main menu/ deck builder if you haven’t done so already. Let me know
From your image you appear to have 3 execution pins entering the collapsed (“Get Selected Data Table Row Names”) node. but there only appears to be two arrays coming out. From what I can tell you should have a third array output connected to the Empire Set input on the select node right next to it.
This will fix it the card editor but not the issue you were seeing with the error.
What I can see in your Get Card Data function, your new set has been added below the Empty Card set execution flow. The function at the moment will return before it gets to your new card set because the empty set calls the error you were seeing and return without ever looking at your new set. If you go into the Card Set enum, and move your new set above the Empty set option, this should hopefully fix the issue your seeing. Alternatively you can change this function to be like the example I suggested in my last reply and this shouldn’t be an issue anymore.
So I did all of this and am still getting the “Failed to get X row” error when opening the deck builder. Here is a video showing everything. Sorry I’m a bit slow on navigating as I am reading the documentation the other screen to make sure I don’t miss a step.
Ok, a few cleanup things…
See:
In the “Get All Cards in Active Sets” function the Sequence node flow “Then 2” will return before getting to your card set. You should plug your card set into “Then 2”, and have “Then 3” connected to the return path.
In the Card Manager your almost there. It looks like because you moved your Empire set within the enum, the third array is now connected to the Empty Set, instead of your Empire Set. Just change this back and it should work as intended.
Hope this helps!
Thanks for taking the time to help me. I must be misunderstanding something you said, I think it is probably on point 1. here is an album http://imgur.com/a/2Ilx0 Still getting the same error.
Looks like everything has been setup correctly. Without seeing the contents of your data table its difficult to understand why this would now be failing. The error displays the card names and if they are the correct card names that align with the row names in the data tables, then there may be other variables at play.
I will suggest that you go ahead and make the change this function to below. Detach the current code and add the follow. This will save you the hassle of the spaghetti lines everywhere and make it a lot easier for you to add new cards sets to your game. With this change, as long as your card set is in the data table array and the card names are the same, then you shouldn’t see any other issues.
If you continue to get this, even after this change, send an email to and we can continue this discussion more specific to your project.
Worked like a charm!
I know its been a while since we talked bout converting cards into taunts when placed on the field, but I’m a little confused on how to convert cards to be “Taunts” by adding a bool to the placement.
your original quote
Thanks for helping!
This toolkit seems fantastic. I swore this was on sale this past weekend but seems i missed it, little late to the party i guess. Has there been any working online demos published yet? Cant wait to see one or try my luck when on sale. Great asset wish i found this sooner!
Perfect! As for the second part, that would be a more solid approach but this can be made easier if that’s what your after…
Something like this:
Keep in mind that this wont set it globally or set it for the card struct at all. Some systems may check the data table for the card info and wont necessarily load the card itself. Look out for these things and make the necessary changes as you come to them, or send another message and I can direct you to where they may be.
Let me know if this is easier to work with
Amazing toolkit! I’ve already implemented a number of my own abilities thanks to the great documentation. I was following the guidance you gave earlier on taunting cards and while it seems to work when preventing creatures, if I choose to attack the player, taunt doesn’t work. I tried using a similar work around I’m the Deal Damage to Player interaction blueprint, but with no success. I’m currently at work and can post pictures when I’m home. I’m hoping maybe you can shed some light however.
In case anybody was wondering. I did get this to work, but it only seems to work once. Any subsequent cards played with the taunt type will not work for a reason that I can not understand.
Hey Ridingkeys,
Glad to hear you got some of this working. Only working for one card seems a bit strange, as long as you are not Setting or Changing the taunt cards when you do this check, then it should work the same each time.
The solution mentioned before does have some limitations and this will change based on how you want the ability to function. It will find the first one in the list and then return that, so this may be what you are hitting if cards have improperly been removed from the board(?). Throw in some prints to see where the logic and flow of your changes go and what it checks as this will help you narrow down whats going on.
Feel free to send over some images of your blueprint setup and I can also take a look if that would help.
Using print strings was actually what helped me solve most of the issues. I do believe it is that the cards are being improperly removed from the board but I am not sure why. I do get an error when playing related to the Graveyard so I believe that may be it. Let me get the exact Graveyard issue and clean up my blueprint so that its easier to read.
Error Blueprint Runtime Error: Accessed None trying to read property Graveyard_Ref from function: 'ExecuteUbergraph_3DCard' from node: Add to Graveyard Visual in graph: EventGraph in object: 3DCard with description: Accessed None trying to read property Graveyard_Ref
http://puu.sh/wLw6u/16c4d421cf.jpg
tried to make blueprint as compact as possible
A couple of things stand out…
As for the error, this essentially means there is no reference to the players graveyard. This is handled in the game state which sets references for each player at the start of the game. You shouldn’t need a graveyard in your game as they are optional really. In the 3D card, the “Move Card to Graveyard” function calls a function in the game state (“Remove Card from Board”) which would handle the removal cleanly. Have you made any changes in the game state recently? If you can provide more details and specific cases then this may help narrow this down.