These two Pics are after the boolen was set back to false, each time I made a change I save all then closed the engine and the epic launcher then reopen both and try to package project.
Yea I was not referring to the Struct_TowerData, but rather the part was written later in each of the red error lines: Referenced by export function. They mention the widget class and function where the error was reported. Try opening the BuildSelectionList function in Widget_TowersLoadoutList blueprint and could you check if there are any compile errors there.
Also, try right-clicking and refreshing the Break Struct_TowerData node in that function.
Also I’d suggest making these changes to the version of your project before you made changes to that boolean variable.
Okay will update with results, as I want work with a copy that is before I made the incorrect changes.
The next update will add support for setting the icons/thumbnails for Global Abilities through the data table. But since the update also adds a lot of changes to the way the AI systems work under the hood, it is going to be a 5.1 exclusive update so that those of you who are on 5.0 will still have access to the old project files. So I’m just sharing a tutorial here on how to add support for setting up data-driven icons for Global Abilities.
This first post covers the steps involved in setting the images in the loadout menu, while the next post which I’ll be sharing over the next couple of days will cover the steps required to set up images for the Global Abilities during actual gameplay.
I. First add a new member of type Texture 2D to Struct_GlobalAbilityData.
II. Now open the data table DT_GlobalAbilities and set your images for each of the ability entries through the new Texture 2D variable we created in step I.
III. Create a new Texture 2D variable in Widget_GlobalAbilityLoadoutButton and set it to Instance Editable and Expose on Spawn
IV. Create a new function within the same blueprint based on the screenshot below:
V. Now add the following nodes to the Event Construct of the following blueprint.
VI. Now select the UnselectedButtonStyle variable and change the Draw As parameter from Box to Image for Normal, Hovered, Pressed, and Disabled.
VII. Now we can finally pass the new texture information from the data table to the ability button widget. To achieve that, head over to the BuildSelectionList function inside the Widget_GlobalAbilitiesLoadoutList blueprint and make the following node connection:
And that’s it. You should now be able to see the images specified in the Data Table displayed for all the corresponding buttons in the Loadout menu.
Okay so I scrapped the one I changed the wrong thing on used the copy function to make a nother 4.27 version the project, did the refresh of the node on the BuildSelectionList, it does now seems a lot of the red lines are gone, but unfortunately I still can not package for Windows. Here are the screenshots of the only colored lines/text find on the log. From top to bottom.
I have looked over them yet, but looking at them now.
I have corrected or rather refreshed the nodes for the red errors in the second picture, this screencap is all that is left but still can not complete packaging.
Alright, I think the error shown in the 1st screenshot might be what’s causing this issue. Epic changed some rules about the kind of names that can be used for collision channels that affect projects converted from 4.26 to 4.27. Since one of the custom ones that I created had a ‘/’ in the name, just changing it from Tower/CreepDetector to TowerCreepDetector under Project Settings >> Collision >> Object Channels should fix the issue.
As for the 2nd error message, if it still persists, just open up BP_SpawnPoint, select File and Refresh All Nodes and then recompile the blueprint.
Hey, Storm I’m going to try and post the whole log I guess unless there is another way I give it to you to see in its entirety. I can not find what the issue is now atleast when looking at the log. The only thing I noticed was “Unable to find inner node EnterprisePak for hierarchical cache Hierarchy.” I removed the / from TowerCreepDetector name, but I’m not sure of the second error you mentioned? I still can not compile after changing that part though. Also side note, do you have a public way for people to drop you something man? I do appreciate you supporting your stuff and assisting me 10yrs later. If not I’ll just buy one of your other kits or something eventhough I’m not that type of game. I’m still on the grind so may not be much, hope understand. Update I went on and refreshed all the nodes in the BP_SpawnPoint, but still go the same compile log. Will update if something changes after a complete launcher and engine shutdown , then recompile.
Well, I’m not exactly sure what’s causing this. Pretty sure that the earlier blueprint errors are resolved. Both the red error lines appear after the engine tries to do something with a GamepadUMG plugin of some sort. Do you have any custom plugins installed or have you added in gamepad support for this project?
Yes I did, I am working on finding all my notes on how I added
the plugin, so I can see how to properly remove all parts of it and do another compile attempt with out it. Because just disabling/unchecking it in the plugins section seems to have no affect on the compile unknown error. If this turns out to be it the cause, did you happen to have any recommendations? I have been looking into different unreal tutorials for creating gamepad controlled menu, but trying to intergrate that into your kit so far has been too much for me. But this one was working so far as I kept doing the preview launches in seperate window.exe mode, inside PIE/viewport it works, but just a few weeks ago were when I just started trying do packaging testing guess to make sure everything was working so far. But I should have a new compile by Wednesday.
I haven’t worked on gamepad implementations in Unreal myself. But if you know the creator of the plugin, it wouldn’t hurt to ask them about the issue. Perhaps they’ve encountered the issue in the past and might have a solution or some sort of workaround.
No unfortunately they/ Rama have stopped developing it long ago, I just happened to found some compiles for the most recent versions of the engine somebody was hosting. Then I went to the discord that I could find associated with the site I recieved it from, I had asked a few times in there and was just ignored, so there is no support. I don’t mind using a paid plugin if I can’t implement my own. I just don’t have the funds to try a bunch of random plugins on the market place that have obscure descriptions or it just may not even work at all with the TD kit.
Wait a minute I just found this $5 one, I may try but I’m curious can this action be done with your kit? The way they are saying how their product can be used:
" What is EZGamepadWidgets?
EZGamepadWidgets is an infinitely useful widget blueprint that has all the functionality you need to add controller accessibility to your menu. All it takes is one node to add gamepad navigation to your widget!
How can I use EZGamepadWidgets?
Just make WBP_EZGamepadWidget a parent of your widget, or create a new one, and use the node “RegisterButtons” on Construct to add your widget! Everything else is done for you, all it takes is one node!
Is EZGamepadWidgets complicated?
EZGamepadWidgets is quite easy to understand, doing everything for you, all you have to do is add it. But for those who want to tweak some of the functionality, there is heavily commented blueprints, but for those newer to blueprints, or more interested in the technical side of things, there is heavy documentation covering the asset, and if you find yourself with more questions outside of that, there is a Discord Support server where you will be helped!"
The problem I bet it will be is I can’t use it in game, which is what this current one is letting me do.
But here is a question someone asked, which may tell me how I can intergrate this into your kit for my project. But I’m not sure how I would make a button for each of your components that are interactive. For example: the tower menu, If I made a menu button with their tool, What would this be connected to in your kit to get that same action? Since I’m thinking to use this tool I will just need to put one of thier buttons every where I will have a tower grid spot, where you can normally select to build a tower. But then what about the floating circle menu that appears? But anyways Here is the question below someone asked:
Large changing inventories, etc
By GameDeveloper99 on November 30, 2022 1:06 AM - Edited on December 1, 2022 12:00 AM
Was this question helpful?
Imagine a grid inventory system
Would each grid unit need to be a button for this to work? (as in, would every item in grid that a player could select with a controller, need to be added to array?)
- Hide Replies
Answer from Publisher
By EZDeveloper on January 6, 2023 2:57 PM
Was this answer helpful?
Sorry for the late responsive, was experiencing some account issues that were blocking me.
As for the question, yes you would need to have a grid of buttons.
Below are two pictures of the most recent packaging failed log after I removed all pieces of the gamepad mouse control stuff.
I have gotten it to complete a packaging but now it crashes during game launch,with a error window with the following: "Error: Assertion failed: !Obj->HasAnyFlags(RF_NeedLoad) [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Engine/Private/Animation/AnimCompressionTypes.cpp] [Line: 403] " I have since deleted the anim seqence asset and reloading the engine and trying again but it still crashes with same error. From different forums there are different reason’s this could occurr, from corrupt project files, to a corrupt BP. But it seems they never said what the direct cause, because they did not even know. So this is the current status.
The v2.24 update has gone live on the Marketplace.
Change Log:
I. Added a new custom AI Controller and Behavior Tree setup for the Enemy AI. All of the AI-related logic has been moved from the base Enemy AI class into the controller and BT. I believe the Behavior Tree setup should be easier to grasp for those new to the toolkit since you can pretty much see the entire execution flow in one glance.
II. The spline-based navigation system for Enemy AI has been moved out to a dedicated component class BPC_SplineNavigation.
Combined with the changes made over the last few updates, the Enemy AI parent blueprint now only has very basic logic and interface functions, with the components and AI controller handling the more specialized features.
Additional Notes:
I. Search for Version2_24 in the blueprint editor to identify the new changes in this update.
Upcoming Features:
- Support for setting thumbnails for Global Abilities UI icons through data table
- Option to customize Target Prioritization setting for Towers
- XP system for Hero units to level up through combat
- Hero selection through the pre-mission Loadout Menu
The v2.25 update has gone live on the Marketplace.
Change Log:
I. Added a new custom AI Controller and Behavior Tree setup for the Friendly AI (both heroes & reinforcement units). All of the AI-related logic has been moved from the base Friendly AI class into the controller and BT. Just as with the previous update which did the same for Enemy AI, this new Behavior Tree setup should be easier to grasp for those new to the toolkit since you can pretty much see the entire execution flow in one glance.
The left branch of the behavior tree focuses on move orders issued by the player (overrides all other behaviors).
The middle branch focuses on locking enemy units in combat, moving in, and attacking them.
Finally, the right branch focuses on just returning back to the guard location while commencing the search for new nearby threats.
II. Added a new parent AI Controller class that handles all features common to both enemy and friendly AI units.
One of my primary reasons behind moving all the AI execution logic from the enemy/friendly character classes over to the controllers & BTs was to ensure that the AI units don’t remain restricted to the default character class. So for example, if you want to add units that are directly derived from the pawn class and not the character class (like say for a tank vehicle), it should be much easier now to set that up since there is very little logic within those blueprints.
III. Removed the Threat Response component and interface since the Behavior Trees can handle the same logic in a much easier-to-understand manner.
Additional Notes: I’ve been busy with some freelance projects lately and haven’t had much time to work on marketplace products for a while outside of dealing with support requests. But I have more time on my hands now and so the toolkit will be back to getting a steady stream of updates like it used to.
The v2.26 update has gone live on the Marketplace.
Change Log:
I. Added support for setting Global Ability icons through the data table. The ability buttons were previously using text abbreviations for representing the associated global ability, but now you can directly specify what image to display for each ability through the UIImage parameter in DT_GlobalAbilities as shown below:
The specified image will be automatically reflected in both the loadout selection menu as well as the core gameplay HUD.
Additional Notes:
I. Search for Version2_26 in the blueprint editor to identify the new changes in this update.
I’ve created a new tutorial for implementing hotkey support for using Global Abilities. If you’re interested in adding the same to your own projects, you can do so by following the steps in this tutorial:
If you have any doubts regarding the workflow, feel free to reach out.
The v2.27 update has gone live on the Marketplace.
Change Log:
I. Moved the targeting logic for Towers into dedicated components that are automatically added based on the Weapon System used by the Tower. These components are responsible for both evaluating targets as well as controlling when to start/stop firing the Tower weapon systems. The new targeting systems are categorized into:
-
BPC_TargetingSystem_SingleTargetLockOn: Locks on to a single target and keeps checking for valid firing trajectories towards the target until it either goes out of range or is destroyed.
Activates the weapon system when a new target has been locked onto and deactivates it when a lockon target becomes invalid.
[Used by Laser Tower, MachineGun Tower, Sniper Tower, Artillery Tower, & Tesla Tower]
-
BPC_TargetingSystem_MultiTargetBasic: Keeps track of all targets in range.
Activates the weapon system once a single target is in range and deactivates it once no targets are in range.
[Used by Shockwave Tower] -
BPC_TargetingSystem_SingleTargetBasic: A Fire & Forget alternative to the lock on targeting system. Does not check for any firing trajectory toward the target.
Activates the weapon system every time a new target is in range and deactivates it once no targets are in range.
[Used by Boost Tower]
II. The Tower Weapon System component has been modified to make it easier to add new custom Towers. New functions and variables have been added to control the firing systems.
Adding custom firing solutions for your Towers now is as simple as creating a child component based on BPC_WeaponSystem, extending the FireAtTarget/FireAtTargets/StopFiring functions, and adding the new component to the Tower.
[With the Targeting & Weapon System components handling the bulk of Tower functionalities, creating your own Tower requires adding very little within the actual Tower blueprint itself, mostly restricted to implementing a couple of interface functions and adjusting the physical parameters of components.]
III. Created a new Function Library to handle all general targeting checks. These functions can be called from anywhere including non-Tower actors.
Additional Notes:
I’ll be posting a new Tutorial soon to explain how you can create your own custom Towers in this latest version of the toolkit.
Upcoming Features:
- XP system for Hero units to level up through combat
- Option to customize Target Prioritization setting for Towers
- Hero selection through the pre-mission Loadout Menu