You are producing top tier unreal content. In a world of "How do I do this the quickest" tutorials, you are making truly useful content that sets up people for scalable games.. If you are enjoying making this content - please continue! Your debugging video was one of the most impactful unreal videos I've watched.
Thank you for the awsome feedback! :) I do work on the next 2 videos. However, I had to meet some obligations recently. I hope to upload the next video as soon as possible.
I never comment on UA-cam Videos; but I had to for this one. I'm 3 minutes in and you're using a visual representation for a relatively complicated system. I've seen a number of other tutorials that don't do this; I can tell this is already really high quality and exactly what I was looking for. Keep it up - subscribed as i'll be working my way up to using GAS in the future. Well done!
@@burningvirus7731 I don't have a public Discord channel right now and I guess that I won't find the time to maintain one for now. I am still working on the next video to come and I think the time would be better spend there. Sorry. :(
This Tutorial was extremely helpful. Thank you! I can now setup basic GAS for all my projects that need it. It would be super exciting to see a more complex example based on this, like with different states (like weapon pickups etc). Or how you think you would implement states. Would you use these gameplay tags for everysthing, or Behaviour Trees / State Machines? how would they integrate into GAS? maybe in a future video :) Thanks again, these tutorials are so good!
Thank you! I wouldn't use Gameplaytags for everything. Behavior Trees, State Machines and also AnimGraphs have their purpose and facilitate the creation of different kinds of finite state machines. It's often hard to wrap your head around those things only with code, without a visual representation. Actually I am planning to do a video about it.
Thanks Kai, awesome content I'm experiencing something strange with replication, probably a setting in my engine. in listen server mode client 1 replicate but not the Health and stamina bar that are showing empty if i play with 2 or 3 clients with the server client 2 and 3 replicate everything corectly but client 1 still not get any initial values in health and stamina bar hope my issue is clear. This probably a setting somewhere but can't find it. Very clear and precise explanation of GAS without overwealming C++ implementation.
Awesome video! If I may, what was the reason for using "FGameplayAbilitySpec" without also inputting InInputID and InSourceObject? From what I know these are used for input handling of some sort and since we will eventually need to handle input, wasn't it needed here as well? Thanks!
Having an issue, everything compiles as expected but when I hit Q, i don't get the hello message on screen. I reviewed all the code multiple times and I'm just not sure where I went wrong. Is this tutorial still applicable for Unreal 5.4.3? Edit: Nevermind! Figured it out. I was calling GiveDefaultAbilities in OnRep_PlayerState instead of in PossessedBy. Whoops! Great tutorial, stoked to see what comes next. I love to see more intermediate level content put out, the market for introductory content is pretty bloated but intermediate content feels underserved.
Happy to hear you could figure it out. Unfortunately it's impossible to answer all comments properly. I agree that the beginner tutorial market is bloatet. That's why I focus more on intermediate tutorials. I am going to release a Game Feature Video soon and a Lyra Tutorial right after. See you. :)
Good video, your video is smooth and content delivered clearly. Nothing you explained is missed and with a little elbow grease this is a great tool. I have one question, I am trying to make a passive regen for hp/stamina, what I did was modify the values of hp/stamina kick recovery so they are infinite, for now this only applies after kick. I notice the health properly stops at 100/maxhealth but the stamina eventually goes past 100/max. There might be something small I missed so I am still debugging, any feedback would be great.
Hey, thank you for the feedback! :) At 14:54 I explain how to clamp the _Health_ value to _MaxHealth_ value. In order to make your case work you have to do the same for _MaxStamina._ Also don't forget to define the value for _MaxStamina_ in _GE_PlayerDefaultAttributes_ and place this entry before _Stamina,_ so that it's initially not clamped to 0, as explained at 20:00. Regarding elbow grease... I consider the content delivery is quite dense. Could you please tell me how much time more or less it took you to work your way through the tutorial? For me it's really hard to estimate this for my own content. :D
@@DevKaiUnreal Sorry for confusion I just ment this video was long and informative, I enjoyed it. I mean personally I need to put some more effort to further my understanding, but your video was a good start.
@@ntc4747 I wasn't taking your comment negatively at all. Sorry for the confusion from my side. I just wanted to get an idea, how long it might take to work through the whole video from the beginning to the end. Maybe 3 hours, 5 hours? Just to get a measure. I just can't estimate that at all. Thanks in advance.
@@DevKaiUnreal Perhaps I can answer this question. Accounting for all the breaks I took while working through the content, I think it took me about 4 hours to work alongside and fix errors that crept up due to the speed of content delivery. That said, I like the speed a lot, because it forced me to stop and think about things while working alongside. I was forced to pause the video and consider what you were saying. If we add in the taking notes and repeating some topics to get a deeper understanding, I am not quite finished yet and have passed the 6-hour mark. This topic is quite broad and leaves a number of topics that could be elaborated upon. Thank you for the effort and sharing your knowledge, Kai. Much appreciated.
@@SquifiMcDougall Thank you Squifi for your comprehensive answer. I really appreciate hearing that the speed is well received. I was already guessing that working through the video could take more than a day depending on the desired level of detail in doing research and taking notes alongside. Might also be suitable for a refreshment of knowledge. Thanks again, and have fun with learning Unreal Engine! :)
Awesome intro into GAS. I have looked at other sources for information on the GASDocumentation and ability system. Enjoyed your presentation and explanations, your methods are easy to follow and appreciated. I had a question regarding your prototype repo "Eira". If it is possible, how could I make this a project to further explore your c++/blueprint implementations? Regardless, great series, take care.
Glad it was helpful. Thank you! :) Eira is not really meant to be cloned or forked, but if you want you can do just that. However, it's not going to work out of the box. You'd have to add the content which is ignored. Basically: Content/StarterContent/* Content/ThirdPerson/* Content/Imported/* Content/Characters/* I updated the repo to UE 5.4 for you to use with the most recent Unreal version. I will use parts of that repo as a base for the upcoming videos in this playlist. So, if you have a bit time, than you're going to find similar content together with the video tutorial here. :)
I dont understand how you prevent the client from changing the gameplaytag of the target hit in the ability. there is no "has authority" blueprint node used...
Hello I'm an Artist, how can I learn how to add a new attack system to Lyra? Like a sword swing attack, block and death? Can I duplicate some attack C++ from Lyra and swap in new sword attack animations.
Hi. I would start by copying the GA_Melee, AM_MM_Pistol_Melee, and MM_Pistol(_Additive). Then rename the Gameplay Ability, replace the Anim Montage and in there swap out the UpperBody(Additive) parts with your retargeted Anim Sequences. Unfortunately I can't reiterate over the steps now to get into the details, since I am sitting in a train. This also might be to many steps for just a comment. However, my next video is going to be exactly about Lyra and those topics. Hope I could help.
I'm having an issue where, when I kick the second player, they receive the tag "IsKicking", and their health isn't changing. Is there a checkbox or spot in the code I missed where the state is duplicated?
I know it's impossible to say not being able to see my code, but I know that the Gameplay state was configured in ways as to allow for multiplayer, and I'm wondering if I got my wires crossed in an obvious spot that I can't seem to track down.
Hey thank you for comment. Yeah it's not easy to say what the problem exactly is. Did you try to clone the repository from GitHub and run that project? The video is part of a playlist, so that should work. You could then, step by step, copy each part into your project to find out what the reason behind the problem was.
The most common way would be for your NPCs to have an AIController which references a BehaviorTree. For the leaves of the Tree you create BehaviorTasks in which you trigger the abilities.
I forgot to mention that you should add a nav mesh bounds volume to your map for it to work. I will probably make a video about NPCs that use Abilities. However, I can't tell a time.
Thank you for your suggestion! However, I think there are already really good Unreal C++ beginner tutorials out there. I recommend taking a look into Udemy or GameDev.tv. In the case of this playlist, I had rather intermediate tutorial videos in mind that build on one another. That's why I laid out the longer GAS video, as it is a crucial part of the base for what is to come next.
Thank you! I try to publish the follow-up video as soon as possible. However, since I am doing this in my spare time I can't promise that. But I'm pretty sure that I am going to publish the next video for this playlist by the end of May. :)
@@DevKaiUnreal I can't get my FabPlayerState to show up in the all classes search. I can't get the ability tab to show up. I can't get my attributes to show up in the drop down list. Help!
You are producing top tier unreal content. In a world of "How do I do this the quickest" tutorials, you are making truly useful content that sets up people for scalable games.. If you are enjoying making this content - please continue! Your debugging video was one of the most impactful unreal videos I've watched.
Thank you for the awsome feedback! :) I do work on the next 2 videos. However, I had to meet some obligations recently. I hope to upload the next video as soon as possible.
Thank you. I've watched like 5 other tutorials but I found yours the easiest to follow. Very straight forward.
Thank you! :)
I never comment on UA-cam Videos; but I had to for this one. I'm 3 minutes in and you're using a visual representation for a relatively complicated system. I've seen a number of other tutorials that don't do this; I can tell this is already really high quality and exactly what I was looking for. Keep it up - subscribed as i'll be working my way up to using GAS in the future. Well done!
Thank you so much! I really appreciate the feedback. :)
OMG! I'm so happy I found your channel. You explain very well how GAS works, great job❤
Thank you so much for your feedback! I'm going to upload more content for this playlist soon. :)
Just perfect tutorial about GAS. Thank you man. Continue in such maner.
Thanks, will try my best!
@@DevKaiUnreal thanks for the video, helps alot
do u have a discord or something ?
@@burningvirus7731 I don't have a public Discord channel right now and I guess that I won't find the time to maintain one for now. I am still working on the next video to come and I think the time would be better spend there. Sorry. :(
Great job👍
Thank you! :)
This Tutorial was extremely helpful. Thank you! I can now setup basic GAS for all my projects that need it. It would be super exciting to see a more complex example based on this, like with different states (like weapon pickups etc). Or how you think you would implement states. Would you use these gameplay tags for everysthing, or Behaviour Trees / State Machines? how would they integrate into GAS? maybe in a future video :) Thanks again, these tutorials are so good!
Thank you! I wouldn't use Gameplaytags for everything. Behavior Trees, State Machines and also AnimGraphs have their purpose and facilitate the creation of different kinds of finite state machines. It's often hard to wrap your head around those things only with code, without a visual representation. Actually I am planning to do a video about it.
@@DevKaiUnreal That would be great, thank you!
Really one of the best ones on this topic. Very consistent, more then just basics, and gives everything and even more to understand and to start.
Thank you! I'm very happy to hear that!
Very nice. Not much new for me personally, but the flow is insanely good and the information here is gold!. Great stuff 🎉❤
Thank you! It's really helpful to get feedback, especially when it comes to the pacing/flow. :)
This is one of the best tutorials on GAS, thank you so much for this 💗
Again, thanks a lot for your feedback! I'm glad I could help. :)
Thanks Kai, awesome content
I'm experiencing something strange with replication, probably a setting in my engine.
in listen server mode client 1 replicate but not the Health and stamina bar that are showing empty
if i play with 2 or 3 clients with the server client 2 and 3 replicate everything corectly but client 1 still not get any initial values in health and stamina bar
hope my issue is clear. This probably a setting somewhere but can't find it.
Very clear and precise explanation of GAS without overwealming C++ implementation.
Thanks, same as the previous videos, this one is very helpful! 👍👍👍
Liked + subscribed
Thank you so much for the feedback. Glad you like them!
Good quality, thank you.
Awesome video!
If I may, what was the reason for using "FGameplayAbilitySpec" without also inputting InInputID and InSourceObject?
From what I know these are used for input handling of some sort and since we will eventually need to handle input, wasn't it needed here as well?
Thanks!
Having an issue, everything compiles as expected but when I hit Q, i don't get the hello message on screen. I reviewed all the code multiple times and I'm just not sure where I went wrong. Is this tutorial still applicable for Unreal 5.4.3?
Edit:
Nevermind! Figured it out. I was calling GiveDefaultAbilities in OnRep_PlayerState instead of in PossessedBy. Whoops! Great tutorial, stoked to see what comes next. I love to see more intermediate level content put out, the market for introductory content is pretty bloated but intermediate content feels underserved.
Happy to hear you could figure it out. Unfortunately it's impossible to answer all comments properly. I agree that the beginner tutorial market is bloatet. That's why I focus more on intermediate tutorials. I am going to release a Game Feature Video soon and a Lyra Tutorial right after. See you. :)
Really cool. Thanks!
I'm glad you enjoyed it. Thank you for your comment. :)
Perfect! Thanks a lot
Thank you!
You are the mvp
Tank you! :)
Good video, your video is smooth and content delivered clearly. Nothing you explained is missed and with a little elbow grease this is a great tool. I have one question, I am trying to make a passive regen for hp/stamina, what I did was modify the values of hp/stamina kick recovery so they are infinite, for now this only applies after kick. I notice the health properly stops at 100/maxhealth but the stamina eventually goes past 100/max. There might be something small I missed so I am still debugging, any feedback would be great.
Hey, thank you for the feedback! :) At 14:54 I explain how to clamp the _Health_ value to _MaxHealth_ value. In order to make your case work you have to do the same for _MaxStamina._ Also don't forget to define the value for _MaxStamina_ in _GE_PlayerDefaultAttributes_ and place this entry before _Stamina,_ so that it's initially not clamped to 0, as explained at 20:00.
Regarding elbow grease... I consider the content delivery is quite dense. Could you please tell me how much time more or less it took you to work your way through the tutorial? For me it's really hard to estimate this for my own content. :D
@@DevKaiUnreal Sorry for confusion I just ment this video was long and informative, I enjoyed it. I mean personally I need to put some more effort to further my understanding, but your video was a good start.
@@ntc4747 I wasn't taking your comment negatively at all. Sorry for the confusion from my side. I just wanted to get an idea, how long it might take to work through the whole video from the beginning to the end. Maybe 3 hours, 5 hours? Just to get a measure. I just can't estimate that at all. Thanks in advance.
@@DevKaiUnreal Perhaps I can answer this question. Accounting for all the breaks I took while working through the content, I think it took me about 4 hours to work alongside and fix errors that crept up due to the speed of content delivery. That said, I like the speed a lot, because it forced me to stop and think about things while working alongside. I was forced to pause the video and consider what you were saying.
If we add in the taking notes and repeating some topics to get a deeper understanding, I am not quite finished yet and have passed the 6-hour mark. This topic is quite broad and leaves a number of topics that could be elaborated upon.
Thank you for the effort and sharing your knowledge, Kai. Much appreciated.
@@SquifiMcDougall Thank you Squifi for your comprehensive answer. I really appreciate hearing that the speed is well received. I was already guessing that working through the video could take more than a day depending on the desired level of detail in doing research and taking notes alongside. Might also be suitable for a refreshment of knowledge. Thanks again, and have fun with learning Unreal Engine! :)
Very cool video, thank you! Btw, do you plan to do more tutorials?
Thank you! :) I'm working on a Lyra video that doesn't belong to that playlist. I hope it's going to be finished very soon.
Awesome intro into GAS. I have looked at other sources for information on the GASDocumentation and ability system. Enjoyed your presentation and explanations, your methods are easy to follow and appreciated.
I had a question regarding your prototype repo "Eira". If it is possible, how could I make this a project to further explore your c++/blueprint implementations?
Regardless, great series, take care.
Glad it was helpful. Thank you! :)
Eira is not really meant to be cloned or forked, but if you want you can do just that. However, it's not going to work out of the box. You'd have to add the content which is ignored. Basically:
Content/StarterContent/*
Content/ThirdPerson/*
Content/Imported/*
Content/Characters/*
I updated the repo to UE 5.4 for you to use with the most recent Unreal version.
I will use parts of that repo as a base for the upcoming videos in this playlist. So, if you have a bit time, than you're going to find similar content together with the video tutorial here. :)
Greatly appreciated, your are awesome sir@@DevKaiUnreal
I dont understand how you prevent the client from changing the gameplaytag of the target hit in the ability. there is no "has authority" blueprint node used...
Hello I'm an Artist, how can I learn how to add a new attack system to Lyra? Like a sword swing attack, block and death? Can I duplicate some attack C++ from Lyra and swap in new sword attack animations.
Hi. I would start by copying the GA_Melee, AM_MM_Pistol_Melee, and MM_Pistol(_Additive). Then rename the Gameplay Ability, replace the Anim Montage and in there swap out the UpperBody(Additive) parts with your retargeted Anim Sequences. Unfortunately I can't reiterate over the steps now to get into the details, since I am sitting in a train. This also might be to many steps for just a comment. However, my next video is going to be exactly about Lyra and those topics. Hope I could help.
Also, who do we do the Clamp also in Pre and Post? Isn't it redundant?
I followed the tutorial, but the "Ability Target Data From Actor" node always returns (). Please share some thoughts on this problem. Thanks a lot.
Hey I just found your channel. Nice video. Keep up the good work. + 1 Sub
Thank's for nice feedback and the Sub! :)
I'm having an issue where, when I kick the second player, they receive the tag "IsKicking", and their health isn't changing. Is there a checkbox or spot in the code I missed where the state is duplicated?
I know it's impossible to say not being able to see my code, but I know that the Gameplay state was configured in ways as to allow for multiplayer, and I'm wondering if I got my wires crossed in an obvious spot that I can't seem to track down.
Hey thank you for comment. Yeah it's not easy to say what the problem exactly is. Did you try to clone the repository from GitHub and run that project? The video is part of a playlist, so that should work. You could then, step by step, copy each part into your project to find out what the reason behind the problem was.
It doesn't work when net mode is set to Client, what can be the problem with it?
Do I need to pay for it? Great tutorial!
No, the content is free. I haven't though about monetization yet. That might happen at some point in the future, not sure yet.
How to use for npc
The most common way would be for your NPCs to have an AIController which references a BehaviorTree. For the leaves of the Tree you create BehaviorTasks in which you trigger the abilities.
I forgot to mention that you should add a nav mesh bounds volume to your map for it to work. I will probably make a video about NPCs that use Abilities. However, I can't tell a time.
just an idea but it would be amazing if you made a c++ for beginners series! There is not much about it other than videos 12+ hours long.
Thank you for your suggestion! However, I think there are already really good Unreal C++ beginner tutorials out there. I recommend taking a look into Udemy or GameDev.tv. In the case of this playlist, I had rather intermediate tutorial videos in mind that build on one another. That's why I laid out the longer GAS video, as it is a crucial part of the base for what is to come next.
@@DevKaiUnreal i will definitely check them out! thank you for your amazing content, you are extremely smart :)
@@fletchmane6075 Thank you so much! I wish you a great Unreal journey! See you around. :)
I am lost 3 minutes I have no idea how you got to that c++ code
This video is part of a playlist that starts with the creation of the C++ project. There's also a GitHub link in the description.
best, when new video? :)
Thank you! I try to publish the follow-up video as soon as possible. However, since I am doing this in my spare time I can't promise that. But I'm pretty sure that I am going to publish the next video for this playlist by the end of May. :)
comment for algorithm
Thank you! :)
@@DevKaiUnreal I can't get my FabPlayerState to show up in the all classes search. I can't get the ability tab to show up. I can't get my attributes to show up in the drop down list. Help!