#blueprint
1 messages · Page 371 of 1
A variable you'd create to help manage what chunks need updating so you can spread them across frames.
It's also worth a note that you don't actually render or display all of those. Just the top level of each X,Y cell. The rest is just data in some 3D array somewhere.
what is the problem with this setup?
when I start the simulation, the class isn't being spawned on a grid
I tried this setup on adding new items in a vector array and the array would be empty too
For a start, change your collision handling override. But if your array is empty if you tried dumping it into an array of vectors then what are your X, Y, and Z?
the X Y and Z variables are changed in the scene
those variables are set to Instance Editable and Expose on Spawn
But they're all over zero?
I changed the X to 5 and its just nothing
Are all of them above zero?
oh wait!
I see the problem now
yeah, two of them was zero
and appearently that was the reason why nothing is happening
its been a long time since I've done a grid system
Yeah. Your loops were seeing that their last index was -1. And since their starting index, zero, was higher, they just auto complete.
now they all spawn how they should
How does "not rendering" work in BP in unreal ? Like how do we do that ? Just destroy the blocks ?
so that means the default value needs to be 1 and not zero
Or not spawn them.
And to be fair with what I said before that applies if you have no caves or anything. This is why most games like that use a voxel like system. It's all just point data
Whether you choose to generate a smoothed mesh display around it or cubes is visual preference in the end.
smooth mesh display ? What's that ?
Here, my game will be a School Game like the game "Bully", so it's hard to take a decision about not rendering stuff
In BP only. I'd probably try to just do some ISMs in chunks maybe and show them all. They'll get culled anyhow and as ISMs you can avoid overheads. Like you don't have the ability to do voxels in BP, there's way too much low level math needed. 🤔
In your case it would mean not adding an instance to the ISM for blocks that are fully surrounded.
Yeah. But I feel like the math needed to figure that is going to cost more in the end than just adding the ISM instance maybe?
Well, maybe not. Just a neighbor grid validity check, but... BP. Slow.
It depends. Adding/removing an instance to an ISM with a lot of instances already can cause hitches.
But yea, the BP loops would probably be the limiting factor but you should be able to mitigate some of it with reasonable sized chunking.
Isn't the cpp route + PCG a better option?
That's why I'm feeling like just making chunked ISMs like... 4x4x4 or 8x8x8.
His original request wanted BP only.
Ah, well that just complicates things for no reason
PCG feels scary here too. over four million PCG points. 😬
You should try it. It's a pretty fun project actually. Its great for learning how to manage data and how best to use it.
Doing a BP only project is way more scary imo.
I don't think I could do it at this point. I'd be in tears by day two without my libraries.
"WHY IS EVERYTHING SO UNCESSARILLY FUCKING HARD?!?!?"
Plus, the workflow feels terrible, have to take out your hands from the keyboard every 2s to connect pins or search stuff.
I did some BP only prodecural generation stuff many years ago. It surprising worked well, averaging around 45 fps when generating.
Funny enough the graphical coding part never bothered me as much. Probably because I approached it without a lot of prior written coding.
I do that anyway when coding. 😅
But when coding you don't need to use the cursor 
I flick and scroll through the classes a lot to mentally follow the execution flow. lol.
GPT enters the room
left ctrl + up/down keys is faster 🙏🏻
I can scroll faster. 👀
or even left alt + up/down, this scrolls super fast for large files
I can't use GPT honestly. I find it a bit lacking. Even with giving it directives and rules. Claude tends to be a little more willing to plan and follow your styles.
left alt + down basically goes to the next function
Gemini 3 pro takes the cake on that imo
Gemini had issues maintaining rulesets for me. Too much doing it's own thing. Really put me off from using it.
Meanwhile I hand Opus 4.5 a file and ask it how it would approach a task and it keeps all of my previous coding styles, adds scopes counters and logs automatically, etc just because that's how the rest of the file is laid out.
I complicate things for a reason (i.e C++ is complicated) 👀
It can be. But it can also be simpler than BP in some cases.
Eh, i don't have access to Opus 4.5 to test this theory
What is it doing?
In my case for the game I want to make, which one is easier according to you ?
The only honest answer to this is simply whatever you are comfortable using that can get the job done.
For me this is a mix of BP/C++, because BP is quicker to iterate and test in. C++ allows structural changes and speed that BP can never do or has to do awkwardly and hackily.
If you're not comfortable with C++, try to find a way to manage this in BP. But if you have the time to get comfortable with C++ and want to, try it out. Even for basic systems. 🤷♂️
In your case. You have up to over four million entries of data. If you plan to allow this to be altered at runtime with user tasks like digging or whatnot. I'd recommend maybe a C++ system backing your BP code. It can iterate, do complex math, etc much faster. And if you wrap that nicely, you can still do most of your design work in BP.
At least from the inital post and stuff.
It doesn't sound that complex, general design wise.
Or, is this gonna be like a fully fledged minecraft? mine-carts, falling sand, pistons, etc?
Cuz, removing 1 block at a time, or adding 1 at a time, shouldn't be bad in BP, or C++
As soon as you have physics, sand, light, moving mine-carts.
Yeah, BP is probably gonna have a stroke.
it won't have mine-carts, falling sand, etc... but it will have light as I need to have light in my level and it will possibly have pistons as I want to make secret doors and stuff but I think I won't make it the same way as Minecraft, I want something smoother than that
Yeah, that'll probably start to have issues in BP, namely pistons.
Now you gotta move, and/ or remove/ add like 8 blocks at the same time, or very quickly, and effectively.
Like I want to make this kind of smooth doors https://youtu.be/5uaEQXwQ8q4
Link to download the mod: https://www.curseforge.com/minecraft/mc-mods/create
My social media:
*Telegram: https://t.me/MineEasyGaming
In this video, I'll show you how to build sliding doors with the Create mod.
I'm sorry, but I'm using a translator
#Create #minecraft
#shorts #short #gaming #minecraft #music #createmod #relaxing #tips #loop #asmr
Yeah, I think BP would start to die, especially that last one.
Moving like 20 blocks all at once.
But, concept wise, smooth movements like that are possible.
I don't think it would cause BP to die
You don't think so?
Keeping track of, and moving like 20 instances, potentially in multiple grid slices?
and, collision traces for all of them?
You coul;d easly design it by hiding/despawning the affected cubes, spawning them as a part of the piston for the movement, so it moves as one instead of changing the hism all the time. Then reposition the originals to final location and show them again. With some actor pooling etc
If it wouldn't have irregular dimensions, you could even make it a single collision block and spawn the cubes when moving as particles, they would be even lighter. And one single collision box would block the path for the time of moving
You can find several ways of how to do it more efficiently. You don't need to make systems in the same way as the player would assume they work
But as always - it all depends how you make it, hard to tell in a void which method would cause visible problems
I don't think so either. Especially at the scale OP mentioned.
You just need a system that can remove blocks from the main static world and spawn a BP with the blocks inside instead.
I've done some tests with something similiar for using ISM for static items in the world and swapping them out for a BP the player can actually interact with.
For material wizards there is probably even a way to copy materials from the singular cubes to one bigger cube so you would use one mesh for movement, just with different textures pasted on top of it
Probably yea. Some artists can do some wild stuff when they open up that material editor. 😅
I think the new BP instances system does something similar in reverse if I understood it correctly. You place a BP and if you get to far away it swaps it out for a static mesh. Its a shame it doesn't currently work with spawning them dynamically at runtime.
Yeah, I saw that.
It was unclear if it actually switched back or not.
I saw some video.
Started as meshes, but when a var was changed, it became a full actor.
It makes sense though. There's a ton of stuff that don't really need to do anything unless the player is near it.
Is this for graphics? Is the number the levels subtracted from max?
Yeah, I have yet to mess around with it.
I wonder (but sadly doubt) it works with individual var replication?
I'm sure I can remember reading something about the BP's still being replicated. Granted I've not looked at it since it was first shown.
Is Epic max, or Cinematic?
Yeah, if it can rep individual vars, and keep var values, after becoming a generic mesh, it may actually be great/ perfect.
But, I gotta mess with it first.
Cinematic is the highest.
Thank you.
Hi, can i change a socket's transform in sequencer while making custom animations?
When getting an asset primary list, is the order its returned just alphabetically?
I'm pretty sure it's not sorted in any specific way. It's probably best to assume it basically random unless you do something to it.
Cinematic level. ❤️ Complete with real smoke and explosions in the background for your gaming needs as your GPU goes up in flames.
Hello all,
I am trying to recreate the movement system of Eriksholm/desperados 3 where if you place your cursor on an invalid surface, it will find the closest legal area where the character can move to and project a movement indicator there. For testing so far i have the code you see in the image and a Navmesh set up with two obstacles. The small box works very well with this. No matter where i click on the box, a red sphere will appear on the closest point to the navmesh. On the bigger box though, only one side works, the one depicted in the image. on this side, no matter where i click (green sphere) a red sphere will be projected on the closest navmesh point. But if i click on any other side, or on the top, i only see a green sphere. The box is a simple shape. Any idea why this happens?
Edit: the projectPointToNah node doesn't return false when i click on the sides that don't return anything...
I think i figured out why. I printed the coordinates that the node was getting and they seemed to be in the cube so i placed a see-through material and behold, the navmesh is registering in the middle of the solid cube mesh...
when making object pools, does it matter where the pool is in the world? any recs for where to spawn this in
hey guys does somene know how to prevent conflicts when rebinding inputs (with enhnaced input sys)
When you say Object, what is the object you're pooling? Usually context will matter a lot here.
There's a checkbox for this. I can't recall if it's on the Mesh or the Component. Pretty sure it was the component. Like... GenerateNavSomething.
good point, im going to start with bullets (projectile actors) and then DMG VFX. those two would probably make the most impact
Sorry for the double ping, just checked. 😄 FillCollisionUnderneathNavmesh
I'd be personally inclined to just make this a component that is attached to your GameState unless you want to write a world subsystem in C++.
that sounds easy enough, but also semi interesting in the custom world subsystem in C++, as im a bit more comfortable roaming around in cpp land
It'd be a better choice. Already has a global getter in BP by default as a subsystem. It comes prespawned with any world. Only downside is that if you need to set project parameters or whatever for it, then you either need to make some sort of actor you can drop in the world it can grab for defaults if you want world specific ones, or you need to make developer settings you can edit for project wide settings.
looking into it now, def seems cool, would actually think this would be great for a music manager as well, but that is completely different idea, but subsystem in genreal seems like what i've alwasys thought of a music manager would be
would i need my projectile classes to be in cpp tho ?
(they currently are not)
i suppose i coul djust make the ref a generic actor and then cast to the needed class
Yeah. If it's just for pooling, you can stick with Actor.
They don't even have to be actors
I have a blueprint lift with sequencer, created two door halves , shows in editor view, but when adding 3b4e ( first one), typing static in add button only shows static instance I've never seen this berfore, 5.6 here anyone else know about this ? The meshes are in editor view where I want them, but adding to BP and nothing shows up ( using static instance node) ???
hmmm, not sure what i would be using that wouldn't be an actor in this case... unless maybe a VFX? like niagara or something?
but my bullet logic are current actors with some vars in them that handle dmg etc
they have VFX on them as well
or were you suggesting the bullets dont need to be actors ?
assuming I have everything else connected, does removing an index this way update the struct in the original array?
Well. Realistically you could save a need to instantiate so much if you turned them into structs. You could pass primitive data to the renderer if you wanted rather than using components. Or just render everything in a niagara emitter probably with some injected data.
Then your movement updates become basic traces and if you maintain low memory allocations with removeswap calls and such. Your bullets could be in the thousands for what you'd pay for 20-50 bullet actors.
No. Loops are copies. You'd need to use the array index and pull a ref from the original array for the first loop. And then for the second loop I think you can just remove from a break pin like that if I recall, maybe.
Word, thanks!
hmmmm that seems OP and i may just need to dabble in that realm
my bullets are actually just an actor with a component that (on tick) moves a line trace based on velocity, so itsl like a glorified line trace with fake gravity / velocity
not sure how i'd be able to use that logic in a struct tho, might be a bit outside my understanding
Your actor uses projectile movement component?
they can just be structs
no, it's a custom component that is really just drawing a line trace on tick, adding velocity to posiiton and updating it, so like a fake way to do gravity and other manipulations without having to do anything actually physics based
that sounds awesome
Right. So structs are essentially identical. The main difference is that you do the movement updates on a single array of bullets all at once for memory alignment rather than for each in their tick or whatever.
That's the real way to do gravity. That's exactly how gravity is done in the physics engine as well
I mean not exactly since Chaos is a PBD engine but the point stands, faking physics IS how physics is done.
Simulation is just faking it with math
lmao, that makes perfect sense. good to know im not reinventing anything here
this sounds great, still a bit confused on the aspect of doing movement updates on a singel array of bullets all at once tho?
and are you both suggesting the same thing here ?
so i dont over confuse myself
You do your current update work in a tick function right?
yea
in a componenet, on the bullet actor*
for clarity*
So your thing registered it's tick callback at some point. So did the rest of it's type. And some array just comes along and tells it to tick. And then you do your math on the object.
Two issues with this, one is that it's an object, which means it can be anywhere in memory, it's not contiguous.
The second is that this tick indirection means more functional overhead.
Instead of 100 things running tick. you make 1 manager run a tick
Instead of 100 tick functions running to update the thing individually, you have 1 manager that runs over the array of them to update them.
By having the array of structs in a manager you're looping over contiguous memory, which means it can all be shipped to the CPU at once. It doesn't have to fetch it. Faster.
And by not having this thing call this thing to have this thing call that thing, and having a bunch of virtuals, etc etc. You pay no real functional overhead. Faster.
ngl, almost confused me more, but maybe not... let me try to simplify what youre saying in my own words:
basically, instead of each bullet running it's own tick logic etc, and perhaps even having multiple bullets at once, running multiple ticks at once, you're saying that there is a single manager that ticks and any "bullet" with this new concept, would essnetially be working off of that singluar tick, no matter how many bullets are firing at once, etc ?
Correct.
Firing a bullet becomes registering a struct in this array.
A bullet being destroyed is this struct being removed from this array(using removeswap)
Movement updates are iterating over the array of structs to trace and update their positions using your physics logic
You can represent any bullet like this because a bullet is nothing but the idea of a thing of some size/shape moving at a specified speed with a specified mass. At which point everything beyond this is just visual.
verryyyyyy nice. yea i like this appraoch, makes perfect sense, and legitmatley lightyears more performant than what im currently doing, and with machine guns or something with way more bullet per second, this would really be a benefit
wanted to understand before i went into , appreciate you explaining
now.... to actually do it
assuming the subsystem concept is still in play here for the managing aspect of the actual bullets, yea ?
Sure. A WorldSubsystem is perfectly fine for this. At most it might need to spawn some special actor for effects if you want to go that route to allow easy scripting on them, but 🤷♂️
nice, and also, would this all be best done via C++? would be ideal to make like the bases in Cpp and then be able to extend it in bps
the world subsystem, for sure in c++ , that you already mentioned, but for the remainder of what was discussed, like the removedswap, which im assuming is c++ only
Pretty much all of the bullet updates and stuff would be C++, yeah.
nice, will be good leanring process here
for ref, is this essnetially part of what we were talking about above? . and what file / class is this in ? assuming a c++ bullet class of some type ?
just something I made
lmao, i could have guessed that part
was curious if it's relevant code to the concept of what we were taliunga bout, aka can i steal it
(not actually steal it, but utilize as ref in some way)
Sure go for it.
Here's the main architectural difference vs an actor with a projectile movement component.
Actor: (many of these)
PMC:
Tick:
Do math, cook up next position, sweep to it, detect hits
vs
Subsystem: (One)
Tick:
For each ProjectileStruct in AllProjectiles
Do math, cook up next position, trace to it, detect hits
The important thing is that the 2nd approach is MUCH more cache friendly. For 1 or 2 projectiles, it won't matter, but for a bunch of them, it'd be gobs faster.
hell yea, i like it. yea really doing this for the inevitable aspect of many players firing at once
is this struct in the subsystem file or would the projectile struct be in it's own header file?
Doesn't matter, I like to put gobs of stuff in one file
cool, that's what i thought. still cpp noob so always need to ask, but i also feel it's more easy for me to toss alot in 1 file when i make things in cpp
The only thing worth noting is that if you end up using lots of C++, you're increasing your compile times by doing so. It's not a huge deal though, there's nothing technically wrong
hey i just started unreal and im using the first person template rn
im trying to add a sort of double jump when you jump off a wall
can someone help explain why hit 2 and hit 3 arent being printed or any of the other actions?
The white wire can be thought of as the “thread of execution”, and things happen in order, following it, from left to right (generally)
ohhhh so everything has to be connected via white line?
The nodes towards the right do not have an “exec” connection “input” and are disconnected from the event entry point
Everything with one of those white triangle inputs on the left side, yes — except timeline nodes
All the nodes that don’t have the white triangles are called “pure nodes” and they work differently
But that’s all automatic and you don’t need to worry about it yet
Nodes that are red are usually “event” nodes, and are “entry points” that are called from something else
So, here, your On Component Hit event is called when you bonk or are bonked, and then the flow of execution follows the white wire, to the print string, and then it stops
i see
okay yeah
so like
red is event
ones with triangles are actions
ones with no triangles are operators
Yes!
okay thanks!
That’s a solid framework to have while learning
it works!
I know it's an old series, but if you're struggling to find resources to learn BP and you're relying on LLMs, you might even give "Blueprint Essentials" a try - https://www.youtube.com/watch?v=zaVY5A0hqiI&list=PLZlv_N0_O1ga2b_ZaJoaR5dLHOFw4-MMl
I can personally vouch for it being useful because I watched it when learning the engine
For the full tutorial playlist:
https://www.youtube.com/playlist?list=PLZlv_N0_O1ga2b_ZaJoaR5dLHOFw4-MMl
This video overviews the concepts of variables in Blueprints and how you can create and use them.
A link to the wiki for further notes is available here -
https://wiki.unrealengine.com/Blueprint_Essentials:_Variables_Overview
Blueprints execute from left to right, right? Well, mostly. But sometimes they have to execute in interesting ways that may not be obvious at first. In this video we discuss how Blueprint execution works.
A link to the wiki for further notes is available here -
https://wiki.unrealengine.com/Blueprint_Essentials:_Blueprint_Execution_Order
That'll cover what I just summarized
And if you’re relying on LLMs, don’t
I've got an animated box.fbx it represents a train.
How can I use a blueprint to swap the box with the loco mesh, and then spawn a wagon that will inherit the anim, but just be offset in time?
That's optimal because all wagons follow the locomotive.
Ultimately I'll have very long track alignments and so, very long animations. I don't have splines available in unreal.
Currently I automated spline IK rigs in 3ds max and make big exports of long animations, then big imports into unreal, and it's amateur.
I don't play levels, I just render sequences.
a quick question, is Level streaming necessary for games that are not open world, but composed of smaller levels that are traveled trough a loading screen or are cull distance volumes good enough?
If you travel through them with loading screens, then that's not level streaming
The idea behind level streaming is that you have a persistent level open and load/unload smaller parts of it based on where the player is. You can of course hide that loading time with a 2D loading screen but one usually places the triggers for the load in such a way that the player doesn't have to wait.
If you were to switch between 2 persistent levels via e.g. the OpenLevel node, then you would usually use a loading screen to cover the active load time during which the player doesn't have a pawn etc.
so it is not needed for small-medium levels? optimisation-wise
You can still use it anyway. I know some studios that treat them like layers so they've have different maps for different levels of detail. So big assets in one level, medium in another, lighting in its own level etc...
All depends on how much stuff a level entails and how much ram you wanna use.
Burn that bridge when you get to it.
Does anyone know if there a way to use legacy camera shake with ndisplay?
i have created the subsystem in cpp (can share if you'd like in #cpp ), but i have a question regarding hit's / visuals. how do you handle the hit of the bullet? so that you can apply damage, visual FX etc. i made a callback/delegate, but i realize that this will essentially be called no matter what on anyone that has the event subscribed to, so in other words, anyone with a gun, which would not be the intended logic. but i just added it cause i thought i might be the move, but now that i realize it's a subsystme, it def is not the move. unless there's a solution with this , like checking the attacker to the owner of the weapon that i'ts firing on (which would work, but a little janky). but yea just curious how you're handling the visuals and the impact itself with the logic from the tick ?
Why would the gun need to bind to the subsystem in the first place? I would assume the subsystem would just apply the damage on the thing it hit?
that's probbaly the better move, i guess that's what i was asking about is where would i best do the damage? i don't love putting all the logic in cpp cause iteration is a bit more challenging for me that way, but i did make a data asset that is essnetially all the bullet stats including damage, and i do send that in, so i could probably just appply the damage in the actual subsystem, but wasn't sure what/where would be the best method
as well, i would like the ability to control hit VFX via the hit result, and doing all of that in cpp would be a bit over my head, but i suppose the subsystem was too
One thing you could do is have an actor component you can place on things that can recieve damage that controls the VFX. Assuming you have some sort of stat system for the health, the VFX comp could bind to an on damage recieved type of event.
The subsystem applies the damage (through the stats comp) which triggers the event dispatcher which then triggers the VFX. You could set your VFX comp up to be configurable or even use a data asset for specifying the different types of VFX it can use.
Everything's a system. 😅
I was considering exploding everything into subsystems and actor components, I was afraid it would be overkill but apprently it's not 😅
Lyra is choke full of small components
If done well it can be great. Use the example above. If the VFX thing is a component, it could be reused for other things that might take damage plus without it, things should still receive damage just no VFX.
Plus it gives the added benefit of being able to just swap it out if you want to try approaching it a different way and kept references to it small.
yep, just gotta get into this programming paradigm 😄
in theory, that's kinda what the damage system already is tho, when you apply damage it triggers the damage dispatcher and blood/dmg numbers/etc can spawn, that part is actually not an issue, but i like to have "hit" vfx as well as "damage" vfx, but i could use the same concept and apply it for that as well
i could make an interface and call the interface function on that weapon when there's a hit, i can use the interafcew to call a funky on the weapon. i think that might be a solution. this way no delegate at all, and will ensure it only happens on that single weapon
What would the function do? Just spawn a particle?
i'd probably just return the hit result, and do whatever from there, damage, vfx, etc
Hi, any idea why NPC wont move on standalone mode?
the subsystem's entire goal is for pooling bullets, so im trying to keep it for simply that
What are the bullets? Just actors? or just a position in an array?
not actors, i learned about this yesterday but it's just a struct / data basically
so prob the latter
I'd probably make another system 'ProjectileHandler' that handles the data. It could bind to the pool system and then do something with the data that's passed through. If you want to go wild, you could have 2 custom uobjects for handling damage and VFX that you can specify in the Projectile Handler. This can allow you to swap out how it handles the data as you experiment. Maybe even have the class passed through as part of the projectile if you ever want special weapons to be handled differently.
You can then have generic damage and VFX handling but create children for something more exotic.
im thinking that the interface would do just that, no? cause all i really need is the hit result, and from there im out of the subsystem and i can handle the VFX stuff from the gun actor BP, and i'd have all data necessary to determine what kind of VFX to spawn, or how much damage to apply, etc, as all the bullet / weapon stats would be inside of that actor
It would work, but an interface could result in an lot of copy paste logic. To me, once a bullet/projectile has been fired, it shouldn't really care what weapon actually fired it.
For example, what if you had two weapons that both used 10mm bullets?
i see what you mean, it doesn't worry me too much to have to copy / paste if needed, and as of now, i don't have any 1 gun that is like the other, so i'd imagine all children will be unique but i could see how there could possibly be multiple guns where the VFX would be the same, but i could just have the master do the logic and then change anything necessary in the children (actual differetn guns)
but you are right, the bullet shouldn't care after it's fired about which gun fired it from, just not sure where else i'd do the logic without adding a whole new system, which does seem like overkill for somehting i could handle right inside the gun itself
but i could see how if i unequip my weaon before the bullet hits something, that would cause an issue
yea that last part is a deal breaker, so maybe not the interface
The upfront work might be more to setup a new system but it would make the system more scalable and make things easier later on. Maybe even save time in the long run.
no doubt, nothing can be worse than using GAS so im down to make it happen
(i hate GAS)
lmfao
GAS can be a little convoluted at time. 😅 Not a bad system though. The fact it handles replication pretty much out the box is amazing.
i agree but i think the overhead that comes with it, is simply not worth it
and i geniunely despised gameplay effects and tags, it's a mess imo
overkill to the max unless you're a massive team and need a unified framework
i digress on that
now... would this "projectile handling" system be a subsystem too? or in what way were you suggesting a system like that be added ?
For convience yea, a world subsystem. If BP only, an actor component on the game mode or game state might make sense.
If you want to go down the route of using 2 custom uobjects for handling damage and VFX, (as part of the system) i would declare them in C++ though so you can give them world context to make it easier. Expose to BP so you can create BP children.
not familiar with creating custom uobjects in cpp, but i'd imagine i could handle it. but if the projectile handler was a subsystem, where would i then handle the hits?
The subsystem would get the pooling system you have and bind to some 'on hit' type of event dispatcher. It can then pass the hit result data and projectile data.
Projectile data should probably contain things like the instigator (player that fired it), velocity on hit, type of projectile, then optional damage and VFX class. (null if not specified)
hmmmmmm, a part of me is just considering doing the interface in the character or the player state, to ensure that even if i dequip it will still work
im a simpleton, if i can understand it, i lik ei t
the subsystem would work, but i just don't know what would make that better vs shoving it into the character or playerstate
i also just learned about subsystems and making them in cpp, so it's a bit new
This would make you're character class and player state bloat. Setting up the logic for 20+ weapons in a character class is a bad idea.
The issue with using the player state it is would probally cause issues when working with NPC's.
i feel that, you prob right. this is my issue with cpp, is once im in cpp, getting back out to a place that makes sense, is always a challenge
but,.... im close
i can feel it
the subsystem to subsystem just seems like i found a new toy and im taking it everywhere and shwoing everyone it
i would like to handle it right inside the gun (or the bullet, but there is no bullet now, just a struct)... but maybe i could do it all inside the subystem?
maybe i could add the VFX/SFX to the data asset im sending into the subsystem when i fire a bullet, and then i could actually just do all the logic inside the subsystem from there, but i wouldn't know exactly how i could spawn VFX / SFX properly but i know i could at the least send the refs
I would have said inside the bullet if you weren't doing pooling. Also, if you're going to do it inside the pooling system, its not much more effort to just create another subsystem to keep it separate.
i guess you're right in terms of the effort. but is a subsystem really the best method for this ?
i just learned about subsystems (which are sick btw) and feel like it;s just shiny and new and i could od everything in them, but not sure if tha't sreally the play
Sure, epic has a dedicated subsystem just for handling actors that have 'AutoDestory' enabled. 😅 So why can't you have for for handling projectile hits? lol.
lmao g point. alright i'll give it a go and see what the vibes are
Make sure to tickle the g spot 🙃
how could i forget
Does anyone know of a way to reliably get time until AnimAnotify?
what do you mean ?
In Animation Montages you can have notifies, and I am looking to get "Time Until Notify" (in this case notify of class, but I have that part sorted out already.) when it starts for some logic that I'd like to be animation-agnostic.
There is a GetTriggerTime in c++, but it does not seem to be very reliable to the actual trigger-time 😅
Why does the weapon care about a hit at all?
Firing a projectile should be the last thing the weapon cares about unless you're doing something strange
I agree and would like this to be the case
I’ve run into some issues trying to make it spawn visuals via the subsystem tho
just put enough info in your Projectile data so you know what to do when and if it hits something
Yea this is what I have setup decently but can’t figure out the best way to multicast the visuals to other clients without some sort of decoupled callback or separate actor manager
I can get client visuals to work as the predicted shots will be able to play the visuals but the server shot won’t play the visuals for other clients
How are you handling that side of things? Assuming it’s a multiplayer setup?
I can share current code but basically have everything I need being passed into the subsystem for fire bullet event, in the function it will check for hit and will do damage if a player/enemy. But visuals etc seem to require something else
The most obvious answer would be to make a separate visual manager actor but this feels like it kind of goes against the idea I had in the first place. But maybe I could use this visuals manager actor to manager all visuals instead but not sure what options I have
That's sound like the right direction, excluding the actor part.
so some sort of countdown that starts at the beginning of the montage and reaches 0 when the notify is fired ?
lmao , well that's the issue, im not super sure how to get the hit to replicate to simulated clients without some sort of multicast event, and i can't do that from the subsystem itself , so i'd need a callback of some sort to trigger that with the hit result
an actor would allow that to become pretty simple
but yea, would like to not have to add an actor just to spawn some vfx
Hey all, Im making a turn based RPG and I have an Array of 3 charecters set up and they spawn into the world. How would i get the relative location of all 3 characters and then move them to a new location? I just want them to run forward to a new spot. Thanks
Exactly that
I have a Blueprint Light Actor with exposed properties in my scene.
Why when I change all the properties in the original Blueprint to private (No eye icon) are the properties still exposed on the BP Light actor instances?
Is it possible to set metadata specifiers like AllowedClasses on a FSoftObjectPath blueprint variable?
is there something that I can use instead of "on see pawn-> ai move to" for better performance ?
I just want a simple logic for the AI to follow the player when he sees him, but this one is killing the performance once I have 20 or more AIs
I doubt that it's the OnSeePawn or AIMoveTo directly. I would strongly advise checking out Unreal Insights and learning how to use it to find the reasons for your performance issues.
I need help, every time i click "New Game" and then exit the game, this error message pops up. can someone tell me how i fix this? The main menu is in a separate level from the actual game, and the pause menu is obviously in the game separate from the main menu.
Where is the widget you havent set it?
idk if you mean to do this, but it didnt work.
You set input mode to ui, but you dont have a ui selected in which you want to focus
I dont know if thats the cause of your issue btw but thats what they meant
Where do you create the widget this logic is inside? Is it on the game instance?
I have 2 levels, one is the first person, the other is the main menu. there is a widget that i just showed you that has the logic for the main menu. heres the major chains. the last is the pause menu one.
I also thought about load order
Havent even considered that it might get created in the game instance
idk if it'll help but try setting the input mode BEFORE you use Open Level?
I would expect that the open level node would either return immediately, having the playercontroller still valid, or it would not return until it had fully created at least one player controller, which would still leave the playercontroller valid, however, it's worth trying to change the sequence of events to see if it does anything
i tried it and its still showing the error.
hmm. Are all these screenshots of the widget graph? like these are all inside of widgets?
Because if so, you can use "get owning player" node to fetch a controller. UWidgets aren't supposed to exist without an owning player controlle r
So putting "Open Level" all the way at the end, that does nothing?
Well, you can make that error go away by using an "Is Valid" node, before calling a function with the controller as a target or a parameter, you can check "Controller -> Is Valid"
works for any object/actor/component, too
now it just doesnt open the fpmap
you are missing the input for the is valid
player controller - isvalid`?
still doesnt work
show the code where you create the widget
try a delay
before the isvalid
oh well on second thought
that will probably not change anything
I dont create the pause menu widget, i just close this one and open the new level. do i need to be creating the pause widget?
still doesnt work.
What happens if you simply remove the set input mode from this ?
well my pause menu never created itself so I don't know how that's happening for you
hm.... still the same error
Can someone give me a hand, I'm not sure where I'm going wrong? I'm trying to move the camera while paused, and it's causing horrible blur. I start the game paused, and can move the camera fine, unpause and it's fine, pause again and it's no good. I'm not sure why it's working the first time the game is paused, but not after.
I'm aware of this: https://www.tomlooman.com/unreal-engine-moving-camera-paused/ and I've tried setting bIsCameraMoveableWhenPaused immediately, and every time the game pauses, and neither seems to affect the camera blur
removing the input stopped the error
I m doing a simple "grow numbers" game and I want to add many different items to upgrade without the need of creating 4 variables for each one (buy, cost, lvl, generation). Is there a function I can use to make It easier? That s all in a widget btw, that was the easiest way I found to do that.
If I can also get the get and set "Money Player" directly inside the "Handle Money" function that would also be helpful
@trail parcel You need to explore structs.
on the other note, doing game logic in Widget is TERRIBLE.
Your widget job is to display the state of the game. Not holding it. The game should work with or without the widget.
Right
Yeah I know, in that case It works because the game will be entirely on the widget, also I m using that to learn more how to use the engine. I usually just do some unfinished things that never takes me anywhere because I tried to do all at once
I understand where you coming from, but it's still not a valid excuse to commit war crime.
It doesn't take effort either to place data where they belong.
I'm not attacking your learning journey, everyone start from somewhere. Just calling out bad practices so you don't have to deal with more issues.
That s the premise btw
Yup I know It s a bad practice, I m actually the best student on my class lol. But those classes are just too shallow to actually do a working game
I didn t want to do a lot of casts and I couldn t figure out how to output something with messages
sounds like a seperate issue. Cast can be harmful or harmless, depending on how it is used.
Yeah I try to avoid casts at all costs
i forgot i made it in the player controller
You shouldn't avoid cast, especially at all cost.
Cast is integral part of programming.
This is also why people ask you to share all the things that could be relevant
Idk gg best luck fam
Actually I mean that if there is another way I will do that way
Casting is just a type check.
can't make a working game without polymoprhism.
some good info to see common unreal quirks.
You could if you were particularly masochistic. (Excluding the stuff already in the engine.)
They do have their uses that s true, but I still don t know which ones are yet. Don t want to make big mistakes like using ticks to calculate damage for example lol
I have to really hate my self 💀
😛
anyone know how to disable the "Escape" key for exiting play mode? because i cant test out the pause menu with it.
and every source just tells me something useless
Does UE have a way to "clean" blueprints?
I have some leftover garbage that's preventing this from compiling
This variable doesn't exist
I can't delete this variable either because it's a ghost 
Deleting unused variables doesn't work
I can't make a new one with the same name
duplicating the blueprint doesn't absolve it either
Do I just, have to remake this?
Managed to reduce the work of adding new item infos to just this
Now is there a way to create their new interface as easily too?
Rn I would need to copy / paste, change all names and bindings
How do i set up a back button in the settings menu widget(being used as a child widget), to send me back to the parent widget, so either the pause menu or the mainmenu depending on what level youre loaded into?
Look under your Editor Settings. Search for something like "Stop" or "Quit". Can't recall which. I have mine rebound to shift+esc
This can be as simple as handling a key down and removing the widget. But that in itself can be a hassle.
If you're not using it and you're willing to take the time, I'd recommend checking out CommonUI because this is one of the things it handles really well. It has a "back action" that allows you to simply deactivate the current activated widget. Deactivation can do whatever you want but by default it removes the widget from parent.
This isn't in any of your fucntions as a local property or anything either?
If you are asking about creating an entry for each item - you make the entry itself a separate widget. Then you create and add however many of them yopu need in your inventory widget, but with different items as data
why is it not possible to use Macro that are made by their parents or components?
Macros are not really functions, they are pieces of code that gets copied during compilation
Interesting, I will do that, thanks!
Hello fellow nerds 👋 Could someone point me to a good resource on how to detect the last input device, and how to get the correct key binding for an action for that device using the Enhanced Input system?
Anyone know a way in state tree to set a state tree parameter regardless of it's type ??
shift + esc
it acts like esc without exiting editor
Fk it just watch the world burn
All game logic in widgets, save all references in the game instance, use get all actors and loop trough the entire thing each time you want to find a specific actor, cast from player to everything else muhahahahahahah
How can I assign an event in the upgrades widget when that custom button is clicked?
Using a dispatcher most likely
Item widget has a dispatcher and calls it when clicked. The widget that contains items binds it's own event to every item dispatcher when creating them
I managed to do that, but how do I get the object reference from it?
Add a parameter to the event.
Where do I do that?
I want to pass that ItemInfo
Click on the dispatcher and look for a + sign in the details
It looks different than adding a parameter to functions for some weird reason
Oh, I was trying to access the node, I had to click in the left where It is
Any ideas as to what could make my ragdoll skeletal mesh not doing proper "self-collision" ? The arms sometimes go through the body
Check physical asset
Sounds like Do not redeem
just found this blueprint event node in my character blueprint
haven't been on this area of the blueprint graph in a long time, but I think this kind of event node means nothing will call it?
hi all, I am curious about doing a seamless transition from a 3rd person pawn to a sequencer cutscene.
Is there an existing unreal feature for this, or do most developers handle it manually? like moving the player pawn to a specific position and binding it to sequencer?
I think it may have been a blueprint interface function node which didn't migrated too well to the newer unreal engine version
No, I couldn’t find it at all
I ended up just remaking the blueprint since it didn’t have too much
There is a checkbox on the sequencer thing somewhere that allows this somehow. Can't recall if it's a setting or part of one of the camera cut tracks. But playing the camera cut will play from the camera's current location.
How can I make that button bigger without messing with the text inside? Tried using size box but didn t work
Bigger in which way? Can you note how you'd like it to be sized?
I just want the width to be bigger, when I try to scale the text inside gets messed up and the fill option inside a size box didn t work
How much bigger though? Are you wanting it to stretch to the closest dotted lines? Are you wanting to just add like 32px on the left and right?
How you want it matters for the answer.
Yeah basically
The stretch or the specific pixel sizing?
Just the stretch
What is the button's slot? Can you show it's details panel with it selected?
The details panel should have an Auto/Fill setting. Set that to Fill. And then set the horizonal thing to stretch instead of center.
Should do what you want and horizontally fill the sizebox.
Inside the size box that option doesn t appear and when I delete It the stuff on the sides just gets near It and leave no space for fill to so something
Can you show the details panel of the button with the sizebox wrapping it?
With the Sizebox wrapping the button and the button selected, can you set the Horizontal Alignment to the two longer lines on the right?
Nope
Select just the button
Oh, just It the option is there
Thanks for the help
🥳
Next time do use the #umg channel, should givey a faster and better replies and keepsthe place on topic
Sure thanks
And while at it: I have been working on a character class but need some feedback... What function would you reccomend for an MP ready character push? Like imagine a moving piece of level collision like a sliding wall that is meant to push the player to the sides... I can't use set actor loc because that doesn't really feel clean and is harder to replicate for how often it would be needed
How do the event dispatchers work? I'm trying to bind to an event on my target actor
but this doesn't seem to be calling despite the E_Died event firing
Is that last blue node on the bottom supposed to be happening on the target? If so the two blue circle should be connected.
the called function should be happening on the Source actor
the targetted actor should be calling e_died
which then calls TargetActorDied
which calls "Stop Target Actor" on the Source actor
I'm loading some stream levels that have replicated actors; I'm multicasting the load so they spawn on all clients, but for some reason remote actors aren't moving and server actors are, does anyone know why this would be happening?
Is it binding in proper order? Maybe target isn't initialized yet and cast fails
If you net load existing actors on level spawn they will load on client but not replicate properly as far as I had experience with such. You need to spawn them later, after level load, by server or replicate without net load. I had a similar issue with physical actors
Okay that's exactly what I thought; so I can technically create a different level with all of my dynamic actors and ONLY load it on server and the actors should replicate if told to?
Yes
Oh, and replicate movement
There's separate bool
I think, I don't have Ue open now
No worries I've been trying to figure this out all day lol and this is basically where i landed
It also solves issue with actors duplicate on clients during late connection/reconnect
great yeah so I'll be able to load all static geometry, then load replicated actors from server excplicity
How can I show only one number after the "." ?
Don't have editor open, but look for format string or sort.
Thanks
I did some research but didn t find how I could use the text format to simplify the number
Do the drop-down on the “to text” it should have values for max decimal places
I'm using the same target down the chain and it's working there
Using To Text (float) with append worked perfectly
It s just that I addded a "K" or "M" to the end
unironically just tried to search for a 'Switch On Bool' node i'm so done
technically that's what a branch is
I'd rather be making those kinds of mistakes rather than getting baffled as to why my event dispatchers aren't working
try add break point or printstring after the Target Actor Died, incase Stop Target Actor does nothing for some reason.
Try debugging too, see if you made it past the cast.
Cast intakes a correct result
and the bind event receives a correct result
I am spawning the enemy character in a blueprint, one problem, the character is always stranded in mid-air and doesn't fall. But if I drag the blueprint from the content browser it works fine
help?
Okay, finally found it, When I bind event to E Died, I'm binding to the current actor and not the target actor 
Can you not subscribe to events on other actors?
Yeah, always print string the ref to debug
sure you can.
Well that's the weird thing, the intake was correct
this function will execute whenever an enemy is destroyed.
Yeah that wasn't working for me
I have no issue with event dispatcher, I'm sure you just have to debug and find the fault somewhere.
hard to do it from my end without having your project.
yeah for sure
Thanks for this answer. I was having a different issue but this helped me. I’m spawning an Actor (BP) to scene level, that has an AI controller. Since “Auto Possess AI” was only set to “Placed in world” (not spawned), it was not working, but when I manually put the BP in the scene, it worked. So after a lot of testing, “… or spawne...
Can I trace a call?
Oh
I think I see the problem
When the other actor stops targeting, it unbinds all events
and not just the ones it's currently subscribed to
That did it
for some reason the actor when possesed by AI was failing to target something and spamming stop target actor
which was unsubscribing all my events 
omg I'm freakin out
I've been trying for days; I have multiple levels designed with interactable actors all over; but I randomly generate the way each level loads; but when I load the level instance, it all works fine on host client, but not on remote; I can't
do i literally have to spawn all actors I want properly replicated?
And spawn them in the precise location that I had them?
Are you generating from a seed?
I have level chunks that I'm spawning and rotating to create a randomly generated group of levels that create a 4 quadrant system
if you are using seeds to generate the content, you should be able to tell clients to mimics the environment without turning every actor into replicated actors.
so the only things that is random is the seed. That can be replicated to clients. Client simply generate the level using the seed the server sends.
Yes but my actors are characters that need to be synced across network, their movement and all need to be replicated; I also have interactable objects that need to sync with how they are interacted
Characters should be set as replicated actor. That's not negotiable.
THey are
the interactable objects should be replicated actor too.
They are
So what's the issue?
replicated actor simply need to be spawn by the server
Client does 0 work.
When the client join the map, they will get the same state as the server.
Okay lemme run it from start
Server creates seed
Multicast loads level instances based on seed defined by server
All actors are already placed within the level.
All actors are replicated
End result:
Host actors all function properly
Remote actors don't move and don't replicate their information properly
This is ONLY the case with loaded level instanced, and works perfectly fine when all placed within a persistent level.
I have no opinion on level instances as I don't use them. You should ask in #multiplayer .
However Multicast should never ever ever be used for anything stateful. Meaning, if it has to be sync across machines, then don't use multicast as they can
get dropped and will not run on machines that have yet to join (also break when player needs to reconnect).
Multicast just run a function on all connected machines for a one time event. You best changed your approach and ask the multiplayer guys.
If I can remember correctly, actors are tied to the world.
the world you spawn locally will not be known by the server.
hence why we can't really have clients going to different world than the server. Think of World of warcraft where you can enter different region.
Sadly the multiplayer framework that come with unreal is only good enough for something like Counter strike where the server host one world.
Ofc you can make almost anything including MMO, but all those MMORPG using Unreal doesn't use the replication system that comes with the engine.
They would make their own backend.
yeah, camera is easier somehow, I am not sure about pawn. I am starting to dig on this today though. there is always fade out fade in effect if I am stuck lol
Hey! I am pretty new to the engine and I was woundring how do you change the color I want to make it all black and just want ot add neon light affect to it!
also how do i turn on the modling back on? I am trying to figure it out but cant find it 😭
how would i clamp a mouse cursor movement on a circular area?
Get the center and calculate the distance between the mouse position and the center. Then move it to the edge with some more calculations. Math basically
i do that already
its just really wonky on the edges
but i move it with my mouse.
You make a new material/material instance and assign it to your mesh in the details. The mode change should be at the top bar on the left side when you are in the level editor view
The player sometimes falls through the floor for no clear reason.
When I only use the TileMap floor, collision works fine.
But if I place another collision-enabled object on the stage, the floor collision suddenly stops working and the player falls through.
If I remove that object and reload without saving, everything works again.
Why does adding another collision object break the TileMap collision?
Is there a correct way to handle this
Hello, I am trying to create 2.5D, platformer and I, want the gun to aim wherever the cursor is. This, is my blueprint but I cant get it to work. The gun seems to roll rather than aiming up and down.
you're calculating with absolute locations/rotations but you're setting relative rotation
First I'd debug draw a sphere with the mouse position to make sure you have the right position in the first place
I think the issue is you're misunderstanding how "deproject to world" works
hard to describe, but think of your computer screen as a tiny little rectangle in front of the camera
when you deproject and get the position, you're getting the world position on that plane
Just get the cursor direction vector, do a line plane intersection at whatever plane the game is said to be taking place in, and use that. Many ways to end up with the same rotation.
Either way, at the end of the day, you should be setting the gun's WORLD rotation, not relative.
or at least compose the target location into the reference frame of the gun's attach parent if you must use relative
Here's the logic I use
basically I draw a line into the scene, then clip it by a plane created from my player's position, then subtract the result of that from the player's position to get a vector to where the cursor is pointing
You may want to normalize the vector since it's just for aim unless you want distance as well for other reasons
like drawing a laser pointer
yup exactly
Also kind of funny, I make the vector length 5000 so I have something to clip, but if it's too short then the clip fails. But if it's too long it reaches floating point precision errors and snaps to 45 degress 
Also, anyone have any suggestions on how to abstract animations?
I'm making a weapon system, and generally each weapon should have unique animation sets. But also different characters with different skeletons should be able to wield the same weapons
I was thinking of just using names and then a datatable list of animations or a slot based system
Then characters just load all that when they equip the weapon based on weapon type
Maybe look into LinkedAnimLayers
Yeah, i think Lyra does that? maybe
This is more for montages
like a troll character might swing an axe very differently from a humanoid character
hey question about blueprints, can i rotate some meshes in 90 degree minimum randomly on those assets? and make a little offset for each on the Z axis and rotate the floor at 2 degree min and max ?
Could probably do something in the consutrction script
do u have tutorials on that? or documentation? i didnt find much on youtube but idk what to type lol
https://youtu.be/8NLBM1PnBV0 i found this for now but it seems too complex
In this video, I will guide you through the process of creating a BP_Array step-by-step. This will enable you to quickly add assets, with the capability to modify transforms, introduce randomization, and optimize draw calls for better performance.
Music from #Uppbeat (free for Creators!):
https://uppbeat.io/t/oliver-massa/orange-clouds
Licens...
That's probably going to be the most proper way to do it
But if you're wanting to make a game you'll need to delve into blueprints one way or another
i dont want to make a game haha, just a scene
In the construction script (on the bottom left of the picture you posted) you can write some logic that will offset the static mesh components
The construction script is executed on each individual instance of an actor you place in the level, and every time you move the assets it will re-execute
Picture to give ideas, incomplete
How do I cast from one widget to another?
read the warning
you didnt put an input into object
Yeah I know, because I don t know what to put
That s what I m asking
what is that you want to cast and why, what are you trying to do?
I want to cast the WB_Updates widget to WB_Items so I can do further calculations on It
The main goal is to make a 1x , 10x and max upgrades options
The cast is to update the prices shown accordingly
is WB_Items a parent or child of WB_Updates?
is there some kind of button to clean up and organize blueprint nodes 😭
you can press 'g' i believe to straighten nodes, but other than that no
oh ok thanks
They are separate but WB_Item is used on WB_Upgrades
Then you're misunderstanding what a cast does. A cast is checking if a type can be made more specific. Take your character for exmaple. Because it is an Actor, it can be held in an Actor Object Reference. But because not every Actor is your Character, the things specific to your character would be unavailable. This is why you cast, you're essentially checking "is this specific actor of this other more specific type", if that answer is yes, you get to access the things specific to it.
WB_Item and WB_Upgrades have nothing in common, other than WB_Upgrades contains some WB_Item's. However, that doesn''t make it a WB_Item and thus the cast will always fail
What you want to be doing is taking one a reference to one of the WB_Item's in the blueprint graph of WB_Upgrades, and performing whatever checks are needed
I was trying to cast from the item to the main upgrades, but with what you said I had an idea that might work. Each button already gives a reference for themselves
I was trying to cast from the item to the main upgrades
That's your problem. You can't do that, because they're two separate things. A cast is seeing if one thing can be made more specific. You're essentially asking if that item is related to the other one in terms of inheritance, which it isn't.
Yeah, I will update on what I m trying to do once I finish or fail lol
Your second way may work. You'll always have a method to get a reference if you've actually got that widget contained in another. If they're spawned dynamically, you can save the reference when you spawn it, otherwise it should just be available if placed in the editor
Q to streighten shift+A to allign to left, shift+Delete to delete nodes and keep wiring, rouble click on a wire to add ar reroute node, press r while dragging to add reroute nodes
So, is there s way to get all their ids at once without calling for one one separately?
yes. You either add them into an array, or you have the array made dynamically. Normally you wouldn't hardcode the number of items like that, you'd have them spanwed by something based on some data somewhere
For testing, create a manual array and connect your buttons. (Look at spawning them dynamically though)
On construct, loop through the array and bind to the on click event. You can then use the create event node to specify the function that should be called when the on click event is triggered.
Right
Im making a tile based tactical battle game. I have an actor with a static mesh component.
Since its tile based i dont need collisions or physics.
But i have 1 ability that is rarely used, that will shoot enemies and project them into the air.
What do you suggest i do here?
Make all actors carry physics and collision just because of this ability, that is rarely used?
It sounds like a waste
Not enough info here. What does shooting them in the air do? Presumably since it's tile based they'll just fall back to the same tile?
can someone help me? why are my trees flickering?🥲 they are two separate mesh made into a single one in a blueprint but I don't think that's a problem at all
Have you tested turning anti-aliasing off?
Anyone here got a lot of experience with hit traces? I'm currently facing the problem that my swords get a bit too deep into the player/wall before it "registers" as environment/pawn, i wanted it to be a near instant feedback (or at least better than it is currently).
I know this can kinda be solved by increasing the tick rate of the traces but is there any other way you guys know to improve this type of thing?
I'm currently using sphere tracing (1.5 size spheres) ~10 per weapon with minimal gaps between them. Performance is also important
You could do point physics and have a ground plane defined by the tile
Or just an animation
ok i can move one object but how do i say all thos eobjects in my level should rotate and mvoe randomly instead of just this one object? and how do i say i want to select the axes? so separate x y z ? im a noob at BP and math
You can right click on pins to "break" them, so you can go from
Transform (color orange, has location, rotation, scale)
to having separate
location
rotation
then you can break the location vector further (right click 'break') so you'll have x,y,z
starting from the relative transform of your mesh, you dont want to set the location to a fully random one, right? you'll want to break the location vector and add an offset only to z or something
Same with rotation, you dont want it to be full random, you probably want to change only one axis, so when you put the pins back together keep, say, the old x and y and a random z made with (old+offset)
so i tried that, for the location ti worked but for the rotation it doesnt work, isnt it supposed to be rotate 3 degree randomly?
make rotator seems better
now how do i apply that to all those selected objects instead of one? and random for each object? i cant just drag them all here, they will have the same transform at the end
here, have fun 🙂
instead of copy pasting it a lot of times, you put the meshes in an array and loop to do it on each
Yeeees thats look super easy and super powerful ! Something i wanted to know for years lol
You have not used loops for years ? 🤨
Damn sounds like a horrible time
Is there a way to change just one variable from a structure without needing to set everything else together? If I don t do this all the other values are reset
Those values are from a split
There should be a node that shows up in the right click menu "Set members in <struct name"
My structure doesn t show up there
Right at the bottom
hi all, is using widget for flashing effect the entire screen a good idea?
That's how I do it in Asthenia for "intrusive visions"
yeah, looks neat, i think i will use it also for hit effect
I’ve enabled both collision and physics on the helicopter. When it falls, it clearly collides with the landscape, but no hit events are generated. Why does this happen?
do you have "Simulation generates hit events" enabled ?
UE 5.5 Windows packaging issue.
Output Log shows:
LogFab: Error: Login failed - EOS_InvalidParameters
But Cook / UAT / PackagingResults are all successful, and the game runs in-editor.
Can EOS_InvalidParameters actually cause packaging to fail, or is it a harmless EOS auth log?
If harmless, what should I check next?
Thanks.
well im not a programmer, just an artist
Anyone here got a lot of experience with hit traces? I'm currently facing the problem that my swords get a bit too deep into the player/wall before it "registers" as environment/pawn, i wanted it to be a near instant feedback (or at least better than it is currently).
I know this can kinda be solved by increasing the tick rate of the traces but is there any other way you guys know to improve this type of thing?
I'm currently using sphere tracing (1.5 size spheres) ~10 per weapon with minimal gaps between them.
@narrow pulsar if you make the trace frame dependent, then you will not get a good result.
Even worse in lower fps.
if the animation comes from anim sequence or montages, then you can bake that information.
Well currently what I'm doing is just the animation for the attacks themselves and a notify for when to start the tracing (so when the sword actually begins swinging, and ends once the "swing" ends, not when montage ends). If you meant the collision feedback, i'm not using any animation for that, all I do is cancel the animation/gameplay ability & blend the return to the base pose
Yeah, you will need to do more extra work than that.
because the less fps, the less trace you will get.
So I am doing the same thing, but i baked the data into the anim notify state.
and i simply slice them to X number of points.
when the animation play, I trace on every points until the current time.
the result is, no matter the fps, I will have consistent trace.
holy that sounds like a lot of work when you have dozens of weapons with multiple different attack animations for each hahaha but will look into that
You don't hardcode them, you gotta make the system.
Play anim on my BakeActor. make sure the anim have the anim notify states for the attacks.
Click bake -> Run logic to slice the anim notify states and insert the data -> Profit.
takes a week for me to do it, but honestly can't see any other way to have reliable attack trace.
Right now I am just tracing the points using line trace, but I also want the option to do it with spheres / boxes for larger hit detection.
Yea I tried line tracing but found it to be too inconsistent when you want to do something like bone hits (which I do since limb system)
Bones are super thin so they often landed in the middle of theline traces
I was thinking of making player hitbox with phys assets but that's probably expensive
but you can just replace the line trace with box /capsule / sphere trace.
the important bit is to know where the trace should be.
How often is your trace being run there btw? Like for example at the moment I set a limit of 35 hz when running the tracing since I need really good hit detection, I assume we can do something similar when doing the method you explained above
trace being run every tick
it doesn't matter what fps the system is running
because it has the data baked into the animation. Thus it can replay / re-simulate any missing points.
you can see the first video, I am still getting the same smooth line with 5 fps.
Back when I was learning I used Dynamic combat system from the market place.
and when I test on low fps.
The attack stop hitting the enemy and vice versa.
went wtf, and found out the limitation.
you should draw debug your trace and running it on low fps. Imo game shouldn't break with 30 fps or 144 fps.
have you tested to see performance from doing your way and running regular hit traces tied to fps?
project still bare bone but I drop like 20 enemies and kept attacking my self.
didn't lost a single fps, so I don't even bother to profile it.
line trace is very very cheap.
If something needs to run every frame, then good chance it belong to tick.
don't micro optimize until it become a problem imo.
How?
I always struggle with npc's i dont know what im doing wrong but especially pathfinding seems to kill my frames
well I struggle with NPCs too, I'm just putting into context that the attack trace doesn't really tank the fps.
Ah i see ^^
Back in UE4, I lag soo hard with 20 NPCS.
forgot what I did but I managed to place like 80++ in a map
with 140 Fps still.
if you don't see all the characters all the time, consider hiding when not visible.
Days gone had this insaneley efficient system for their hordes
To me this is black magic
I think each horde is only one single character and they did a lot with just animations for each individual zombie
And ye probably their own movement comp
If you are doing crowd there's like a few trick to increase performance.
like shared anim blueprint or something like that.
Don't really have much opinion, I am still working on my inventory :D.
really praying that my PC don't die with just 30 NPCs.
I have vague memories of something like that in 4. The fix for mine was insanely stupid. Like changing the directional light in the level from mobile to stationary. 🤷♂️
so basically imagine a turn based tile based game with tanks. and the tanks just shoot each other and die on their tile, but then i have this nuke ability that blows them all into the air, kind of. you see? this ability is rarely used, and makes me think it is pointless to add physics to all my tanks just for it... right?
But it would be really nice to hit them and see them all flying into the air or being projected...
Right. But I still need to know what the intention is with them flying into the air. Are they destroyed? Is this a knockback in that they end up on some other tile? Do they just jump straight up in the air and land on the same tile?
yes they get punched into the air, some of them survive, others get damaged, others get destroyed depending on the distance from the impact
But what HAPPENS to them when they're in the air. Where do they go? Why do you think you need physics?
I need to know if they just jump straight up and down, if they get knocked back in an arc, if they fly off the map entirely, etc.
they are projected into the air
no its not straight up and down
its like an explosion happens so they get thrown into everywhere
should they come with physics?
so since that is something that happens very rarely
is it worth it to give physics to all the tanks when this nuke ability doesnt happen most of the time?
I'd say it depends on what you want to happen to them. If you're bumping them back to a specific tile, you probably just want to VInterp an arc or something. If they can land between tiles or whatever, it's nothing really to enable physics on them at the time of launching them into the air.
Pretty sure that's what I end up doing too. If I can recall I end up with 2 directional light and lighting channels. I didn't need real time sky light for the environment, no day and night so I have 1 directional light dedicated to the characters and moving objects.
How would I make it ao that the players mesh and any weapon gets blocked by world static like the capsule component that doesnt allow u to fall off the map? I block world dynamic and static in my mesh and weapon mesh but they still go through walls and stuff
If the weapons position gets moved by animations for example when its attached to the player its not that easy
Yeah. 😬 Most FPS games solve that with that weird camera trick. Other games just let it happen. Some FPS games I've seen interp the gun away from the wall when you're too close. Wonder if IK stuff could handl that a bit?
Same for mesh I guess? If its moved by an animation?
Hello guys! Do you know any projects or videos about Active Ragdoll and self balance body like in Gang Beasts or Human Fall Flat?
I found this video, but I have no idea how he can do that
A fully simulated active ragdoll system built in Unreal Engine 5, designed for realistic, dynamic, and responsive character movement. this system uses physics-driven ragdolls that automatically self-balance, allowing characters to recover from pushes, falls, and impacts naturally
If you like it, please subscribe to my Gumroad store: https://cod...
Im working on a action rpg like the tales of series and im pretty deep into development now.
I have AI working, moving targeting attacking and chaining attacks.
Im trying to figure out how to have it block on reaction to an attempted hit.
An example is below.
https://youtu.be/7SJwFjFlR6c?t=204
It's at 3:26, the whip enemy.
It looks like for these games the enemy has a chance to automatically guard an attack if they are not currently attacking.
How would I set this up in my current project?
My initial idea is to have a check if an opposing actor is within ~50 units away from you and is attacking (has an attacking gamplay tag). If true, and you are able to, block it.
I was thinking this would work in event tick for AI, but I know event tick is not great to use in unreal. Is there a better alternative?
I recently got around playing some of my Tales series backlog and decided to look into some mods for Tales Of Symphonia (PC) version and I found few entries which I thought I should share with you people!
⭐ InstantGaming - https://www.instant-gaming.com/en/916-buy-tales-of-symphonia-pc-game-steam/?igr=SUG1
- Special K - https://wiki.special...
What camera trick?
Event tick is perfectly fine to use
It depends on what you are doing on it
doing a single bool check - gameplay tag check is REALLY cheap
if - other actor attacking && distance <10 && Not attacking - if random int in range (0 - 100) > your random chance for blocking eg 25 - call block
But you dont even have to let this run on tick, you can just bind a event to the attack action
You mean whenever an attack starts run the above check?
I'd push back a little on the above. That particular check is cheap; distance checks less cheap; but it also bloats your tick function scales poorly.
A cleaner approach imho would be making it event based. Put a collision shape around your actor (cylinder, I'd imagine), set the bounds according to your distance specs. Set up collision so that it triggers an event when another character enters and do something with that event.
A more common solution is to have enemies notify an event manager (e.g. world subsystem), this then checks if any actors are in range and notified then via an interface. It's more dynamic as you can trigger events for all kinds of actions and build in a complex interface system to work alongside it.
yes
ideally your attacking actor knows who his target is, you can then either call a event in it with a interface, a component or you simply bind the event
General rule of thumb for the event tick is this
Whenever you want to use it ask yourself - would a timer work too? Would events work for what i have in mind?
If the answer is no, by all means use the tick
Or simply: "do I need to do this every tick?"
Now that i think about it I have event notify in all attack animations.
I can check where the attacker is in relation to the their target instead of the other way around.
That way I wont need to use event tick and it'll account for attacks that have multiple hits.
Hey, when i put a variable into a local variable. and continue to work with the local variable, is it the same variable? or there are 2 differents?
i want to clean that, but i wonder if use local variable could help... or if it becomes 2 differents variables (not the same reference)
which var are you talking about here?
Item and Ball
i know it's ok for the Index because it's a value
but not sure for the 2 others
i want to say no
but not sure
In that case, yes, kinda. Since they are pointers to an item and ball, and not the item and ball themselves
a new Item is not created here, a new POINTER TO AN ITEM is.
yes but it's totally redundant here, you're making a copy of the Item pointer for no reason
just use Item
it's just to have more clarity on the blueprit
it's less clarity but sure
SO you think the first approach with all line everywhere is more clear?
it's less clarity because it's pointer?
it's not the same dispatch event and it's not the same enumeration
is it more clear like that?
thats why i said select
yes if its a different event then sure, branch
I'd lose all those reroutes but sure that'll work
the select node seems to be more usefull that than expected
select is awesome
looks fine
I will try to use more the select it seems to be a good node
Hey all, can somebody tell me what is the correct approach when giving the player the ability to change gamma? I heard that despite the name, using cmd "gamma <value>" is considered bad practice as high gamma value tends to wash out colors. I've also seen two other methods by using cmd "r.toneMapperGamma <value>" or by changing the "Exposure Compensation" setting inside the post process volume. What is the one considered correct, what are big games using? Or are there multiple methods that are correct?
Seems like both of them serve a purpose in that screenshot. But yeah, they’re both really useful
Ah, that's very useful information. Don't know why I didn't think to look into lyra. Thank you for pointing it out
If you were asking because you wanted to avoid long wires - you can use the input from functions as a Get like with normal variables. But you need to search for it, since it is not draggable like blueprint variables are - just right click in the function graph and type in your input variable name (like Get Ball) - it will show near the end. No need to create another local variable.
so that F means it's the input variable??
thanks!! that's amazing !!!
^Dont let anyone tell you reroute nodes suck
They are beautiful!
lol
it's cool at the start but after it becomes annoying 😄
Reroutes are fine, but once two wires of the same color cross each other,it becomes annoying
got it. thanks. so i think it will be fine to activate physics the moment the nuke hits the floor. then simulate linear physics, or whatever its called.
then once the tank stops the physics, if it survives the impact, move it to the closest free tile.
@dapper wave The console command does the same thing. Engine handles the console command and sets it's own Gamma.
Out of curiosity, are these characters?
no. they are instanced static mesh
ISMs aren't really the greatest thing to do physics on. You'd enabled it on the component and all of them would move with it.
🫡 thanks im aware of that
so in my system i dont do it at all in the ISM. The ISM is just graphical, it has no collision
Inside the actor that contains the index of the ISM, i have a separate collision
🔀 its a bit twisted but works
Ah, so you'd be knocking away the collision thing and the ISMs just follow it, that works, yeah.
yeah i think its the only way
hiya all, got some code that isnt working no matter what i do and this has been a prevailing message from the start, i havent seen anything seemingly directly caused by it but if nothing else i just want it off my screen so it can stop distracting me. any idea how to fix it?
Right click, refresh node?
tried that unfortunately, just returns the moment i compile, tried deleting and re-adding, remaking the interface too
and checking pass by reference then unchecking it? Or changing the variable to not be an array then changing to an array again? I've had this error too but forgot how to fix it
tried changing back and forth and the pass by is grayed out so i cant uncheck 😭
ok...i truly have no clue what happened so im truly sorry if anyone else has this issue and is looking here for help...i just put my head on my keyboard in resignation...and it seems to have fixed it somehow???
Said nobody ever.
All my homies HATE reroutes.
dont tell me, reroutes added another blueprint overhead?
Travel time matters for code. 😛
I don't think anybody really knows, everyone just ignores it. It's really annoying and it will never go away, but it will do exactly what you want it to do, (which isn't passing a reference most likely)
If I want to play a cutscene when the game starts and immediately spawn in a player (single player) AFTER the cutscene ends, how would I do this? Having a hard time with it, would appreciate any help.
Hey yall
I'm trying to do something a little funky with my character controller but I'm having some trouble doing it.
In short: it's a typical FPS controller, YX with the mouse to look around, with some model in front of you attached to the camera so it follows.
But I want to be able to turn on a boolean and essentially.. detatch the camera from the model? so it stays in place but the camera can rotate around freely still..
Is there a way to do this? if I don't bind the model to the camera the rotation doesn't follow and I can't find a node to apply the rotation to it properly..
Hey, so maybe it helps knowing that the camera on your character is mostly just a fancy offset. UE works with the concept of ViewTargets, which are Actors. When your Controller possesses a Pawn, by default it makes it the current ViewTarget. The game then offsets the location by the first Active CameraComponent it finds.
You shouldn't change the ViewTarget unless really needed, because it touches other systems as well, but it's also not the biggest problem to simply call SetViewTargetWithBlend on your Controller, passing in a new Actor.
If we assume you can't do that for various reasons, you could instead make use of the PlayerCameraManager. Similar to Controller and Pawn/Character, you can make your own BP child class of it. You tell UE to use your new class by specifying it inside your PlayerController BP.
Inside the PlayerCameraManager you can override an Update Camera function which allows returning a new transform and fov iirc. Here you also have a convenient getter for the current ViewTarget. Since you know that it's your character, you can cast to it and check for your Boolean to then do something custom for the returned transform, while still keeping the ViewTarget as the character.
Please help! Im trying to set up ai perception, but when I add both “set value as object” like in my schools tutorial video my ai stops randomly wandering around and they both stand in place. I don’t know how to fix it. Tried removing them one at a time and its definitely the top one that's causing issues.
I see, thanks for the help! I'll look into this.
Here's my behavior tree
It makes sense, I noticed it's pretty much the same behavior. I think I will go with the post process method though since anything gamma related changes my UI brightness too and it makes it kinda ugly. Thank you for helping
You could try to replace the set to nothing with Clear Blackboard Variable but it is more of a good practice, for actor variables it probably won't change anything. It matters for variables like vectors for example.
Other than that, debug. Launch play in editor, open AI Debugging, tab to your behavior tree, select one of the available actors at the top and inspect which node they are stuck in and what are the values.
I'm working on optimizing the tick behaviour of my blueprints.
stupid enough unreal has tick enabled for every actor and component by default.
so as far as I understand, the tick in the class settings is the one I can use in the event graph.
then what are the other ticks for on every component? Say on the movement component, I disabled that, but characters still move.
and could there be a problem disabling all those ticks?
@odd widget It's "intentional". There's quite a few bug reports on this even in UE4. It's a problem because events allow latent things.
It's marked as ByRef because technically it is AFTER it's copied. It does this to preserve the array because it can't know if it's safe to use the original in Events. Picture the following.
- FunctionA has a local array of pointers.
- FunctionA calls EventA passing it's local array of pointers.
- EventA has a delay first thing so FunctionA cleans up it's local memory.
- EventA would now have an array by ref to garbage data.
Instead what happens is that the array is copied somewhere. What your note is stating is that it won't affect the original array because Events never do for the above potential issue in step 4.
The real fix is to mark the array const. This notes that you're aware that the array will not be modified and you have no intention to modify it. BUT now we're getting into Epic making assumptions and being lazy.
Const is greyed out, so is PassByRef.
PassByRef is because you're referencing your copy that it made earlier, I assume it needs this but I can't be sure.
Const is greyed out because bad BP assumptions. They assume that you want the ability to alter the copied array, add to it remove from it. Meanwhile most people just actually copy it and alter that. But that is the reason it's not marked const.
So the note is trying in a really terrible way to express that your callsite's array will not be altered because you're working on a copy that is not really the same array, it's not a real by ref as you'd think of in normal coding standards. Traditional scripter hand holding gone wrong by lazy description.
That's actually really funny. It sounds like all of this came about because of the very miniscule chance that the event will fire late and the array will be out of date easentially
So it gets referenced later, and then copied
It'd be less of an issue if Epic wouldn't try to badly handhold designers and confuse even normal gameplay programmers by trying to hide their ubergraph data handling. Even a hover tooltip on the Note thing to explain this partially would go a long way.
Every key should be hooked up to ctrl+s.
and occasionally ctrl+z
Lol. Should make the compile and save green and get a bigger red one for undo. 😂
The message is just a note. (not an error) It just just telling you that the array that will be passed through will always be a copy. This means if you try to modify the array, it won't affect the original array that was passed in.
Does this fry your PC, ruin your dev credentials and force you into a life of rural farming?
Oh don't tease, that sounds like a dream 
RL farming non-simulator
Would play every day.
Specially today. I really don't want to modify the Flow plugin. 😮💨
it's a blender day for me at best
Tick never gets called if the tick node isn't implemented, either absent or grayed out.
If I want to play a cutscene when the game starts and immediately spawn in a player (single player) AFTER the cutscene ends, how would I do this? Having a hard time with it, would appreciate any help.
I tried this in the level blueprint
event begin play -> create level sequence with a reference -> play-> bind event to on finished and reference to custom event (spawn player after cutscene) -> get actor transform/rotation and connect to spawn actor (put my actor, and used this location) -> possess . This is what I tried and it didn’t work, at the start of the game the screen flickers under the map, then plays the cutscene, then goes back under the map.
The first flicker under map is odd if your cutscene is playing that early. The second feels like you didn't make a possession call. Can you show your player spawning code?
apparently, yes, according to this guy too:
https://youtu.be/S2olUc9zcB8?t=527
then I don't get why everyone is talking about disabling ticks.
like:
https://youtu.be/N_suMyUuork?t=2233
You're missing the argument for Possess.
Connect the output of your SpawnActor to the InPawn
Because in the past that was not the case
okay, thanks.
Get player character to in pawn?
No. Sec
Green line
You have to tell your controller which pawn to possess, right now you're telling it to possess nothing.
It didn’t work, it still flickers under the map in the beginning and then returns to that spot after the scene, should I have a pawn class specified in world settings?
It spawns in the middle of the map underneath
Can you click on the SpawnActor node and hit F9? Or right click and add a breakpoint? And then play. Make sure that finished delegate is called and ran.
After pressing f9 there is now a red border around the screen at the second time it goes under the map
Ari spent a few months getting information for the myth busting stuff. He even did a livestream in here to help collect questions that he then asked various departments inside epic.
Some youtubers just copy other youtubers and with how much things have changed with the engine, it can cause information that's no longer relevant to still be talked about and spread.
And an arrow above the spawn actor node in blueprints
So it does run. F9 on the Possess node and click the play icon at the top of the editor.
Hover the SpawnActor's ReturnValue pin and make sure it's not invalid.
It has an arrow above it, same as before.
It’s not invalid.
Not sure what’s stopping this from working
I'm a bit confused by this unless you have other code somewhere messing with possession or view targets. This should be ran so long after normal gameframework stuff that none of that should be messing with it.
On a whim, can you try setting the collision handling override to always spawn?
Disconect the 'Player Character' from the owner of the new character. Also, change the collision handling to always spawn.
Curious if it's spawning and destroying it but it's showing as valid in the debugger cause it's pending garbage.
It didn’t do it despite those changes, what’s weird is this is a new game so settings are fresh. I haven’t messed with anything related to this.
Next random curiosity. Can you add a 0.5s delay before the SpawnActor call?
Goes back under the map, this is extremely strange. Haven’t had anything like this happen.
This under the map is your 0,0,0 spot right?
Could it be related to the world settings? I have these settings right now.
Yes
Shouldn't be related. Pawn being non there just means a default one won't spawn.
It's acting like you have no view target. Which Possession does automatically. Even a Pawn with no camera gets it's viewpoint from the 0,0,0 of the pawn, so you'd be looking out from it's stomach, not world's 0,0,0
It’s the world 0,0,0 with the head stuck in collision with a floor making it be under the map, from what I see
Wait the character is at world's 0,0,0 too?
Yes that is the camera flickers
When starting the game the camera flickers and we have a view of that 0,0,0 spot. After the cutscene it goes to that same spot and does the same thing but rather than flickering, it stays at that spot.
what is 'Actor 2'? does it get destroyed during the sequence?
Actor 2 is just reference point. It does not get destroyed
yes but what is it actually?
It’s just an actor instance
of what? Any empty actor with just a scene componet? Does it have any static meshes in it etc...
Just an empty actor
If you don't play the sequence and just call the spawn actor of class node, does it create the instance of the character? (You might need to add a tick delay)
It does not.
Show the how you setup the test.
And I assume its being called in the level BP?
Editing a previous screenshot doesn't fill me with confidence you've tried what was suggested. Especially considering it would have been easier and quicker to just take a new screenshot.
This may not work. Beginplay on level can run before there's a Controller in some cases.
I am editing a previous screenshot because I just shut down the computer to run some errands. Nothing more, nothing less.
I can never remember either. 😅 It's why i mentioned they might need to include a delay, just in case lol.
The spawning should still happen either way though, just the possession that might be funky.
Ok, share an updated screenshot when you can. This can be important as sometimes, people can make suggestions but they never get followed correctly. (Not a dig at you, I just like to make sure of these things. 😅 )
I can remember one individual that had a tendency to add additional nodes in. 🤣
heya all, anyone know why this is happening? my debug keeps saying its flipping between true and false for wether the pathing is partial, looking at it in the bp says its always true and the actual goal is off screen, which as you can see the nav mesh is broken off from(so to my understanding the path should always be partial since it can never reach its destination
Do you have two spawners maybe?
ok, so that very much does explain the print string flipflopping(sorry for being so stupid i havent touched the other spawner in the level for weeks XD)
so that probably means the issue im having is with my code itself which ill post after i grab my dinner 😅
Don't worry. I asked this cause you aren't the first and you won't be the last.
does an event dispatcher guarantee that the subscribers run their bound events synchronously? So if I have a tick event on one component would a subscribing component run its bound event during the same tick?
Yes
perfect, ty
right, so i think these are the neccassary screenshots, basically whats wrong is that sometimes it will let me place a tower despite said tower blocking the only available path to the endpoint which should be prevented. whats weird is that the hologram and the path color seem to not match up, with green hologram being placable but yellow being unplacable, and blue paths being valid while red are invalid, if a hologram is blocking the path the path should be red and the hologram yellow
yeah ik, honestly i hate it myself 😅
alls i want is to make 2 paths, one that the enemy follows and one that shows where the enemy will follow if a tower is placed there and if theres no way to get to the end to prevent building
and for it to be the same for every single enemy from a spawner with no character or pawn movement to keep things optomized as can be
Hey, does someone know why the asset manager forgets the referenced asset in a directory I set like this? I mean, sometimes it loads some of them, when I restart the editor it forgets everything and when I change something in asset manager project settings it find all of them again 😕
Not even just the same tick, but same callstack.
How do i save projet? because when i save and close unreal it goes in my folder and have to grag it out i am just making a map rn
i have to grab it out from here to the map like i can save it but it doesnt save in proper space on the map
so would i always have to grab it out to add it to the world while working on it?
ohhh alright!
Hello. Why when spawning a lot of enemies the ABP completly breaks?
be more precise, what is "breaking" ?
ABP can be expensive if you run a lot of them without MT applied
the character movement has a race condition
this screenshot and text doesnt help
what is the BP, what is the event, what is your issue
This is the ABP, I get a race condition Blueprint Runtime Error: "Attempted to access BP_GenericEnemy_Chicken_C_10 via property GenericEnemy, but BP_GenericEnemy_Chicken_C_10 is not valid (pending kill or garbage)". Node: Set MovementComponent Graph: EventGraph Function: Execute Ubergraph ABP Generic Enemy Chicken Blueprint: ABP_GenericEnemy_Chicken
Only If I don't drag and drop the pawn
If I print it out to screen it does print the correct name
missing first two
are you sure the error points to this part of your graph ?
set movement component cannot be run if the cast failed
It points to this
Anyone on this?
I don't know why It happens, other classes do spawn flawlessy, someday I will find out
would you kindly link me to any docs on how to enable mt on abp?
how can i just make this glow up and not reflect anything I am trying to just make a system for the person to tell that its a wall or obstical in the way without showing to much light
What function / system do you reccomend for forced movement logic?
Namely for things such as sliding walls, wind currents that move floating actors long, that style of logic.
Ideally I want options for both instant acceleration and gradual for versatility's sake
Guys.. how can one UNDO changes made in a blueprint's viewport?
Like, I moved a model to test something
but if I undo.. now it undoes my blueprint stuff
closing without save doesn't seem to discard either..
i think you turn specular to 0
on the wall's material
I think the node "Add impulse" is what you might be looking for
This doesn't look like race condition at all, it looks like you are attempting to read a variable from an actor that is pending kill.
some of your chicken probably spawn at the same location and you don't have always spawn try adjust location as the spawning method, resulting in abortion.
Hey programmers, this may be something you guys can help out with- let me know!
#pcg-framework message
Sorry for cross posting so soon, i assume some people who could help out wouldnt see it at all if it's only in CC 
Hello, i'm making a game as a beginner, and i was wondering if there's any bp's/code that i can reference to create a grab system. I have figured most of it out aside from how to rotate an object while holding it, and how to use scroll wheel to push/pull the object while being held
When i get the index 1 element in my array and it only contains 1 member, how does it still return the member and not none? Isnt 0 the first element in the array?
does it like default back to 0 if it does not find the specified element?
oh wait nvm, my array had 2 members
Lol
Just get the things to speak a common language with whatever your movement system is
that'll totally depend on whether you're using kinematic movement, physics, your own code, etc
Do you know how to change an objects rotation in any capacity?
Do you know how to get the scroll wheel to do anything at all?
Alright. For my case I mostly wanted something that works with replication on the character movement component.
Given the nature of the actions I guess the best course of action I can take is making a custom movement mode to read AddInputVector how I want it
anyone on this?
What do you mean by "forgets them"? Forgets the entries in the project settings?
Also, none of those settings with "load" anything. It's more of a registry of primary assets and nothing loads until you tell it to explicitly.
Yeah, I added all the DA to the asset manager settings in Project Settings and call LoadSkillsData on BeginPlay. It should find the 5 listed there, but it only finds one and after I modify the asset manager setup, then it find all of them again, but when I restart the editor here we are again with only one of them
I also added a delay to see if there was any race cond, but it's a matter of time
I tried setting the directory, the specific asset list and both of them but I'm having the same issue
This is the class btw
class DREAM_API UDR_PetSkillData : public UPrimaryDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FText DisplayName;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSoftObjectPtr<UTexture2D> Icon;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSoftObjectPtr<UCurveFloat> ProgressCurve;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TArray<TSoftObjectPtr<UDR_PetExpeditionData>> Expeditions;
virtual FPrimaryAssetId GetPrimaryAssetId() const override
{
return FPrimaryAssetId(FName("PetSkills"), GetFName());
}
};```
The directory is definitely the better way to go. If you hover over the assets in the context browser, does it tell you the primary asset type?
The asset ID can messed up if change existing assets to primary assets or change the asset id of existing types.
It's possible that could be temporarily correct/fixed for a single editor session (if that's the thing that's messed up)
Yes it does, do you think that recreating the bp could fix this?
No, just try resaving it. Given the code that you shared, "Primary Asset Type" should be "PetSkills" and not "DR_PetSkillData".
But isn't DR_PetSkillData kinda like a parent class? I don't get why it should be PetSkills
it's a data asset created from DR_PetSkillData 🤔
Because that's what you've configured your asset id to be (the first parameter)
virtual FPrimaryAssetId GetPrimaryAssetId() const override
{
return FPrimaryAssetId(FName("PetSkills"), GetFName());
}
And what you're setting as the Primary Asset Type in the Assets to Scan entry
So I create DA based on UDR_PetSkillData but it should display PetSkills as the type?
Only as the Primary Asset Type. It'd still show DR_PetSkillData as the Native Class.
Not quite. The default behavior matches the primary asset type to the name of the most derived native type.
So if you create assets first, it will create them with a type of "DR_PetSkillData". If you then add an override that says that for that type the type should be "PetSkills" instead, it won't be updated for existing instances until you save them.
Not really a bug, but not handled as gracefully as some might like because it's not something that should change frequently. Usually you set this sort of stuff up before making any assets.
Thanks for the explanation, really appreciate it 👍
No problem!
Hopefully this fixes your issues! But even if it doesn't, now your assets are in the right state for further testing.
Hey small design question, i create a fonction : CanXXXX or IsYYYY
that return a boolean.
Is there a way the output of the node doesn't have a name? because the name is on the function?
it's just looks like double information, but maybe there is a default name to provide to just have the output node without name?
you see here the function name is IsDangerous and the output is IsDangerous 😄
just change the name of the return bool to ReturnValue in the details panel instead
perhaps this should be a pure function.
especially if you don't need to cache the result.
Also that's weird, the output name should be what's typed in the return node?
Maybe it's a 5.7 "feature".
If I have a function like this that is self explanatory and returns only one bool - I just name the bool "Result"
It is short enough to not stretch the node unnecessarily and you see what it means from the funciton name
that's the case... but i was wondering if there is a tips to not show any name but only have the return node
Only the output
yes ok
a nameless variable sounds counter intuitive anyway.
is it the "same" node?
not the same node but I would bet it does the same job / effect.
unless you need the bool value to be plugged somewhere, I would just use the former.
thanks i didn't know 🙂
1 less node in the implementation though, so unless you need the bool value, use the former.
Do you guys see anything else I should turn off in AI to improve performance when they're "sleeping" (no players around)
Is there a reason a "Does object implement interface" node always returns false when the object is a widget blueprint and i have tripple checked in class settings and the interface is actually implemented?
Is it a widget assigned to a widget component inside an actor?
The actor is the player controller and the widget is a click and drag selection box that i am calling with mouse position. i don't think it is assigned to a component
Can you show your code and the widget's details settings?
sure, gimme a sec
Otherwise we're just throwing random things at it.
Yeah, it is common to mistake the component for a widget. But if it is not the case here, code and details are needed
I've added the player controller and the widget screens, let me know if you need more
Well you need to connect a valid object to the test object
Checking against a class is pointless
It's probably null, at least at the time of accessing.
It's interesting though. Conceptually that should still work. I'm curious why it doesn't.
You're right.. I did this and it worked! Thanks!
yea, i though that the simple selection from the drag and drop menu would suffice
it should if not null.
I'm curious why it'd be null though. In theory that should be a check against the CDO.
how could it be null if the selection box was rendering on my screen, just in a fixed position?
Need my IDE now. Too curious not to look. 😂
It's an object reference, it can point to any selection box or it can also point to nothing. You need to set it specifically.
where do you actually set the Selection_Box_Widget?
on begin play
Yeah, this should work if the check is run after the variable is set.
Do tell what you find out. I know it looked wrong but you are right, if it was not an opton why would they even let the user choose a class there.
you're saying that it should be working without me having to plug the WBP variable in the interface check node?
Weird then, but it's way out of my skill level to figure out why 😅 . I'll leave that to you amazing people