Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    4.24 Indeed, forgot to mention it Thanks for the reply!

    I however just updated the new 4.24.2 release (they merged an hour ago) through the epic launcher, still seems to be crashing when I try standalone mode

    Comment


      Side note: building for windows does however work, just not the standalone mode

      Comment


        Originally posted by douw3rd View Post
        Side note: building for windows does however work, just not the standalone mode
        Can you download the Engine debug symbols and post the callstack again? There should be an option in the launcher to grab those.
        Able Ability System - A high performance, robust ability system for UE4. Now Available!

        Comment


          Sure thing, will grab 'm tomorrow evening and post them here

          Comment


            I'm not sure if this is actually the whole stack dump, let me know if this info is sufficient

            Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000048

            UE4Editor_Kismet!FBlueprintCompilationManager::FlushCompilationQueue() [d:\build\++ue4\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:2916]
            UE4Editor_CoreUObject!FLinkerLoad::FinalizeBlueprint() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1746]
            UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3851]
            UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4558]
            UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3216]
            UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3380]
            UE4Editor_CoreUObject!LoadPackageInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1311]
            UE4Editor_CoreUObject!LoadPackage() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1426]
            UE4Editor_Engine!UEngine::LoadMap() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12537]
            UE4Editor_Engine!UEngine::Browse() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:11975]
            UE4Editor_Engine!UGameInstance::StartGameInstance() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gameinstance.cpp:534]
            UE4Editor!FEngineLoop::Init() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3694]
            UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:159]
            UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
            UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:263]
            UE4Editor!__scrt_common_main_seh() [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
            kernel32
            ntdll

            Comment


              Originally posted by douw3rd View Post
              I'm not sure if this is actually the whole stack dump, let me know if this info is sufficient

              Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000048

              UE4Editor_Kismet!FBlueprintCompilationManager::FlushCompilationQueue() [d:\build\++ue4\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:2916]
              UE4Editor_CoreUObject!FLinkerLoad::FinalizeBlueprint() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1746]
              UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3851]
              UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4558]
              UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3216]
              UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3380]
              UE4Editor_CoreUObject!LoadPackageInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1311]
              UE4Editor_CoreUObject!LoadPackage() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1426]
              UE4Editor_Engine!UEngine::LoadMap() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12537]
              UE4Editor_Engine!UEngine::Browse() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:11975]
              UE4Editor_Engine!UGameInstance::StartGameInstance() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gameinstance.cpp:534]
              UE4Editor!FEngineLoop::Init() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3694]
              UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:159]
              UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
              UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:263]
              UE4Editor!__scrt_common_main_seh() [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
              kernel32
              ntdll
              Yep, good ol' FlushCompilationQueue. Wonderful. This was supposed to be fixed with 24.2, but obviously not. I'll look at it and let Epic know.
              Able Ability System - A high performance, robust ability system for UE4. Now Available!

              Comment


                Haha, **** happens Thanks for having a look at it though! I'll just use full builds instead of standalone client in the meantime when the PIE doesn't suffice

                Comment


                  Alright, I found a fix. It's fallout from the new initialization order of modules. If you change your Able.uplugin to swap "AbleEditor" from Editor to DeveloperTool, it'll fix the standalone crash. I'll submit a fix tonight though, so you can also just wait for that.

                  Code:
                      {
                          "Name": "AbleEditor",
                          "Type": "DeveloperTool",
                          "LoadingPhase": "PreDefault",
                          "WhitelistPlatforms": [ "Win64", "Win32", "Mac", "Linux" ]
                      }
                  Able Ability System - A high performance, robust ability system for UE4. Now Available!

                  Comment


                    Patch submitted. There's no new version number (since it just fixes something in 4.24), but you should get the update as soon as Epic processes things.
                    Able Ability System - A high performance, robust ability system for UE4. Now Available!

                    Comment


                      Cheers!

                      Comment


                        Originally posted by douw3rd View Post
                        Cheers!
                        Small change, it needs to be "UncookedOnly", not DeveloperTool. Otherwise you break packaged products. (Again, sorry, this change with 4.24 has been super annoying).

                        Code:
                            {
                                "Name": "AbleEditor",
                                "Type": "UncookedOnly",
                                "LoadingPhase": "PreDefault",
                                "WhitelistPlatforms": [ "Win64", "Win32", "Mac", "Linux" ]
                            }
                        I have to wait for this update to go through before I can submit the next one. Sorry for the hiccups.
                        Able Ability System - A high performance, robust ability system for UE4. Now Available!

                        Comment


                          Ah thanks! No problem at all

                          Question regarding using the system itself; I'm trying to wrap my head around how I should integrate some of my logic. Say for example I make a spell that spawns an projectile actor and I want some properties to depend on stats from the owner, like how much damage it's going to do. As far as I know it is not possible when using the spawn actor task to assign any variables right away on creation, should I use one of the custom overrides to set these post creation?

                          Other example: simple spell that heals the owner for x amount, how should I apply the custom value that could depend on other things into able? I'm not really sure how to pass values in to able, but that's probably because I'm taking the wrong approach to using it in the first place.

                          Hope you can point me in the right direction!

                          Comment


                            Originally posted by douw3rd View Post
                            Ah thanks! No problem at all

                            Question regarding using the system itself; I'm trying to wrap my head around how I should integrate some of my logic. Say for example I make a spell that spawns an projectile actor and I want some properties to depend on stats from the owner, like how much damage it's going to do. As far as I know it is not possible when using the spawn actor task to assign any variables right away on creation, should I use one of the custom overrides to set these post creation?

                            Other example: simple spell that heals the owner for x amount, how should I apply the custom value that could depend on other things into able? I'm not really sure how to pass values in to able, but that's probably because I'm taking the wrong approach to using it in the first place.

                            Hope you can point me in the right direction!
                            There is a callback when using the Spawn Actor task that lets you set some properties on the spawned actor, so you can do it there. I would likely just have a "Owner" property on my projectiles, set it to the caster, and then when the overlap happens, use an Ability that just does the explosion vfx/sfx, and calls CalculateDamage which then passes in the owner and you can grab all the owner properties in the OnCalculateDamageForActor callback.

                            Heal would be the same thing. Just pass along the Caster either as owner or instigator, and then either use a custom event or Damage Task (which should work for negative damage...) and pull the stats there.
                            Able Ability System - A high performance, robust ability system for UE4. Now Available!

                            Comment


                              I have three questions for you sir,

                              1: Why does my preview asset seem to be duplicating every now and then when I make a change to the ability and then save it.

                              2: I am having issues with my collision queries not properly working. I've got a cone shape with its collision channel set to pawn, and is filtering my player character and it is set to Negate (also filtering self actor). Targets are set to target actors. My pawns are setup to the default "pawn" collision channels.

                              3: Verbose does not seem to be printing out debug information on ability execute.

                              Comment


                                Originally posted by Nosh88 View Post
                                I have three questions for you sir,

                                1: Why does my preview asset seem to be duplicating every now and then when I make a change to the ability and then save it.

                                2: I am having issues with my collision queries not properly working. I've got a cone shape with its collision channel set to pawn, and is filtering my player character and it is set to Negate (also filtering self actor). Targets are set to target actors. My pawns are setup to the default "pawn" collision channels.

                                3: Verbose does not seem to be printing out debug information on ability execute.
                                1. Preview Asset duplicating would happen if you have the Preview Asset's blueprint open and then you compile it, which cause the actor to get re-instantiated I believe. If you hit "Reset Preview Actor" it should clear up any dupes.

                                2. & 3. Verbose definitely works. You can check your Output log. If you aren't seeing anything, then it likely means the Task itself isn't being executed for some reason (Targeting possibly, some other condition not letting it execute). You should get a "play by play" in the log if you turn Verbose on the Ability and on the Task itself. Also make sure you have an Able Ability Component on your Preview Actor, otherwise Able tries to add one at runtime - but that rarely seems to work for whatever reason. Just add it in the actual blueprint of the Preview Actor and close/re-open the editor.
                                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                                Comment

                                Working...
                                X