#blueprint
1 messages Β· Page 389 of 1
Why did all the buttons become enabled when I pressed the apply button? And why doesn't the other client see this?
hello, does someone know why my line trace here is always pointing to a location that is very close to 0 ? I just want my NPC to trace a line from a socket to the forward direction relative to him. "Mesh" is the character mesh
you're tracing to a direction vector
not a location vector
is the start of the trace correct?
e.g. is socket location world space?
normally you'd want to combine them π
Start = SocketLocation;
End = SocketLocation + ForwardVector * Some distance;
yes you are right, I already did this on my project but the code is so old I forgot how vector works.... Thank you
Your end point here will always be 1 UU (cm) from the origin
You dont' want to trace from Location to Forward, you want to trace from Location to Location + Forward x Distance
This happened on a few rare occasions where a restart would fix it. However, it's happening more often now. This example is right on loading the project. 5.7.3
It's not rendering the textures correctly
This time it had something to do with one of the previously opened blueprints. It did the same thing each time unless I decline to load previously opened windows.
hi anybody here
nope not here, can I take a message?
Anyone know why 'Set Animation Playrate' on a skeletal mesh is not actually doing anything?
r.Streaming.PoolSize 2400 may have fixed that blur issue. I'm not sure what's causing the higher use, but that appeared to correct it for now.
Can you show your blueprints?
if I add the global anim scale it works :
yolo I will stick with it
Where is the actual call to play the animation?
I'm not familiar with that global, but it sounds like it might be changing a global play speed for all animations? Someone else may be able to confirm or clarify.
This is playing a montage (just convert the animation seq to one) it's speed definately effects the play rate.
right after
I see. I didn't realize you can play a montage on a skeletal mesh directly without a play montage node in an anim bp. I've not worked with anims oustide of an animbp before, which is kinda funny since I do a lot of technical stuff in ABPs
If I use Get Data Table Row Names, is the resulting array organized in any way?
For instance: if I order my Data Table in a specific order, is that order the same in the new array, or is the array alphabetized, sorted differently, or anything like that?
Does the array respect my order of the Data Table?
I believe so! (I believe it is the order of your rows)
You can print to double check ofc, probably your best bet
Thanks! Been trying to add a custom order to an array from a large list and was thinking using the table might be an easier way to manually create that as the table is already being used in many different locations
I would keep an eye on your size maps for your assets. The engine normally detects the relevant size based on hardware. If textures are going blurry, it's down sampling your texture sizes to reduce how much vram is being used. Chances are, you're probably referencing unused assets that are being forced to load.
If your level is barely populated and your hitting 2gb your going to continue to run into further trouble.
You can also look at texture sizes as well and reduce where possible. If you're getting assets from FAB, a lot of these have 4k textures which aren't really needed unless you're doing a cinematic.
You're animBP needs to be setup with at least one slot for the montage to play on. (Full body, upper body, lower body etc)
Set play rate sets the rate at which the currently assigned animation plays at. Note, is when manually setting the animation on the SK and is separate from animations playing using the animBP. (One or the other)
Thanks I'll look into it. I did recently add the Paragon Aurora asset into the game along with attaching the mesh to the character BP. I believe this occurred before that though. I'll see if I can track it down.
I understand how to do it with an animBP. These skeletal meshes do not have an animBP. Thank you though!
I find that having a very basic animBP with just an idle anim going into a montage slot can be useful. Especially compared to manually setting animations as you can't blend them when switching.
totally understand and I agree. I am not a noob when it comes to animBPs and things like that.
If I could have it my way I would use an animBP for these guys, but alas, I'm not the one making these kinds of architectural decisions at my job
It might also be worth looking into soft references. This can give you more control regarding when assets get loaded. You do need a good understanding of hierarchy to utilize them effectively though.
That sucks. I wish you the best with the rough road ahead. π₯
It's not that rough, like I said earlier I did get it working!
Because you told them to enable when you click apply. All of the booleans in that array are true. You don't seem to affect it anywhere in the code presented but you didn't show CharacterCheck.
Other clients don't see this because you did this in a PlayerController. If this confuses you, you should check out the Multiplayer channel and look up the pinned content for the compendium.
how would y'all handle the collision on a railing, you want a big player collider to make movement smooth, but smaller more detailed collision to block bullets and to allow a gap for grenades to pass through.
unreal doesn't support this kind of collision?
use collision profiles / object types
Custom collision. In you're modelling software, you can add additional shapes with the same name of the object but prefixed with UCX_ followed by a post fix of incrementing numbers (_001, _002, _003 etc...) for each collision hull.
When you export as an FBX and import into UE, it'll add a collision hull for each UCX object.
Alternatively, you can try to manually add them in the static mesh editor but this can be tricky.
ah nah, it's a more complicated question.
here is my railing, and here is a regular collision setup, this is cool cause i can shoot thru the gaps, i can throw grenades thru the gaps
but now i have an annoying greebly scifi railing:
so i wanna do a nice smooth box:
so the player doesnt get stuck on bits of geometry
6 collision hull would handle that.
you could do some custom collisions with custom channels probably
if you wanted the player to bounce off the whole thing
but i think the UCX stuff mentioned would handle it
Also, it looks likes its 7 hulls. π
the player gets stuck on the little bits!
Yep. You'll have to make a decision, either keep them or remove the green hulls but it'll look like objects pass through those bits.
Alternatively, you could try make the inner edge of the green hulls a diagonal which might help the player slide along it with out getting snagged. This would mean it'll look like objects would bound of the air in the corners. Depending on the type of game this might not be an issue.
So the collision hull looks like this.
I made a C++ Pawn, with code like this:
ATourist::ATourist()
{
CollisionCapsule = CreateDefaultSubobject<UCapsuleComponent>(TEXT("CapsuleComponent"));
CollisionCapsule->SetCapsuleSize(CollisionRadius, CollisionHalfHeight);
CollisionCapsule->SetRelativeLocation(FVector(0, 0, 88.0f));
CollisionCapsule->SetCollisionProfileName(TEXT("Pawn"));
RootComponent = CollisionCapsule;
PrimaryActorTick.bCanEverTick = true;
}
Then I made a BP that inherited from this, set that BP as PlayerStart's pawn, and hit Play.
It spawns 88 units too high, so ok, I deleted that SetRelativeLocation from the code. Recompile and run Unreal again.
Still spawning 88 units too high. But when I made a new BP that also inherits from that C++ Pawn (Tourist), and use that new BP as the GameMode's default pawn, its position is fine.
So now I have 2 BPs that, for everything I know to look at, both have the same location. But one always spawns 88 units too high.
Any ideas?
Anyone knows how i can get and control a switch between these two cameras in my Viewport capture?
The only actual fix I found was to reparent the BP to Pawn, then reparent it back to my C++ class. Fixed the offset.
Root component can't have relative location. The location of this component is the same as the location of the entire actor
That makes sense, yet it has an effect.
Maybe it shouldn't but it indeed does. The problem though is that I couldn't find a way to reverse it.
Once a BP is derived from a class with that line, removing/changing the SetRelativeLocation and recompling code/engine/BP has no effect on that position
It breaks the BP thumbnail positioning too
Maybe just a bug or... bad handling of the developer using SetRelativeLocation poorly
It continues to do that because it's serialized. Put the call back at 0,0,0. Compile. Save all children BPs, then you can remove it.
Tried that to no success earlier
Hmm. Fair the 0,0,0 would get overwritten with the serialization.
A PostLoad override might have worked too. But you got it from a reparent that forced it to rebuild the BP.
Yeah, just double checked in case I missed something before. Confirming the 0,0,0 was no luck. But yeah, the reparent worked.
It's a fluke I even knew what reparenting was
When Greystone slashes while moving forward his legs are separated from the attack animation and running forward correctly. While Aurora's stand in place during the attack. I have a general idea of why (animation slot, etc), but am not sure on the best/easiest way to resolve this?
She kind of looks like she is leaping there, but is actually just dragging her feet without an animation. Just a bad clip for it, but you probably get the idea.
Assuming you're using a montage for the animation, it looks like you've not setup an upper body slot for Aurora's animBP. Normally this would be blended with the standard locomation stuff so the lower half still plays that whilst the upper body is the montage.
Correct. I think I found it from the original anim BP with Aurora ty. I'll test it out.
I'm still not quite grasping how it's separating them out. The image is the default ABP for Aurora which after a few modifications I think I can use. However, it didn't use a default slot in the anim graph so I added it there. That may not be the right way to place it. In the montage itself should I be setting that to upper body or should that be default slot and the anim knows how to handle it?
building
Greystone uses the same thing almost, with the added blocking
in your animation select the upper body slot
or in your montage ig
I think that does it. I may have tried that in testing, but failed to implement it because the animation just stands frozen after changing it in the editor. The asset may need to be reopened in order to update and display properly after that change. Regardless it does appear to working in game, ty.
Is there an equivalent to stat unit for finding size map issues? For example with stat unit on while moving around the game world it can help identify which area/asset is causing a high prim rate. (High vertices draw count). So you can manage that asset.
Trying to make the skeletal mesh fling, but impulse doesn't seem to be doing anything
does it ragdoll and drop?
Anyone have a good plugin/method for adding custom keybinds for players? UE4
how many bones and what is the mass of them
does bone 0 even have a collider?
Curious and possibly an issue? There are 3 main textures/objects in this. The floor, green, wall A, green (the center), but Wall A is red all around the map.
The tiled walls are in red. Any idea what would cause it to use so many more resources in shading?
196 bones, and no it doesnt have a collider
does it have to?
apply your impulse to the rootmost bone with a collider
show your physics asset
Note: In every case the shader complexity seems to be from a material instance rather than a material. The image example is pure green while an equivalent MI is red. I updated the wall to a material and it's now green everywhere. Does this seem normal?
I revamped some of the walls and tiling. However, the question is regarding lighting. This is roughly the atmosphere I'm looking for. A dungeon based game that is dimly lit, but visible enough for the player. It a dark scene right now which is lit by a point light attached to the player. I can adjust it for brightness/range etc.
The issue is that it's not really creating the bounce lighting effect on objects. So some objects such as the skeleton in this example is barely visible. I tried various methods of putting lights on the enemy, directional light on the player, or in the scene. However, none really work and keep the atmosphere. Any ideas, suggestion, or even basic guidance would be appreciated.
You might have better luck in the #materials channel for specific things like that
Thanks. I think I found at least a sufficient answer. Because I'm not using multiple variations I don't need to use material instances. That's just the way a lot of assets came by default. Material Instances should be a more efficient method vs using multiple slight variations in materials. The odd thing is just how bad the editor is claiming the performance is on the MI's vs M's. But I can't really tell precisely how much that is. The red vs green. Ultimately it may not matter I will be using Materials as that's all that is needed in my case.
Test with a different mesh, like the default cube
What's different about this instance, just texture and float parameters or do you have some bool switches?
There are various assets throughout the map with both MI and M's. In every case I found a red asset it was a material instance. I didn't change the mesh on the walls. However..........
The shader complexity on that same scene by using a M vs MI.
using the same MI that shows up red?
Correct. I made more modifications since then, but originally when I used the same few textures on a material it instantly appeared to improve the shader performance at least in the editor.
I'll do a test on this one. The materials should be the same. It's a MI right now
I created a new material using the same textures and settings.
Does it show up red on a cube?
I'm not sure what you mean. Those images are the editor view of the shader complexity. Not the object itself.
Do you mean a basic cube object? That is essentially what the walls are. A streched out cube.
I moved it to materials.
I was asking if the exact same material instance that is showing up red actually shows up red when applied to a cube or other simple mesh
Yes it does.
Anyone know how to pixelate a font in UE5 for UI use? Every Retainer Box effect I have found adds horrible artifacting.
Can you be more specific on what you are trying to do? It looks like you are just changing the icon on click? Is that supposed to be the same button?
I don't think you need a custom event for each binding
Instead of connecting the red square, drag from it, type in create in the search and there should be a node like create event or smth like that
And you can choose which event to bind to from this list
Only timers have a restriction of one timer per event
One sec, i got you, just need to load UE.
Assuming they're the same type of widget, (I assume either a button or your own custom button widget) you can do something like this.
There'll be checking and further events
Yeah, make a base class for those cooking icon and have event dispatcher to respond on click.
You dont even need to reference them one by one. If they are contained, you can just get the children.
Will try
Wait a second please π₯Ί
No need to for each loop right?
Not in this instance no.
Thanks a lot
make your the general fill lighting a lot more "blue" . the color tone is way too warm for being in a dungeon. it's too dark and needs to have more fill light.
you need to have color grading and post processing
find games you think look nice that achieve the same effect to use as reference and look at at it and understand how they achieve it then we can be more specific about how to help you achieve something but the first step is figuring out what you want to achieve
like look at the recent resident evil. you can have dark areas on the edge of the screen but you still need to highlight what you are looking at but that is easier in an fps game with a flashlight so it's probably better to look at more similar games to what you want to achieve
like for example v rising
Can be orange or redish hued too. Blue is more eerie feel. If you're looking for more like a fire lit hell crawling dungeon you'd want something more red hued.
It looks like there's no shadows which is giving it an unlit feel. A little fog would add to the atmosphere as well.
Hello! I have an issue with touch inputs where pressing down on a button stops updating the location of my finger.
On mouse, pressing down on a button doesn't stop the mouse location from updating.
Is there any other function I can use that doesn't stop tracking touch location if a button is pressed?
Hi, for some reason my array(Orders array) grows too much every time I call BeginRandomSequence event, for example Orders should have 2 values but has 4, I am doing something wrong here?.
So basically I try to make key pad where you must press buttons in correct order, each time you "solve" it you get more buttons to press, so you start with 1 button then you get 2 buttons etc.
I create empty array, fill it with correct answer then I have another array where I store in what order it was filled so later I can check if player did the same sequence, then I do visual stuff(sound, button lights up). It works correctly its only orders array that cause issues at least thats what i think, or do you think it should work and I could try to look somewhere else?
You're not actually clearing the Order array or limiting it in any way.
You're also not safeguarding against same entries. Your randomization can find the same value twice. You could drastically simplify this by just creating a copy of the ButtonValues, shuffling it, and then pulling how many ever indices you need.
oh I see now I will try to do it soon thanksπ
If I have 10 skills with a set level I can use 10 variables. However, they could be placed into a single map for easier saving/organizing. The issue seems to be referencing them though. While they are individual variables they can accessed on the fly by both simply typing the variable name and without things like finding them through a MAP or breaking out the map into individual variables which seems counter productive. Is there a specific way this is supposed to be done?
I suppose sticking to MAP's when possible? As array/structure can get more complicated for referencing? I think this will be simple enough?
Secondary question if anyone knows. I would presume on the C++ side this is a loop that goes through all the value in the MAP until it finds Stinger in this case? If this map contains 60 entries is this actually less efficient or to any significant level?
map lookups are more complicated than that but the basic gist of it is that it doesn't look at all of them, it can do a lookup in constant time
It can often be faster to just look at all the entries but at a certain point the map pulls ahead.
For something like skills, I'd use gameplay tags for the key instead of a string. This will reduce typo related errors as well as making it easier to pick what skill value you want.
I'd also wrap it in a function called 'GetSkillValue' for convenience.
Adding to what adriel said, maps are hashed so locating the desired entry can pretty quick.
Thanks everyone.
In practical use it would be a little more complicated. At minimum
-- Skill Mastery Level (String for personal reference) Slash Mastery for example
-- Skill Exp (String for personal reference) Slash Exp
I'm not sure what other data may be contained until I start implementing
A get skill value would still require an input on a function wouldn't it?
Does Unreal Engine 5 support a more integrated way to advance levels or is this good enough?
this is placed in the Gamemode blueprint
You're never going to see an integrated way to advance a level, because that is highly dependent on the game. So if this works for you, go with it.
Use open level by object ref. Saves your self from acvidentap typos.
And if you rename your level you gotta trace every single node that uses it.
Im moreso worried about doing extra steps that are unneeded for functionalities that Unreal offers in more immediate ways.
I feel like I've run into that in the past.
noted.
I mean. If you want to get technical. I'd honestly consider making up a simple Datatable that has the level names in it as row names. And the data in each row points to stuff like the level's UI name, or the next level to go to, etc. And still use the level by name, cause you can' thave a world object ref in BP.
I see what you mean ****
That way you protect yourself later in savegame code because if you have... 15 levels. And your player saves on level 7. You decided to add a new level in at or before level 7, your player loading the savegame is gonna have a bad day, cause your list is hard coded here.
With a data set that explicitly defines this, you get that security later.
Yea never use literal string for what ypu are doing. Also gameplay tag support hierachy. You can just have your mastery under the same parent.
Not sure what you mean. You mean a Mastery Tag like a folder structure with all individual mastery skills listed under?
Yup
Gameplay tag support hierachy. Let your imagination be the limit.
If you use cpp you can also only show a specific root.
The drop down can be filtered to only show tags for my item for example.
Yes, I will need to see about integrating other aspects. Such as the boolean for skill timer.
GAS and gameplay tag is probably one of the most used feature in UE.
You should look into GAS for your abilities.
I can't show my save/load functions. The amount of cringe would be harmful.
No one code well from day 1. We all rework our system zillion times.
I heard a lot about GAS but never really looked into it yet. I have a funcitonal combat system which I like with combos, menu's, pop up text, working formulas. Could probably use a little update though. I'm not following all the convential things like just using behavior tree's because that's what taught.
I don't remember who made the comment before, but yes some of the tiling needed work. I have a few tiling methods now this one works well in many situations. Previously the top section of above the gate was a mess. Now it looks fairly seemless.
State trees or BT is much needed for A.I
Doing A.I without A.I tool is brutal.
Imo EQS and BT is minimum requirement.
If it becomes an issue or I'm unable to perform some of the more advanced AI like finding hiding spots or investing sounds I might. For now it's been fine.
Would the suggested method be a different MAP for every variable type? (As opposed to structure, or other coding languages that allow stacking arrays in arrays?
A boolean timer for example can use the Game Play Tags, but not this MAP due to it being a boolean?
Doing AI work with AI tools is brutal. π
I still wish UE had even a generic GOAP setup. Goals and their actions are much easier to manage programming for than spiderweb BTs
I think most of the failure comes from a lack of effort from the dev/company to implement essentially 1/2 boss functionality onto enemies. Such as relying on attack A or B when so much more can be done.
Even classic old school Everquest had very powerful AI in group mobs, healing, buffing. A lost art. I may test some of that later on, I'm just not sure how to create the knowledge between mobs / range yet. I was able to create social aggro though.
Some of the custom coding allows for determining if pre (wind up animations are used), sound effects, multiple VFX, mobility, aoe, etc. So each action is really customized.
It's not lost so much. You can do it on your own. It's just time consuming to create a system for it.
I mean lost in the sense that the origin came from gamers which where more invested in the game experience. And that they couldn't rely on flashy animation. It's especially bad in MMO's.
Functionally I understand this, across all the instances it seems like quite a bit more space. I guess it works though.
What does the bool represent? Why do you need a bool?
A toggle of whether the skill can be used. A timer is set to a function that will reset it after (x) seconds.
Should do that in time state rather than a timer.
LastTimeUsed, and CooldownTime floats tell you everything you need to know whether you're ticking time in a UI, or testing if you can use the ability.
I I disable character movements for all my characters, whats that char movement total shwos up in Stats Game?
Does that look correct?
I'm revamping it and color coding.
-- Brown (Physical skills)
-- Grey (Greystone char)
-- Light blue (Aurora char)
-- Green Mobility skills
They are all grouped as these all stem from Left Mouse Button. As well as the green Skill Combo
For a Mouse Button Down input handler, does the click have to be INSIDE the widget?
Typically I would think that would be coming from the button which would reside in a UMG widget for example.
Hi everyone. Can anyone show/send a screenshot or provide instructions on how to create a scope like in Tarkov and similar games using Render Target? When I tried to do this, the image in the scope itself showed the image of the last logged in player for everyone.
Are you trying to just check if the mouse down is pressed? Like an enhanced input button in general? Or mouse down on a specific button inside a UMG widget?
I'm trying to make a funky key bind changer for playing in UE4 2.2. I want the player to be able to press a button (or mouse) and that selects/changes the keybind
everything else works, but I cant have any binds changed to a mouse
I haven't done a remapping yet not sure. Others may be able to get an answer though.
No worries, precciate the eyes. I'd take a look at your posts but I havent messed with any skill stuff yet
I have soft ref anim sequences in animBP, ho can I make them thread-safe, the convertion?
Why do you have a soft ref anim sequence?
They all should be loaded when the anim instance is loaded.
So at least make the anim instance a soft ref
Dont make the anim asset a soft ref
I have a struct with many anims, from a char
But i figured it out. I had to create a thread-safe pure function
which doesnt work
I'm sure it's been asked before but I cannot find it. Is connecting node pins with shift-clicking or any clicking still a thing?
https://youtube.com/shorts/Knwo1q7LKU4?si=_7nejYfaCuR4Bj-b
This video says shift click both but that only pastes node values for me in 5.7.
I am tired of dragging pins.
-
You can support this channel via https://www.patreon.com/sarkamari
-
You can access our shop via: https://www.youtube.com/channel/UCeMhJ9SijyiDCOlcTAhOHag/store
-
Please make sure to check my Unreal Engine playlist for more similar videos: https://www.youtube.com/playlist?list=PLbvsJz5ZcmxF9fclMrFPfdRA77crIZAUs
-
Follow me on
...
Is there really much difference in maintaining the player data on the 3rd person character BP vs a game instance BP?
If you destroy you Chara, you will lose your data
Yes a basic save/load can assist in switching levels. I mean for resources. Instead of casting to the player BP for example would it be better to just cast to the game instance or does it really matter?
There is no extra cost for casting to the GameInstance if that is your question
It's more about the general idea that global variables (since that what it seems the game instance is) should be used sparingly. Although things like Player Strength may be referenced all over the game in menu, combat etc.
All my BP's cast to the 3rd party BP right now and store it as a pseudo global variable BP. Because otherwise it's not meant to be done since "there is no spoon" only multiple copies of a spoon. So you need an overlap to find anything.
If it is single player it doesn't really matter as long as you remember that GI is persistent and the player is not
Having many blueprints accessing the player and storing it as a variable sounds like a potential issue - but then again, it always depends on your project, your skill and your goal
the game instance is static, there is only 1
you can have as many 3rd person characters as you like
having only 1 of a class is not the same as global variables
That is an important distinction. However, besides changing a level I don't think there are many occasions where you would destroy the player. You can also just save any needed data and load (assuming your keeping it). I guess in a case of a throw away score you only want for a game session then it would come into play.
Store your data where you want to store it. If you need to persist it through the lifetime of the game, then store the data you need somewhere like a save file or game instance, but the running copy should be on the character BP.
having a custom base for all your actors and casting to that is very common and fine
everything that is shared between actors belongs there
that is also not a global variable
if someone says global variables bad then dont go applying it to every random concept
you can also just add an interface
Or use components...
Global in the sense that it can be accessed from almost anywhere. As opposed to say an enemy blueprint. You can't just access that information without interacting with it directly like an overlap to identify the instance of that enemy.
so.. you mean static
there are static classes and static variables
those are different
A global variable in most coding languages means it's accessible "globally". Such as not in a specific function. As in always loaded like the game instance and accessible.
GI subsystem say hello.
true that statement wasn't necesserally correct
Now you done it!
but just like how i could mention that local static variables are actually just global variables in disguise in c++ that will just confuse people more at this poimt
Depend on the scope isnt it
Having char data as global doesnt sit well with me anywag
the static keyword just confines it to the scope of the function
Regardlesd what sort of project u doing
The question then becomes, for what purpose do you need to access a specific object's properties at any time? There's probably better ways to go about it then having to store a reference or additional data about the object in the game instance.
This menu will need to call general player data for example.
It's better and easier to manage if you keep data relating to an object to itself. If something needs to access it, then components are usually a good way to go as it is something that can be easily grabbed without having to cast and can be more modularly accessed. An example would be a health component, something that both your player and enemies may have, and would potentially both interact with, and it can usually be accessed easy in UI.
pass a reference to the player (dependency injection)
or just fetch it when the menu is created.. a player is the easiest thing to find
Right now it casts to the player to pulll any player data it needs
yes
Which is generally fine for UI.
that is completely fine
optimizing away 1 cast with a ton of complexity is the perfect example of pure evil
Any actual concern with casting?
If its the memory overheas from casting to blueprint asset.
Just know that your character will eventually be loaded anyway. So no point worrying about the memory overhead.
Well for example would it make any difference to shift that information to the game instance? Or is that just pointless since it's already done and no advantage?
no
it would make it more confusing to figure out what is going on in the project and where to find what
You're complicating your code, and the only benefit is that any variables that may be stored in the game instance would always persist, but you have save games which are meant to take care of that better than the game instance.
if i have a spoon with spoon data then the spoon should be the place that holds my spoon data
i'm not going to create a spoon manager in the game instance even tough i could
because i have 0 reason to waste time on it
juniors be like let me abstract the spoon into a spoon interface and spoon plugin with a spoon API
they want to create the ultimate spoon framework but they can't even create a spoon
Shipping a button in the age of cloud, vibe coding, JS frameworks.
T3
T4
#programming
#javascript
#humor
this is super relevant
10 minutes of spooning
Keanu Reeves only uses a fork and knife. Even with soup. That's how commited he is.
real man eat the soup with their bare hands
the equivalent of coding your game in assembly
bare bear hands
you should timebox your prototyping and focus on achievable milestones so that you don't end up focussing your attention on things that add no value
Player stats should generally live in actor component.
Attached to player state or thw character depending on the game.
Thanks, but I have a handle on it for now. I need to implement things across the board like a fully functional enemy AI, CC effects etc. More of the game play aspects, but I have some early working prototypes for that. An enemy projecticle that freezes for example.
Adding a new class to the game really changes things up though. In both game play and back end changes. Which is part of the root for a lot of these changes. I had to rethink how the stats would be applied, menu's, and individual skill masteries.
you try to think ahead about those things as much as possible and if you abstract it in the right way then it should be effortless to do that
class data is just an array with player data objects that you need to pass and set on the player depending on what class you are
Does anyone have some ideas to make big enemy hordes not turn the project into a slideshow?
How many we talking about?
Besides the easy stuff like turning off tick when not needed
Topdown and the zoomlevel isnt that high so at most a few hundred for regular gameplay it should be 1 - 20 on average
Its a zombiegame like zomboid so real hordes in cities would be cool
I thought about several bubbles around the player
Each of these bubbles decreases the tick level / controls how many decisions the ai makes how often
So if a enemy is very far away i would only give him perception once a second
DOnt know what to do about pathfinding tho ..... usually thats what always kills my performance long before i get other problems
The first thought was possibly using Mass Entity but I'm not familiar with how it works. It is designed for large crowds and what not.
However, with the numbers you're thinking you might be able to get away with using more of a manager type class. I would look at doing some sort of enemy pooling system so when one gets killed, it gets replaced with a static mesh and gets moved out of sight and added back to a pool.
Repeated destroying and spawning them in can cause problems as it'll create an initialize not just the character class but also the AI controller and AnimBP. Pooling can help mitigate this.
I found destroying the AI controller and disabling the AnimBP when an enemy gets added back to the pool can help as well.
You could also look at varying the tick rate of enemies based on distance from the player. (not sure how it would affect nav movement) So enemies further away tick less than those actually visible to the camera.
If you're currently using BT's, it might be worth looking at switching to ST's instead. State Tree are event driven instead of Tick based so can perform better under some circumstances.
I would also take a look a the profiler as this can help identify areas worth trying to optimize.
Someone displays real time videos of massive battles like that. I'm not sure what they are using though.
If i have more than 100 default characters with a single move to running around in a empty level i lose roughly 60 fps
THis is with 50 characters
Most likely Mass or a custom solution. That looks like some insane numbers. π
state trees are tick based but pretty light if used correctly
Im gonna look into the crowd thing and mass entity
i would start with a normal setup
Its not a state tree its a single ai move to call
in this map there is nothing blocking their path
so they dont need pathfinding
so you wouldn't use AI move to
Jeeez ....
but you would just move them move towards the target by adjusting their position manually with a target vector * delta time
first start with profiling how many animated skeletal meshes you can run & animate at the same time without anything else
you might be able to have 1000
or more
It's pretty sick https://www.youtube.com/watch?v=3Lh5J-XsSmk
10,000,000 NURGLE FORCES vs EMPEROR OF MANKIND - WARHAMMER 40K Battle Simulator
Step into the grim darkness of the far future with this epic Warhammer 40k battle simulation! βοΈ Using Ultimate Epic Battle Simulator 2, we recreate massive clashes inspired by the Warhammer 40k universe Space Marines, Chaos forces, Imperial Guard, and more col...
you might only be able to have a few if you have thousands of bones and multiple 4k materials per actor
that is not achievable in unreal without chaning the actor systems, animations and rendering to be optimized specifically for instancing a huge amount of AI
I think it's more just a visual spectacle for viewers
Days gone did it pretty well
yeah you can certainly deploy custom boid systems
With a decade old hardware
going with instanced animated skeletal particles is very optimized
just doing physics where you are solving 10.000.000 things that are actively pushing into eachother is far from trivial
doing ai behaviours for them that actually work well on an indivual basis is not achievable in unreal
but you can swap out their behaviour to something more complex for the ones that are actively interacting with the player
I think in days gone they head leader zombies for each horde 50 zombies follows the leader without ai
THe leader would give instructions to his 50 pawns if a zombie gets close enough to the player its ai and perception gets switched on
having 1 guy do the pathfinding and having the rest follow him is a very smart solution to a difficult problem
another one is to kinda bake the pathfinding from all locations into a flow map and update that
That sounds like a insane amount of work
compared to what? implementing pathfinding and navmesh generation from scratch ?
for custom engines that dont have any solutions yet and want to only focus on mass horde ai its probably a lot less work since its just a simple grid traversal
square 2D grids are a lot easier then 3D triangles
Meh, im gonna try mass and if that doesnt work as i want ill probably just buy one of the mass plugins
have you profiled to measure what is slow about it ? is it the cmc ?
first you need to profile the solution the solution to understand why its slow
the AI move to task by itself doesn't do anything except make a move to request and keeps track if its still moving or not
Animations/skeletal meshes are killing me
how many ai on screen
100
yea thats heavy
default characters
Im trying the animation budget allocator maybe it helps fast
make them move at idfferent timings
add random tiny delays so its not always same tick all 100 at same time
They are not moving on tick
Animation budgeter gave me + 10 fps on 100 enemies right out of the gate
Thats their entire logic
Should grab an insights trace of this. But it looks like a lot of animation and CMC. And whatever that tick time is. Not sure if that control rig part is on a worker thread as well.
8ms on only movement
try the mover component instead of CMC
for decreasing the time it takes to animate something you can decrease the amount of verts / bones it has
these characters are made with a level of detail that is good for having 10-20 at most, not 100
The default chars are super lightweight
Atleast they look that way from the disk size
it has 68 bones...
do you really need multiple bones for each finger on your ai
or do you want 1 bone for the entire hand
also the vert count will be rather high
meh would culling out the bones do the trick ?
im just using these to test but all characters i have are based on the unreal righ
alltho a few of them use the simple rig
you can find another character that has like 5 bones for testing
or make something yourself
those characters have 100k verts π they are not lightweight or optimized at all
I got a problem with my electrical component
It can add to array, but it cannot remove
this means that 100 characters will be animating 10.000.000 vertices... no shit it takes 50 ms
WOuldnt that only clog up gpu ?
look at the second trace picture you send
it needs to update the control rigs for those 6800 bones and 10m verts, cpu needs to pipe al the data from ram to cpu registry to gpu
because its made to look as nice as possible if you put a couple on screen
100k is not an absurd vert count for a character these days
begin play it shows 0
It shows length of the array is 1 even when I remove, even if I didn't add
notice how almost every game ever only shows like 10 actors at the same time
use breakpoints
Good spot with the control rig. I'd imagine you could add some sort of switch for it in the anim BP so it only passes the animation through the control rig if the enemy is close enough to the player. In the default anim BP, this control rig is just for the foot IK.
@last peak
Wdym
Its weird that sometimes when I remove the length is 1
Hold on
Ima try something
The remove item should still work on objects with it being a ref.
Doesn't make any difference with an object ref. (in BP atleast) A ref to actor A is still a reference to actor A.
If it was a struct, you'd have to be careful with the copy thing though.
Oh! its the add power function. So you're adding a null ref which is a new element in the array..
OH FK
I forgot about null stuff
that works for nulls? lemme check
If its null it won't be valid so you can just not do anything. (as in not add to the array)
Its always the little things. So easy to miss sometimes.
that worked out, thx guys
I'd put the is valid checks inside the add and remove functions themselves instead of the update function.
yeah yeah ik, just wanna get it working before all optimisation
now the gah damn niagara won't turn off even if the bool is false
oh yeah
fixed long ago, outdated screenshot
ewww hollon
better
fixed it, idk how
but I hate that it fades out
arrays have Is Empty and Is Not Empty functions, they're so much handier than Length -> >0 or == 0 or whatever
You could use the != (as another alternative)
wdym, how
As meme mentioned though the is not empty is probally best.
once you get down to that few nodes, you start to wonder if it even needs to be a function anymore lol
I'd still keep them as functions. This can allow children to handle things a little differently by overriding. π Inject an additional check without having to worry about every place you've but it.
yeah true. though I'm guilty of thinking that that's a good thing to do in a system that really did not need it
fine here though
I'm too indecisive at times so I like to put a get out of hell free card when I can. π There's been a lot of times somethings like this has saved me having to go through and refactor because of a small change I wanted to make.
next on my to do list 5 level blockouts π
I love doing it lol
sad part is I gotta type in XYZ sizes manually just to keep the grid material consistent in UE4, maybe I am missing something and just being an idiot
One of the reasons it can be nice to have a team. π Find someone that likes doing the bits you don't.
have you looked into the cubegrid tool for blockouts?
nope
it works a bit like Minecraft quick build tools
where is that
holy brush editor I was an idiot π₯²
yeah there's that and there's CubeGrid, where you click and drag to select grids of faces and then use hotkeys or mouse drag to push or pull faces. all snaps to a grid that you can resize and rotate
it even works for adding onto existing meshes, which is cool until you do it accidentally and now all your doors have the same hole in them lol. do check your settings regularly
sorry for the noob question but how do I get IsValid in Animation Blueprint?
when I press TAB and print "is valid" I got list of some unrelated functions
I can do something like this but it's not like in example above
that's a Validated Get node
you can right-click on your Character reference node and click Convert to Validated Get
or you can just use this and connect it to a branch. same functionality
wow thank you very much
it worked )
yeah but it takes more space and code )
Hello everyone, can you tell me how to create an optical sight for a multiplayer tactical shooter?
true that
like a red dot sight, ACOG, etc?
Optic 2/7x
right, telescopic
Well, like in Tarkov, like the hunting scope
my best guess is using a second camera with a different FoV, and either rendering that to a render target to see it when holding the gun in front of you, or switching to it for ADS. but I imagine there are other ways to do it
there should be plenty of tutorials online for that kind of mechanic
Is there an example? On Blueprint.
this is something you'll want to follow a tutorial for, since there are various ways to do it
Thank you π
I have an object that moves with the camera. I got it to work perfectly using a Cast to Camera on the Event Tick, but is there an alternate method that might save on calculations?
If it's always there you can attach it to your actor, what is "an object"?
promote it to a local variable to cache it
Show how you're currently handling it.
Object is a Background picture, a Sprite Actor. It moves with the camera but at a different speed.
I can get the screenshots of my process later today when I get home. Short version is:
Event Tick --> Cast to Camera so I get its World Location --> Set Actor Location to X * Speed + Origin
You mean the Camera? And in the Begin Play sequence?
after you cast it and then you only need to cast if the cache is empty
I'll try it out when I get back to the project. If effective, I might share my knowledge of making parallax backgrounds that are easier to control
Finally a proper use for 150 Font Size. I know you can tick show bubble when zoomed, but this works.
or make a separate event graph for that stuff π€·
I've been wondering about that. The PlayerCharacter in my game is filled with Sub-systems
You should look into Actor components if you haven't already.
Much better. I didn't know you could do that.
Yea UE is huge. Even now after nearly 15 years of using it. I still stumble across stuff. Either because its tucked away or newly added but not really talked about.
Google is being elusive for me, maybe i'm not searching proper. Does anyone know what the intended use for the "Exec" bool is on a blueprint function? When i turn it on it looks like the function shows it up in the Console Command autocomplete, but when i use it, it just says "Command unrecognized"
I did find out that i can just use ke to call a blueprint function on an actor (idk if this works in packaged yet) so like ke MyActor_C DoThisFunction
Its for commands.
But, is only correct on core classes.
So, player, there controller, game mode, game state, level graph, sorta shit
Can't just slap it on a random Actor, without some changed C++
Base engine C++ only checks/ runs the command logic on core classes, not an extra generic actors, or such.
I believe that is the proper technical terminology "sorta shit". It properly identifies and conveys the message.
The 150 font stays. It just works. Even in it's own Event Graph. Once it's filled out with skills it will make sense.
That's maximum zoom. So you can move around at max distance and clearly distinguish categories, or whatever separation is used
The updated cool down timer appears to be working with tags and game time. Ty everyone.
in landscape > splines, how do you select all points of just the one spline actor? Select segments selects them for all spline actors which makes no sense whatsoever
it just changed all my roads to fences and can't seem to grab all the points to set it back 
What is the best performance class that can be created to store variables and doesn't require spawn to run?
a UClass with vars, structs probably. Maybe a UAssets depending on what you need
For Blueprint!
Just use UObject or Data asset them
UObject needs spawn to function. Also, I think if the parent actor is destroyed, UObject might be destroyed as well.
Regarding Data Assets, their variables cannot be changed from Blueprint
well yeah if you want it mutable then I think you have to spawn it. afaik there's no way around it. I guess you could instance a data asset for runtime use but then you're still spawning something.
it's kind of like saying I want to change data but I don't want to assign memory for it.
Thank you! Yeah i noticed the functions began working when i tried out the game instance
Hi, my game stops packaging if I make ANY change (it can be even as small as adding an empty comment) to one of my blueprints. It's extremely problematic, since it will be very hard to pinpoint when the breaking change happened since if I don't touch the file the game packages fine. The InspectDescriptionComponent is a custom BP component which I use in some blueprints, for example in problematic blueprint's parent. But changing the parent does not break packaging! I investigated the general reason for this sort of error, but it does not make sense since I don't do anything meaningful with this component in any construction scripts. It's just a component that shows little snippet of text on hover... And it works just fine since forever. I think the search in all blueprints function is unrealiable as well. Is it possible to pinpoint in which exact place this code fails?
PackagingResults: Error: begin: stack for UAT
PackagingResults: Error: === Handled ensure: ===
PackagingResults: Error: Ensure condition failed: Registry [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Elements\Framework\EngineElementsLibrary.cpp] [Line: 35]
PackagingResults: Error: Typed element was requested for '/Engine/Transient.InspectDescriptionComponent_GEN_VARIABLE' before the registry was available! This usually means that NewObject was used instead of CreateDefaultSubobject during CDO construction.
PackagingResults: Error: Stack:
PackagingResults: Error: [Callstack] 0x00007ffbe8fc211e UnrealEditor-Engine.dll!UnknownFunction []
You're right, thank you. Undoubtedly, hunger made me not allocate any space in my memory or stomach
just piggy back it on smth that already exists, gamestate, player etc. where it makes more sense
hey there im still quite new to the unreal engine and im making a flying/surfing character. Im now trying to make a simple dodge system that uses up down left and right dodges. the problem now is that my character is a flying character and starts flying but when i try launch character in a direction he starts falling. is there a way to keep him from falling?
I made the mistake of updating to 5.7 and doing a rollback to 5.6 in the same project.
Now I have two BPs that shows in my file explorer but not in the content browser, other than that everything is good.
What do I do to retrieve them ?
you can not roll back a project..
You can modify variables at runtime in a data asset. You just have to be careful doing so when playing in editor (pie) as it modifies the CDO.
Data assets aren't a bad option for storing global variables as they're normally only a single instance that can easily be accessed from anywhere. (Even custom uobjects)
if you didn't take a backup or use source control before upgrading then just create a new project and copy over your assets
I just remembered I did VS. I'm currently trying to discard all the changes and fetch the branch.
But about your comment how you can't rollback. I did though and other than these two BPs, everything was fine. It's not a big project so maybe I was lucky but you're telling me I shouldn't never do that again?
it can create weird issues that are impossible to track down
what if there are more issues then that
and its just not telling you about htem
then you end up with a broken project that has issues with no way to ever fix them
Ok, noted. Thanks. Strange behaviour cause everything should been the same, it's an anim BP made from my own C++ class. Nothing fancy
I have this issue where I have a Primary Data Asset with some stuff.
The asset is in an object reference variable in an actor component in my Game State.
If I add a DataTable ~~actor ~~ object reference variable to the Primary Data Asset, and then assign a data table, everything works while I'm working.
After restarting the engine, the engine crashes at 75% when loading.
All objects are in the same content plugin folder, everything is defined from the engine (even the structure the DataTables i based on).
Why is that?
If I define the DataTable object reference in the Primary Data Asset but let it set to none, and then actually initialize it in a Data Asset, the engine boots properly
What even is "Data table actor reference"?
Oh my bad, I meant Object Reference
So in short, if I initialize this variable from the PrimaryDataAsset Blueprint Class, I get a crash at engine start.
I don't get a crash if I initialize it from a Data Asset based on it.
This is the crash error, happening at 75%
Element type 'Components' has not been registered!```
maybe hard reference loop?
since the gamettate is pulling that data asset, it's probably forcing the data table to load during the splash screen before the engine has even registered the row struct, which is why it might hang at 75% or around there (i'm guessing anyway)
maybe try switching the variable in the primary data asset to a soft object reference?
that should break the loading chain so the engine can actually boot, and then you can just load it manually on BeginPlay or whenever you actually need it.
ah
Yeah, that makes sense, initializing it in the class itself bakes that dependency into the engine's boot sequence or something, but doing it in the data asset instance keeps it lazy-loaded?
if that still feels a bit hacky, try switching to a soft object reference in the class maybe
I would say that in general setting an asset reference property in the blueprint of an asset type is a mistake. It should only be set from the instance.
It would be a little different if the property where a soft reference instead of a hard one, but with a hard reference it causes all sorts of forced loading issues on the type.
After a lot of investigation and engine version back and forth I have found what makes it fail, but I have no idea why it fails. What I've found (for reference, maybe it will help someone):
When "Editable when inherited" flag is true on the custom component (as it is by default) it fails. It can be disabled on the component tab on the offending BP or even globally on the component itself. It solves the issue of errors on packaging. Unfortunately I can't disable this flag without loss of expected functionality of my component. I will need to find other way. I can also confirm that packaging did not fail on 5.5 on the same implementation. It started to fail on 5.6 once one of the offending BPs was re-saved so it was taken into packaging delta I suppose. So either 5.6 (5.7 as well) is more strict in this area, or it's a bug. I'm unable to tell.
I tried a variety of settings on this, but the rotation isn't right. I'm wondering if the Niag effect is maybe being rotated on the spawn, but the Niag emmiter isn't following the inital spawn rotation?
I resolved it -- Get actor rotation, Z axis only.
hey if I remember well, Launch Character is mainly designed around jumping / knockback behavior, so with a flying character it often switches the movement into "Falling" - it is why your character drops afterward. It appended on one of my project before.
Maybe u can try to set your Gravity Scale = 0 while flying (into your character's movement details)
If it does not works, I think u have two solutions :
- re-apply your movement into your "Flying" mode after the Lauch Character
- or simply donβt use Launch Character for air dashes (Add Impulse, Add Movement Input, setting velocity for a brief duration....)
Hiya, I've been trying to make a projectile that arcs to where the player is going and it works 90% of the time, but sometimes the vector it generates is just 0 and I have no idea whats going on
I think it's specifically when the player stops moving and I'm trying to figure out how to fix that
https://blueprintue.com/blueprint/u-z1-zoh/
There is a homing option in the projectiles
I don't want it to home, I want it to arc towards it's location and then just go like a tossed rock. I've now fixed it, I figured out my projectile speed was too slow,
So you start the projectile with homing then deactivate it shortly after
But oh well if you made it work your way even better
Yeah I had no idea it had a homing option, but at the same time I've never been able to figure out how to make a projectile arc, it's always a straight line
Hi, i did a simple bp that allow me to spawn a wall along a spline, however the uv cut is very clearly visible and i was wondering if there was any way to offset the uv to keep the tiling going
Are you meaning the wall itself or the little blocks you're using for the pop outs? If the wall itself where those two L shapes are, that's just up to your texture tiling along that face.
Adding to what Authaer said, if the texture is a tilable texture that shouldn't have seems it could be a normals issue on the model itself.
I think you mostly just need to pick a same color for the top and bottom blocks here. So they look like one long block when they're put together instead of four small ones. So they'll blend the wall better.
If you want a real full anti tiling solution, you need a shade mask that can randomize the shade of blocks based on a PerInstance basis so that they're truly random.
Just to be clear. I wouldn't advise the shade mask unless this is like cinematic. It's a lot of effort for no real gain. 97% of gamers aren't going to be phased by your tiling wall. And the 3% that are, were going to be butthurt by something else and stop playing anyway. π€·ββοΈ
I added a Niagara effect to a skill, but it's dropping FPS down to 25 upon using it. It's quite a small and short effect. I'm looking into what would cause that. If anyone has suggestions let me know. I'll start with obvious like particle rate etc.
Yeah im meaning the texture itself, i managed to solve my issue by just having the mesh be perfectly the same size as my texel density so that the next spawned part of the wall tile naturally
i completely agree, it was mostly to avoid the cut in uv along the wall, thanks for the answer, always cool to learn new things
I've never done it on a 3D mesh, but I've done it for some UI stuff. Same concept though. Kind of neat. π UI gets away with it more because you get away with allowing more dynamic stuff for it since there's usually less of it.
What is the effect? And what was the original FPS that dropped to 25?
I'll do a quick recording. I can SS any of the niag details if needed. I set the max FPS to run at 50. It keeps that quite steady. This is the only thing in testing that drops it.
Multiple emitters? If so I'd go through them one at a time to narrow them down to the one making the drop.
These seem fine. FPS is good right until these shatter.
Yes 10 total. I'll isolate each one. So far it's not Emitter 1!!
Ultimately the second Sparks color 001 results in all the lag. Without that enabled there is no identifiable frame drop at all. And I can't really see a difference visually. I'll inspect it a little just to see if I can figure out why.
It's something in the light rendering.
Makes sense if you're spawning a bunch of them. Light sources are expensive.
Does anyone know a good youtube tutorial on boss intros? I have an enemy BP in my game that I want to make play a little animation before it goes into it's blueprint logic.
I haven't done cut scenes yet, but some Artwork to assist in your setup
you just play a level sequence
You can trigger a montage which is you're starting animation and when it finished, start the AI. (assuming you're using BT's etc...) If you're wanting something more complex, using the level sequence (as shroom mentioned) would be your best option.
I think the confusion or missing data there is are you referring to a boss cut scene, or just playing an animation on the player character, or potentially both?
No behavior trees just character blueprint, i might be overthinking it, I have thought of the level sequence but how do I get the enemy to like stay put while the animation is playing then when it's done it runs it's logic
how did you make them
you need to pause their logic
state trees you can stop and resume
usually you just make their logic end before the cutscnee
and then after the sequence you trigger the post cutscene logic
Boss cutscene
Are you just wanting a 'Look at me! Im ard!!' type of thing? Where the player still has control of their character and the camera? Or is it more like a cutscene where you have camera cuts?
No camera cuts I want the player to still have control. For example the Mr X scene in RE2 remake
does it feature carrots?
The cutscenes?
the enemy
It's just a character blueprint with logics inside it like Attack player and Move to player
You're AI logic would need some sort of blocker. (To prevent new move to requests and what not) Once you've done this, you can just set it to block, trigger montage and when finished set to not black and kick start the logic again if needed.
or you just dont have AI while in the cutscene
because why would the bossfight start if anyone else is alive
Seems steep with my level, but I have something to work with now
push you'reself
go deeper
it's not a cutscene with camera cuts just the enemy burst through a wall plays an animation and then starts chasing and attacking
Not really, you just need a bool 'BlockAI' or something like that. But a branch check where required in existing logic.
Create a function 'BlockAILogic' and in this set the bool to true, cancel animations (if playing one) and stop all movement.
πeventually I will
you can manually hook it up into a character blueprint
but it's going to be self inflicted flagellation
just try state trees they are easy
make a burst through wall state and a chase enemy state
and then when it gets close it uses an attack state
Never tried state trees before I'll look into it
Ok I have a few things to work with thanks for the assist π―βοΈ
I think this may be correct, but looking for confirmation or better method. This sphere trace will follow the path of the actors weapon. However, in the case of a spell cast or different attack type I'm looking to trace a rectangle forward. To match the casting animation. I presume this should be done by changing the location not the radius.
Setting the location to a forward vector distance for example?
Ideally the trace would a rectangle forward here.
You can use a box trace instead of a sphere trace. Also when doing weapon traces, it's normally best to trace from the previous location to the current. This means you won't get gaps with fast moving animations that should hit but dont.
I'm not sure I fully understand what you're saying about the location. To my understanding the start point is the top of the weapon and end is bottom of the weapon. It's then using the "weapon size" instead of just a single point to trace. Which follows the weapon during the animation. So I'm not sure how the trace from previous location fits into that?
Just doing a trace from the hilt to the end of the blade can sometimes result in situations where the trace missed when the different is big from one frame to the next. (fast moving)
That part I understand.
I did this a while ago which might make it easier to see what I mean. (This was also an attempt at addressing low fps issues)
https://bsky.app/profile/mpattym.bsky.social/post/3lhvokbl4pc2l
So what I thought would be a quick project turned into something that took far longer. So here's what I've been working on.
In short, it's a 'frame stable' weapon trace system. I would have liked to have implemented a hybrid approach but 5 days later it's time to move on. π
I understand the problem, just not how to implement a solution.
You'd apply the same logic for spells as well. (depending on the spell) So you'd trace from its previous location to its current one.
When you start the swing/spell, store it's current location in a var. After that you can use the current location and the previous to perform the trace. Afterwards, update the var to the current one ready for the next tick.
Out of curiosity on this. How did you pull the between frame data for the stable trace?
I baked the local transform offsets, however I found that if you have different meshes using the same skeleton, you have to base the offsets for each of them or it'll be off.
I would have liked to have just pulled it directly from the animation asset but I couldn't figure out how to do it at runtime. Epic as some functions for it but they're editor only.
Not sure I could bring myself to sieve through the various animation related classes again to try figure it out. π
doing a single frame with a single sphere or box trace that kind of roughly hits what your weapon would hit can be a lot better then something more complex
its more predictable for players
in multiplayer iwth lag and framespikes the more complex things can give unexpected results
you could alternatively mix them if that made sense
< 30 fps -> sphere trace
atleast helps you get those hits in, despite some lag π
i've never liked the large collider hit detection method, but i can definetly see why it's being used
question can you use a state machine for animations then tie blendspaces to each of the states so that different blendspaces are used when transitioning?
Isn't that basically what an animation blueprint is/does?
well i wanted to make sure
as i im not getting it to transition, so its not that im misunderstanding it
then the issue lies in why it isnt allowing a transition
The transitions are determined by the transition rules between the states.
correct
and that is bool is set on the character
and the bool is being updated just its not reading through to the transition
Can you show where it's being set?
in the character bp
Could be genius, or maybe completely wrong, but!!!!
In order to establish a forward direction for the line trace I just placed an invisible mesh in front of the player (BP viewport). Thus the end point will always be that location.
Can you open the transition and show it being read?
Would be better as a second bool in the AnimBP that reads the character's value in the update. Your other stuff could stay fast pathed then. But... I'm not seeing why this wouldn't work though.
idk it seems like it should be working
Out of curiosity can you try it that way?
Put a new bool property on the AnimBP, and in your BlueprintUpdateAnimation, get the character's bool and set the AnimBP ones, then read the AnimBP's version.
There's a hundred ways to this goal, if this gets you urunning, go for it
alternatives would be Camera forward Vector , with some normalization towards the characters rotation relative to it
assuming there's not a fixed camera rotation
if it was you could do it as dumb as FVector(1.0, 0.0, 0.0) as the forward vector
assuming X was forward
I found the calculations a little messy and not quite matching other results as things often vary slightly. For example simply finding the ground to place a VFX on. This might work, but one thing that immediately comes to mind is adjusting the distance forward. Since it's set by a static location of the mesh.
However, the radius is already handled. I simply use a float to choose the size and it converts to a vector, but it works fine.
which is what you meant right
Yeah. any change?
It's also worth the question. When you're debugging it, you have the right instance selected in the dropdown at the top?
no change, and it is the right instance
And you're seeing the prints?
yes sir
ok so a little more digging and the print on the character was showing the accurate is crouched bool but on the anim bp its just returning fals
Wait
Those aren't the same blueprint
This IsCrouched is replicated
the one you're setting is not.
I think. Replication marker does show on set nodes, right?
does it need replication
No. But if those aren't actually the same property.
those are the same bools
i checked if exposed on spawn and isntance etible would do anything it did not
how unfortunate
Are you 100% sure that you're not just seeing a naming issue?
Cause character does have a bIsCrouched, which would look like IsCrouched in editor.
I think your AnimBP is pulling the ACharacter bIsCrouched, and you're setting an IsCrouched you created.
and there's no name collision because ACharacter got bIsCrouched
i changed the bool to issscrouched for clarity
hard to differentiate that in BP tho, since it auto removes the b
ok so i was choosing the wrong one
how
now
its reading the right bool state
but the animation isnt switching over
i can see that the character is attempting to switch like its rapidly glitching visually
What is your transition back state? Needs to be NotBool
literally what i just fixed and now it works
thanks mate i was pretty lost on that for a sefc
Yeah. π Editor probably should disallow that naming if it's going to make a C++ property the same name.
Yeah it's just luck that the replication hint was there
who knows what time we'd waste if it wasnt replicated
omg id just delete everything
Based on the results does the actually follow BOTH executions if the match condition is met?
It can't match both. And if there are multiple options, it can only match one because the match is exact. Not a substring contains check.
That's what I would have thought, but based on the results both paths are ran. It runs the sphere and box trace they are visible. That's only possible if both sides run. I disconnected the sphere to test and it only showed one.
It's running the box trace then going back and following the default (sphere trace)
Normally I would just do this. Which will only execute one option. (If any match)
It would be possible for both lines to run if the switch is executed multiple times.
If you put a breakpoint on the switch, you'd see it hit twice.
I found the issue.
It's the set node (Variable). It changes it from Box to Sphere after. That must mean it backtracks back though possibly to the start? During each trace.
I may just put the type in every skill to help prevent issues
Changing the variable will not retrigger the switch. I can't tell anything about when the switch would be triggered based on that small view of the graph.
It's called from an animation notification which is probably spamming it on ticks. Thus when it's reran and the value changed it's running the default path on the next run I think.
Yes, that would be plausible.
While not specific to any issues you're facing, I just wanted to point out here that using strings as a means of comparison between one or more things you need to identify is generally a bad idea. They're prone to typos and they use more computing resources than necessary for determining if something is one thing or another, and is effectively impossible to enforce specific expected values, or to know what values should be entered, so you may end up wondering why something isn't working only to realize you didn't capitalize the first letter of your string, or included an extra space at the end.
If possible, use gameplaytags or enumerators that both can act as human readable numbers. These are both computationally simple, and can make it easy to see what options are available as they need to be predefined. If you don't want to use either of these, then at the very least, use a Name type variable - they're still prone to typos, but under the hood they use a number and are far faster to compare than a string.
It probably won't break anything right now using strings as you are, and while it's not great to pre-optimize code, it's good to get in the habit of using the correct types of variables to begin with to avoid any unnecessary headaches in the future π
Thanks for the info. I'm in the process of updating to game tags. I'll keep those things in mind.
I think that'll mostly be your texture setting. Why do you ask?
This was the result of just changing the variable type. That's not an actual tag. It's Unreal's attempt to translate what was a string. I'm updating them, just noting the data type conversion may need extra caution. In this case there are several clues anyway, the length is a give away since it's nested.
I am using the Horror Engine for my indie horror game. I am getting this error. I tried to debug everything, but I was not able to fix this error. Can anyone help me to get rid of this? thanks!!
Blueprint Runtime Error: "Accessed None trying to read property CallFunc_FinishSpawningActor_ReturnValue". Node: HorrorEvent Graph: HorrorEventCheck Function: Horror Event Check Blueprint: Use
You are calling variable when itβs not initiated or not valid.. so just use if valid node before calling this variable..
The variable would be one of those in this error written..
Using is valid doesnt address the issue when a value is expected.
Infact that will cause silent error which is more fatal.
Thanks for the reply @frosty heron and @twin elm . As the @frosty heron mentioned its silent error. Let me tell you the scenario: I am not getting this error when I open the map normally, but when the map is a child map of another Parent map, only then does the error occur. .
It takes me to the BP class names "Use", this class is the most base class that almost all gameplay mechanics class inherits.
nope @lofty rapids
yes @lofty rapids here it is
There are no any function in my any classes from project, but let me try to create a similar scenario like this, so we can figure out
Check out this screenshot, the event like this often happen when we try to interact with a specific class (BP), and the reference is None.
sometimes using prebuilt things like that horror engine seems nice at first cause you can make a lot of progress
and then bugs appear
and you have no idea why or what or how
and you get completely stuck
not for him apparently π
easy is relative
u did
i did not
it's a part of spawn actor from class node
π€ so why th is tthis happen?? any idea guys? @lofty rapids @lost wolf @full badge
did you try clicking on the error babe
to click on the error move your mouse over it and press down on the button
sure, that's the only error i am getting, nothing much lol
Hi, could someone help me please with blueprints? I can't figure out what's the issue (not even AI helped) and I'm only starting with blueprints
https://youtu.be/XxtfP3hpopo?si=VZmVxKVSS3oH2Ydf
I was following this tutorial but I have to change Dials, so 3 are different, this is working but when I try to unlock it, its saying false
Its only "working" when all Indexis are 0
Support me here: https://www.patreon.com/halbotstudios
Get my assets here: https://www.fab.com/sellers/HALbot Studios
Join the Discord and showoff your work here: https://discord.gg/Syccf4gTwE
Assets for this tutorial: https://www.patreon.com/posts/combination-lock-120009212
Prerequisites: Interaction Tutorial: https://youtu.be/7OmgBa-cKro?s...
yeah @lofty rapids @lost wolf by clicked at the last part "HorrorEventCheck" has this implementation, and by click "Use" it opens the Use blueprint class nothing else
or maybe just dont spawn things at 0,0,0
that framework looks like a nightmare but not in the way that it wants to be scary
Sorry i edited, please read it again,
i see, let me try this
Oh yeah yeah this might be the reason tooπ€
dont use premade solutions if you dont know how to debug
how have you tried to debug it
do you understand what you made
have you tried using breaekpoints or logs
tbh, not really
if you can't figure it out why don't you just follow the tutorial again from scratch
Cause I had to change some parts
In tutorial there 3 dial with same object but I got 3 different on the dials
if you changed something then you broke it
so you must be able to figure it out
just put a breakpoint on what you changed
then you can step through the execution step by step to see if it works
or where it doesn't work
cause your explanation doesn't make much sense
To suit the gameplay
it will do exactly what you tell it to do
I apologies, I tried to use AI but it didnt really help
so if you dont understand what you are doing when you change something it will never work
just try again
Can you show where you're actually setting BP_Dial's Number property?
hmm
oh
just checking
will update when i find something
the first is mine and the second pic is from the tutorial
hold up
ya
oh my god
ya thanks
thank you very much
Not sure where to post this in, but I am encoutnering a bug within UE blueprint debug: posted it here if you want info about it https://forums.unrealengine.com/t/blueprint-orange-flow-lines-pulse-lines-not-showing/2704413
Hi everyone, I have a question regarding unreal orange flow lines, I am working in a project where my orange flow lines has started to go missing. Information: 1: I have linked the proper reference in the debug object settings 2: I have back tested on different blueprints (Example: Blueprint A has IA_Interact Blueprint B has IA_Interact, A s...
If you know any solution please let me know; its a somewhat project wide issue, but it differers from blueprint to blueprint
5.61
Hey Brothers @lofty rapids @lost wolf , finally we fixed it, the problem was PhysicsObject, spawning at the start, but there was already a mesh is located at the same location, the project is too large, too many physicsObject are placed, and spawning at the begin! was bit difficult that which physics obj was making the issue. Huge thanks to my brothers @lofty rapids and @lost wolf
yes very much so
I am not new to unreal, I am sure its unusual behaviour, the fix however I have no clue about
Okee found the issue; apperently there is limited budget on debug visualisation, I am running an entire custom car, so many stuff is on event tick there for all the physics, that was hogging all the debug budget
Yup, seems to be, I updated my post hopefully anyone else searhcing the issue does not have to spend hours finding out why LOL
Do wonder if there is a way to increase that budget will look around for a little bit,
this is annoying problem, not blocker, i change my blueprint parent to another c++ class, then collision will be automatically have overlap response to all channel even though i set BlockAll. I need to manually do this on begin play, constructor didnt work too. anyone has the same problem too? I might need to recreate the blueprint, but it will be lovely if someone has a solution though
i tried on detail and construction to block all, no effect at all. no other script also to manipulate the collision
I mean not big issue, but it is just annoying if i need to recreate the blueprint
Does anyone know why rotating a component that is "sideways" will always give a wrong result / offset, even though the same function works perfectly fine if I try to rotate components that are upward aligned?
I tried using Find Look At Rotation, Relative Find Look At Rotation, Rotation from XZ etc. and also tried using the Inverse Transform Rotation node, it's always the same result.
You're meaning that the yellow beam is wrong while the red is correct?
Yes
Same function, it works on the two components on the "top" but not on the components on the side.
In theory the world direction is the same of course. But their local rotations would be different. Can you show the code for it?
This is how I try to rotate the weapon on the side.
If I use the same function for the one on the top, it works.
I also tried using Relative Find Look At Rotation, Rotation from XZ, YX etc. or using a combine rotator method
It always works on top but never on the side
Btw the weapon on the side has no roll
I made an extra mesh for the side just to see if that has an effect
I'd expect this to break a little with sideways orientations. I'd rely on getting the unit direction from the thing to the target. And then in it's own local space find the rotation by inverse transforming that direction into the component's local space and turning that direction into a rotator.
Why is it breaking a little, is that an Unreal annoyance? π
And how would you do the "find the rotation by inverse transforming that direction into the component's local space and turning that direction into a rotator" part?
Just a few. I'm currently swapping branches, won' thave the editor open for a minute. π
@maiden wadi is this what you meant? It has the same problem, top part works, side part does not.
That makes sense because you're using the actor's transform.
The actor is upright. You need a transform that the Base is attached to, which is oriented sideways like it should be.
You mean like this? Or am I doing something wrong, because it jitters a lot and is also not aiming correctly.
Can you show your components list?
Aye ^^
The starboard base and cannon have no roll, they are a different mesh from the top version.
Basically X, Y, Z rotation is zero
What about Starboard_Base. It's not 0,0,0 right?
You mean the rotation?
Yeah
It's all zero π
I specifically made another mesh that had no rotation, because I worried rotating it by 90Β° would be the reason for this problem
Hmm. Trying to follow this. Are you using a different mesh for each side? I'm confused how it's default rotation isn't rotated.
Ah. Okay. So for simplicity...
What I would do is add a new scene component between..
does it work if you rotate the top turret 90 degrees?
Gunship and StarboardBase
what about if you rotate it 5 or 45 degrees?
90Β° yaw or roll?
do both not work?
Or shroom can just talk without following the conversation at all and confuse things.
I hate this fucking server some days.
At that point you should be able to do this. All of your Base and Cannons should start at 0,0,0. And you rotate their Root to orient their default correctly.
Yeah
oki
And if all of your turrets are set up like this, you get to just do this for each one.
@teal dove Minor fix. I realized I was having two thoughts at once. You just need to normalize the local point.
Did you rotate the Root scene by 90Β° ?
Yeah. And your Base/Turret needs zeroed.
So I should use the "upwards" mesh then?
Correct, for all of them.
oki doki, let me change that
Thanks so much already for helping me out β€οΈ
It hits it almost π but it's already much more precise than anything I did before
Does the top turret have the same imprecision?
They should pretty much track identical now.
let me check
Yes the same
On your tick, can you debug draw a point for the target Actor's location of like 0.1s?
aye
Pink debug point (I set it to 0.2 to see it), sometimes either the top or the bottom cannon are hitting the target for a short time, but most of the time they are not
Oh Cause... Yeah sec. π
Oh I got it working!!! π₯³
Yeah the cannon offset. π
No actually what I did was to follow your lead with the scene points as the root, but I swapped the logic for an Inverse Transform rotation.
And the result π
@maiden wadi Thank you so much!!! omg this literally gave me weeks of headache and your solution is so elegant and simple π
He im adding child to vertical box, but is there a way to make em stack uppwards instead of down?
i want them to add uppwards if u understand
How are you adding the text? A string append might work depending on the situation.
In this case Swipe is a sub category of Bash instead of skills. I can delete and recreate it. However, is there a more proper way to just shift it? Just changing the name is the individual name only?
You can't use Greystone.Skills.Swipe to change it on the rename because it already assumes the prefix.
That will just create sub categories below it
I'm trying to move an object relativ to the camera view. so the object is supposed to move along the forward vector of the camera if I press up (ignoring potential tilting). AI suggested something along those lines but it doesn't really work.
If you have it attached to a lot of things already, you'd put in a tag redirector and just remove the old and put the new in I think.
πΆ Mom's spaghetti, palms are sweaty. π΅
Someone needs to learn about the set members in struct node π
There might be a pot of gold at the end rainbow though
I'm making an RTS and I'm right now trying to figure out how to make chain movement like Supreme Commander. In Supreme Commander, if you hold down Shift and right-click, it makes a waypoint that the selected units go to. If you click at a different spot, it makes another waypoint and units go there, etc. The code I got so far
I have this code here inside RTS ControllerΒ https://blueprintue.com/blueprint/82zm7i03/
And this one in the Parent Unit ClassΒ https://blueprintue.com/blueprint/bjaxzsq4/
I'm also new to Unreal 5 and wondering where I messed up the code.
if i do this it's an infinite loop
You should only be calling ChainMovement OnRequestFailed and OnMoveFinished
Basically, wait for the move to complete, then you can call to chain to the next movement.
ok
Hey, How do i make a weapon trail in the montage where the socket name is from the weapon not the character mesh ?? ideas ?
the units move but the sec i click to a different place it changes direction immediately
nvm it dose it in reversed way the array when i add new item it goes to the new click place and then goes to where you first clicked lol
Ey. My project is locked to 60 FPS during PIE. I messed around with the SmoothFrameRate option in the project settings but that hasn't helped. What am I missing here?
T.maxfps 0
I want the pink circle move away from the camera, if I press up and left/right from this view. however the camera can be from a different perspective in a different battle. also it can be tilted down on the battlefield. so just using the forward vector would get weird results.
Pick your origin
Not entirely sure what you want but if i have to guess you seems like you want to use the player view as the origin.
The circle movement will just be origin + offset.
Forward won't work for this. Instead calculate the direction from the camera location and the circle location ignoring Z on both
so apparently the setup posted earlier was working for a while, it was just this one camera that behaved differently and confused the shit out of me.
thanks for the assist.
Is it possible to have a blueprint distinguish between a wall or floor, or better yet, find the angle of something it's hit and set its angle of the object?
Yes, on the trace result you can clarify which objects you are looking for. (Hit enemies, not a wall for example). You can place tags on the blueprint then check if that tag exists on the hit result. Contact will grab the object you overlapped so you can also get it's properties.
Your question is too vague, you would need to say more about what you are actually trying to do. Walking on walls? Bouncing projectiles? Both things need different approaches
I'm trying to make it so I make a "pool" of acid, but it's basically just gonna be a blueprint with a sprite and a collision to make damage to other enemies
I'm throwing a projectile, and when that projectile hits a surface, male the pool spawn
Then an angle from the hit result of the projectile hitting the surface is your best option I think
Thank you
I cant find "Impact normal"
I can find "Hit normal" but because it's a vector I can't make it a rotator
You can get the rotation from x vector. However, you can just do an == on the vector directly and check if it's equal (or nearly equal) to 0,0,1.
In my game I do this
tried searching here, but found nothing. seems like text arrays in actor components are broken for me for some reason.
it just saves default value once and corrupts, nothing except deleting it and creating new one will work.
please someone try to recreate it. new actor component, add text array, add couple lines, print array on begin play
then something is definitely wrong with me, tried to reloading several times, and verified files, still has it
Print array length at begin play and see what happens
very weird
legit a few times then freezes on one number
trying to figure out what exactly does that
looks like it prints legit when values are empty, but as soon as i put something in it breaks
Anybody actually use "Set" variable type?
I have from time to time. It's a good way to compare arrays.
Yeah, if you had two separate arrays with values in them, you can convert them to set, then use INTERSCTION or DIFFERENCE between the two sets to see how they differ relatively easily. UNION actually can make a single set out of two sets
Yep tutorial time
What happens if you make array on event begin play and then fill it there ? Instead of default values
I'm on 5.2.1 and followed your steps exactly, and didn't have any issues. Expected lengths were all there :/
that works normal
Something is wrong with your engine installation i think
Maybe installed in a read only folder or a antivirus is screwing with you
Judging that this is on a component. I assume this is on that character that is placed in the level? If yes, I assume if you look at the character instance's component list, you'll see the array at 3 indices even though you're changing the class default array.
actually yes
actor's instance doesn't update
This is intended behavior. You only ever want the instances to change if they are identical to the class defaults. Somewhere along the way you altered the class multiple times before the instance propegation. So the instance decided that it had designer set values and kept them that way instead of changing to the class defaults.
still somewhat weird, if i attach component with no array, then add array and set default values only the first one will be set in actor, the rest will be empty elements
and after that actor's one is locked forever, until i manually press reset
You can avoid that by loading a map without the character place in it and changing values in the component, and then saving and going back to the map with the character in it. I'm fairly sure that'll propagate the changes correctly.
yeah thanks for the help guys
Can anyone help me figure out why my enemies are inconsistently taking tick damage from my acid pool?
It's set so that when they overlap with the acid pool, it casts to them and calls the events at the top. Is there a better way to do this?
https://blueprintue.com/blueprint/jgboz-8e/
They're able to just stand in it and nothing happens
does it damage them once?
Sometimes yes, sometimes no
It depends if Mercury is in retrograde and if the sun is casing solar bit flips it seems
(it's so inconsistent that I can't figure anything out)
make the collisions visible
you're using component overlap, not actor
thats fine
I changed it from a sphere to a cube and now it seems fine???
I don't know if begin overlap fires if the thing spawns in an overlapping state, start with checking that
might not have been actually overlapping, make the colliders visible
Yeah it is now
but an acid pool might work better like this;
Tick/Timer -> get overlapping actors -> for each of them, damage them
When it was a sphere they just didn't touch it
their colliders are their sprites
Yeah it's been fine with everything else
Set bGenerateOverlapEventsDuringLevelStreaming = true in overlap volumes, if you want to check for things when they spawn in
I turned capsule collision off for precision when shooting them
This seems to work now
Well, I don't want you to be able to shoot through their arms
or legs
or parts of them that aren't in the capsule
or to be able to shoot the capsule when their body isn't there
The capsule just isn't accurate for my use case
So you check for collision with the skel mesh
You dont have to turn off capsule collison
if you do a hit check on the 2d sprite instead of the entire actor
But thats doing the same thing
The capsule is able to touch the player and the environment
So if you touch them they act like a capsule
the capsule ignores projectiles
UE4 has the ability to set and customise collision channels, specifically for this purpose
That sounds correct
if you want combat hits to be vs the sprite but movement be vs the capsule, that's the typical approach
Yeah thats exactly how I've done it don't worry, I'm not sure what Blackhand was trying to say but my collision channels all work fine
I could make an "enemy" collision channel but as of yet it's not caused issue
You said you disabled collision on the capsule which can cause problems
but you didnt ........
I was talking about in context of the issue not overall
Quick look at a harvesting mechanic from a UE5 Blueprint survival systems project.
I turned the workflow into a course and I'm looking for ~30 people (beginners) willing
to go through it and share honest feedback before release.
If anyone is interested, let me know and I can send a free access coupon.
@copper blade advertising goes to #1054845120236757103 as per rule. Otherwise the channel will be flooded with ads.
Feedback without a coupon. π
I am having low FPS problem and I am not sure why. I don't think its a graphic problem so I must have a blueprint or widget problem some were but I am not sure how to go about finding it.
You need an insights trace.
whats that?
Look in the bottom right of your editor here.
Play your game, get to the FPS issue. Click the little circle in the editor next to Trace. It'll turn red. Play for a few seconds. Then click the red circle.
Then you can either open the Session Browser. Or go to Recent Traces here to open it.
At least they're largely more positive than negative. π
Click on the part where it's kinda high in the middle but not red. Not interested in spikes as much as your consistent frames.
You should see a Gamethread line with segments kind of like this showing everything happening on a frame.
I think I am where you are at. What should I look for?
Scroll down a little. Interested in a full frame on the GameThread
This?
My engine loop is 32 MS and world tick 13. ms that seems quite high
Not a lot of info in those wait tasks. Could try to enabled StatNamedEvents in the Trace dropdown and try again to see if you get better info.
Upper
The name is usually a timestamp. YearMonthDay_HourMinuteSecond
I see thanks.
looking at this I can't find any blueprints only particles and skindata
Looks like you have a geometry collection running. Is that happening on every frame?
Also be aware that profiling in editor causes overhead. Stuff running that might not in normal game. Plus you're capturing all of the editor's UI too in slate area.
wheres that at. I have geometry collections in my build system but they are only active when the build Item is destroyed and they have quick sleep settings
Ok but I was getting on avrage 44-53 frams a sec in editor no its low 20tys
and I am not sure why
My kid got a hold of the keybord a bit back and uterly destroyed my main pawn class. Had to pull an old version from my source and I am wandering if something elss broke or mybe I did something and did not realize it. either way its borked atm and I realy want to find and fix it
Unsure. If you want to upload the trace somewhere I can glance through it.
Ok one sec