#blueprint
1 messages · Page 271 of 1
I was trying to do a 20s timelimit for all connected clients to make a decision within
starting the timer on the server seemed right however getting all connected clients to use that timer
What's stopping you from using the timer?
there's multiple ways of doing it, depending on the pros and cons you want to take.
im gonna say my lack of experience and the instruction I had been given (and my searches)
im very open to a better way
do you actually need 20 seconds window for the clients?
if not then just use server and let clients suffer some penalty in time due to delay.
you can tell clients to run their own timer if you wish
but their timer can just be a visual indicator
yes the 20s window is for decision making and id rather have it server managed due to lag etc?
depends on how you want to design it.
but you can look into round trip time to do some offsets.
basically calculating the time it takes for the letter to arrive
well i was rep notifying the variable i was setting from the timer and just binding to it on change
You can do that too, that will just cost the bandwith more.
really up to you, what ever works.
You can also just replicate the initial value and let client tick their own timer.
instead updating all 8 clients every net update.
i didnt want it on the clients as i didnt want them to be able to modify it.
it happens once every 2 mins or so, so was hoping it would be ok
doesn't matter if they modify it? server is the truth
they can modify the timer to 99999
why would that matter
it's just for visual.
the server can just carry on with the "no answer given" logic
once the timer expired
it didn't need to ask the client, Hey is your timer expired yet?
i get what your saying and does make sense i guess its just what i had been told/found
no the server downt ask it just carries on
yeah you don't really want to trust the clients on a lot of things.
as they can modify the value on their end and nothing you can do to stop it.
does that still work if o want them to be able to use a one time pause/extension?
there are casses where you have to accept the client data. Such as Moves and Shooting.
Normally the client send the data, but the server still verivy if the action is possible on their end.
if you are going to do that, I think the path of least resistance is just to replicate the time.
as in a float variable called the time
you can make the timer more accurate by accounting round trip time
additionally if connecting the match late wouldnt it be better as a rep notify variable (say for the purposes of reconnecting when the timer is running?)
really up to you, I can't say what's better.
rep notify is less work the way I see it.
do you have an opinion on another method for connecting when timer is running?
I will just Replicate the variable
ok, thank you
path of least resistance to me
you should look into round trip time though
if you want the timer to be more accurate, but it's optional.
Nah, the concept can be done in blueprint
it's just calculating the time for the rpc to arrive
so you can offset the timer and kinda ahve almost the same time between server and client.
Think about server replicating a timer value.
Lets say the timer is at 20 seconds.
By the time it arrive to client with 200 ms, the actual timer in the server is 19.8 when in client it's 20.0
if you subtract with round trip time.
In client it will be 20 - 0.2 = 19.8ish
not gonna be 100% but pretty close
i was hoping that delay would be constant ish so when it starts 200ms later it also ends same
but get connections vary wildly
yes it depends on the connection so the best you can do is to calculate the average.
that article covers it.
yeah, I thought so. Just implementing was where I was struggling
thanks for the feedback at least i know im in the ball park
@woven pond I just noticed something though, are you gonna be displaying in decimals?
because the server can only update soo many times in a second...
Yeah looking at it, I would just have a timer running on the client.
especially if you have decimal
because you want to see it change smoothly
it will be weird to go from 20.9, 20.4, 20.1
you want it 20.9, 20.8, 20.7 , ....
So server will just inform the client the timer value and client can decrement it them self.
ok, I can manage that (Although getting the time remainign if having connected part way through will be new)
I used a local timer
With desired resolution
Start it on the server -> let client know it started
End it on the sercer -> let client know it ended
Anything in between was locally simulated
At whatever resolution you want
Hi, iv been tearing my hair out trying to get my head around getting rid of cast to nodes in loads of blueprints that really shouldn't be done that way, managed to get a lot that don't rely on calling anything or setting anything to the characterBP but i cant find anything that actually helps set up an interface (assuming that's what i should be using) to help solve even the most basic of the functions i want to use....
character with a bullion called "has rubbish?" > interacts with a vending machine > takes a can and has bullion "has rubbish?" in the character set to true > interacts with a bin > checks for "has rubbish?" and if they do drop it and set the bullion to false
obviously using a cast to here works but im trying to cut down the fact that so many blueprints call with cast to, and instead of only being a few kb in memory, they are multiple gb due to the way hard references cascade down... but all tutorials i find only talk about creating a basic interact function with the interface and iv already got them sorted, and cant find anything about how to set and call variables in a more efficient way... i really want to get to grips with not using cast tos to change variables be it bullion, float or probably some others somewhere that would also need going in...
really would appriciate some direct help on this one as its driving me nuts and getting nowhere
Another victim getting rid of cast nodes to replace it with interface 
casting is free, it's the hard reference that cost the memory foot print
solution is to cast to Native class (having a base class in c++)
that's why blueprint is not scaleable for big project imo.
Interface is not a replacement for cast, doing so will give you a debugging nightmare
so why do so many say not to, and why does the memory and disk size of a tiny asset scale up so big when using casting
Casting to permanently loaded classes is fine (most player classes and game mode/instance/state
they have no idea, it's mostly a youtuber found out they are dealing with memory foot print. Make guesses , which is incorrect then as youtubers do best, they copy paste each other.
And the incorrect information get prepetuated.
the article covers it, I strongly suggest reading it.
take the word of Epic employee, not youtubers.
i have got down to the bit about casting, how do i know which is hard or soft referances
The hard reference to the blueprint asset
casting to native class cost next to nothing and will not load it to memory.
Your character will always be loaded anyway, assuming there's only CC_Character_BP in the entire game
so cast away freely
for other things that is not always loaded, you want to cast to the native class
generally all im wanting to clean up atm is anything that evolved around the player as it was seemingly increasing small asset sizes, as well as a lot of extra parts that arnt even related to that bp which im assumign is down to the cast to cascade
but if memory of something like a character is always there anyways, its not actually increasing it?
your character will be loaded anyway. But any hard reference that is referenced by the character will be loaded.
to load them at will, you can use soft reference.
but the context have to make sense
oh right
so i can just go ahead and keep all the bps that use the character cast to to set and call variabls and functions and its not gona save any overhead as they are pretty much always on and avaialble anyways ( ticket machines, bins, drink machines, carnival game object pick ups, hidden object pick ups)
you can only safely cast to bp_character because you will inevitably have a characte to play anyway.
They will always be loaded just as Squize says, your game instance, your player state, etc.
but your game may not always have a ticket machines, bins, drinks, in the level
so you shouldn't just cast to the blueprint asset of ticket machibnes, bins, etc.
as the hard reference produced will load them to memory, even if they don't exist in the map
The myth buster article is a gem, spend a few minutes to read through them.
so those 2 nodes.... this is what i dont get, how to get 2 different casts up when theres only seemingly the option for 1 of them and the other is a class,
the native class is declared in c++
blueprint only project doesn't scale well
you either live with the limitation or learn what you have to learn
Blueprint is running on virtual machine, a hard ref to the bp asset will load it to memory
so how do i get to look at c++ blueprinting?
if its limited to blueprint only
how is it limited to bp only
I would suggest learning cpp outside unreal first. Know how to use functions and declaring variable, then pointer. That's probably about it.
just to learn the basic probably take you a week. And with just the basic you can probably do things already.
kinda open a whole new world
hmmm fair enough
you can start exposing a lot of the engine. 70% or more engine function probably not exposed to blueprint
there's no reward for bp only project but you can reap the benefit from using a little c++
like not having to use broken blueprint struct
it's significantly faster at things in c++
blueprint is great to use but definately has it limitations
good for glueing functions together and asset reference or data only bp.
Use the best of the both world
hi everyone, is there a simple way to implement this scroll function in unreal? I want to be able to walk up and press a button for it to scroll.
https://www.youtube.com/watch?v=GjRgBxCXsdk&ab_channel=SouthboundBuff
Scrolling an R46 rollsign at Rockaway Park - Beach 116th Street
ooo i know an answer to that one but not sure its the best solution... i have a scrolling dot matrix sign that just runs by itself, creating a material with a panner that just sits, but if you made a panner with paramerters and then an instance, in the blueprint you could control the speed and direction of the panning variables with key presses?
and the texture is just quite long and thing (8192x256) just coz it has a long message
well for now ill have it set to one sign, how can I do that in the material?
as in just a simple image as a texure and thats applied as a material in a seperate slot? if it involves anything properly uv mapped then im out of luck on that front
Hello! I’m trying to have the background blur strength of a widget change incrementally as the player does a task. How can I promote this to a variable and assign it a dynamic value?
When in widget mode, click on your blur and go to the upper right and check "is variable". Then it will act just like a component and can be accessed trough casting
The widget component itself contains the current value. You just need to adjust its value as you see fit.
Hmm ok I think I’m close but it doesn’t seem to be actually changing
You can always try it with a post process effect instead of a widget
The widget is already in the viewport at this point
Yeah if there’s an easier way to do this that would be great haha. Basically what I’m trying to do is if the player chooses to drink alcohol, everything gets a little blurrier. If the player then drinks water, it gets less blurry. My thought was to do it with a basic widget but maybe that’s not the way to go?
This is creating another widget and manipulating the value on it, but this widget isn't added to the screen.
You either need to communicate to the widget you've already added to the viewport or have the widget listen for an event dispatcher that you could trigger so it can adjust itself as needed.
Anybody know the best way to execute these commands? Seems to activate about half the time after re-launching the game. Even worse when trying to get it to catch with packaged build:
Please @ or reply me so I can see. Thanks in advance if anybody knows
I have these in the level's gamemode bp atm
I'd consider moving them to something like the player controller. They may be running too early for something. Game mode is one of the first created. May or may not help with some commands.
I'm also not 100% sure, but I think the lumen ones should be put in an ini.
Thank you, I'll try that next
So I have a pawn as my player, this is just not working, here's my move IA too.
question, i want to make a diving attack which includes the ability to land directly on top of enemies and displace them from their position or at least displace the player near them if knockback isn't possible. I just mainly want to know what's a good way to achieve this?
i know characters with their capsule colliders by default will bounce off any other capsule collider that tries to get on top of it
Do you have any movement component that is utilizing the movement input on that pawn?
you can adjust this so the capsule is steppable
oh?
where in the settings of the capsule collider will it do that?
ohh ok
hmm
though it will allow them to stack on top of each other
i guess that isn't the actual desired behavior since i want either the enemy or the player to displace and for the latter i don't want them to bounce away, more so slide along the target's capsule to the nearest possible place
i imagine for that, it will allow for them to stack on top right?
you dont necessarily have to
but I'm not 100% understanding what you want to achieve
lemme doodle what i want
oh I don't, but with just print strings it was working just fine
I added one and it works. Thanks!
basically i want to do the no knockback effect
where the player slides near the enemy from above when they don't trigger knockback
cause at least with the default behavior
if the player falls directly above the enemy, they get pushed away a considerable distance from the enemy
guess the answer to my question would be
how do i reduce this bounce force?
This worked perfectly. Thanks again
Glad it worked. 😄 On a general note, PlayerController is one of the safest place for console commands due to it being a major part of what runs exec commands same as if a player entered them by hand in the console themselves.
How can I make it so I can't jump in the air? Im not too sure what to do.
how can I create a variable as a "structure" then change the variable type to "specific structure"? like for example, I have different products with different product structures. in the product container ui, I have a StructRef variable. How can I set the StructRef variable to an abstract, then set the type based off an input of a function?
ie, StructRef becomes ProductCupsStruct
or it could become ProductFurnitureStruct
I'd suggest you look at Instanced Structs
ty
is there a way to reduce the bounce intensity when two actors are stacked on top of each other and they can't step on each other?
I'm not sure :/ this might be configurable thru c++
time to go deeper then
you can perhaps set the step up enum to "yes" and do a manual check on possibly event hit or something
i guess i could yeah
on event hit you'd check the impact normal and accordingly add a custom impulse to target actor
sorry, how would i then cast the instanced struct to the specific struct type? I have a StructRef var as Instanced Struct
i set up a switch-case based off a types input
ok so its a bit weird
uh oh
not too bad
this is one of those things that would be easier if programmed instead of blueprint lol
basically what I have is a MarketItem widget with a SetProductDetails function
the SetProductDetails function has a Type and Struct input
the Type is of ProductTypes
here's an example
oh are you just checking if the struct has a certain value?
no worries
let's say it's valid
would i then be able to do "make struct" and set the struct ref to that make struct output
from the struct input
you can make an instanced struct
the valid checks if, for e.g in my example, if** FStatusEffectTick** == the RelevantData (instanced) struct
yeah because of the "get value" stuff
right
okay ty 🙂
np! gl
instanced structs are pretty new to bp i think. but they're very neat. bit messy tho
oh wait
sorry my scenario is a bit different, since I have a types input I'm able to determine what struct type to apply automatically
would i just set the values of the struct ref based off the type?
so.. StructRef is the instanced struct right?
like for instance, if it's a "Cup" type, I can set the struct from the function input?
yes
so what you'd need to do is make an instanced struct out of whatever struct you have before passing it into the input pin
right
this is my use case btw
im reading each row of a data table, spawning a widget accordingly
I see. Makes sense
it'd 100% work for your case
in my case I'm using them for status effect "effects"
so like..
poison rank I - tick damage (using tick damage struct)
poison rank II - one-time damage (using one-time stat change struct)
poison rank III - one-time damage + tick damage (using yet another struct)
print string and see if the input is even registered
its not
show the blueprint class uncropped.
lol idk what youd get from the other parts but here u go
like the base class it's derived from
input are disabled on actor by default @digital glacier
also I hope that's just a test because handling inputs in non centralized manner is a nightmare
if you want to enable input on that actor you will need to enable it.
Actor -> Enable input
For a test you can do
BeginPlay -> get a ref to self -> Enable input (Plug your player controller)
but seriously, delete that after you are done, you don't want to handle inputs outside of input component / character / controller.
THE GOATT
🙏
read the rest of the sentence though.
you will be shooting your own foot if you have inputs on doors, etc.
dont worry its a test ;p
anyone have an idea as to why when the Result finally gets processed after 4 digits, immediatly pressing the 4th digit for the PIN is an automatic success?
it may have to do with the fact that the "Then 1" node never executes?
is this because the return node has already set?
i need it to reset all vars in this function once the 4 digit code has been processed though :/
could i just do it after the function?
in the event graph*
ill try that thank you
or keep the sequence and return last
Hi everyone, big noob here, so apologies in advance.
I am trying to create a speedrun system, for my 38 levels with 4 different difficulties, but I can't make it work for some reason.
I tried arrays and data tables, but with no success....
Basically in the screenshot you can see exactly what I want to accomplish, just a simple speedrun system that will track the total time of the level and will only save it if it's lower than the previous one ( keep best, basically)
How can I turn this 1 variable into 152, which is 4 difficulty levels with 38 levels each.
Please explain to me like I'm an idiot, 'cuz I am...
You may want to consider using a Map variable.
Maps are like arrays but allow you to reference a specific entry by a key.
This allows you to create a key > value pair. So if you have some way of identifying each level and its difficulty, you can access the particular value for that particular level and difficulty.
I have strings, that are different for each level/difficulty
That could be useful for a map lookup as you can use the string as the key.
but chat gpt is driving me crazy, when I try to use it so it can help me to create the map properly
this is what I had in the map initially
the first one is a string, the others are floats
I was trying to use the unique name of the string, and then store the float value based on difficulty
Is that a structure you're using?
but what are the exact nodes that I need ? to sort through all this stuff
sorry I was showing you a data table my bad
I thought it was a map
it was a data table witha struct
Ok, so it is a structure in that case... Data tables are read only, you can't really save information to them during runtime of the game.
yeah this is the struct
What I would probably do, is remove the string from the structure. It is still useful as it contains the values for each difficulty level and you can use that to store things within a map.... One moment.
So here's how you can create a map variable type.... You'd want to probably store something like this in your save game object.
so its a string with any kind of variable I want ?
or why is it blue/what type is it
the second one
can I turn it into a float ?
sorry for all these questions , I'll wait , in case you're still formulating the idea. I'll calm down 😄
You can use a lot of different things for the key and basically anything you want for the value. In my case I used a string for the key, and a custom structure similar to yours as the value.
I see, let me try to understand it for a second
So then if you had an entry labelled "Level1" in the map and you were using a "FIND" with it, it would return the structure that contains all the values stored for "Level1". "Level2" would have a different set of values.
can I bypass the need to add all existing values if I use 4 different save slots, for each difficulty level ? so basically each difficulty level will be a separate save
for this part I mean
It would look something like this... I use an enumerator here to switch.
ok let me dig into this, much appreciated!
damn your BPs look really cool
think the plugin for it is called flat nodes, don't remember the plugin for the straight lines
iirc that one was paid
electric nodes
electric nodes and flad nodes
Flat 😂
?
I do... I also have like... 3 versions of unreal installed with a variety of projects all over the place that don't all have the plugin enabled. XD
I really dislike the flat nodes. And I don't use enough reroutes to care about electronic lines.
flat nodes...this is the way
Yeah no, i stick with default lazy as it may be
Hey,
I am trying to convert my Landscapespline to a normal Spline, including the tangents. Currently, when I try to implement that the tangents are projected weirdly, a fix or some help would be great!
I attached images of my implementation and the output below...
Documentation about the tangents:
https://github.com/arbitrarygames/LandscapeSplineHelper/wiki/Documentation
An Unreal Engine 5 plugin that lets you access Unreal Engine landscape splines inside blueprint - arbitrarygames/LandscapeSplineHelper
Yea I tried that, sometimes there are still loops
looking at the screenshot you sent, they're only reversed
Give me a second I'll show another example brb
Ohhh wait I might have an idea
So now the tangents actually get applied, the update spline ruined it. But there are still loops and the tangents are still not correct....
screenshot ?
I guess what you could do is check the direction vs next node
to figure out if you need to flip it or not
sounds like the data you're after should just be avaliable tho
I'll try that...
you only use Connection 1, and not Connection 2, is this normal? Have you tried using everything in world space?
The second connection is the other end of the first connection, so if I loop through it it will get checked either way
I have tried worldspace
second connection gives you a basis for the rotator tho, doesnt it
I'll check, after a zoom meeting brb
Some updated blueprints...still wild results at some parts
Loops and inacuraccies
I tried both rotation and calculating it on my own and it wont work
Isn't there a leave/arrive tangent?
I tried that too, but there is 0 difference in the result
Results in way more loops
Sorry I'm not sure. If you don't care about it being exact, you could recompute the tangents manually from the spline points. Add debug lines to see how your tangents look like
How do you think I can recompute the tangents to match the landscapesplines path?
I might have found 1 breadcrub trace...The tangent rotation is in landscape space
you'd use: tangent at spline point i = (point "i+1" - point "i-1") / 2 or / 3 or something like that?
but staying with your solution, can you add debug lines for your tangents?
I think it'd put the Connection 1 tangent length to the leave tangent of the first control point, and the Connection 2 tangent length to the arrive tangent of the second control point. Might be clearer if you create a different loop to first create the spline points
I will try that
but this is the wrong direction it seems , just oposite
either -1 the resulting direction or reverse the subtraction inputs
I successfully converted the tangents to worldspace, but they dont seem to work with my spline yet
can you display them with draw debug line or something similar?
can you show your debug node?
I was thinking, draw debug line from:
Connection 1 control point to
Connection 1 control point + (Connection 2 cp - connection 1 cp).GetNormal * Connection 1 tangent length
Okay let me do that rq
I'll quickly disable the tanget code just to see whats going on
What do you mean by getnormal?
Normalize
Okay, so I changed that, but now I ain't able to define the value on the fly anymore. I guess that's the reason why I plugged the PropertySize to itself, because this way it worked.
it doesnt do anything tho
so that's not the reason why something worked
vs not working
Its like litteraly saying 1 is 1
setting 1 to 1 again, mmeans absolutely nothing ^^
Looking good? So you could plug this tangent in the leave tangent of control point 1. (and maybe same tangent in the arrive tangent of control point 2)
I don't know what you mean by break point. I'm not very familiar with all the BP nodes and will have to do some research first ^^
Right click the node -> Add breakpoint
the code will stop e xecution at that noode
allowing you to inspect surrounding values at that point in time
@gentle urchin
Regarding "logic for retrying" and "clamp" it's the same as for the break point. I will have to do some research on how to do the logic and what the clamp node does.
Clamp sets the final value to be within the clamped values
so if the set value is < or > than clamp min/clamp max, it'll be set to the corresponding limit instead
I suggested a Max clamp (clamps the minimum value), if the desired outcome is that it is random, but minimum 5
There are a few other alternatives to ensure fair distribution , since this will be heavily weighted depending on the size of PropertySize
If we say for example max would be 6, then 86% of the cases would have 5, and only 14% would have 6, in a random test of 10000 values
to adjust for this, the randomm must work with the a value where minimum (5 in this case) is subtracted, then re-added after the random
@gentle urchin
so that's not the reason why something worked
...
setting 1 to 1 again, mmeans absolutely nothing ^^
Well, but why doesn't it work then if I don't plug in the variable to itself? 😅
If I don't do that and the variable is set to 0, I can enter any number, but it won't be saved.
uhhhh xD
the thing you're doing doesnt save the value. I suspect you're doing something else that resets it to 0 😄
when you remove it, you remove the set node aswell, right ?
try to divide by 2 or 3
No, just the get node, but then I connect all the other nodes to the set node, which were connected with the get node
you gotta remove the set node aswell...
if you dont want it to be 0
I found cubic interpolation online, but I'll need to make that and that will take a while
move the tangents higher so that we can see them, and color the arrive tangents in another color (from control point 2 - tangent to control point 2)
can you show code again too? (maybe we should move the discussion in a subdiscussion or something to avoid spamming?)
@gentle urchin
Hmkay, I try it
Hi All,
Can someone point me to the solution to my problem? As you can see on the video, when I enter UI I show Mouse Cursor but the UI is not "active" until I press a mouse button, only then I get highlights and can interact with UI...
Code for freezing character so it doesn't move attached
A bit of a mess
Moved higher
@gentle urchin
It's still set to 0. I mean I can enter a value in the set node, but no matter what I enter, if I want to change value on the fly, it won't be saved.
Give set input mode to UI only. You might need to focus the widget as well.
I am playing with this now, I hit another issues tho..
I was trying to control game/UI state from the Player Controller object but when I switch input mode to UI then standard action buttons don't work... Is it better to keep the input mode logic in the HUD instead?
If you're using enhanced inputs, these wont fire if in UI only input mode. (even if placed in a widget)
Setting a variable to itself is like saying 'Hey cat. You're a cat." it accomplishes nothing. If you need to change the value of a variable on the fly just use set and change it.
or get, as in this case i belieive it was changed in the default value section
the confusion was thinking they needed to set, to be able to get
But otherwise the cat probably wouldn't know that it's a cat if no one tells her 😅
Hi, i am now working on gravitation, but when i try to walk on walls it does not properly (when i go straight, the anims are rotated 90 degrees to left/right) calculating the animation direction for locomotions system, i now have it like this, any ideas how i can fix it?
But yes, you're right! There were other issues why my code didn't work after the change. Thanks to you and @gentle urchin who helped me fixing the issue!
DestroyComponent
You probably need to adjust based on the normal vector of the surface the character is walking on. If you're just changing gravity direction, you might be able to use that.
it didn't work
Yeah, i am changing the gravity direction, can you please tell more indepth what you meant?
How exactly i need to "adjust" it
Well for example, in the basic foot IK control rig, it performs a line trace to determine where the foot should be placed. This assumes the gravity direction never changes meaning it will always perform a trace from the foot downwards. However, if you've rotated the character and changed gravity direction, instead of doing it 'down' you would want to trace in the direction of the gravity. Not doing this could result in the feet being snapped weirdly.
There could be other placed you might need to do the same thing.
If this a multiplayer game things get more complicated
Is there any way to make the tangent on one side longer than the other of a spline?
Hm, btw i am updating my gravity based on line trace from foot like this
So i need to get impact normal, but where exactly i need to use it? instead of velocity?
It's hard to say. You'd need to address it on a case by case basis. Of course the one I gave was just regarding the foot IK stuff.
Yeah, but i have 8 direction locomotion system and i need to somehow calculate direction accounting the gravity direction :/
I only need it to run on owning client
I need to simulate gravity in flying movement mode so that the player "sinks" slowly. I tried stuff like add force and add velocity, but it didn't work for flying movement type. Any way to add velocity to a flying character?
"launch character" kinda works, but it caused my character to vibrate once they touched the ground
Does anybody know how to fix the tangent (orange) that is not aligned with the green arrow.
(The bottom graph)
GetRelativeRotation gets the tangent rotation in landscape space
Hi, I have a problem with two objects wich are overlaping each other. On biger object TEAPOT its show line when is mouse cursor goes over. On second object, a CUP is smller but in a same place as TEAPOT when mouse cursor goes over line dont show up.
All is present in short video.
For changing objects I use level variant set. The BP objects seting are present in video.
[10:54 AM]
https://youtu.be/BQk-D6uq9oY
I have a problem with two objects wich are overlaping each other. On biger object TEAPOT its show line when is mouse cursor goes over. On second object, a CUP is smller but in a same place as TEAPOT when mouse cursor goes over line dont show up.
All is present in short video.
For changing objects I use level variant set. The BP objects seting ar...
@reef scroll
Hey I really need some help with blueprints, particularly collisions overlapping with either objects or other collision boxes (I've tried both)
and I've struggled all day, is anyone available to do a call to help me out?
How to create DataTable With RowStructure
C++ only afaik
Sorry What do you Mean "afaik"?
afaik = "as far as I know"
the structure the data table has been created based on has been deleted
what struct did you base that data table on?
Is there a way to call UpdateArmyUI directly instead of creating this dummy event with an argument just for it ?
Create event node will do it if there's a matching signature
like this? And it magically works?

i don't know myself
I suspect its created without a base struct
Editor tricks this with the prompt during asset creation
How to create it with base struct then
Where it asks for the row struct
i am creating asset out with blueprint nodes
Cant seem to be able to call /broadcast this ED... I set it up in C++
There should be a Call or Broadcast, right?
What's The Diffrence ?
Dynamic suggest that you pick struct type somewhere along the way of creation
While static means you can get away with precreating the base DT andnusing that as the class
I assume you wanna fill the data by script?
Yes ! Dynamic Lesson Please
Oh You Have to us C++ For That Sure I haven't found how to do it in c++ that's why i am using BP
I am searching that
You can check what the editor does aswell
I have though About it doing it agin i don't know how? debuging maybe
Yuss
There are no Creation Function Here
It got Rename row etc right?
Only Some Assign and Getter Function
no
https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UDataTableFunctionLibrary This One Got Row But not Rename.
FDataTableEditorUtils
also looking at DataTable.cpp
CreateTableFromRawData
I think you'd want to create the DT Asset, then set its struct post creation
seems like its mostly marking it for change, setting rowstruct, and save
Will the DataTable Will Be Shown In Content Browser If create it from c++
Yes,
but you dont need to create it from c++
you just gotta expose editor functions that lets you provide a struct to it
now providing a UScriptStruct probably also needs a c++ function, but that's just another step I naively assume
Link to blueprint: https://blueprintue.com/blueprint/p2hgpwio/
Hello! I am making a game for the first time! I am trying to work on movement mechanics first because I think they are interesting.
I am currently working on a Tarzan-style swing mechanic. My only issue is that I can't see my grapple cable when I press my grapple key. The swing part works. I tried debugging the grapple point actor (the actor I use for the attach end to actor node to attach the grapple) spawn and confirmed that the actor is indeed spawning each button press, I’m not sure how to confirm where. I tried to connect my cable to the grapple point but the cable is not visible. I made sure visibility is set to true everywhere I could for debugging purposes, but still nothing. I also use the same exact cable component elsewhere in my project and it works fine there and can be seen when I want it to pop up, but it just won't do it here...
I would really appreciate if anyone could help figure out why the cable isn’t showing, that would be awesome. Any tips to improve the grapple/how to remove the event tick (I've herd it is an evil deity we shall not use because it's bad for performance) and still keep original functionality would also be appreciated!
While I’m at it, any tips for learning UE would be amazing because I’m new and suck badly at blueprint lol.
Thanks in advance for your input and have a wonderful day! :)
How can I get forward and right vectors for movement relative to the way my character is facing?
dot product or unrotate vector
what do you want at the end of the day?
I'm guessing you want to know your forward and right SPEED correct?
I need the forward and right speed for the animation blendspace to function correctly regardless of which way I'm facing
that's why it needs to be relative to the rotation my character is facing
yes so dot product velocity and Char.Forward and Char.Right
or unrotate velocity using the capsule's rotation and break it
they're equivelent, you'll get the velocity elements in local space
So like this?
The player pawn is a moving platform on the X axis, I want the camera to be static in the middle basically different actors (a camera and a platform controlled by the player). How do I do that?
average their location, modify the one axis you want
yeah, so it's kind of working, but for some reason the right speed is static at 0 according to the debugging, while the forward speed works correctly, this also lines up with the animations working when I'm facing the direction or opposite of the direction I'm walking, but strafing doesn't work for some reason, I don't know why the "rightspeed" isn't changing whatsoever
say you want cam at their average position but 1000 on y
CamPos = (AvgPos.X, 1000, AvgPos.Z)
show code
why you crossing the streams like that
what event is triggering the lower code path?
Event BlueprintUpdateAnimation
just use a getter on Character, don't drag off that upper path like that. Probably doesn't matter but it can
it's logically the same but way less gross
did that, however still doesn't work
And yeah, "Right Speed" is static at 0 which based on what the animation looks like makes sense, what doesn't make sense to me is why it's stuck at 0
Forward and Right speed, are just the velocity, transformed to local space, and the X and Y pulled for them.
can you actually strafe?
Yeah, but the animation doesn't work
Why a dot for the speed though?
Anyone able to help with why I would get Object name of None if I get my widget component and so get user widget object ??
obvs setting a valid class
local speed, speed on local y axis
could also do it by unrotating velocity but same difference
Dot is a measurement of directional compatibility. Not a speed.
the dot product of a world velocity and a direction vector is the speed in that direction
It's not. Dot is -1 to 1. Speed is 0 to 90000000000
Here's what it looks like
that's if the inputs are normalized
I'm very much a beginner though wdym by capsule and arrow?
the components in your character BP
so we can see if they're rotating to match velocity or not
Also is your blendspace in -1 to 1 or are you using actual speed from like -600 to 600 ?
You mean like this?
-150 to 150 on both axies since that's the max speed I set for aiming
uncheck hidden in game on the capsule and arrow
unchecked for capsule but how do I do that for the arrow? the details panel is just empty
mabye can't, let's see it
I'm trying to see waht the capsule is doing
alr let me get a clip real quick
add another arrow to it if you need to
How did you test that this is 0 btw?
what in the actual hell
print those speeds
print the right vector
print everythng
When you are making a complicated game with lots of UI. They you make the UI in one Widget, and then hide / unhide as they are need (or collapse uncollapse). Or you Create Widget when they are needed?
I'd say it depends on how much UI and how dynamic it is
🫡 lots of ui
like you have cities and units, and armies
and you click on them, they have different ui for each one
And is most of it visible at all times or does it come in and out like EVE online
give example
It's also quite weird they don't add up to 150, and even if the arrow is pointing one direction and I'm moving perpendicular to the arrow it's still "ForwardSpeed" that is high
it actually replaces. A good example is crusader kings.
So you have your city selected, it spawns WG_City. But if you select an army, it spawns UI of Army,
i mean doesnt need to spawn
i dont know how they do it
could be all in one widget, and then hide unhide
as i was saying
with the debugger on the left of the recording, which by the looks of it doesn't match the value I get when printing as you can see in the latest video
From a performance standpoint, either work so long as you follow two rules. Use Collapse and not Hide. Hiding a widget will still make it prepass for layout. Collapsing will not. The second is to remove bindings when the widget is collapsed. No need for game code to run on 200 widgets that aren't even seen. Also for this reason even when you remove a widget you should always unbind stuff in Event Destruct, cause they'll still run until the widget is collected.
From a design and architecture standpoint, I'd almost always go for creation on the fly. Hard placing a ton of widgets in another is going to cause a ton of reference issues in editor, it's going to be messy in your widgets. You end up locking yourself out of modability. You never really have to worry about hidden performance issues.
they wouldn't add up to 150 the same way 3 and 4 don't add up to 5
pythagorean
right, makes sense
so it looks like they are correct at this point, now whether or not they get modified later or aren't being used correctly is another story
ahh, i never use binds in the widget. i use event dispatchers
That's what I meant. Delegates bound to a function.
This is the blend space and the aiming state
got it. Though, its hard to manage. And when you spawn a widget you need to check if another widget already exists in the place you are spawning it?
this is not a joke
it gets complex really fast
maybe just clear it everytime
remake everything everytime you select an entity etc
there's no reason you can't have the EntityInspector ready to go at all times, just state machine it with state being EntityI'mInspecting
for example
It can. But some stuff like dynamic entry box can help there. It caches children so you get the benefit of not recreating them every time, not paying garbage collection tax, and youc an simply reset and then reuse the widget. And it supports most container types like horizontal, vertical, overlay, etc.
InspectEntity(Entity)
if(CurrentEntity)
do cleanup / uninspection logic
CurrentEntity = Entity
if(CurrentEntity)
do setup / inspection logic
else
collapse
just inspect nothing to hide inspector widget
its a state machine with CurrentEntity being the state
🫡
Still though when I'm facing north for example and strafing to the side the forward speed is the one that's 150/-150 when it should be the right speedű
i didnt know about this
before in an older project i just checked by get parent
and child
and see if stuff exists
it was a mess
🍝 🍝
😵💫
oh wait thats c++ only, right?
cant find anything inspect / inspector in the Widget
i mean make that code
Try get capsule right and forward
it should be the actor right and forward but just as a sanity check
anyone know why a get user widget object would return none when print string its object name??
the widget comp has a valid widget class and is valid
does the exact same thing
it's like if I switch the right and forward inputs it only plays the strafing animations if it's normal it only does the forward and backward animations
even when I'm going sideways it's refusing to use the strafe animation
no matter which way I turn or walk, no matter the combination by the looks of it it doesn't even try to play the strafing animation
I don't know if there's a way to observe theactual blend space in use, like the preview X but instead it shows the live values on the chart, I doubt that's a thing
The animation only looks right when I'm facing the direciton I'm going in
Pro tip; when printing on tick, ypu can set duration to 0
Avoids spamming the left side screen with noise
what are some things that are objectively better in Blueprints that you cant do in C++. id say none xd
Blueprints compile faster than C++
💯
Prototyping goes incredibly fast in bp when you know your way around it
yeah but c++ you can ask chatgpt something real quick, and boom you get a sketch of what to do
thats quite fast
it doesnt, then you just debug it real quick
most of the time, i just notice the issue, and tell it and it corrects it
some things work at the first attempt
this is what makes me think BP might be at disadvantage one day if things keep going this way
godot gdscript is like BP, but since its code it will have an advantage
Usually its hard to provide full context for the ai to create something useful end to end
And if you break it down to mich you gotta query it 100 times to get the working solution (after random() debugging)
ah that no. but like a function
it does individual functions very well. or like you explain and write a bit of code already it fixes it
if i try Redirect then crash
how can I do it manually?
Crash:
Assertion failed: !IsRooted() [File:D:\build++UE5\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject\UObjectBaseUtility.h] [Line: 265]
anyone help with why this would return None
I've check and there is a valid widget class on the MFD which is a Widget component
and the widget is derived from User Widget Object as well
and I can see when I run Pie the widget is there in 3d spawn as I would expect
but when I try get object name I get None being returned
Y'all, im using a shared interface here to try and launch an event from one blueprint to another.
This is almost literally how i have it set up in another project and it works but I'm having no luck recreating it in a new project. What'm i missing?
The interface should only be implemented in the receiver. If you implemented it in the sender, remove it, else it won’t work
Interfaces are not meant to be shared, only implemented/inherited
when i shoot a projectile, why wouldn't it bounce off a wall ? i just loaded the third person template in 5.3.2 and am shooting a projectile it's going through the walls
hello i'm trying to spawn something on my mouse cursor, i'm using chatgpt to help me since i'm a bp noob , and it tells me to connect left mouse button event to the get hit result under cursor by channel but i can't
Collision settings
Also, velocity can be a factor
error : exec is not compatible with player controller object reference
ChatGPT hallucinates 50% of the UE stuff it gives you
You should learn the basics first
Look up “your first hour in Unreal”
It’s on the Epic portal
Then watch the 2nd pinned link video in this channel in full
Then you’ll be able to actually figure things out
collision is block all dynamic on the projectile
someone?
thanks mate
Is the wall world dynamic?
wdym ?
the collision ?
is block all dynamic
like the projectile
No
The object type
Block all dynamic means block all objects that have world dynamic as object type
If your object type is anything else, it’ll ignore it
i tried blockall as well
What velocity on this projectile?
1000 start, 1500 max it seems slow i might want it even faster
Also collision works better when it’s a 2 way street (the wall should block the channel corresponding to whatever object type the projectile is)
That part is probably fine then
i just did block all on both
In addition to this, if your wall has multiple components and the projectile hits those instead, you’ll prly also have issues
Like a collision box on the wall that has a different collision setting
Collision is a tricky beast ngl
It often takes hours to narrow down the issue because there’s many things that can affect it
Is datatable access performance intensive? Was wanting to use it to store combo attack information and flow
Ideally you don’t want to modify DataTables at runtime
But if you’re only reading data from it, it’s fine
Well I was going to store a name in the struct to use to reaccess it for the next sequence
Which might be overkill
Yeah structs are a good way to go. Cpp structs tho, bp ones break when edited
Whack
If I reference something in a data table, that loads the object if the datatable is accessed correct?
Any hard reference in data table is wild imo.
ram is cheap
filler up
I wonder if that can be an approach
if your asset base is small enough
Yeah if small probably don't matter.
But if it's large enough with 2 k textures and dozens of items.
I end up with 1 minute loading time.
Space is pretty much all just textures and audio right?
if the "item" is a 200 byte struct then its nothing
Yeah probably doesn't contain animation or texture assets.
If it's just primitive types then who cares
Using it for my core player animation set, so there’s not much reason to not keep it in RAM 
I'm just soo concious of any hard ref in DT
My approach is only load what I need now
Yeah I would just use a data asset though if it's small enough.
My game will have ass fidelity, so will have a lot of free RAM
If you don't need to have a collection of things to view, you probably don't need data table.
And I didn’t want to have hitching from asset loading something in 16ms
Is a combo a "thing" or is it more implicit?
Implicit?
Async load is working fine for me.
Is it like a recipe where move -> move -> move is a combo? Or is it more like a web or graph where move can lead to move can branch into this or that
I was going to have a string of attacks, and then a branch into an attack specific finisher
My combo is just an array of structs in DA
Loop through, find matching one, execute ability.
If player change job, just pass different DA
Or I can even have common one for basic attacks
so when do you load animations?
or do you async load the concrete character or animbp and that's when it loads its assets
I haven't yet. It's hard ref atm still testing phase.
Gotta think about it.
But I've been abusing UE5coro for everything.
I wonder if I can just use co await before playing the montage lol...
so how does async loading work? Is it like:
Async load actor class -> its loaded -> can spawn it "instantly"
Say i wanted an AnythingInMyEntireGameSpawner
I load them on the fly. Go through the data table and async them one by one.
So my cosmetic U.I gets filled over time.
I mean more for like projectile actors or whatever
is a projectile without a mesh flying through the world?
or say an enemy spawner
It has sphere collisions I just need to spawn the ball
Spawn sfx ( Co await myFireBall)
It spawn instantly though ( kinda )
I honestly should look into asset managers
I wonder how that works with things being spawned and destroyed
say im loading an actor class before spawning it
then i destroy it
does the CDO hang around?
no idea 
I’m going to suffer so much tech debt 
if i simulate physics the projectile drops but it does collide
without it the projectile fly but go through wall
maybe just use physics and apply a force ?
Probably easiest to implement your own gravity and force
So you have total control over the behavior
maybe turn on the box that does sub stepping. That may help
wat
show the projectile component layout, collision settings, and movement settings for whatever is doing the movement
turn on force substepping
i think i will try another way because i need this to bounce off the wall
tried that it still goes through
you tried playing with the max simulation time?
i think i should do this where i simulate physics and apply a force
instead of projectile
pretty sure projectile movement would handle something like a mesh not going through the wall if it were shoot too fast
by sub stepping
if your projectile move slow enough and still went through the wall, that;'s most likely your collision settings.
i mean
it didn't for me 0o
does your sphere have collision? maybe just add a sphere collision
i tried that as well
nothing out of the ordinary on my end
i shoot a sphere with projectile movement
it collide with the wall just fine
🤔
i think i figured it out
It can be. But for sure if you have C++, definitely do bundling anyway. You can literally load it all into memory in the main menu or something if you want, but it gives you the easy option not to do that later.
i got rid of default scene root
Use a SphereCollision as the root too. Cheaper sweeping movement than a more complex mesh.
whenever i try to do a root it seems like the collision messes up
Hi everyone, I’m looking for a good tutorial or course on implementing root motion for a locomotion system in animation blueprint. It’s really difficult to find, so any recommendations would be greatly appreciated!
Are you talking about authoring the animations or actually making your character move?
Making character move
There’s some docs on the website
You need to set “root motion from everything” in the animation blueprint if you’re doing standard movement in addition to montages
Thank you, I’ll take a look.
I believe the Lyra game also has some examples
The Projectile Movement Component moves and sweeps the root component of the actor it's on.
The component named Default Scene Root is a scene component which all actors get by default, as an actor must have at least one scene component.
You want to have something with collision as the root component of a projectile using projectile movement component. Scenes don't have collision, thats why it's going through stuff.
is there an event for getting hit by a sphere trace
hi guys.
so, i have this topdown spaceship. it can move and rotate across the screen. i have the thruster sprays figured out for the rotation.
but im out of idea for the translation. how to get the correct thruster particle spray fire when the ship move up down left right, when its orientation can be absolutely anything ?
i tried to map out an 8way directional but i dont know what to do with it next.
i have the local ship mapped from 0-7, and a world mapped 0-7. something tells me that a relationship must be done with those two, but i dont know what...
The sphere trace itself is the event. You communicate to the hit actor/component detected by the trace.
thats fair thank you
If you are looking for a catch-all event on the actor being hit instead you can use something like this given you have a capsule component for example:
The sphere trace can originate from some other actor but the actor being it might have a component which is listening for hit events.
is that hit component node second from the top what im looking for then?
Right click on the component then choose add event and pick one
that one in particular is OnComponentHit
but there's also OnComponentBeginOverlap and OnComponentEndOverlap too
But just know that if you have a character inside of a capsule component and you use OnComponentHit it will fire whenever they touch the landscape because that counts as a hit event.
Hi all. Having an issue with using Data Assets which contain Arrays/Maps of custom Structs. When making a change to this struct definition (eg, adding a new variable to the struct), compiling and saving, everything looks good and gets updated properly (eg, the new variable shows up in existing entries on the data asset). But when restarting the editor the entire Array/Map gets reset to 0. Anyone know about this, how to fix? Causing me major grief having to re-fill out these arrays again and again from data loss..
I have this function in my ui widget blueprint, which was supposed to show the next objective and hide the previous one when the function is called. The function successfully displays the next objective but can't hide the previous one. I've tried to reference the objective directly, reverse the logic, and even have the function hide the text rather than show the next objective, but still, nothing works. The weird thing is that I used a print statement to check if the text is being set to hidden, and it is. I would appreciate any help if possible. I've spent a whole hour trying to fix this.
How to edit the variable of a character blueprint from inside the anim bp it is using ?
I want to turn off 'isPlaying' Boolean in charBP once a state machine plays the animation 3 times.
I tried to cast from inside the anim bp using 'get owning actor ' but it shows non thread safe error
it looks like there's no simple nor one way to make a pannable image in a widget (or both an X and Y scroll bar).. anybody been in the same boat and found a straight forward work around?
I setup an image pan for my map in OWSC. It works basically 1:1 with Fortnite
Hi! I'm working on a game where I want Santa Claus to always be visible, even when objects like walls or platforms block the player's view. The goal is to achieve an effect where Santa is displayed in his original mesh color (not an outline) through all obstructing objects, using Post-Processing or Material Tricks in Unreal Engine.
How can I show the original colors and textures of Santa's mesh through walls and other occluding objects using Unreal Engine?
I'm Giving The Screenshots of My Project
I really like the dude holding the giant mace, but $249 may be outta my range
Put the image onto a canvas panel and then use Set Render Transform based on the mouse position after the mouse down event.
You're an amazing soul, i'll try plugging that in after a good refreshing sleep
Should end up looking like this
(Minus the zoom, that's a different function on the mouse wheel)
ah heck ima try it now.
I mean honestly, what can my job be expecting of me at this point? i put in my notice a while ago
😂
Ya its an overridden function on the widget
Can I change the input mapping context on beginmouseover or something? Like if left click on the navmesh is normally “move to location”, can I have a mouse over event for a character change the mapping context to “IMC_CharacterInteractions” or something so that when the player left clicks a character, it swaps to that IMC and fires its left click action?
Yeah, but you need to code that somewhat yourself.
Trace for Actors below the MouseCursor and if you hit the Character, add the IMC with a higher Priority.
Up to you how dynamic you want that to be. Could be interface driven or stay hardcoded to the character.
Would it be viable to implement a context without something like sprint purely without an actual input key but still the same input event ? Thus overriding the original context input?
Like virtual input for sprint?
Ye
For AI or something else?
To block the regular sprint.. either
Player id say
Never considered ai using input mapping contexts 😆
Hard to say. I put most of that kind of consideration on GameplayAbilities and mostly leave inputs alone.
how can I get the formated text to be the return value?
you need to make the return value of the function a string
I'm trying to use the Text3d actor and I want to be able to update the text but it doesn't work like it does for the 2dTextRender. I does anyone know how to do this?
So opening say UI wouød grant some movement impaired tag ?
Depends on the UI. For that I mostly just use the input modes. If I don't want movement it goes to menu.
A pointer to the widget.
I dont see anything that says that it points to the widget
Read cast as "Treat as". If you have an Actor level pointer(like from a line trace), and you want to know if it is a character, you can cast the actor level pointer to a character. If the Actor level pointer is not a character, then it will fail the cast.
You're trying to treat that actor level pointer as a character in this example.
In a widget's case, you'd have a Widget, or UserWidget level pointer usually that you'd try to cast.
Explicitly speaking, Casting does not "Get" anything. It's simply an access level conversion.
I am trying to convert a landscape spline to a blueprint spline. The red tangent is correct, but the green one is incorrect. However, when adding the world position, it is correct, although the tangent remains wrong. Do you guys have any ideas on how to fix this?
Hi Everyone
if i spawn a Niagara system attached to a specific bone in my character mesh and set location type to snap to target, does this location input acts as an offset from given bone or is it the world location?
thanks in advance
depending on the location type you selected.
Atm it's set to Snap to Target, Keep World Scale
@uneven warren looking at the code I don't think the location is used at all if you use snap to target.
you can try add a little offset see if it does something
i see so spawn it then add the offset
thank you ❤️
@uneven warren sorry I was wrong
the location will be an offset from the target location
just tested
aye anyone willing to join VC to help with a blueprint of mine? it's not complicated but I've struggled to find a tutorial that can explain this part well
You're usually better off just asking in text
commiting to VC without knowing anything about what it's about is a rather big ask 😛
who knows what's in store when we don't know what we signed up for.
I wonder how the auto-cleanup plugin would handle this
||/* FORCE DELETE EVERYTHING */||
Flamethrower
~Authaer has joined voice~
"OOOOOHHHHH THERE ONCE WAS A HERO NAMED RAGNAR THE RE---"
~Authaer has been banned from voice~
my issue is really basic, I just need a collision box to tell me if a component is overlapping it, then grab that thing and put it in an array for later use.
its such a small but specific issue nobody has made videos about it online.
For use with what? Cause it's already in the overlapping array.
Like what is the general endgoal with the implementation? That might help some.
It's really hard to put into words, which is why I keep trying to use VC to show what I am trying to do.
describing the issue is the 1st step to get help, 2nd is showing your code or your attempt.
the code I have to show is rambled nonsense in this section because no tutorials have covered it and I am just placing random shit down and hoping it works, trying to get blueprints to communicate to each other is painful.
you might want to watch blueprint communication video by epic.
bp to bp coms may be hard to be understood at the start.
once it click, it's easy though..
That's why I asked what the end goal was rather than the specific task. Knowing the final intention tends to help follow specific implementations easier.
It still help to show your code, maybe we can draw doodle on what you have. But if the issue is the fundementals like not understanding reference, then you probably should read articles on what you lack.
I just wanna put items in an array so I can get their location later.
So make an array and put them in it.
it's not that simple
It is, cause that's your only task. You haven't outlined why or any other constraints.
I need to get what a collision box is overlapping, look through that and find the specific child components needed, add them to a array.
all of this is taking place across three separate blueprints.
you can see why its infinitely easier to just show someone this.
frick this I'm gonna record a video
What are the specific child components? What separates them from other components?
You see why it was so hard to explain? xD
Just one
you can use get actor of class to grab the instance then
So, now that you know it's not really difficult, would you mind getting in a call to help explain it to me? pretty please?
No, I only go into calls if I get paid
no disrespect
Turn your Add Exits Within Render Distance collision into a function
add an input parameter
the object can be your exit list
Then in any other class where you need to add to the array.
Get Actor Of Class (Dungeon generator) -> Call the function, passing the instance to the function input.
thanks for the assistance, but this texting is no help to me I'm sorry.
have a good day
ok, good luck trying to find someone to get into video call with you.
and if you are still stuck, the answer is above.
If I could wrap my head around texting like this, I'd be writing code instead, but I can not unfortunately.
https://www.youtube.com/watch?v=EM_HYqQdToE&ab_channel=UnrealEngine
This will help you understand bp to bp coms.
Announce Post: https://forums.unrealengine.com/showthread.php?101051
This Training Stream takes a look at Blueprint Communication. We find that Unreal Developers of all levels can sometimes struggle through the concepts behind moving data between objects. So in this video we'll take a look at the different ways to make Blueprints talk to one an...
I'm missing something stupid.
I have a blueprint in my level called TimeManager
I would like to debug its stuff using keys
show what you have
I added caps lock to my IMC, and put a key caps lock node in my time manager just to check if it's working
print screen the blueprint uncropped
uncropped
this is the legacy settings anyway , nothing to do with enhanced input
oh that's it
that's why I asked for uncropped picture 😔
no, that's got nothing to do with your input action.
I mean there's not much to show really
I need to see the base class
what base class?
just show
the
blueprint
uncropped
missing info
you are not the first person this week with input problem and not showing the whole blueprint
okay but there's literally nothing to show, the rest of the blueprint is totally unrelated to this
people don't know what they don't know
I want to print out a message when I press a key, that's all
yeah and I can tell you if something is wrong
if you just show the blueprint
but if you are fighting it
that's gonna make it harder
actor
ok that's why
or the base class rather. Ok
thank you but please just show whole screen shoot when asked next time
dont make us guess.
Inputs are disabled by default on Actor
If you are just doing it for test.
Begin Play -> Enable Inpuit, plug your controller
ok that's gonna be it, I missed the enable input I had in my save class, sorry and thanks. coming back to UE after a small break, my mind is not quite there yet
you shouldn't be consuming input from places other than the actors you controlled.
if for testing, then who cares but for gameplay, that will be a bad design.
you don't want a door blueprint to handle the E input for example
of course, it's just to trigger widgets as I don't have the rest of the system quite ready yet
it's not going to stay
I wouldn't say shouldn't but definitely not recommended. Requires more effort to manage what does and doesn't have inputs enabled that way. For simpler games it probably wouldn't be a problem. Granted it would probably cause some issues in MP though.
imo, Input component, controller, pawn and UI
UI.I for U.I
Input component if need to accustomed to different game modes
controller / pawn, well if there is vehicle or not
other actors is kinda questionable to me, if game is small enough maybe just drop it in controller or pawn? a custom actor will be hard to track and debug.
It bothers the fuck out of me to no end that I have to subclass NavLinkProxy in C++ to make a blueprintcallable function just to set the smart link locations.
fun times!
Yea, NavLinks could do with some TLC to expose more stuff to BP.
More fun. If you tell an AI to go to a location past a link... They'll go to the first part of it. Run the smart event. Then proceed to fly through an area they have no nav in to the second link, and it doesn't run the C++ code for finished until the AI reachest all of the way to their end goal long after they've stopped using the link.
BUT, if you change the move order while they're in the middle of the link, it'll correctly end it at the second part of the link.
Like wtf is this?
I feel you're pain. I had some wierd issues using them to trigger open/close animations on doors so NPC's can pass through them. It's crazy to think you can't just enable/disable them (smart links) at runtime via BP.
That you can do. At least in 5.4
That's literally all you can do in BP though.
Literally.
SetSmartLinkData is mine from my own subclass.
Ahh, thats good to know. I think the last time I used them was in 5.1.
They have so much potential but seem very limited from BP which is a shame.
Nah. You have to view it from Epic's POV. They work perfectly fine on a STATIC map, where shit is hand placed in simple deathmatch maps. What else would you possibly need AI for?
It's a feature that forces you to reign in your ideas. 😜
It's just a weird thing. Like normally I can convince myself that it's fine cause you'd do it in C++ for performance anyhow. But this is like.. level scripter level stuff here for generating even runtime level design stuff.
*sorry wront channel
I am tempted to have another crack at getting NPC's to use doors with smart links being togglable. I got something working previously but I wasn't happy with it. I certainly understand why most games just have doors you walk into to open. lol.
Hi, very stupid and basic question but... I have a base object (sub class of Object) and I can't find a Construct event for it in blueprints... What's the best way to initiate data upon creation?
Add a custom event/function that you call as soon as you create it. (assuming you're BP only)
right... I thought it would have a standard Construct like any C++ class...
Yeah. There is no such thing in Objects. Major systems like Widgets, Actors, or Components, all have their own way of calling an initialize, function after creation. If you're making your own system, you need to do that yourself.
Even in C++, they don't use constructors for that with like Actors and Widgets.
I get that there is a overhead from Engine itself for Cons and Dest but that's pretty basic functionality that I thought devs would have implemented into blueprints.
Nevermind, I'll use @dark drum advice 😉
@maiden wadi are you fammiliar with GAS for multiplayer? 🥹
I'm trying to figure out where I can play my cue on client and play the same cue on the server.
Implemented how? Without C++ and a custom constructor, the object will have no ability to set data before it's initialized. So you'd have an init function that'd run before it has any data set. You wouldn't even have expose on spawn stuff set up yet because that is ran after the fact from blueprint generated nodes you don't actually see in the editor.
So effectively you'd have a confusing init function that simply runs right after creation that'll confuse people when they make things expose on spawn and it's not set for their objects. This including for things like actors and components and the like since they would likely inherit this functionality.
Cue for what? What is the implementation for it?
Generally speaking, State based cues are handled from putting them in respective GEs. Multicast cues are usually just broadcast from the server through the ability.