Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by Kelen View Post
    Thanks for the tips, it turns out I was looking at the wrong thing.
    I appologize for the stupid question but I can't find Blackboard keys array? Is it somewhere else? It's a 4.23 project by the way.Click image for larger version

Name:	ablebb.PNG
Views:	196
Size:	7.9 KB
ID:	1704037
    like most things with blakboard related.. you must know the key "name" by checking it... there is no reference. You must also know what type it is not to crash the engine so if you target something that is not an actor base class or not even an object - in example bool... it wont work.

    Comment


      Originally posted by AngeIV View Post

      like most things with blakboard related.. you must know the key "name" by checking it... there is no reference. You must also know what type it is not to crash the engine so if you target something that is not an actor base class or not even an object - in example bool... it wont work.
      Yea, that's not the question he has. I just noticed the category that has that property exposed is hidden. I didn't notice it due to some local changes on my end.

      I'll get a fix out.

      If you want to fix it locally, just change the Category to something like "Blackboard" in ablTargetingMisc.h line 89.

      Code:
          /* What Keys to use when attempting to grab an Actor from the Blackboard */
          UPROPERTY(EditInstanceOnly, Category = "Blackboard", meta = (DisplayName = "Blackboard Keys"))
          TArray<FName> m_BlackboardKeys;
      Able Ability System - A high performance, robust ability system for UE4. Now Available!

      Comment


        Hey there Matt,

        I experienced some really strange behaviors with the ABLE's parent-child relations handling (with UE 4.22.3) and collected some crashlogs, so let's begin; if I create a "Master" aka. Parent ABLE ability, then add some tasks to it, finish it for now, then after this I create some child ABLE Abilities from that Master ability (Right Click ➠ Create a Child Blueprint Class) and later on I add an other task, like a Check Condition logic to the Master ability the childs don't get this change right after that. Okey, what if I check the "Inheritable" chackbox? Well, if I do that, the Childs don't want to save themselfs from this point and the Editor gives me these pop-up windows:

        Click image for larger version  Name:	Untitled1_10.png Views:	0 Size:	28.5 KB ID:	1706014

        Click image for larger version  Name:	Untitled2_1.png Views:	0 Size:	27.3 KB ID:	1706015

        Click image for larger version  Name:	Untitled3_1.png Views:	0 Size:	14.4 KB ID:	1706016

        Lines from the log:

        HTML Code:
        LogSlate: Window 'Message' being destroyed
        LogSavePackage: Warning: Referencers of AblSpawnActorTask /Game/Gameplay/AISystem/Abilities/01_Minor/Able_AI_Minor_Melee_Attack.Default__Able_AI_Minor_Melee_Attack_C:AblSpawnActorTask_0:
        LogSavePackage: Warning:     Able_AI_Minor_Melee_Attack_C /Game/Gameplay/AISystem/Abilities/01_Minor/Able_AI_Minor_Melee_Attack.Default__Able_AI_Minor_Melee_Attack_C (2 refs)
        LogSavePackage: Warning:         0) ObjectProperty /Script/AbleCore.AblAbility:m_Tasks.m_Tasks
        LogSavePackage: Warning:         1) ObjectProperty /Script/AbleCore.AblAbility:m_CachedTasks.m_CachedTasks
        LogSavePackage: Warning:     Able_AI_Minor_Melee_Attack_Child_01_C /Game/Gameplay/AISystem/Abilities/01_Minor/Able_AI_Minor_Melee_Attack_Child_01.Default__Able_AI_Minor_Melee_Attack_Child_01_C (1 refs)
        LogSavePackage: Warning:         0) ObjectProperty /Script/AbleCore.AblAbility:m_CachedTasks.m_CachedTasks
        LogSlate: Window 'Message' being destroyed
        EditorErrors: New page: Save Output
        EditorErrors: Warning: Can't save /Content/Gameplay/AISystem/Abilities/01_Minor/Able_AI_Minor_Melee_Attack_Child_01.uasset: Graph is linked to external private object AblSpawnActorTask /Game/Gameplay/AISystem/Abilities/01_Minor/Able_AI_Minor_Melee_Attack.Default__Able_AI_Minor_Melee_Attack_C:AblSpawnActorTask_0 (m_Cached
        Tasks)
        LogSlate: FSceneViewport::OnFocusLost() reason 2
        LogSlate: Window 'Packages Failed To Save' being destroyed
        LogSlate: FSceneViewport::OnFocusLost() reason 0
        After this event, if I just go and unfill the "Inheritable" checkbox in the Master ability, save the ability and then go back to one of the childs, the mentioned task leaves a blank line in the Child ability's Timeline and the Editor just crash and it gives me this log:

        HTML Code:
        Unhandled exception
        
        UE4Editor_AbleEditor!SAblAbilityTimelineNode::DetermineDragType() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ableeditor\private\abilityeditor\sabilitytimelinetrack.cpp:477]
        UE4Editor_AbleEditor!SAblAbilityTimelineNode::OnCursorQuery() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ableeditor\private\abilityeditor\sabilitytimelinetrack.cpp:229]
        UE4Editor_Slate!FSlateApplication::QueryCursor() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3620]
        UE4Editor_Slate!FSlateApplication::TickApplication() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1735]
        UE4Editor_Slate!FSlateApplication::Tick() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:1679]
        UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:4071]
        UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
        UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
        UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
        UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
        kernel32
        ntdll
        ---

        Another stange thing happens when I create an other Master type ability then some Childs from it and later on in the Master ability I check one or more task(s) to be "Inheritable". If I do that, in the Childs all of those tasks (which are have the "Inheritable" fill) are now duplicated in the Childs' ability Timeline.

        ---

        Finally, here are some other crashlogs from the last few days:

        HTML Code:
        Unhandled exception
        
        UE4Editor_AbleCore!UAblAbilityInstance::GetAbility() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilityinstance.cpp:381]
        UE4Editor_AbleCore!UAblAbilityComponent::CancelActiveAbility() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilitycomponent.cpp:448]
        UE4Editor_AbleCore!UAblAbilityComponent::InternalCancelAbility() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilitycomponent.cpp:976]
        UE4Editor_AbleCore!UAblAbilityComponent::CancelAbility() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilitycomponent.cpp:687]
        UE4Editor_AbleCore!UAblAbilityComponent::execCancelAbility() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\classes\ablabilitycomponent.h:94]
        UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
        UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:904]
        UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2314]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:809]
        UE4Editor_CoreUObject!ProcessLocalFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1033]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:809]
        UE4Editor_CoreUObject!ProcessLocalFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1033]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:809]
        UE4Editor_CoreUObject!ProcessLocalFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1033]
        UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2314]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:809]
        UE4Editor_CoreUObject!ProcessLocalFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1033]
        UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2314]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:809]
        UE4Editor_CoreUObject!ProcessLocalFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1033]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1058]
        UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
        UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1464]
        UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:769]
        UE4Editor_Engine!TMulticastScriptDelegate<FWeakObjectPtr>::ProcessMulticastDelegate<UObject>() [d:\build\++ue4\sync\engine\source\runtime\core\public\uobject\scriptdelegates.h:488]
        UE4Editor_Engine!FComponentBeginOverlapSignature::Broadcast() [d:\build\++ue4\sync\engine\source\runtime\engine\classes\components\primitivecomponent.h:147]
        UE4Editor_Engine!UPrimitiveComponent::BeginComponentOverlap() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\primitivecomponent.cpp:2489]
        UE4Editor_Engine!UPrimitiveComponent::UpdateOverlapsImpl() [d:\build\++ue4\sync\engine\source\runtime\engine\private\components\primitivecomponent.cpp:3035]
        UE4Editor_Engine!UPrimitiveComponent::OnComponentCollisionSettingsChanged() [d:\build\++ue4\sync\engine\source\runtime\engine\private\primitivecomponentphysics.cpp:952]
        UE4Editor_Engine!UPrimitiveComponent::SetCollisionEnabled() [d:\build\++ue4\sync\engine\source\runtime\engine\private\primitivecomponentphysics.cpp:895]
        UE4Editor_Engine!UPrimitiveComponent::execSetCollisionEnabled() [d:\build\++ue4\sync\engine\source\runtime\engine\classes\components\primitivecomponent.h:174]
        UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
        UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:904]
        UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2314]
        UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:974]
        UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1058]
        UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
        UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1464]
        UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:769]
        UE4Editor_Engine!FLatentActionManager::TickLatentActionForObject() [d:\build\++ue4\sync\engine\source\runtime\engine\private\latentactionmanager.cpp:206]
        UE4Editor_Engine!FLatentActionManager::ProcessLatentActions() [d:\build\++ue4\sync\engine\source\runtime\engine\private\latentactionmanager.cpp:144]
        UE4Editor_Engine!UWorld::Tick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\leveltick.cpp:1621]
        UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1618]
        UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
        UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3967]
        UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
        UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
        UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
        UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
        kernel32
        ntdll
        HTML Code:
        Unhandled exception
        
        UE4Editor_AbleCore!UAblAbilityInstance::Initialize() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilityinstance.cpp:58]
        UE4Editor_AbleCore!UAblAbilityComponent::PlayAbilityFromEditor() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilitycomponent.cpp:1443]
        UE4Editor_AbleEditor!FAblAbilityEditor::PlayAbility() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ableeditor\private\abilityeditor\ablabilityeditor.cpp:1359]
        UE4Editor_AbleEditor!TBaseSPMethodDelegateInstance<0,FAblAbilityEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\rocketsync\4.22.0-5660361+++ue4+release-4.22\working\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:355]
        UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:99]
        UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:300]
        UE4Editor_Slate!SToolBarButtonBlock::OnCheckStateChanged() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:325]
        UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,void __cdecl(enum ECheckBoxState)>::ExecuteIfSafe() [d:\build\++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:355]
        UE4Editor_Slate!SCheckBox::OnMouseButtonUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\widgets\input\scheckbox.cpp:191]
        UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> >() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:271]
        UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5598]
        UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6203]
        UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6176]
        UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1842]
        UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2292]
        UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1522]
        UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:772]
        user32
        user32
        UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:130]
        UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3882]
        UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
        UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
        UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
        UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
        kernel32
        ntdll
        Thank you for your attention! : )
        Last edited by JimPhoenix; 01-08-2020, 04:38 PM.

        Comment


          JimPhoenix Interesting... I'll poke at the crash logs. Are you attempting to modify the Inherited tasks? That would definitely cause an error, they should be treated as Read only for the most part.
          Able Ability System - A high performance, robust ability system for UE4. Now Available!

          Comment


            Originally posted by ExtraLifeMatt View Post
            Are you attempting to modify the Inherited tasks? That would definitely cause an error, they should be treated as Read only for the most part.
            Well if there is an animation task, I would like to change the task properties here and there (mainly the Animation itself) or if it's a Condition Check the lenght of the task in the timeline, or if it's a Collision Query the position in the timeline, maybe the details of the arc, and so on. Or you maybe referring to some other part from my post above?

            My usual methode is l(ike with normal BPs) to create a Master asset, add the needed tasks, build the custom logic in the graph tab within the overwriteable functions and in the main graph as well for the Start / End / Interrupted / Branch Events, and after that I create the Childs from it for melee or range attack variations / combo elements, etc. And yeah, in the iteration phase sometimes I need to add an other task to the Master because I want to extend the features of the ability (add a Custom Event or a Condition Check), so this is where the "fun" begins. : )
            Last edited by JimPhoenix; 01-08-2020, 06:07 PM.

            Comment


              Originally posted by JimPhoenix View Post

              Well if there is an animation task, I would like to change the task properties here and there (mainly the Animation itself) or if it's a Condition Check the lenght of the task in the timeline, or if it's a Collision Query the position in the timeline, maybe the details of the arc, and so on. Or you maybe referring to some other part from my post above?

              My usual methode is l(ike with normal BPs) to create a Master asset, add the needed tasks, build the custom logic in the graph tab within the overwriteable functions and in the main graph as well for the Start / End / Interrupted / Branch Events, and after that I create the Childs from it for melee or range attack variations / combo elements, etc. And yeah, in the iteration phase sometimes I need to add an other task to the Master because I want to extend the features of the ability (add a Custom Event or a Condition Check), so this is where the "fun" begins. : )
              Yea, Inherited Tasks are objects that are still owned by the Original Ability, so you can't modify them in child abilities. They're meant more for logic that doesn't need to change per Ability (including fields like animations, etc). So if you have some Attack ability that always plays "Swing 1" but the particle/sound can change - you'd want to inherit the Play Animation and then just re-create the particle / sound tasks. Child objects can't save data in Parent Objects. I could add an option that inherited Tasks actually just copy themselves into Child Abilities, rather than just referencing the originals. There's a small memory cost there, but it's not much and would be a bit cleaner.

              Also 4.24 has a nasty bug with recompilation that is schedule for 4.24.2, so if you're crashing randomly in FlushCompilationMgrImpl - it will hopefully clear up in the next hotfix.
              Able Ability System - A high performance, robust ability system for UE4. Now Available!

              Comment


                Originally posted by ExtraLifeMatt View Post

                I could add an option that inherited Tasks actually just copy themselves into Child Abilities, rather than just referencing the originals. There's a small memory cost there, but it's not much and would be a bit cleaner.

                Also 4.24 has a nasty bug with recompilation that is schedule for 4.24.2, so if you're crashing randomly in FlushCompilationMgrImpl - it will hopefully clear up in the next hotfix.
                That would be great if you could add that copy methode for the Child Abilities, just an idean, but maybe you should add a checkbox option to enable this in the Project Settings > Plugins > Able, if anybody else is intrested in this, if it's not a huge request for the next ABLE update. : )

                We are using 4.22.3 for now, but at the end of january we would like to upgrade our Project to 4.24, so thank you for the notice about that nasty bug!

                Thanks in advance Matt!
                Last edited by JimPhoenix; 01-09-2020, 01:35 PM.

                Comment


                  Originally posted by ExtraLifeMatt View Post
                  I'll get a fix out.
                  Thanks a lot! I'm just glad my question wasn't completely off-topic and that I have missed something obvious

                  Comment


                    Originally posted by ExtraLifeMatt View Post
                    Hi, I tested your plugin, and found a bug, OnAbilityStackAdded never response

                    Comment


                      Originally posted by MichaelLiew View Post

                      Hi, I tested your plugin, and found a bug, OnAbilityStackAdded never response
                      Is your Ability marked as a Passive? That callback only occurs for Passives.
                      Able Ability System - A high performance, robust ability system for UE4. Now Available!

                      Comment


                        Originally posted by ExtraLifeMatt View Post

                        Is your Ability marked as a Passive? That callback only occurs for Passives.
                        Yes, marked as Passive, and only response OnAbilityStackRemoved, I have tracked your source code and found it will never called by logic

                        Comment


                          Originally posted by MichaelLiew View Post

                          Yes, marked as Passive, and only response OnAbilityStackRemoved, I have tracked your source code and found it will never called by logic
                          Ah, I see the problem. It's called in a number of places, but the BP version is only called in the SetPassiveStack method. I'll toss that fix in for the next update (hoping to submit it sometime this week).
                          Able Ability System - A high performance, robust ability system for UE4. Now Available!

                          Comment


                            Able v3.24 has been submitted. Notes below.

                             
                            Spoiler
                            Able Ability System - A high performance, robust ability system for UE4. Now Available!

                            Comment


                              When trying to launch in stand alone mode, able keeps crashing with errors like:

                              Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000048

                              UE4Editor_Kismet
                              UE4Editor_CoreUObject
                              UE4Editor_CoreUObject
                              UE4Editor_CoreUObject
                              UE4Editor_CoreUObject
                              UE4Editor_CoreUObject
                              UE4Editor_CoreUObject
                              UE4Editor_CoreUObject
                              UE4Editor_Engine
                              UE4Editor_Engine
                              UE4Editor_Engine
                              UE4Editor
                              UE4Editor
                              UE4Editor
                              UE4Editor
                              UE4Editor
                              kernel32
                              ntdll


                              Even tested it on the simple shooter/ce1 test project from able. No other plugins enabled, play in editor works fine though. Any Idea?

                              Comment


                                Originally posted by douw3rd View Post
                                When trying to launch in stand alone mode, able keeps crashing with errors like:

                                Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000048

                                UE4Editor_Kismet
                                UE4Editor_CoreUObject
                                UE4Editor_CoreUObject
                                UE4Editor_CoreUObject
                                UE4Editor_CoreUObject
                                UE4Editor_CoreUObject
                                UE4Editor_CoreUObject
                                UE4Editor_CoreUObject
                                UE4Editor_Engine
                                UE4Editor_Engine
                                UE4Editor_Engine
                                UE4Editor
                                UE4Editor
                                UE4Editor
                                UE4Editor
                                UE4Editor
                                kernel32
                                ntdll


                                Even tested it on the simple shooter/ce1 test project from able. No other plugins enabled, play in editor works fine though. Any Idea?
                                UE4.24 I assume? There's a bug with blueprints with parents where the parent isn't compiled before the child blueprint, that is set to be fixed with 4.24.2.
                                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                                Comment

                                Working...
                                X