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.
@@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. :(
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!
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.
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...
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. :)
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. :)
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! :)
hi. Your video is really helpful. I have a question. Why define the same AbilitySystemComponent and other things together in Character and PlayerState?
Hey, your feedback is also really helpful. Thank you! :) `AFabCharacterBase` holds a reference to the ASC (as well as to the AS, DefaultAbilities and DefaultAttributeEffect), that does not mean that they own the ASC. In case of the enemy, the OwnerActor is the `AEnemyCharacter` and for the Player it's the `AFabPlayerState`. The AvatarActors are the Character classes in both cases. I follow the documentation and implement the IAbilitySystemInterface on the AvatarActor as well. Storing a reference on the Characters makes it easy to access the ASC. Or to cite the unofficial documentation (link in the video description): _Both, the OwnerActor and the AvatarActor if different Actors, should implement the IAbilitySystemInterface..._
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.
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.
@@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!
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. :)