#blueprint
1 messages ยท Page 378 of 1
You can't escape casting, you will need to do it one way or another.
the suggestion is to use an interface when you (Can't / Won't)
I don't wanna escape casting
but that will only get you soo far.
Making native class isn't that hard you don't need to know C++ deep.
Yeah, and interfaces tend to be annoying to work with sometimes
interface are good for a few getters. Using that as a form of communication will create one hell of a debugging nightmare.
learn a bit off C++, just enough to do what you can do already in blueprint.
Takes maybe a week. Then you can declare native class and say good bye to blueprint struct.
gotta create a small game in C++ to get used to it
you will also have the power to expose functions that are exposed to bp.
uh how do you cast to a soft?
k
soft reference is just like a path. You want to load what the path hold to get the underlying object.
I read somewhere that async load won't load it twice, so it's basically like an IsValid? node
FYI you don't need to IsValid that. It'll jsut return immediately if it's valid and run the loaded pin.
if the object already loaded, it probably won't try to load. I'm just guessing here though.
@maiden wadi Almost finished with my inventory, got this issue where clicking the widget with OnMouseButtonDown isn't responsive.
I have to wait like 0.2 second before I can click the widget again. I am guessing it's because Dragging is present in that widget.
Do you have any pointer to address this?
One thing I'll point out for this topic with C++ is async loading bundles. Keeping assets referenced in a primary data asset and bundle loading them so that they resolve immediately in gameplay.
This sounds like doubleclick timing to me. I recall I usually just make a function and call it from both click and double click functions.
that's it! ๐ฅณ
Morning!
I've debugging some BPs and I'm getting this weird readout that I've never seen before. Anyone know what inf stands for? Infinity??
Damn native doubleclick huh
You are likely debugging this before the red node has ran? You're probably just getting some uninitialized float when trying to preview it.
Hi!
I want to use a button to open a door, but without dependencies. So, the button has an event dispatcher named "OnButtonPressed". My question is: do I have to set a reference of button in the door or elsewhere (game mode?)? I think if I set it into the door, I'm adding a dependency.
Thanks!
Depends what you mean by dependency. Are you trying to make the onButtonPressed be reusable for any door?
If your button is always next to a door, you can always either use a sphere trace and cast to BP_Door, and on success you open that door.
And then if you want different doors later, you can subclass from BP_Door and it will still work.
OK. Thanks.
Yes.
But, if I want to do it with event dispatcher, I only need to set a reference of the button in the door, isn't it?
Not really. It can be an empty actor variable that you fill by scanning with the sphere trace when it gets activated
The cast should take care of the rest
But this only works if the switch is close to the door.
hello, gimbal lock is gimbaling, the actual values work and tested, but gimbal lock is gimbaling my lock
it gets stuck at the 180 -180 mark, and i dont know how to prevent it, i tried world rot, relative rot, add local, add world etc
If not, then yes youโll need a ref to the corresponding door
You can get it dynamically tho, with tags if need be
OK. Thanks a lot.
these do not exist on my machine
you do any c++ `?
if so adding the methods isn't all that, if you got your IDE setup etc
i do, but im in a rookie project, and getting other to install C++ (after you import it) is a pain
revision control project
ah
so for the sake of others i gotta stay blueprints only ๐ญ
they deserve some trouble, for the freedom you gain!
did local work ?
no
i tried relative, world
i tried setting it to absolute rotation
remove the parents
etc
the values work, but i just need it to rotate without gimbal
i cant do add because its a slot machine, so i need to control where it stops
you can always work around it with a parent scene component
i MIGHT be able to hack something together, like when it reaches -180, set to 0 or something
ooor just use a parent scene component
they unfortunately need to rotate independantly ๐ญ
for each of the slot rollers (whatever they are called)
one scene comp for each then ๐
how would that fix it tho
gives you another point of rotational entry , avoiding the gimball lock due to local rotations
I feel like i've had luck with CombineRotators aswell
got some dumpster project where i proposed a solution for this for someone
oh maybe?! let me try
ok so i just literally store the float of the rotation value
rather than reading rotor
and then translate value into rot with modulos
thank you tim
noice
thank you my friend
now onto the next problem!
random float in range - it dosent apear to work with a set timer by even node?
There is no reason for it to not work there. Check if you set the values in the float variables properly
Yeah man, there instance editable it will only fire at the min value
๐คจ
How does instance editable influence that in any way ?
And what are the values? Add prints before set timer to display them during play
I got a ai movement issue im trying to work out.
Right now I have the ai go forward to its target.
It checks if there is another actor in its way but putting an overlap sphere 2 character units away in front of it.
If it detects there is another actor in its way it will turn left or right to go around it.
The issue is after it does this, the actor is not in the sphere anymore so it will try to go straight, than it will be in the sphere and try to turn making it move very jaggedy.
How do I smoothly turn it around.
Things I have tried.
-Increasing the overlap sphere every time it overlapped a target so the target should hopefully be in the sphere for a reasonable time
-Issue even though Increased the sphere overlap by 1.5 times, it still went straight after the second or third scan.
-Forcing the turn to be X frames
-Issue: Still will move jaggedy after x frames
Can I try to make a sphere to the side of the ai actor and when it does over lap see if it is in that "to left or right of" sphere?
https://youtu.be/nnXBnKpEjaI
Guys...is this the Add (Vector + Vector) node?
instance editable means you can change the values in the editor rather than the bluprint
It wont work, cant use a random float in range with a timer like that
Thats not true, it means you can edit them in instances of the bp
yeah thats right in the editor you can change the values of each instance of the actor
Either way "cant use a random float in range with a timer like that"
This is incorrect
Ofc you can
no you cant, not the way i was doing it, you can use it but it depends on the order of operations, litteraly will not work with the way i have the blueprint set up right now.
You can use a random float with a timer
yes - you can, but you need to be careful of the order of operations. This was my issue you see. I was calling a timer when the player overlaps, so thats why it wasnt working
Is there a way to do something similar to the loop structure to avoid having to call 4 separate Set Opacity nodes on the Switch statement?
You can skip that loop entirely and directly connect the array to that first Set Opacity node.
Then you want to use a Select node instead of that switch node.
Awesome, thank you.
Like this? I had no idea you could wire arrays directly to single object references.
no, just connect all elements to setOpacity when you set the opacity to 1
no loop needed, no array needed
In a server authoritative game where the world is loaded in chunks via world partition, is there a way for an actor in the world to tell which players have it loaded and which ones don't?
Hey, so i'm making a player movement system and so far i have made crouching and sprinting, the system is enum based, and i basically just set the speed according to the enum index, and connect it with the input actions respectively, and some extra checks to prevent bugs, and i just need some feedback if this was an efficient/best way to do this, and if could easily expand it later, or should i just use booleans? i'm still kinda new to UE and im planning to add proning, walking, and mantling later.
Then how do select nodes work?
Trying to wire individual nodes into the slots just makes an array conversion automatically, and I don't understand when you would want to use a feature that forces you to make arrays that will only contain one item.
Select can be used to choose between specific components, you donโt need to select between arrays of components
They work by choosing the input provided based on the index.
You can have a single node with everything connected to Set Opacity 1, and then the select can be hooked up to a Set Opacity 0.5.
and you feed in the appropriate widget bits to the select node.
So the select that will generate off an array is not what I want. I want to use select INSTEAD of making an array.
Perfect.
So I thought I was having you do two replacements.
1: Remove the For Loop. You can directly put the entire array pin all on the Target node.
2: For the second part, you donโt need to switch off the enum value and use multiple Set Opacity calls. Instead, you need a Select node to choose one specific component.
2 total calls to Set Opacity.
Select, when you spawn it, has a wildcard
Yeah, I get it now. That's on me.
Now I just need to figure out how to get those button enums actually attached to the buttons.
If the button can contain states and data then make a new widget for the button and hold those data.
Alright this is an issue that continues to vex me, and I've had trouble explaining it in the past. Maybe this will help. I find myself wanting to do this, which is not possible, a LOT. Does what I'm trying to do make sense, and what is a way to ACTUALLY do it?
Physical controller button.
I'm aware this isn't possible inherently because EnhancedInputActions have completely different output pins, but this is more about the general idea.
Having the character speaking to widget is extremly bad practice.
Well, I need something to hover above their head and give some feedback when they press a button.
I've got this widget setup to visualize that very nicely, but if there's a better way I'm not opposed to it.
The widget listen and read from its owner. Thats it. The character will be decoupled and will still function even with the widget not being present.
How is that different from the thing up there that I can't do?
E.g widget created, widget sets the owner. Listen to owner event.
Owner do X broadcast delegate.
Widget do Y.
So the solution is to just have all the input actions call delegates?
The button or w.e can bind to the input event yeah.
The Mediator Pattern:
Software Design Patterns are like a guide on how to write good code, whether you're using Blueprints or C++, knowing good software practices is a MUST!
This video goes over the mediator pattern to build a "Combat manager" to coordinate actions between multiple enemies and the player.
We will also be combining the mediator ...
Instead input pressed -> get the buttom bar do x, get the player widget do Y.
๐ โโ๏ธ
I'm not clear on how that's different. The buttons are attached to the players (kind of, but you saw the saga of why there is a kinda).
I'm aware of dependencies being bad in general, but I'm terrible with the input actions and how they determine what goes where.
Depends what you want to do. This sound like interaction so setup interaction system.
Input will communicate with the interaction comp.
And responsibility will be handled there.
E.g what objects to interact with.
I have one of these! It works very well for most of our minigames. The left button is IA_Interact in 90% of our content, and it's set up to do contextual actions. For this specific one, though, we need all 4 buttons so the rhythm game can have input variation. I figured that using a new mapping context exclusive to this minigame was the best way to handle that, but I could not figure out how to get the interactions to attach to the widgets. If delegates is the best way to do it, I will use delegates.
cant select static mesh actors
Are you clearing the array in your construction script?
I have a question about dependencies. I'm developing a button that opens a door. I need to add a reference of the button in the door like this (this is an image of the door's code from Unreal's documentation). Here, the button reference is named Boss Died Reference. My question is: Is this a dependency between the door and the button? Because the variable type is the button class. Thanks!
whatever you said doesn't correlate with the images you posted
Oh, really?
I'm not sure what you are asking about. But creating a variable of a certain class automatically makes this certain class be loaded with the class the variable is on. So if you make a ref to a BP_Button on your BP_Door, the button class will always be loaded with the door, even if there is no button anywhere
I have explain again what I said: the first image is the door's code. The button is named Boss Died Reference. And the Boss Died Reference variable declaration is of type BP_Boss_Died. So, in the door I have a reference of another class.
Maybe I don't understand the meaning of the word Dependency. I think a dependency is when you have coupled code, like this.
A boss certainly doesn't need to know about the existence of a door.
but a door may need to open when a boss died.
So your door can subscribe to the boss actor to subscribe to the boss death event.
Maybe look at this if you haven't yet. A variable of a BP type does the same thing as the cast inside a class - a hard ref. SOmetimes they are fine, sometimes you should avoid them
#blueprint message
Thank you!
As to what object should listen to what, it would depend on your game.
Like most of the thing may be handled by a quest manager or world manager.
Where Quest manager have references to what it needs, e.g the door, the boss, etc.
But the door and the boss need not know about the quest manager.
You never go like this.
B_Boss->Dead-> Get Quest manager -> Update โ
Are quest manager or world manager other actors?
Instead Quest Manager -> Init enemy data -> Subscribe to boss death -> Execute Open Door on Boss death.
This way, even if the quest manager doesn't exist, your boss doesn't suddenly break or uncompilable.
one way dependency still respected.
most of the time it's done by the use of event dispatcher.
just an example.
Quest manager can just be a single actor in the world.
or it can be a UObject.
OK.
I would probably make it an actor so it can grab references on the world it's in.
Thanks!
Mine is a UactorComponent ๐
Aand I think its finally almost soon to be usable
Only took 2 years lol
Is there a "For Loop" node that works in reverse, decreasing a number each time?
If not, its easy to add yourself
Nope. You gotta the index logic yourself.
How does people normally handle stuff like dialogue and its interaction with a quest system ? Do you index every single dialogue line and use that as the identifier toward the quest system ? Or do you simply push the quest forward manually ?
We use flowgraph for our quest stuff. So... If a designer wants a dialog line, they just add it themselves. We just use a flownode that has a datatable row handle exposed. So designers can bundle dialogue in any way they'd like in a datatable that has the ability to import if they want.
right, but how'd your quest system pickup that the player picked the correct option during a dialogue, to progress the quest ?
Oh, like that. We do that through flow too. Uh.. Give me a few and I can show you.
sounds like manually pushing it forward kinda?
since you do it in the same flow
e.g. the dialogue system is responsible for conveying the info to the quest system
i could do that too, but i wanted to avoid other systems pushing things into the quest system directly
atleast, that was one of my thoughts
You could always use the Undertale approach and put all of it into a switch statement.
rip
i was thinking about just implementing support for a gameplayevent
sounds like it'd be usefull anyways
generic and all
Perhaps the best thing would be to have some event object that can be added to the dialogue system
open ended, triggered when that option is selected by the player
@gentle urchin
The TLDR on this is that the flow node pushes that prompt to a subsystem which will try to push the widget with the correct prompt. Then the widget broadcasts the index of the choice made back to the subsystem which finishes that prompt, and notifies the flownode. Then designer can do whatever they need to do off of that. Gift stuff, harm player, grant abilities, trigger cinematic, etc etc.
Soo if a quest needs you to do the not so cool choise, how would the quest system be informed that you did or did not ?
Seems the event node with the option outputs would be the place to handle that
In the flow graph or whatever
Oh, right yeah.
We have...
Quest management nodes.
That way designers can easily create, start, manage the flow of, and finish a quest easily all in flow.
Thank you, but It's not working for me; it's giving a result 0
Perfect, thank you! Is your wuest system also part of the flow graph?
Technically separate. We just use the flownodes to affect it. We have a quest manager component that either sits on GameState or PlayerState, depending on whether it's a game wide or player related quest. But I don't think we use the game wide ones at the moment.
I had this idea that the quest system would be responsible for listening in to the game / player state etc, as to not interfere with anything , and create very straight forward connections
But dialogue specifically is a tad hard without specific identifiers or atleast some form of trigger input
Sorry for not explaining that very well
Hi, im workign with some AIs, but ive made my graph really simple... so I didn't use state trees or behavior trees cause its so simple
This is how it works rn....
But I have an issue, when I hit the chicken, I want it to run away , not stay in one place, at the moment it just stays in one place after I hit it, and it kind of freezes in shock
It's always (99.9% of the time) going to be in Roam-Around mode, that's the only mode it has, and this is why I didn't bother making a state-tree, behavior-tree
Just cancel its moveto if it get hit, find the hit direction, run oposite, some semi fixed distance
how do I cancel the moveto?
either you have to stopmovement or you just push a new one , and it cancels by itself ?
Perhaps store the aggressor in a variable aswell, so you can track if they're following you (the chicken) or not
Im pushing a new one
The node is called like StopMovementImmediately I think
Hello, I added sprint to my character in Unreal Engine 5, but I want my character to be able to sprint only forward, forward-left, and forward-right. However, the character can also sprint in backward directions. How can I prevent this? Can you help me? Thank you in advance.
So you don't want the S key to function?
btw you probably follow this crap from Youtube but I can assure you that your code is broken for multiplayer.
it may seems "work" in editor, but the moment lag is introduced, even 1 ms. All hell break loose.
either you have input delay, which no sane player will accept. Or you will get correction.
can't do networked server auth in multiplayer with bp only without sacrificing features.
and not able to run directly left and right.
oh i understand
Where ever you bind the movement input, just check the Vector value.
add if condition and just do nothing if condition is not met.
my movement input
You can do dot product between actor forward and input direction
Then do a some fancy math
You have the value of your input, now just add condition as you need.
Thanks guys trying right noew
dot product between the input direction and actor forward vector
if you move exactly forward (W) , the dot product of the input direction and actor forward is 1
so 90 degrees would be -0.5 / 0.5 depending right or left.
if you want to use the camera as the reference point instead of the character, then replace the actor forward vector with the camera forward vector.
Eexactly
No, theres no difference on right or left
90 degrees / perpendicular would be 0
180 degrees would be -1
right
Youd need to do the same check for the right vector if right/left matters
so its just dot product result >= 0 I suppose
.62 if its 45degree strafe iirc
Erh... .5 maybe ๐
Nah
.70
There's gotta be a typo in there aswell ^ i give up
Theres some free webpage where you can test them live
The input vector may not be normalized...
in multi sphere trace by channel: how do I ignore ALL static mesh actors and plug that into the "actors to ignore" node?
Cant you just give them their own channel?
Or rather, add things you want to find to its own channel?
Sounds reasonable to separate static mesh actors from other actors
Just a heads up for those who dont use "Edit Selection in Property Matrix", do it,,, saves countless of hours !
use get all actor of class or trace by object type to begin with? ๐ค (the later would likely perform/scale better)
https://gyazo.com/148f506c6f92d26abb133c21907440d2
When the character is at the edge of my screen it hides halv my char :/ ?
The centre of the mesh is going off screen, so it's not drawing it, I assume.
Seems weird.
hey everyone, im trying to build a system that fades in the audio of an audio component the closer one actor gets to the other (Player cube distance to the target cube) but I cant seem to get it to work. Ive tested and confirmed that both the player and target cube references are valid and it is correctly updating the distance between the 2. does anyone have any ideas? https://blueprintue.com/blueprint/6bga8z95/
I usually like to call stopmovement first just to make sure any existing movement that is queued up gets canceled
Bounds Scale. fixed it
Do you have an example of what you're trying to do with this? I'm curious why you don't just use an attenuation thing.
@olive dirge Sure, hereโs the example. The closer the controlled cube gets to the target cube until it finally lands on it, the louder that instrument/track will be. I actually have little to no experience with audio so Iโm literally just winging it. The one requirement is they are all stems/tracks that make up the same song so the have to all be cued up at the same time so the tempo remains in sync
I guess the one barrier is i will need to "swap" the attenuation sound for one that stays full once it gets stacked
Am I doing the call for drawDebugBox wrong? I am not seeing it draw anything when I click the function button in the editor.
Also how do I set a data layer in blueprint, if I even can?
Looks ok. Maybe make the color bright and thickness 2-3 to make it easier to spot.
Yeah my bad, I missed setting the color. Thanks.
Looking to gauge whether or not this would be useful for devs, or if it would be redundant.
I'm quite "ocd" when it comes to graph cleanliness. Often times when setting up a system and execution needs to wrap back around (whether that's to reset a "DoOnce", close/open a "Gate", etc) and rerouting wires can get very messy. Alternatives would be to setup a Custom Event to execute a specific action instead of rerouting wires all over the place, but this then means we are setting up single-purpose events that won't get called outside of the system it resides in. That would also mean this logic needs to be executed outside of a Function, as Custom Events can not be added to functions.
I've spent the day setting up "Bridge" nodes. These act similarly to a Custom Event, but is not public to other blueprints and can be used within Functions. Think of them as a light-weight way of wirelessly rerouting execution.
Some more info about the nodes,
I've attached a little image of a (what in my head is) a practical use case inside of a Function that adds items to an inventory (highlighted these Bridge nodes). These nodes are essentially cosmetic, this could all be done by carefully rerouting execution wires and maybe some local vars. Like I mentioned, it would more-so for graph legibility. Right-clicking on either an "In" or "Out" node will prompt an option to "Jump-to" it's partner node for easier debugging. Value pin amounts and names are configurable, as well as a display name for these nodes to indicate what exactly they're executing.
Maybe you chose a very bad example to showcase this, but your nodes seem to complicate the function instead of improving legibility.
You could've scraped the whole gate, move the add to the top and return after adding the item. Since return in function always breaks out of the loop. And if it is not reached, after the loop ends the second sequence pin will go. Aaaand Completed will fire before opening the gate, to why open the gate...?
Also I remember having this problem sometimes when I was starting. But I barely notice it now, I think it comes down to experience in designing systems with blueprints
Not the best example then my apologies, was more so just trying to demonstrate using these nodes to reroute within a function. What are your thoughts on the concept of the idea of these nodes?
Maybe for some designers that have less strict minds than programmers. For me it looks unnecessary, especially in a function. In event graphs maybe, but then again you have events there.
I hear you. Maybe is a redundant idea then
is there a plugin that would make me be able to live a session on going regardless of the host living....either by promoting another client to be a host of there is any or prolonging the session on timer
I seen a plugin that claimed to do that.
but it would be a real pain anyway. It's not worth it and you probably should just accept to not do something about host migration.
can u share fab link i check it up
might as well make dedicated server.
I saw it long time ago.
it's gotta be somewhere on fab.
im looking for something similar cant find it on fab
Example Video : https://youtu.be/xQrPtwVW-mkSave on Server CostsEasy SetupPerfect for co-op, PvP gamesWorks with Steam, EOS, Amazon Gamelift, Android, IOSThis Host Migration system allows for a Host of a Listen Server game to leave without ending the game altogether.A new host will be selected among the clients, other clients will reconnect, the...
found it in 5 seconds.
only up to 5.1
thanks
so I take a look at the demo. Reconnecting still needs to be done....
no way around it.
if you looking for seamless effect, there won't be one.
FStructProperty::Serialize Loading: Unknown structure
Hi, does anyone know how to serialize or validate a structure?
UE5 packaging Unknown structure structproperty serialize
That was my error during packaging... It seems I have a lot of structs that are somehow invalid and incorrect
I might have to refresh them tho, could be some renamed struct
@lost hemlock Blueprint struct strikes again...
tldr, your struct is cooked. Blueprint struct is fragile and unknown structure is one of the most common error.
It normally happend when you change the order of a struct or add / remove from it.
Make a backup and use source control, I am not responsible for your lost.
You can rename the struct for a bandaid. This will cause you to lose all the default values.
So if you have this struct for items, you do have to remake all of those data. (e.g filling up the names and properties of the item again).
The error should be gone if you done that.
To avoid this error in the future, never use Blueprint struct. Struct declared in cpp doesn't share this unfortunate hiccup.
someone told me I should just open these blueprints where this struct is referenced, and compile & save them, if this doesnt work, then ill try your method
that may be work, but what if there are 30 - 100 asset referencing it? It do be wise to just use struct declared in cpp in the future.
the worse kind of bug is the silent one.
You may be looking to just specify what counts. You can break the pin structure for a lot of options. And you can assign specific tags to further specify.
I dont know exactly where to post this.
can anyone tell me if this is worth it:
Im making a 2d isometric game, using tilesets. Though there's an issue.
I cant place a 3d character interacting with it... because its 3d.
So a friend of mine told me to use render targets for the objects / characters that need to be 3d.
And then place them in the world as sprites, so now it is compatible with the 2d sprites / tilesets.
Is this worth it? Wont this tank performance?
Thats to make a game like Diablo 2, or Hades
i would find games that successfully merge a 3d isometric character with a 2d looking background and study them
there is no right solution
thank you!
crashing in silence is peak dev experience
especially if you can't reliably reproduce the crash
blueprint corruption is also peak ๐ฟ
crash during engine startup, good memories
Oh yeah happened to me due to a corrupted anim blueprint ... Fortunately it was very early in dev.
I purchased a NAS and folder dump my project regularly on it
The sane way tends to be sourcecontrol buut
if thats not an option then your method is better than nothing
Honestly I really wanted to setup a git on my NAS but couldn't get my head around it
I use Goodsync to work remotely with my codev and so far it works pretty fine.
svn might be easier
We just have to be very clear on who works on what to avoid conflicts
yeah thats the benefit of using something supported by the engine
possibly but my NAS is a WD and it seems to be quite the diva when you want to setup any VC system
then again, I'm shit when it comes to installing this kind of stuff
a quick tutorial gets you 95% of the way ๐
worse part is prob the port forwarding stuff
I'm using TortoiseSVN, and it works pretty great so far
im a tad surprised by how slow unreal can be with this stuff tho
Well I'm also super stubborn and hate GIT with all the fiber of my body lol
xD
You should try git with automation software
it's the worst of the worst
40% chance for random crash, can't compare online, can't rollback, can't easily cherry pick, PR requires custom software etc etc
locking of files whenever you edit something is handy, avoids those nasty conflicts
I will investigate Perforce
with a local install on my PC and daily mirroring to the NAS
worse thing about bp corruption is they break silently.
Some pointer just become null forever.
and source control can't save the day because you don;t know when the asset is borked.
heard perforce is the best tool to go with for Unreal.
I personally just use git and happy with it.
I havnt had such corruption since the day and age where i used bp/editor created structs
hello guys, i have a real big issue packaging my problem, apperantly there is a problem with the refrence in my level or smth, and i tried validating assets and redirect update but nothing helped, anyone knows whats going on? or what i can try? would really help. I have to release the game really soon, in fact it should have already been released.
thats the erroro
LogCook: Error: Content is missing from cook. Source package referenced an object in target package but the target package was marked NeverCook or is not cookable for the target platform.
it usally tries to get a refrence to a GEN variable which is appearently the root, but he says that it doesnt exist in thoose levels. he fires this off 272 times
is there a way to validate all safefiles but more intense so he gets me rid of that?
if anyone wants the logs i can send them too if disc allows me
ohh thx
Solving decade old issues billion dollar companies are still implementing today. (Including Diablo, POE, Last Epoch)
The rarity systems where always flawed. If it's not top tier it's JUNK.
Fix: All gear is white. Scrap equipment you don't want and upgrade those you do.
How it works: Upgrading the tier rerolls the base stats for a higher value chance. It's built upon the level of the equipment, so you can upgrade anything, but naturally higher equipment is better, but the cost is also higher. You keep the perks, empowered level etc.
The stats are to low on that equipment to matter and the cost was set to 0. Just a demonstration vid.
now integrate 2048 logic with blacksmiths and you're good to go
e.g. Tier 1 Sword + Tier 1 Sword = Tier 2 Sword
collecting scrap also holds value ๐
only takes 128 tier 1 swords to get a tier 8 sword
The rarity system has it's value in game design. It doesn't exist solely for the power or the stats. It boosts player experience when going around looting things.
"Oh, it is another white sword with a 4 instead of 3 next to the name" feels way worse than "Oh, it is a Legendary sword, it has a different color, glows, and the drop makes a satisfying jingle!"
Ofc some AAA games took it to extremes, where there are dozens of legendary items dropping everywhere... but it is besides the point.
Indeed, it gives you something to hunt for , and (can) make the player feel good for getting it
some reward for the trouble
hello, Running the same event multiple times at the same time causes conflicts and overlaps between variables, resulting in incorrect results. Is there a solution to this?
"multiple times at the same time"?
For example, running the event in Loop node
BP runs everything sequentially so 'at the same time' isn't really a thing.
Indeed.
So whatever problem you're having is because the end of the event is leaving it in a bad state for the start of the next one.
So fix that.
Perhaps moving the UMG border takes some time. So when the second event starts, it's using an incorrect location?
How are you determining its position?
What are you even doing? Trying to animate something?
The best solution I've come across to this (from a game design perspective) was to have items be able to grow and change as they're used like experience.
Rarity becomes an indicator for current experience of the given weapon/tool but isn't fixed. As weapons/tools grow, they could gain new affects/abilities or increase the power of existing ones.
This can give incentives to use lower level ones as an attempt to grow them. Of course, this doesn't always fit into existing game design.
Show blueprints. Every execution chain happens in order, even if they access different elements. Unless there is a node with a time icon in the chain
If i remember correctly, moving UI widgets gets added to a queue for when the UI is next rebuilt. This is to prevent rebuilding the UI excessive number of times as the process can be expensive.
Getting the location again before the UI has been rebuilt will return the same value that was used previously.
Yes, I'm trying to move the UMG border location
using a loop
But strangely, it works fine if I add some delay inside the loop
sounds like race condition
delay inside loop doesn't do what you think it does.
the loop still run on a single frame.
Instead of updating the location of the widget directly on the loop, update a 'desired location' and update that on the loop. When the loop has finished, use the desired location to update the widget once.
So before you go into the loop, set the desired location to the current location of the widget and use this for your calculations during the loop.
you'd prob want to use a timeline / animation instead
UMG has its own animation panel
How are you getting its location?
It works with a loop with a delay because if you just do a normal loop, every call will happen on the same tick. The delay separates out each move to a different update.
Yes, maybe. Moving the UMG border needs some time to update.
I'll try moving it when the loop finishes. Does breaking the loop give me the index of the last number it reached before the break in the "Exec Completed" ?
GetCachedGeometry
Yeah, that's the key word there. Cached.
Its not that it needs time. It just hasn't been rebuilt yet.
If you call GetCachedGeometry repeatedly on the same tick, it isn't going to change.
Are there any events that tell me when it's rebuilt each time in Blueprint?
Whats you're end goal exactly? I know you want to update the location of a widget but for what purpose? Why are you using a loop?
yeah there are basically none that i can tell
its super tricky to do it
if the position is fixed, why not just use the widget timeline?
So, in Delta time
That's the time of each tick
A timeline has that.
Create a system for writing and moving the cursor
There are multiple problems with systems that simply allow you to upgrade items in a single path. IT destroys the glory of the Diablo RNG loot. They generally dumb down mechanics.
This system incorporates what you stated already. The equipment levels up which plays into the tier. Since the Empower levels enhance the base stats (base stats increase by rarity). Additionally, leveling equipment still unlocks special perks.
This all happens while maintaining pushing for higher level equipment. Which is obtained by killing the highest level mobs you can handle. The only real drawback is investing to much into equipment. Which is a player choice and mitigated by higher exp rates due to many other boosts throughout the game.
looks doesnt have to reflect reality
Yes, sometimes the wheel needs to be rebuilt
Building wheels is fun!
But it's not good for actually finishing anything.
some people recreate GAS just to end up with inferior version.
But some people do it better. GAS is old and outdated.
The idea that the Android keyboard cannot be fully controlled in the Unreal Engine presents a problem. Therefore, try building it in the same engine
What can't you do with it in UE?
Many things you can't do:
A separate text box for writing
Changing the box and border color
Creating a drag-and-drop notepad
Adding buttons near the text box
Such as a microphone or other features
Controlling and changing the keyboard color and appearance
Lets start from the top
can't do a separate text box for writing? 0o
You want editable text box?
If somebody tried to change the colour of my phone's keyboard, I'm be annoyed.
You can't. You'll have two boxes, one from the same Unreal Engine app and one from the same Android keyboard
My android keyboard isn't adding another text box when I type on discord... I'm not sure why it would in UE? That's kinda weird.
When you use my plugin, all problems will be solved.
More likely if it was made in c++ if so
i suspect there's access restrictions in bp as always ๐
Yeah, this is quite horrible.
This might be useful.
Seems somebody has already fixed this for you.
It even has BP integration.
appears to be somewhat cheap aswell
And by cheap you mean free? ๐
I knew i could count on you to clearify!
๐
ARgh, I'm fighting an unbound delegate that appears to bind as it should... -.-
How/when are you binding it?
Are you sure it's the same object you're calling the delegate on that you bound to?
Are you sure the objecting binding to it still exists?
binding it in HUD's beginplay
(and it's the right object)
I've read these articles and tried them, but they don't offer any real solution. I wish they worked.
I mean, they do what you asked. They remove the white text box and let you customise the input box you type in.
Playing with people's keyboard isn't a good idea.
binding comes from a component that lives on the owning playercontroller
what are you binding to? Just wondering if it's related to the multiplayer project you are working on.
Multiplayer?
HUD begin play is probably too early to bind.
yeah
All my binding comes after components are replicated.
The component may not be replicated.
Or PlayerState on repped.
oh shit
the component isnt even set to replicate
Lol
fuckin hell
I think everyone been into this at least once.
Like I keep wondering why my skeletal mesh doesn't replicate.
seems like for components, replicate is set to false by default.
Hm, but how the hell did i end up on the client when the comp with the rpc doesnt replicate
Am i wrong thinking even replicated components were created locally before they were replicated ?
attached ones would be readily available.
their properties may not replicate yet.
but the component is there.
right, so then it should be fine as long as i ended on the client with the rpc
runtime added is different story though.
Yeah but I don't know if you have a valid player state at Hud Begin play.
Your ASC lives in the Player State right?
Don't rely on anything that is potentially unreplicated at the start.
If I want object interaction, I generally have a system where each object involved has a BeginPlay() event which triggers some kind of function. That function checks if everything is needed exists and, if it does, it calls the thing.
that's pretty clever
Should work for any kind of initialisation in MP or SP.
I may also have a bool to say whether it's been done yet or not, in case an actor is recreated and BeginPlay triggers again.
(and you don't want the thing to happen again)
bInited kinda check, yeah
Yeah.
An example of that might be a match start screen which requires you to have a pawn, so your pawn does BeginPlay shenanigans, but you don't want it to happen again if you respawn.
welp, well that didnt change a thing
guess i gotta go deeper.. but it reallly looks to register correctly
Ah, problem is on the calling side, not the binding side. Calling from server on a client bound delegate
That'll do it.
Not everything has to be replicated. You could spawn it locally if you don't need any replicated properties.
Exactly
I need some, but they're not specific to this uobject
Or.... perhaps they are
If i track the progress equally on the server and 'owning' client, then it should be fine
the plan was to try and make world interaction truly multiplayer, as in NPC's talk to other players if they've interacted with the npc
can be done locally or server auth, depending on the design I guess.
Some MMO games would have each player player their own cinematic and dialogue.
While some multiplayer game only allow the NPC to speak to a player one at a time.
I've not seen the latter before, got any one i can look up ?
probably bad comparsion but I think only one player at a time can trade with a merchant in Killing floor.
make sense because you can't have multiple people buying items that are shared.
I mean technically you can X_X I guess.
but even just talking to someone
If you run and talk to the NPC over there, and i approach, i should be able to listen in on your mid-conversation stuff
If i itry to converse with them, I'd normally be asked not to interupt and possibly something rude, or something along those lines
Best example of this I've seen in a long time is actually a little game called wizard101, twenty or thirty people ask taking to one npc at a time
I want to move data from one component to another actor, blueprint, and component. The problem is, I don't want to use casts. I've tried a few methods, but how is this done professionally?
What is the best modular way to put conditions on puzzles which can be set via editor?
For example, player must be on platform to move. If unchecked, platforms moves by itself.
I have more puzzles
Cast doesn't do any harm. If memory overhead is the issue then hard reference to blueprint asset is the real culprit.
Casting to blueprint asset will product hard reference to the blueprint, casting to native class is not.
casting is just a type check, you can't avoid that if you want to build a project that is not soo mini.
You could use an interface if you really wanted to.
Interface -> Get level, Get Gold, Get Name, Get ....
Game hard to debug, or almost impossible for big project.
and most of the time, people need the type anyway.
Get Animal
Opps
hard refernce
as booleans?
I don't follow.
any advice on this
Any data that you need. Rather than boolean, you probably want object reference to the moving platform.
You need so much more context with that question.
What is a puzzle? What is a platform? What is player movement?
Inline editable uobject Instances ๐
It's almost always the answer these days
The player uses constraint to pick up a actor object. When it overlaps the collision of a actor statue, it attaches to it's socket. The player must overlap the collision on the rectangular cube, the cube moves up.
This sounds like a puzzle mechanic.
What is a puzzle? Is this a level? Do you have multiple puzzles in the same level, sublevels? etc etc.
What is a platform? Why does this matter in relation to player movement? Did you really mean player movement here or movement of the thing you're dragging with constraints? If you meant player movement how are they even supposed to get on the platform if they can't move when off of the platform?
They're always fun to work with when live coding is enabled. ๐ (or what ever the thing is that's on by default) But yea, they are extremely useful.
For a puzzle it should be easy to combine multiple checks at the same time
Very reusable
Quick question: If buy a game template am I kind of at the mercy of the template/plugin if a new version of Unreal comes out and the plugin/template doesn't work with it? Like this one https://www.fab.com/listings/9a175ace-6bdf-4b84-8b47-755876cbe3e8
(Free for the Month of August 2024) Welcome to Mooreโs RPG Template version 2.14 released October 14th 2025 (also known as the MRPGT), a โcomplete projectโ, from Moore Game Dev. It is a First and Third Person, Single Player, High Fantasy, RPG Core Framework. It includes user interfaces, blueprints, props, animations, a sample character and...
Yes
Well
Yes*
not quite, but kinda
if you get vs you can recompile them yourself
and fix whatever minor thing that broke
It's usually (atleast for me) just small stuff
things being deprpecated, replaced by almost identical function call etc
Like
ISM->SetWorldPostion(FVector NewLocation)
replaced by
ISM->SetPosition(FVector NewLocation, bool bWorldPosition)
Hey yall, good morning! If anybody can help me with this, it would be very much appreciated! I am making a multiplayer horror game. I am trying to make a Jumpscare mechanic where an AI takes a control of a players camera and AI plays the jumpscare animation if they caught in the AI's Trigger Box. I am having an issue where only the host of the session only gets jumpscared since by default, The Player Camera Manager is default set to 0 (which is the host duh), what's the most accurate way of getting any player index in a session using a Trigger Box so it can take control's of that players camera and jumpscare them?
there are none that are TOTALLY isometric, but there are a ton of games that combine 3d models with 2d backgrounds
Resident Evil fixed angle games, for instance
thanks
Hi, I could do with some advice on how I should set up this system with optimisation in mind.. one of my characters has an ability that when active, will start showing footprint at the location of each foot of every other player (max 8 other players) for every step they take, the ability lasts around 30-45 seconds then all footprints will be removed, each footprint decal will also need a niagara particle system and ideally a sound effect, which is all only visible to this one player who has the ability.
Should I put the decal, particle system and sound effect into an BP actor and then use object pooling to spawn a load of them at the start of the game, deactivate and hide them then activate when needed and reuse them, or should I do it a different way?
My concern is that 8 players, over 30-45 seconds, all needing this actor to be shown for every step they take would mean needing a pool size of 500+ at least, although everything would be hidden and deactivated and only shown/activated when needed that would still be loading 500+ of this actor into memory for use which doesn't sound great, or am I hopefully misunderstanding something?
Likely wouldnโt use actors, but instead you could use spawn decal attached. As for the footstep sounds and Niagara, personally I would put them on the actual player character. You could also maybe use spawn emitter for the Niagara part. The bigger issue is you have a multiplayer element which means replication and so on, and that adds a whole other layer of complexity
Yeah I'm painfully aware of the annoying complexity of multiplayer lmao which is why I kinda just wanna do this system once and get it right first time instead of fucking around lol
I will say that the decal, particle system and sound effect are only seen/heard by the one player using the ability, no other players even know its happening from a visual/audio standpoint so as far as replication goes the other clients may only need to know when the ability is active or not in order to react.
So for Niagara and the sound effect, would I just spawn and destroy as needed? Could this potentially cause hitching when garbage collection is ran or should this be alright? Although the sound effect I kinda need playing whether its heard or not as soon as the footprint is spawned instead of playing it only when the player gets close enough to hear it so when they do get close enough they hear the sound playing from where it should be and not playing from the beginning if that makes sense
Not sure if garbage collection would cause hitching in this case. Some things you kinda just have to build and test and refactor from there, because every project is different.
You can prly use spawn sound at location for the footsteps
Yeah true, was hoping someone already tried something similar before me and had the answers so I could avoid that part lmao
Spawn sound at location would keep the audio component there so I would have to destroy them all once the ability is deactivated right? Unless 'Play Sound at Location' does the destroying part already, but that would still mean potentially 500-1000+ (assuming max of 8 players all spawning footsteps) audio components being created and destroyed every time the ability is used, which I'm not sure if it would cause any hitching when spawning that many and then destroying that many until I test it out but isn't that what object pooling is for, to avoid the spawning/destroying part?
Play sound at location is fire and forget operation. Why do you want the component overhead for a single foot step.
So it doesn't create an audio component at that location when using that function?
I was trying to do that but I can't get the fucking thing to open lol, so how does 'fire and forget' work, cause if there is no spawning/destroying happening then I assume it doesn't effect garbage collection?
Fire and forget means it doesnt pass reference around.
PlaySound2d doesnt return the sound being played or anything at all.
Once a reference is unreachable it will get garbage collected in time.
You r over thingking btw.
Just use playsoundAtLocation for your footstep.
Guys, is there a way to increase a car's RPM or decrease Final Ratio for like 5 seconds, acting like a Turbo Boost?
God I hope so.. so that will be fine for the sound effect that gets played, what about spawning/destroying the Niagara system and decals, should I be alright with spawning/destroying that much or is there a better way to handle that too, that you're aware of?
Depends on the niagara system and their lifetime.
Do what you need to do and just profile.
If you dont take much performance why stress over some non existence problem.
I iwould probaaaably go ISM route and not decal but might not be anything to gain from it at all
If its a local only ability, there's no replication going on at all
might want server authority to activate it but that should mostly be it ?
"Am I the class i pretend to be, with the ability i try to activate?"
Guys, if I have a blueprint with many branches, how can I organize it to be easier to read and have fewer branches?
combine, Sequence, functions, collapse graph,
pick many, make spaghettio
I'm a fan of functions, personally
the main eventgraph showing the broad strokes for the most part
Beginplay->InitInventory() -> InitPS()->InitHUD()->SetupBindings()->SetActorLocation(GetVoidLocation())```
I feel this is not enough
For example, if I were using a branch for exiting the door, a branch for entering, a branch for closing the door, and so on... some of them I'd put at the beginning of the code, some in the middle, some at the end, and some inside another node, that's what makes my code spaghetti cheese.
this sounds like a design issue
I used Enum for the main events. It was great, but with the secondary events, the same problem resurfaced
show some code ๐
I'm not on PC right now
gotcha
hard to give specific suggestions without seeing what you're talking about
using a branch at the start, in the middle and at the end doesnt tell me all that much
By the way, the first project I worked on in Unreal was yours, you're a legend
I'm flattered, buut it wasn't mine ๐
But the project was extremely complicated, haha
It was yours, weren't you the owner of the YouTube channel?
nah, i just hanged out on the discord forever ( still do )
You're thinking of UnrealGaimeDev, the german developer
Perhaps this is it, I don't know, it was years ago
So how could I have thought it was you? Was it a coincidence of names or what's the story?
The most common reason for the misunderstanding is that I'm an admin on the server
so that'd be my best guess
Your prediction is correct, he is your friend, since you are the server admin with him?
It's mostly because i helped out so much on the server , don't really know him all that well (beyond his tutorials and thesis)
Great, please send him my regards, if that's possible
It's been quite a while since I talked to him, would be pretty random ๐
It will be a chance to talk to him, he has a wealth of information, haha.
Yeah it need server auth to activate and I have a 'IsAbilityActive' bool set to RepNotify for other actors that need to know about its status but all visual/audio stuff is local only. In this case where its a footprint being shown, how would I do that using a ISM set up instead of a decal? It might not gain anything but still good to know the different ways of doing it
No difference with what ever system you going for. Networking wise you just need to inform the clients where the foot steps are.
Just wondering if box, sphere and capsule collisions have a parent class I can add to a data asset so I can add the collision check for overlaps per data asset (Hoping this isnt too expensive and saves me having multiple classes?)
As I believe some one once said it was cheaper to check overlap than it was to do a trace on tick.... idea iis a spell indicator
Posted again because it may apply to your question.
There are many ways, but there is already a built in tag method and many hit detect output options.
? (Im not asking how to do the trace) I have a spell target actor and was going to use on overlap events instead of doing the trace on tick
was just hoping to add components by a class so i couold do the shapes i want but thank you i think
Collision vs sphere trace doesn't matter. The system is built to detect which objects overlap. Multiple tags can be applied. It's a viable way and sounds like what you are actually trying to do.
on overlap should be cheaper than the ttrace so to me it does matter
i think you're a little off topic with the question or i havnt worded it correctly
It doesn't matter because they both have the ability to clarify if the object qualifies. Which sounds like the entire point.
it would for a spell/target indicator
as the trace would run on tick where as the overlap just add and remove the targets on overlap when they exit/enter the volume so in principle for returning the actor yes similar but not quite the quesiton
but again the question wasn't how do i trace it was is there a parent class for the collision shapes. Turns out there is and its the UShapeComponent and can be used in data assets as a class reference
Im running hundreds of trace per tick, no issue.
Well line trace
If what you are doing is already working, keep it until it become performance burden.
To find out just profile.
Otherwise trying to fix non existemt problem.
I have nothing further to say "so I can add the collision check for overlaps per data asset ". I provided a valid way to "check for overlaps with criteria". You are arguing non related points.
I wanna ask about my setup. Anything to keep track of, improve, remove, tips etc.
- Pawn creates widget(s);
- HUD is informed and you can tell it to: Hide/Show widgets from an array (also allow smooth fade in/out animations)
- Additional, widgets have a data base for information such as Z order
And since widgets are stored in the pawns, if you were to switch pawns, just call a function to remove old and add new (and/or play fade animation)
Images taken in the HUD BP
thanks
For most practical purposes all that's needed is a good switcher system. That identifies mainly active widgets so it can automatically close/update others. Adding effects like fade out can just be incorporated into the switcher. It's a small amount of clean code. I'm not certain all that is providing any real benefit?
I wanna add the effect of fade in and out for stuff like cutscenes, or small easter eggs like if the player is idle for too long the UI dissapears
not really sure how I'm gonna tell each widget to have a certain opacity multiplier though, unless I copy paste a bunch of code for each widget
Pawn make a method to detect idle.
When idle to long broadcast delegate
Widget listen and apply the fade in
Player move broadcast delegate
Widget listen and apply fade out
hey i have a problem.
Someone plays to much BDO. That's the only game I recall doing that. They are screaming LOOK at our awesome game world while you afk ride to your location ๐
Oh yeah that makes sense, don't really know much about dispachers but I'll get into them
gotta make a function like: Canvas Panel Multiplier + the Dispacher Event, thanks for the idea
How do I make my character face my target when attacking and revert back to moving around?
Oh damn, you really need them. Keeping depedency one way is very very important.
And you can achieve that with event dispatchers.
simplest I can put it
When clicking attack, face the enemy and maybe even disable input on the player, then delay for 1s or when animation finishes, go back to moving
if you want to face the enemy constatnly while in combat, use tick (with an if statement or even better an enum)
You may be on the right track. I'm revising some of my code regarding that so I'm not posting it at this time. I was setting the rotation of the enemy to face the placer (via similar vector/rotation nodes). To help ensure when the attack montage plays it's facing the player despite their movement. However, also note most AI to move/follow already tracks the location of the opponent.
Regarding the "disengage" you need to have control logic to determine that. As simple as a Boolean IsInCombat?
As simple as a single split. Top bottom. Does it roam a spline or follow player. (Depends on the combat state)
If that's referring to the player itself and not the enemy that's kind of weird in an action based system.
Sounds like a target based system
What I understood
The goal was to face the enemy in combat, so yeah target based
Linetraces are pretty cheap thats true
But the only proper answer is GIT GUD ๐
ยฏ_(ใ)_/ยฏ
Ue 4 gamedev?
But why? Performance?
More
Because I am alone I don't have time to tweak stuff in UE5 to make it more performant
Ue4 is still a good engine for making games, I value my own personal design skill rather than letting UE5 do my whole work
UR4 was built on a commadore. Instantly ready to go. UR5 was built on an expired Windows versions and comes with built in elevator music while shaders load.
so why not Unreal engine 3 then ?
Even better
Because they don't make the original 386 chips for that anymore.
Udk was pretty fun.
Nah but rly, once I tried UE5 and the heat was noticeable
So I said, nah UE4 good enough
The state-based scripting was nice.
I can never go back .... the auto retargeting alone is way too good to give up
DIdnt you have to manually create bone chains in ue4 ?
I still have ptsd from that
You had to create bone chains in the skeletons linking every goddamn bone
Cant 100% remember the whole process anymore it has been a few years
Funilly enough, I never had a Character for my games 
I wouldn't go back. However, I played a UR4 game recently and it was an amazing experience. The load time was nearly instant and made short game play experiences much easier.
You can get almost the same performance in Ue5 too with a bit of tweaking
Some devs are lazy to optimize and read docs
UR games have 2 main complaints. #1 performance #2 similar appearance
Developer skill issue
Because Unreal Engine 5 gives you stuff that looks amazing out of the box
U need time and dedication to tweak stuff
Many just take it as it is without doing any sort of optimization
OH crap! sory was easting so much information
let me catch up
this too
here's my game on how targeting works
Thicc Toriel
Bros out here trolling again eh ? ๐
but yeah this is the video that's updated
here's the updated one
What's happening in that video. I only see one object. Everything else is out of focus.
what you're seeing is my character targeting the enemy. but when I attack it's not making my character face the enemy when she attacks
I mean did you plug the, set actor rotation pin?
Coz unless u plug in your pc. It doesn't work
Gg
eh no? Mind specify that a bit? where do I need to add that?
You need a proper animbp to fix that #
They are saying the set actor rotation isn't attached (execute)
ah!
In the start of the vid
It's the white line. It's not being called at any point.
I know what a execute is. It's the white line from the arrows
First pin of the play montage
It would go before the animation montage.
Yeah ur right
After the if statement is good
Rotate player -> then attack
False > Set rotation > ....
Perfect
Btw u unchecked the red box
Which does what? ๐ That is more correct, but the answer is ...................... that rotates the player in this case.
uhh
this happend
?
U got some errors
U might wanna check that out
Accessed none means could not find data.
hmm
According to that video do you even need any of this?
Why is the player controller not dicating everything? That's not a turn based. It looks like real time combat? No?
it's a hack and slash
Can you send a pic of the whole code?
sure
Most likely the hit actor is not valid
Then why are you essentially trying to force a target lock?
The sphere/line trace already detects animation/motion.
The game ideally should detect the hit upon the players position. Not a forced lock.
I want the character to casually walk around at any direction while targeting an enemy
Ouch, here is the thing
Ur getting the actor location of no one
but when she attacks she faces the enemy to make the attacks easir to reach at the enemies
oh!
where? At Set Target Location?
One more time this is a working example
well let me listen to c37 first
Here is a good setup for you:
Attack: Trace a line in the direction you look
Then get find look at (Start player; End: From break hit result Trace End)
Do you want to look in the direction you attack
Or the enemy you attack?
Look in the direction I attack
where? which node do I need to pull?
You can:
Win+Shift+S to send me a picture of your code
ok?
If you want better control try something like that. Ideally you would use the top/bottom of the axe as your trace point. Refer to trace images to how it actually works and what you're tracing.
Null means some blue line has invalid Actor, (null means there is nothing)
I meant None*, its null in coding side ;d
Which node tree?
This one?
I can't send hq screenshots with the whole tree node you know?
this is a first person camera blueprint, c37
yes?
you said point player where it's looking at the point of attack
oh I'm sorry, here is better
ugh...
sorry
what's the problem?
exactly where to put set actor rotation?
and what exactly is that doing?
so why don't you copy my code and put it in between there?
because this was made from a tutorial on youtube.
I needed it because it was helpful
fair enough
I just need to figure how to face the enemy when attacking
ok, simple
how do I do that without changing the code drasticly?
ok, 1 moment
this isn't helping
Why?
Im way lost than before
because all these new nodes are different from mine
you're setting your player's rotation to an actor that is not yet determined
and yet, I don't know what I'm doing at this point. I'm more lost than before
I see you're overwhelmed a bit, I'll try to make it very simple
Hello guys, in this quick and simple tutorial we are going to learn how to make a simple enemy target lock system in Unreal Engine 5
โช๏ธCheck out awesome Unreal Engine courses: https://bit.ly/GorkaGamesWingfoxZombie
Enemy AI tutorial: https://www.youtube.com/watch?v=xm-7m5Fw1HU
Check out my Steam Game! https://bit.ly/3rVlXU1
Follow me on Twi...
or just try to follow this guy and we'll be in the same page
I'll come back later
It's a simple concept:
- Trace anything, a circle, a line to the enemy
- Store a refference to the enemy
- Get the enemie's position
- Find look at rotation for your player
- Set the player rotation
Trace what? How do I trace?
trace is just a line, checking something you hit
can you give you information about what it hit
I donโt have a trace line in the node. Do I just โadd itโ?
here, middle mouse button gives you a trace from what I've seen in your code, but you never did the trace (on an actor) so the refference is not valid, so you get error and the END location is set to 0 that is why your player in looking in one direction
C37. I wanna say is thank you for helping me, but this isnโt working out.
if you copy this code, and put it in between the if statement and the set boolean node, YOU'RE DONE
The nodes are too different and too vague of an answer to fix my nodes
Like I have 2 different tree nodes that works together and you just showed me to do it with ONE tree node.
Like do I disconnect one of my nodes and put it on the other tree node?
You gave me answers but all it did was make me ask questions.
ask them
Thank you C37, but I think this isnโt working out.
Im trying to use the timeline as a scale between 0 to 1. Depending on how fast the player is, i want said timeline to decide how much of a percentage of the head bob its gonna be using. What am i doing wrong here? Its working to a degree but it clearly doesnt 100% the headbob at max speed
no hard feelings ๐
, still I felt bad so I followed the tutorial
here is everything:
now when you attack, and hit someone (that has collisions set to pawn) you focus on them
sorry again for causing havoc in your brain, if you feel overwhelmed, you can restart and take a break anytime
Hi, I have this guy who starts on the roof. In my last test level, he would move to a window based on where the player was looking, and would step up over the roof to do it. He still seems to do that with the two story version, but my addition of an extra nav proxy isn't being used. He never gets up to the second floor windows. Does this come down to something I am missing with the navmesh, or it is gonna be in his BP logic?
Collision, nav mesh too narrow, step up height, could be any of those things or other
Unless I'm mistaken, one of your nav proxies are wrong. It's not going from the top roof to the ledge. It's going through the ledge.
Can you control the angle of that arc? I thought they were purely an indicator of which ones are connected.
like as long as they light up green when you place em on the navmesh they seemed to work before
Oh! Thanks Iโll look into it.
this is much more clearer
Like this?
hmm
nope, she doesn't face the enemy when she attacks
Dude in the tutorial mentioned something about collision of the mesh set to pawn
(The make array thing has an 'enum' set to pawn, so it only detects pawns but if you don't set the collision in the enemy as pawn then it's ignored)
Bare minimun of debugging:
Is asking why it doesn't work
For example:
When Key '1' pressed, print Hit Target, to see if you actually have a reference to someone.
It's a fairly simple and short tutorial, you should rewatch it to see what you probably missed
Just adding prints along the way, and debug objects at locations etc, helps 95% of the time
If not more
heyy guys, someone know what is wrong and why i can't load my player data when enter again in my saved game?
i have a system with checkpoint save
and this is inside game mode connected to Event OnPostLogin
i tried with player id, i tried with player name but nothing changed
it runs on Find node False
my checkpoint successfully saves player location and work fine to respawn it on last checkpoint, but with cannot save player data and load it from ST_PlayerData
what are thje red tiles under my npcs ? ive set dynamic nav meshing but they dont move along with the bรฅpcs
You need to determine where the point of failure is first.
- It is a good idea to clear the saved states when testing the savegame system. Saves are inside YourProject/Saved/SaveGames or smth like that.
- Add prints to see exactly where the code is failing - is it when placing data into the save game? Is it failing to save? Is it failing to load? Is the data in the loaded file? Is the data properly passed to the player? Is the data properly applied? Is the player name different between sessions?
on second screenshot i set a print string from the branch, and it goes to false, so inside print string
but the file inide Saved Games folder is not readable, so i cannot see what is inside
i can't understand why with a simple variable inside BP_Savegame all works fine, for example for last checkpoint location and my car HP works fine, but variables inside Structure cannot be loaded
or maybe saved too
can you check please my foreach loop node, is that correct what i made? do i need to use get player id or player name?
I don't know exactly, this is why I'm telling you to debug with prints. Print what names you are saving. Print what names you are loading. Print what names you get from the player
Btw in the top screenshot you are saving the same save twice. It shouldn't influence the data inside, but it is unnecessary to save twice in the same execution chain
Since the second sequence pin has a condition, move the save node to a new, third sequence pin
I added a print string right now before Add node, and it gives me all player data, so all is ok with cast to third person character๐ค
so i don't need to add anything to Completed output of the foreach loop?
Since you want to possibly modify the save after the loop too (in the second pin of the sequence), saving already on completed is not needed. Save only after everything was modified
something like this?
Yup
But as I said, it was probably unrelated to the problem. Just an unnecessary double save
okay
what about player id?
because he cannot find any player data
from second screenshot after Find node, it goes to False
could you tell me just one?
Resident evil seems to be 3d though
@crimson briar if i add a print string with that get player id, every time i run the game the id is different, i can't understand why
i tried to run game as standalone, but nothing changed
Then you know what to look into. I'm not sure how to handle players reconnecting and getting their individual data, I didn't do saving in MP yet. Maybe ask on #multiplayer how it is usually handled
i already asked but no one responded, so switched my questions here
im using a Camera shake with wave oscillator. When im trying to control the entire camera shake effect through the maths based on the character's speed, it only seems to be affecting how big the camera bob strength effect is (0-600 speed translates to 0% to 100% effectiveness of said camera shake).
However the frequency is completely unnafected. Any way for me to fix that?
you probably have some settings for this that affect navigation
also if it's collision box/sphere it also can have overriden default way how it affects navigation mesh (for example Null will completly remove it, and Obstacle will make the area more expensive)
Guys, if I have a blueprint with many branches, how can I organize it to be easier to read and have fewer branches?
i think you are overthinking things and trying to blend 2 systems that are hard to do without some custom tools, it is for sure possible in Unreal because you can do anything in Unreal, but it requires to think out of the box and create some crazy custom tools (basically engine in engine)
also diablo 2 is full of 2d sprites, even the characters looks 3d they are actually sprites, there is no 3D models
also the tilesets you are using, if you want them isometric, then they are already isometric by looking at them from topdown, you do not set extra Ortographic Camera on top of already isometric tiles, so placing 3d actor is gonna be impossible
you could make use normal tile sets then (not isometric), then change camera, and treat your Tilemap almost like Landscape, but drawing tiles so they look good under angle probably requires some gymnastics in how you draw them
if you want 3D character, then you need everything else to be 3D and just set Ortographic Camera to look at it
again also what do you mean will this tank performance, do you mean 500 characters, do you mean 1? it depends.. 1 character and 2d sprite won't tank performance but Sprites itself and the whole 2D space is not the best performance pipeline anyway, you can just use planes (so you can make Instanced Meshes) with materials and grid of UVs that you set based on what you want to show, so you have 1 material with 5 characters and you just set for each character to use different UV from that one material, it reduces draw calls and improves performance (both because of material and instanced static meshes)
and also because you cannot find a isometric game that has 3d characters with 2d tiles should already tell you something
change booleans into states (enums) and instead of checking if(bRed) switch on red/blue/yellow
I like enums; I used it for the primary nodes, but then I didn't know how to organize the long secondary nodes
show the actual problem
Outside the box is key ^
PaperZD is a neat plugin for sprite chars
2.5D is also somewhat popular as an alternative ๐ Octopath ftw
but to simply the anserw, I don't think you can fit 3d character on isometric tiles, it needs to be sprite, baked/rendered as you were looking at it with isometric view and then imported to the game
and then use PaperZD to setup animations and so on
yeah that game is beautiful, but it's not true isometric ๐
True that!
What nodes would I need to map between 2 different float ranges?
I am getting the position value on a spline to move a vehicle blueprint.
I need some type of math nodes to map this position to rotation values so the wheels steer the vehicle as it rounds a curve.
Something like .4 to .5 maps to 0 to 45 degrees.
Thanks
you might need two points on the spline to make it look good ๐
(CenterVector - FrontVector).Normalize DOT Car.Rotation.FromXVector()
๐ซก ๐ฏ bruh
thats what i thought
its quite impossible
one thing that can be done, but it is quite painful to do
is to tilT the camera 45ยบ, split the isometric buildings into cells, orient the building cells to the camera, so now you have an isometric building in an isometric 3d world
then you had to do some gymnastics to set the building cells at different offsets from the camera
so it doesnt clip the floor and doesnt clip the character
although this would work, its a ton of work
do you see what im trying to say here? @dusky cobalt
Keep in minds its all about what it appears to be
nobody cares what it actually is
"oh you cheater, that's a 3d object with a flat texture, how dare you! "
๐ exactly
yes, I can imagine exactly, this is the 2nd nightmare approach, because it's like the building sprites take 5x5, but the foundation of it is 2x2 let's say and it just fks up with your brain and I think making levels with that and fighting your brain and so on it's gonna be distaster, because you would see that you place character on the ROOF of building, but it's not really roof and so on..
and placing collision boxes so player cannot enter the tiles that are now sprites of roof, no just no xD
xD
because if you think about it, the cool thing about unreal, is the the how easy it does the 3d. so when you make an 2d game, then you are better off going for gadaeux engine ๐ฅ๐ท, and the worst part about 2d isometric games, is the animations in gazillian directions, and still janky
so maybe the best of both worlds, would be this
yeah its a mindfuk
yeah
though i really like these challenges, i live for these challenges
Hmm, this is the compromise you need to be willing to take. These are easier when you have teams and people that can focus just on these details.
Did you hear about something like design by constraints? if you are solo dev and you are trying to make a game, you should really know what are things you can do and what you can't and then adjust game you are making to that, otherwise you might have hard time ๐
Resident Evil 1 remake uses pre-rendered 2d backgrounds
nice
People have asked in my past video how this stuff works. Here's how you do it in Unreal. The goal of this video was to explain the main material and the core of the system works.
I will make a separate video how to export the meshes and cameras and sync them up and explain a bit on the blueprints I created.
Project repository (sorry for the de...
a technique like this
this is so cool
though its a ton of work
there's also Final Fantasy 7 (original) that has isometric sections with 2d backgrounds and 3d models
This is a demo I am working on, for a game that will use prerendered backgrounds. I am going for a similar aesthetic to Resident Evil Remake and Zero.
I build out the scene in Blender, then take renders. I then set up the camera and renders with a post process to display the prerendered scene, shadows and lighting.
though you cant really interact with those chairs
you cant do anything
unless you make the interactables actual 3d
yeah found it ๐
you have to think about this. if you want interactable objects within the scene, they cannot be pre-rendered. so in this case, you would have 3d chairs instead of 2d
it will look uncanny valey. it will be hard to make it fit
if you still want the chairs to be 2d, then you'll need some kind of pre-rendered animation which seems pretty hard
avoiding uncanny when you are marrying two completely different visual mechanisms together seems a difficult task
if you want 3d interactable models with 2d backgrounds, i suspect you will have to accept some amount of disconnect unless you are just amazing at art
yeah so maybe instead of trying to making it a flaw, make it a feature, like some 2.5d games today that make the sprites very obvious they are 2d
idk
๐ฏ
this was always obvious in the old games aswell
interactable objects clearly wasnt part of the pre render (in most cases atleast)
The memories ๐ฅน
Excuses for the weak, go and make 2d pre rendered animations ! 
Hmm! Iโll go check
what are you trying to do here ?
Long story short:
Camera combat focus on Enemy
Don't ask me
lol
Kek
i chose to target the center between the player and the enemy
personally i go with a seperate camera actor that has any object as its target
and interpolates between locations
so you literally just set the target object and it looks at it
He's a beginner
Like
A real real beginner
Just wants something simple
oh i'm not saying its simple, i'm saying how i built it to be simple
well thats really the ideal situation and its not that bad to create, but ya i see they probably just want the tutorial to work
i'm not sure why you need a line trace
for just rotating the camera
Me?
Well, on enemy attacked
Store hit actor and focus on him
Multiple ways of doing one thing
oh i see right makes sense
you need the target somehow
Tru
but the turning of the camera is a lookat once you pull it from the character
Alr enough talk about somebody's else's problem ๐ฅฒ
Seems legit.
||Slate is not evil ๐ป ๐โโ๏ธ||
... Sometimes.
When it comes to actually spawning the footprint decal/ISM, should I just be doing that through AnimNotify's in the AnimBP or do I need the pawn class themselves to do something?
I just want the character to move freely while targeting only to face the enemy whenever the player presses the attack button
and then went back to moving freely
is your camera seperate from your character ?
yeah?
is it in the same blueprint ?
yes
i think what your probably fighting with is control rotation
its easier to make a seperate camera if you want this kind of stuff
what you can do is make a seperate actor with a camera
sounds like I have to go back to ground zero
well you don't have to
ig you can work with what you have, but what exaclty isn't working ?
you used the third person template ?