#blueprint
1 messages Β· Page 230 of 1
@faint pasture it's mostly hitting now, thanks a lot for the help
it does miss more if it is closer though, ill see if more iterations help
EDIT: Significant better targeting by increasing to 5 with no drop in performance
I don't understand what you mean by this
probably that they visibly overlap, and dont respect each others collision
as if you were doing material position offsets .. atleast that's what im thinking xD
i can stream if you want to see π
or this
if box moves into player character,, player will phase inside it unless he is actively moving
Problem with CMC
cmc?
character movement component
as a hack you can add tiny up and down movement inputs on tick
thats what i did, yes.
but what problem you are talking about?
If i make a function in a BP function libary and within that function I use something that need world context
Second screenshot shows the function being used on an actor that is placed in the world
the first screenshot show what I'm using within the BP function libary function that needs a World context
You don't need to pass anything in. Right click the grid and type Context
them ?
Semi sure you can even leave them unhooked and it'll auto work, but not 100%. I usually just use that, yeah.
It does exactly what your second image does already, uses self as a world context where ever the function is called.
oh do it
ommg im sorry I deleted my comment because I found out that I had a duplicate of my code that was hidden somewhere im my blueprint. Im a shame
Hi guys! I really need working guide for Unreal Engine 5 versions that allows to render some actors over all other actors. Like render layers in Unity. I've tried a whole bunch of guides - nothing works. Here, I found half an hour ago an asset on github from two years ago, downloaded it, ran it on version 5, it works successfully. I transferred everything correctly to my project, and my objects are flickering and just disappear when clipping.
It's safe to say I don't understand delta seconds... Where am I going wrong?
why are you playing a timeline on tick
also, Win-Shift-S
What are you trying to do here
Cause I have no idea what I'm doing π
All this code was initially on a triggered collision - but everything kept changing depending on the fps.
So I tried to learn delta seconds and Aaaaahhhh... Well.
You aren't using the delta seconds anywhere in that code so....
Delta Seconds is just how long it's been since last frame
Help π¦
What... are you even trying to do?
You're randomizing a value every frame for the Z value. O.o
With what? What are you actually trying to do?
Ah yes sorry - so this npc is attatched to the wall, when coll trig it rotates and moves away from the wall.
However, the distance is always different pending the fps
I need to lock that boii down
Start with the trigger event
Triggered -> timeline
Lemme snag a photo, I put it back to how it was before I tried to learn delta - everything is back with the collision
Delay... I can't put discord on this lappie so it's shite phone photos
no more photos, Win-Shift-S
ah
works in browser
good lookin' out Adriel
Does anyone know how to access the children BPs under a specific parent (Hieracrchy for example). In the scene I want to duplicate these children, then on begin play set a specific variable on each.
hello, i was wondering if any of you all know a way to make the character movement comp turn without losing its velocity?
Heres a example in unity of what im trying to do
I'm having an issue with a timeline getting to play in reverse. I basically am wanting to switch between playing forward, then reversed after a slight delay. I'm using an int along with a select by int to choose weather to play forward or reversed. Problem is it play forward, but never reversed. my select by int 1 node (the one that executes the reversed play TL) is getting called, however it is not actually reversing anything.
You could make the movement compontents drive a unit vector for direction then handle acceleration and velocity yourself
Probably need a custom movement mode to separate out turning and forward acceleration
If it's single player only you can do that by "filtering" the inputs before they turn into movement inputs
basically limit how fast the length of the input vector can change.
Sonic would basically be a dude that accelerates really quickly, being fed movement inputs that can change direction quickly but can only change LENGTH slowly
but with a normalized input, we know which direction the player is pressing
then you can control the velocity seperately
You can just get input axis values on tick so you don't need the 2 input events
1 event per frame instead of 3+
there's probably better ways to do it, was just a quick sketch
Yeah the general form would look like this:
Tick/Input Event -> make a DesiredInputVector -> split it out into length and direction -> FInterpToConstant SmoothedInputLength towards DesiredInputLength -> combine InputDirection and SmoothedInputLength -> feed it to the CMC
How would i split it up into length and direction? you mean like vector length?
VectorLength and Normalize
but how would i feed it directly to the cmc ?
add movement input
let me test this rq
needs the finterptoconstant and the length of the current input vector
I realized my timeline was set to .5 seconds max, however my keyframe was at 1 second, thus not allowing the TL to ever reach the true "end"
input vector should already have a length of 1 as it's a controller input
yeah you need to break it out to use as target for finterptoconstant
so SmoothedLength chases DesiredLength but is smoothed
gotcha
like this?
no
1: Make a world space vector representing the acceleration you want (ForwardAxis x ForwardVector + RightAxis x RightVector or RotateVector((ForwardAxis, RightAxis, 0), ControlRotation.Yaw)
2: split that into DesiredLength and DesiredDirection
3: finterp SmoothedLength towards DesiredLength
4: SmoothedInputVector = SmoothedLength x DesiredDirection
5: CMC.AddMovementInput(SmoothedInputVector)
whats the smoothed length just a custom float?
You'll need some extra stuff to maintain DesiredDirection whenever the input vector is 0
the character still loses their velocity when turning
got your code backwards
length is target
current should be a variable
also you need to store the output into float LengthSmoothed
Just literally do this
SmoothedLength has to be a variable, you need to set it as the output of the finterptoconstant, and it will also be the Current input
Target input will be the raw input vector's length
also lose the scale value
there will be no scale value here, just a constant 1 i guess
That will call the finterpto twice
use the saved smoothed length
otherwise it should work
give it a speed, 0.2 or so I'd guess
that'd mean 5 seconds to reach max
bar for bar
its in event tick but its still not making my pawn retain his speed while turning
i even tried changing the interp speed to no avail
Print the vector being fed to AddMovementInput
Have you set up the CMC to have very high acceleration without this smoothing?
turn the interp speed way up and make sure the thing can turn on a dime
show your current CMC acceleration values
if i max the accel it turns on a dime
but the character goes to max speed instantly
accel rate is part of a struct ive made thats plugged into the max accel
my b capture messed up
ima just call is wraps, thanks for trying to help tho, appreciate it
its a pluigin called ninja character
its its a cmc that allows running around loops and such
i went through the source code and it isnt as different as the base cmc unreal gives
Is there a reason why we don't have delegates in BP interface?
oh hello
Why did my flip flop keep firing A?
Is it because I fired it from function?
Flipflops can only keep track of the state within the one execution of the function.
guys, why is it read only? :/ I wanted to save reference to particle system, to update it's location on tick
maybe because it's static cue..
Hmm, I don't think I can actually do it inside the cue
yeah, should you spawn emitter attached π
How can I modify enhanced input value just like from the old input action?
I tried scalar but it didn't give me any impact
You would want seperate axis, swizzle to change from X to Y or Z. Then you add a scalar to multiply
If you don't seperate the different axis input, you will always map to a single axis
Hey thx for answering
Turns out my problem is that my pawn max speed are reaching its limit that's why my scalar multiplier > 1 had no effect XD
Multiplying movement input is not a great idea anyway, you want to keep it normalized for multi direction (otherwise diagonal goes faster)
Any speed you want to add should be in your logic :)
Hmm but my goal is to make specific "Space Mouse" input faster
Is there a way to get reference which key mapping are pressed?
Make a different input action in that case
Aah
You can then let it call a shared function with the other movement input
I tough enhanced input were designed to be able to modify like that
And just provide a speed multiplier in the function
Okay thanks for letting me know
It is, but not a great idea for movement because of diagonal directions
OK I am going absolutely crazy here. I cannot figure out why this isn't working. Here is what I want to do:
- I have created a List View on the HUD blueprint
- I have created an entry widget class which is just a text box
- In the entry widget class, I have created a variable called "Message" which is a text type. I have exposed it at spawn and made it instance editable
- I have bound the Text field to the Message
- When an event is triggered, it spawns a new instance of that entry, passes a custom text input to the exposed message
- This doesn't work, the text box displays the default Message value, so I also for good measure created a setter function on the entry widget and call that after adding it to the list
- I have debugged and confirmed that the incoming text message is correct and what I want, it just isn't updating Message in the entry widget:
Can someone explain why the text box in the entry widget is still showing the default value for Message despite me setting Message TWICE in two places at different points in the process? I even tried adding a 0.2 second delay, doesn't work
not sure if it's a list view issue and never worked with it, but from what I know you don't create and add widgets to it - you add "data" and that's being converted into widgets by LV
check this: https://forums.unrealengine.com/t/quick-start-guide-to-list-view-widget/738161
This post is intended to be a quick-start guide to get List View up and running with simple add, edit, and remove functionality. For more advanced stuff, you may have to find another forum post to help with that. None of this will be groundbreaking information, itβs mostly information that me, from 2 weeks ago, wouldβve liked to have as a refer...
you can try your widget outside of LV first and see whether it works. if yes, then I'd implement LV properly and see if that solves the issue
So when you 'Add Item' the list view will create its own widget using the defined list widget. The object you supply is passed to the widget it creates.
In essence, what you're doing is passing a widget to the widget it created.
The object you pass would be the thing that contains the data you want to display. You would then set it up in the list view entry widget (the class you defined to use for the list entries) to get the relevant data from the object it'll get passed and display it how you want.
so basically wrap whatever data you got in a uobject and pass that inn to the List
@visual ember @dark drum@gentle urchin Thanks all! I realise you're right: I did some work with list views a few years ago but it was in C++, so I had just forgotten. I'll change the approach and fix it shortly π
Any idea on how to check if button is being held down on bp interface?
Hey folks
Found this Select node where I can choose an Enum at the bottom.
Can't remember those "Diamond pins" fully though.
There is no "backwards" change happening here right? I just get a text based on the Enum and set a variable on the right?
(Don't want to end up changing the text in my String Table where the Text is comming from)
you will be fine , i think it would only change your text if you plug into a diamond
Ah, okay. Thank you. π
And by the way, would the text in that variable on the right (Text for Positive Description) be picked up as a thing to translate by the localization tool?
As in I should try to avoid Text variables everywhere when I don't need it translated, and use a String variable or something instead?
I'm unsure , I haven't messed with localization
Okay.
Only if you configure your text localization to gather on the BP this is in.We don't do this at work though. Everything is in data assets or stringtables that needs exported for localization.
Pretty easy to do through the localization dashboard.
Right, but assuming the BP is gathered it picks up all Text variables?
Correct
(Guessing it skips empty ones at least)?
That is something I would do in the localization tool?
Oh, let me check
So that checkmark I guess?
Yep.
I appreciate it. Makes sense.
But like I said, it's rare you should be caring about those in a BP. It's much safer, cheaper and easier to specify your text in data assets and stringtables. You avoid duplicates and get much easier reuse out of them.
So for Structs like this I just make sure it is empty
Yeah, just created a String Table yesterday. New to it though.
Not sure about the data assets.
You don't have to worry about this struct, except for where it's originally defined probably, datatable I assume?
Unless you're populating that array at runtime.
Correct.
Then the datatable would need localized and would pick up whatever is in those arrays.
If render velocity is very high in stat gpu, and translucency, what could be the problem?
I know translucency is related to materials most likely
but not sure about render velocity
Its something to do with motion blur and temporal AA.
Any idea on how to check if button is being held down on bp interface?
In one of my projects, I keep a collection of currently-held keys and then reference that when needed
so in PlayerController on any key press I store it, on key release I remove it. then in other classes I just check if that key is pressed (if stored).. works for everything so far.
PlayerController already does this though?
does it?
IsInputKeyDown function
I guess it does 
What are you trying to do exactly? You already have the function there. Plug the branch in and pick a key?
I want it so that the player has to hold button down for x amount of time before completing.
If the player releases before x amount of time is up, then it cancels action.
Example:
Plant a seed,
player has to hold E until action is complete, if they release, then it cancels action
I just need to find a way to check if the player has released or is still holding
You can stop the interaction on key up with a second call,
I know enhanced input actions have a similar option built in, but if I use an enhanced input action I would need to rerig up all my interactable scripts
I don't think there is a node for key up
From the same place you called StartInteract from.
Never been a fan of interfaces with interaction. Too much copied code or a forced base class. Much easier with actor components.
hi, how do I solve this?
LogConsoleManager: Warning: Console variable 'FX.AllowGPUSorting' used in the render thread. Rendering artifacts could happen. Use ECVF_RenderThreadSafe or don't use in render thread.
how would i launch character towards another actors location ?
get actor location of the other actor, subtract it from your own location and that times a speed value is your launch velocity
Not sure if character has any other shenanigans going on though
thats just what i tried
it works i just had way to much launch Value π
also
im using a niagara system for the visuals
why dose it look like this in the bp but when i go into the system
it looks so much better ./ ?
any ideas?
So i rly suck at programming and blueprints i have followed a tutorial that explains how to spawn a weapon on pickup
I have rewatched it a few times and i always get the result that the asset vanishes instead of resulting in my players hands
not sure what to share to get better help!
I have a question that might seem dumb but if i make my game work in multiplayer can i just make it work in solo too without modification ?
Like imagine a golf game like all the things are made to work in multiplayer can i also make it work in solo by just making a solo level for exemple ?
Mostlyβ’οΈ
What would be the things that could need modification for solo ?
Can't i just create a solo server ?
Create destructible mesh option is not visible even though plugin is enabled. Please help anyone
when it comes to the optimization. can 'profile gpu' command show exactly what mesh or blueprint is causing the most resource-lag?
Are we talking about UEβs fracture system?
is that plugin deprecated from ue5 ?
I know, but I'm talking about the plugin that I've mentioned...
Which plug-in guy
apex destruction
Ok, cause you never mentioned it in that original question
Think apex is gone
got it
Idk if itβs a thing in UE5 but you can usually see supported versions on its marketplace page
Unless its just moved?
The new one , whichever it is, is part of the landscape/mesh editing tools
how get i get a variable from another BP? cant find any solution online
it is not marked as private
you need to pull from the "As Fast ... Character" pin
otherwise Context Sensitive will filter out everything that isn't part of the class you're scripting in
what you really need is a reference to an instance of the other BP
i got it, thanks a lot
Anyone know what good settings would be for a camera to be more in line of what the human eye would see please
Is there a way to call "Press this key" in BP? To be 100% clear. I want to make it so (temporarly) that pressing Right Mouse Button, will simulate pressing the zero key on the num pad. The zero key on the numpad is set to Pause the Simulation in the editor.
I am trying to make an interactable cable but with no luck so far. it seams like the cable component cannot detect collisions from a trace. is this true? because if so i will have to scrap the project
Anyone know what this plane is that seems to have appeared when I've done something with this cine camera but I'm not sure what
it moves when I move the BP actor that has the cine camera inside
so i've worked out its the camera mesh for some reason is now super big
hi guys does anybody know how to Add Score Across Levels
i tried saving to the game instance but doesnt working upon opening the other level
I would say use a save game to do it
and then on level load read the data needed from the save game slot that you make
tbf I always thought game instance was present across the gaming session regardless of level loaded and unloaded
Are you certain you've set up the engine to use your custom game instance? Are you sure you're loading the score value from the game instance as well?
yeah the game instance is working with other variables
doesnt show my score on the stat screen (other level)
You don't have the execution path connected.
My main camera is lagging.(dropping frames) but when i switch to my fixed camera for first person interactions the lagging stops. anyone have any idea why?
I have this button that can be turned on and off by shooting it, but it doesn't work for some reason, am I missing something in this blueprint? All it's supposed to do is change color and text
Check if either one runs at all, if not, check your collision settings.
the first one works, if I disconnect the eventbeginplay and don't set it in beginning
Make that the default values then
Anyone know how to fix that ? it's like the cine camera has flattened and gone slightly transparent
trying to put multiple "zones" in a small map and have the name of the zone shown in the hud at all times. I can't figure out the simplest way to tell the characterBP which zone i'm in. I've tried collision boxes but I dont want it so rigid with straight line and the easiest thing i can do is a multispher tracer on tick and find closest "zone" actor but that seems like a waste of resources. Any other suggestions?
hi guys please help
i have missing modules after adding a c++ class now my project wont open π¦
im actually freaking out
Hi guys. My Event Tick decided to stop firing today after a blue screen - it was all fine before. Any ideas on what could be the cause?
Are you 100% sure the actor with the event tick is loaded into the level?
The actor is a component of a pawn - the pawn shows up in the level, yes
and if you add a breakpoint to the event tick does it stop?
Does the owning parent have tick enabled?
https://dev.epicgames.com/documentation/en-us/unreal-engine/components-in-unreal-engine check out the section called "Updating" it talks about actor component ticking.
Not quite sure where to ask this, but has anyone ever parented a mesh to a vr camera? I was trying to get a sort of helmet object on the player and attach it to the vr camera, but the object seems to have some either rounding issues or something else so it appears jittery. Anyone know how to resolve this?
The camera actor has a lock to hmd option, but a skeletal mesh has no such thing
I think we usually attach the camera to a mesh not the other way around, but #virtual-reality might have different methods
Try removing collisions from the helmet mesh entirely.
So many channels I missed that one thanks.
Hi guys
quick question
Does someone have seen this before ?
I created a dedicated server and when I launch it, the log give me this defiling message, which stop me to see if actual client connect
You're calling get player character and just assuming that returns something valid
i have missing modules after accidently adding a c++ class in my blueprint unreal engine project now it wont open
please help anybody π¦
it would help if you answered the previous response :P
how do i compile c++
in your code editor. I reccomend going through learncpp.com. using c++ in unreal isn't for beginners to the language
well i was using blueprints before
i have no clue how to use c++
is there any way i can get my project back
ah sorry, didn't see the add was accidental
revert your project in the source control you hopefully have setup, or otherwise try deleting the C++ stuff
this project legit has 200hrs+ on it im kinda tripping out
how do i do that
the project wont open
i tried deleting the c++ stuff it still wont open π¦
i have
@faint pasture Im actually looking at my parameters, I guess I could resolve this issue by looking into the player controller BP ?
The weird thing, is the server and client actually work somehow
it looks like something is calling Get Player Character 0 on tick
When nobody is connected, there is NO player character 0
Start looking where the error tells you
Time to learn about source control
ive been learning all day
no idea why this wont fix
Accidently added c++ to blueprint project and now it wont open
I have a little issue in a program, since I am not very good at UE5 or C++ I made a program in python and then tried to translated it in Blueprint, I am facing almost no issue except for one function I am guessing the problem is from this, can someone tell me if the comment (in python) is equivalent to the blueprint ? I want to reproduce the .remove() function in UE5 blueprint
@faint pasture Thankls, I will look into that ! π
what is it you're trying to do there?
I am trying to remove first element that equals a special value an array
I think I solved it
so you can simplify it by doing this
Oh thanks
since you already know what the value is it should be, plug it into the find input
no need to manually iterate through all elements
side note, you ususally don't want to do a for each loop if you plan on adding / removing elements from the same array
you typically want to instead use a regular for loop
may not matter in your case since you were breaking out early anyways, but it's a good rule of thumb to keep in mind
Does anyone know if it's better to have say 10 spotlight actors, or 10 spotlight components on a single actor? Assume they both have the same settings wherever possible. I have the same question for something like audio actor vs audio components, etc
Oh why is that? @desert juniper
iterating through an array that your modifying can lead to some odd results.
in C++ it'll throw errors imediately
idk how the BP implementation works exactly, but I'd either learn exactly how it works to avoid logic bugs, or just program it the correct way
Ahh I see, and regular for loop would help?
But you mean doing a for each while you delete stuff? Not like after?
Ahh I see, and regular for loop would help?
Yes because you are accessing the element by getting directly from the arrays index
to delete elements of an array you're iterating throug (in a standard for loop) you want to iterate backwards through an array
I see thanks a lot, really good point π
someone smarter than me will explain the how it works under the hood I'm sure
Remove Item
Does this already
Removing index mid loop resizes the array and messes up the index iterator. Going backwards avoids this trap
You could in theory keep it in sync forward but thats troublesome
knew someone smarter would say something smarter
Lol not sure how smart it was but self implied smartness I couldnt just let go like that ;p
A good while ago I noticed a for each loop was faster than connecting an array of objects directly to a function.
Has anyone experienced this?
So, yesterday I realized that the SPUD save plugin couldn't save my directional light because it didn't have the interface implemented. I considered figuring out how to implement it in CPP, but figured I'd try just turning it into a BP child and see if that played nice with everything.
It did, no problems whatsoever. Worked with everything a directional light should work with, loaded the updated rotation after a cutscene, job well done.
Today, I open the project, get those errors, and that BP directional light is completely gone from everywhere.
So, uh, I guess I shouldn't do that? Or?
In what use cases? Normally connecting the array is faster due to slightly less BP connections internally.
Normally it doesn't matter. It's a very small optimization until you start talking about hundreds of thousands of instances of an actor running their beginplays or something similar.
Going into unlit/unshaded mode turns all my skin textures 100% white for some reason
I have a spell array where I keep track of all the spells one of my characters have. If I wanted to set it back so it removes all the spells I have and just put in the default spell, how would I got about this?
would i just make a variable with a class reference to the spell, make an array and plug it in?
or do I need to clean out the other spells from the array?
If you call this, it will clear anything originally there and set whatever you pass in.
nice so i just feed it the spell and hook it up, and that spell should be the only one there?
Thanks, I figured that was the answer, but its gonna be a bit of a pain to test so I thought I would ask first. Appreciate it.
on that
haha a second question now that you have mentioned it
add unique will only add if you dont already have it in the array, correct?
Correct
Really appreciate your help. Thanks!
GAS, GAS, GAS
Hi all, I'm trying to use Data assets in Unreal and I just ahve a question about whether I should be hard referencing this texture? Any opinions here?
Depends what youβre doing with the DA at runtime, but I find soft refs to be a perfect fit for DAs
Sorry we don't discuss gasoline here
We need to mention a feature that make our project π₯
Use ~ obj list class to find out what is loaded to memory.
I would assumed having a ref to the DA loads the hard ref it contains.
For large data like items and the like, I would totally use soft reference.
Unless your project is small in scope, then who cares if everything get loaded right away.
Hello, still trying to figure out how to make a laser vfx to change color when interacting with a specific mesh in the scene. I made this so far, and the vfx color is a user parameter with RGBA set to 0. Any idea why it's not working properly ?
Why are you setting laser value to it self? Makes no sense
There is no point to say 2 = 2
Just tried some stuff from what I found while loking for ways to change the vfx color. But with or without, the issue remains.
Try to understand what you are doing, don't just blindly drop nodes.
As suggested you are setting something to it's own value
So really, you didn't do anything there.
What you can do there is disconnect laser color from the setter.
Right click the pin in the setter and split it.
Then type the color you want if true and type the color you want if false
Still no change. It just seems to never update the color for some reason. It knows when it must change the color, but it simply doesn't do it.
The given section of code is executing but there's not any effect of fracture
if u ever wonder how to get 3 character to pick and spawn into start game then dm me
The doors are not destructible
I had the same initial though. π
so uuuh stupid question, but how do I stop an audio from playing when char is not sliding? xddd
how to ensure that the animation of the mesh (third person) is replicated at all times?
it seem to only replicate only when I move, not rotate (the aim)
While loops don't do what you think they do.
yea yea
i just ran out of solutions
so it gives me an error of accessing the stop thing
You need an event for when sliding starts and sliding stops. You add the component on slide start and save it as a ref from the ReturnValue, then on Sliding Stop you stop and destroy the component.
thank you a lot
You don't ever actually replicate anything to do with the animation itself. You replicate properties that drive the animation. In the case of aiming, it's usually someone not using GetBaseAimRotation to get the correct pitch.
does the material for your laser use Particle Color in its graph
you can change the Color parameters of your niagara system all day long, but those changes won't actually do anything unless the material that your niagara system uses has Particle Color connected to the output colour
Looks like this. The color parameter in Initialize Particle is unset.
go to ribbon renderer and show me the material's graph
It's the default ribbon material.
ah ok, that bit's fine then
what does the blueprint look like at the moment? just the colour selecting bit
care to explain deeper?
I can't get a on tick function in animation to set the property that drive the animation, nor how to set the without on animation update
but it seems animation don't update when you move your mouse without moving
So it does update the aim, but only after you've moved?
@hollow pond anything comes to mind from the screenshot ?
only when moving
What function are you using to get your aim properties in the Anim Update?
assuming the two color variables there are different colors, I'm not sure what would be going wrong
have you used breakpoints to check that this code runs properly?
It does work, I get a positive response for both variables. But there's no color change.
is this a laser that's supposed to change colour while it's out, e.g. moving it around makes it change colour based on what it's pointing it? or is it only meant to change when you turn it off and back on again
because you're only doing one line trace and setting the colour based on that. that's not going to update when you move the laser
unless you're calling this function on tick / some other timestep, which is also wrong because you yould be spawning the laser every tick/timestep that way
It's supposed to change color when hitting an object, so when moving it.
Hi, Is setting Player State references for every player in UMG a good idea?
I want to have access to replicated data from UMG, each client will see the player's name, points, etc.
UMG just read the player state it wants to read
hey i have a sub level loading in my main map is there a way to "move" the whole level everything included in my main level ?
instead of singelhandedly moving each asset ?
Hello, I inherited from a custom animation blueprint but now I can't find the anim graph? And how do I call super in here?
Print screen what you have
I have this anim blueprint inherting from ABP Player Arm Mesh which is inheriting from anim instance. I can't access the anim graph? I want to add 2 more states and I can't even add a function to the sequence player.
@hollow pond here's the beginning of the code, before the construct part
Guys one question,
How would you replicate a result of a random extraction of an integer on both client and server?
So they would got the same result/integer.
I don't think that's something you can override,
Thought you mean the blueprint update bit
You can use seed, or alternatively just let the server randomise the number, client simply receive the result.
π
Iβve been trying this all day but donβt why it doesnβt work
How would you make the client receive it?
you either don't by having a server generate it and send to a client, or you just make sure the seed is the same and it was called the same amount of times, in the same order
what did you exactly try?
show your code
Iβll share it in a bit but itβs confused cuz iβve trying lots of different ways
My goal is to understand the logic behind replicating a random number so i can then implement my game code
But for now i just want to understand how to get the server and the client have the same integer
it depends on the context
some work can be more involved, each with pros and cons
some cases don't necessarily need communication between server/client. e.g. if you implement network clock, you can most likely use that as your seed
so really, depend on the context
the easiest ofc, just let the server randomize the number, client simply receive the number
I will send the code in a bit but it will be messy
honestly it's just a few lines of code
Yes it is
so you're spawning this system every frame of this input action? that doesn't seem right
I reckon you're setting the variable, then the system is getting destroyed immediately and recreated on the next frame, meaning it always has its default colour
I'm doing what worked to make the laser appearing while pressing the trigger so far. Issue I have with an input that's on "started" is that it only last for half a second.
Just tried with other vfx settings for its duration (infinite/multiple/once), only once actually work well and only with triggered. It doesn't change color ever even when inputing "started" instead of "triggered".
How would I go about getting actors to spawn faceing the camera?
how am I suppose to read this....
Now the code is the same as the guy that answered me on the other channel
my animation has been doing pretty weird
the aiming up/down only updates when the pawn move
if you want to keep the laser working the way that it was, by spawning it on every tick (which you really shouldn't be doing), then you'll need to change the colour some other way, e.g. by making a laser material and setting its colour with a Material Parameter Collection, then updating that MPC to change the colour at runtime
if you want to do this laser as I would (I've done this before), then you need an infinite emitter and you need to dynamically update the beam's start and endpoints to match where the character is aiming. you can still update colour as you were, because now the beam isn't constantly being trashed every frame before you can see the colour change
The latter soudns much better (and utlimately that's what I should be going for anyway, just had to do something that was working at first).
Tho the first issue I have is that the laser is constantly visible (an issue to begin with), and for now it won't change its color anyway.
you need to kill the system when the player stops aiming
his code isn't correct anyway, you simply don't use multicast for stateful behavior
Well, dunno how to do something like that...
How would you go about this?
And since Itβs a pregame scene i dont know where to code it.
Sry for disturbing
I dont have a character bp in this level
just tell me what you want to do with the random number
you have a reference to the system when you create it
... I don't think so..? I don't really know what you're refferring to with that...
So on my game i would use this code to make an extraction of 2 enums in a list so i can then spawn 2 characters on screen.
The same characters will be shown on the server and on the client.
and where do you want to read this random number?
you stored it to Pointer Spawned
Ah, this ? What do I do with this tho ?
The only thing I know to detsroy it is just... a destroy node, but it wouldn't accept the reference.
wdym sry?
This is what i did for the singleplayer and it worked but i'm trying to find a way to do it in multiplayer, thats why i asked the basic logic for an integer so then i could find a way to implement this.
The pre game scene would generate a 2 random enums from an enum list and then spawn 2 characters on screen. I stored them in a game instance so then i could get the 2 enums and set the abilities on the game level.
the pregame level its just a camera and 2 bp classes that will spawn the characters
this is the code inside the 2 bps
Why not just replicate the result and only execute it on the server?
Don't know what to do after that :/
What should I do with this variable ?
i dont know where to code it since i dont have a character bp. For the singleplayer testing i did the code on the level bp
im pretty new to the multiplayer and im finding it difficult sry
i wanted to understand this basic logic first and after implent the whole thing
and even with this idk where to put it
when i put it in the PC it worked but it printed 2 values on the server first
and on the level i dont have a character bp
Well it depends on what it is, it seems related to the game mode state so I suppose in the game state
the only bp that spawn the value for the server and the client is the PC from what i have tested
maybe im doing something wrong and its 90% possible
GameState exists on server and all clients, its basically where you would put any things clients need to know about that is specific for the game (and not tied to players, for players it would be PlayerState)
Guys I have video cutscenes play during the game, however when i change the game language to arabic they no longer work as if the paths are affected
Any idea why or how to solve this?
are you available for a quick call?
I'm available here in chat =P
Hello! So I was wondering, I'm trying to do some cleanup when it comes to hard references and stuff. Now I have an "enemy management" actor (BP_EnemyManagement) that handles spawning and tracking enemies.
This actor obviously knows about a BP_Enemy_Base class which is fine, but when I want to cleanup the enemy (when it is destroyed) in the BP_Enemy_Base class I also reference the BP_EnemyManagement to remove this enemy from the ActiveEnemies array.
I don't think it's a good thing that BP_Enemy_Base references the BP_EnemyManagement again (because then the BP_Enemy_Base also knows about everything the BP_EnemyManagement knows).
What is the best way to fix this without getting rid of this ActiveEnemies array
Add an on death or something event to BP Enemy Base, then when you spawn enemies in BP EnemyManagement subscribe to that event?
Am I correct in assuming that you're referring to an event dispatcher?
@primal summit So all of this to spawn? then client dont need to run any logic
server set random number, server spawn random character based on the result
if the spawned character is a replicated actor, the client will get a copy
you can call Deactivate and I think that'll kill it, assuming you haven't changed settings. but you should also see Destroy Component and that should work too
understood, whats the best bp to write this code on? and is it ok if i use the game instance or is it better not to?
Aight, ill see if i can figure that out, cheers!
What is this binding?
Guys a quick question: box extent in local space? if I retrieve a position of a box and then rotate the box, it does not affect it.
All these actors will be contained within their own streaming levels... So I imagine no more than a few hundred (combined) might be streamed in at any time. I just wanted to ensure that I wasn't going to hit some kind of horendous limit for making these actors and not components. Thank you
hey guys im a bit stumped, I need to animate a bobbing platform, that is "floating "on the surface of water. We have combat on this, and Unreal Water sim stuff wont work for our needs.
I have the bobbing up and down working but does anyone have any ideas on how to get a decent looking rolling and rocking movement in blueprint. to simulate the wave movement.?
game instance make little sense, you can place it in an actor that exist on the server
if this number is randomized per player
then probably game mode to player state
Player Login -> server set random number in the player's player state
help! this works fine in standalone, listen server, client everything, but whenever i m launching my gamelift server (dedicated server environment), this cooked envelop amplitude data is not returning any float. any reason why its not doing this. Again, this code works fineee if I play frm UE PIE.
sorry for the repost
hey guys im a bit stumped, I need to animate a bobbing platform, that is "floating "on the surface of water. We have combat on this, and Unreal Water sim stuff wont work for our needs.
I have the bobbing up and down working but does anyone have any ideas on how to get a decent looking rolling and rocking movement in blueprint. to simulate the wave movement.?
Does it tick on the server? there may be an option in the actor\audio component that makes sure it doesnt tick on them, can you confirm if they do?
which settings shud I use? and can u pls explain ur thot process?
turning off tick for dedicated server, building it rn
Nah it should be on, just making sure it wasn't off.
I thought maybe it may be disabled or something, since dedicated servers have no use for audio unless you read something from it like you do.
any idea why my skin textures are white in unlit mode?
so what can I do here? do i have to create a proxy system using some surrogate data?
The only thing that comes to mind is Beginplay calls. Huge levels have some issues with that even on StaticMeshes. But it takes dozens of thousands to cause it. At work we put in a staggered beginplay that sortsthe list and then runs beginplays but only so many per frame. Better continuityfor things like 55k static mesh actors.
I'm not sure, may not be any easy solution. That said I'm not entirely sure about your exact use case, so there may be work arounds π€·ββοΈ
Ah yeah that's probably good practice in general. I'll keep an eye out for begin play issues
my use case is to have certain materials affect in response to the envelop data, and these changes have to be replicated.
Can you not replicate the conditions and then have the clients do it themselves?
how can I do this? like where shud I put the "GetCookedAmplitudeData" function? where will it lie in all of this?
like run on owning client?
so try to create a pure function from the function "PerfHelp" in the picture which i shud run on owning client?
It would run on all clients (assuming everyone can see the material), all of it affecting the material would, only the condition that triggers it would be on the server. E.g. you hit something and you play a sound, the hit would be detected by the server, but then replicated to all clients and the sound will play on the clients... If you don't actually want players to hear it you can probably lower to volume to 0 and still keep it playing for the sake of affecting the material.
so put the "PerfHelp" logics after "C_Perform"? (see the picture pls) and trigger the event from the server?
anyone know how to fix metahuman white skin texture?
only on unlit mode it shows white
iirc it's something to do with how Subsurface is represented in Unlit mode?
this randomly happened after my cpp incident yesterday
do you know how i could go about getting it back
not sure sadly
Did you get an answer to this?
There's no problem doing what you've done -- that error almost certainly arises from the new child asset having been deleted or reverted somehow.
Is it still present in your project?
No, and I ended up making it again. No clue what happened to it.
Immediately after, I ended up having to do battle with my whole project for a while, it was losing its mind, so I honestly forgot that problem since everything else went haywire. I'd open an asset, it'd turn interface events into custom events, I'd reload it, it would fix, but then other stuff would stop compiling, and on and on, endless broken references.
I think it was a redirector issue? Anyway, I kept whacking it and fixed up redirectors and deleted stuff and recompiled and reloaded it a few times and eventually it quit yelling at me and everything went back to normal.
For now.
Do you use a lot of C++ in your project or only BP?
almost all BP, outside of a few things like enums and structs.
Hmm.
On pitfall is if you create C++ classes from the wizard inside the editor, which invokes Live Coding -- then edit those classes and immediately start using them inside your project.
If you re-launch the editor from the launcher or by double-clicking the .uproject file, next time those Live Coding-created classes won't be available (they are not compiled), and get stripped from wherever they were used.
But thinking about it, it doesn't really sound like what happened to you.
Ahh it's probably good ol' bloody redirectors like you said
I did make it different ways both times. The first time, I just grabbed it in the level outliner and made a blueprint of it, whereas the second time I went to the base class in content drawer and made a child (and made sure it wasn't saved in the engine folders or something, which is what I thought might have happened to the first one).
I suspect the 'how' of that first one was the problem.
Should be fine either way.
Well, hope the issue doesn't return (and that you have source control for scary moments like this in the future!!)
I do, I actually submitted right before I set that up and again right before I closed the project after setting it up.
I just figured pushing through and figuring out what the hell broke would be better if I could.
I would probably take the road of reverting for peace of mind myself!
At least if no great deal of work is lost.
But I'll leave that up to you! :D
So if I have a Texture 2D variable in the Data asset but nothing assigned to it in the primary data asset, I think it should not be calling any hard ref. But since I am applying a texture to that variable in the instance of data asset, wouldnβt that be a hard ref?
I ended up using a soft object reference and then a load soft texture for brush to load it but idk where to understand if itβs a hard ref or soft ref since I am calling it in the data asset.
Does anyone know how to alleviate the tiny jitter that comes with enabling "use pawn control rotation" on the camera? It's driving me nuts. It's too small to film even but you feel it when panning the camera, any slow change in yaw results in the character's hands jittering in a very tiny way
I suspect it is also from having "use controller desired rotation" on my mesh but I'm not sure what other solution I can use. I've tried putting mesh and camera on every combination of tick groups I can but it isn't tha
Dispatch events. These are basically firing out a message to everything in the world and any BP that is listening runs the attached code, right?
Like a twitter account. Anyone can follow and get the updates
OH! So it fires out to anyone following only? Not everything in the world
Yes
Someone recommended me the SPUD plugin a while ago when I was looking into better savegame implementations, but I found it a bit too complex for what it does. Felt a bit over flourished. Literally wrote my own after looking at it and some other stuff that is all a few hundred lines of code and generically saves any object. :/ People over complicate shit needlessly way too often.
It keeps a list of followers
Awesome.
(Or bindings but yeah)
I am the #1 SPUD fan
fite me
(well no good for you I guess haha, but I don't see how it's overflourished to add 1 interface and mark props as SaveGame for full automatic serialisation?)
Why do you even need an interface?
Because I might not want everything saved?
The Actor baseclass marks bCanBeDamaged as SaveGame.
If I were to rely solely on that, all actors in the scene would be included in the save file.
As opposed to the handful of actors I actually care about
I just populate a data asset with the classes I want to save and any of their subobjects. π€·ββοΈ I can save things that don't come from my own project that I'd have to extend with your interface.
Well, you do you
Complexity doesn't usually come from nowhere, but from edge cases.
Such as fast path/slow path, archive versioning, etc.
But if your implementation does all you need it to, all the better
My personal experience is that complexity comes from inexperience, and ego.
I use Unreal because some problems have been solved before and I don't see the need to resolve them.
TBF I don't know how old that plugin is either. It looked older. So half of that code may exist because of stuff that wasn't available when it was written.
BTW does SPUDs stuff allow pointer saving? Does it replace objects name stable?
Yes, SPUD saves pointers.
Nice. π +1 for that then.
The worst part about it is that TSoftObjectPtr isn't supported, so you have to hook into the pre-save/post-save events to convert it to FSoftObjectPath and back if you want to store one.
It might have been changed since the version we use, not sure.
Eh? That's an odd one. It saves as a simple string same as a pointer if you just use Serialize. :/
I find that odd as well.
Especially since it handles TWeakObjectPtr just fine
I should probably look to see if that has been rectified
I only just now realized, when I was about to ask about it, that when I was trying to figure out how to make SPUD save properties from actor components, I misread their instructions.
...like 10 times, since I kept checking to see what I was missing, since it seemed odd that the method (as I misunderstood it) could only support one actor component.
oh well. now I know.
Hah yeah.
In C++ it's enough to add SaveGame to the subobject pointer, in BP I usually create a variable in the construction script to reference the component, then mark that as SaveGame.
Unless you can just toggle SaveGame on the pointer directly in BP too, I don't recall?
don't think so. but yeah, I actually figured out the construction script reference and marking that as savegame correctly.
but somehow my brain decided the variable needed to be named savegame as well, and didn't understand how I was supposed to have more than one.
I can't explain how I understood that I needed to mark it as SaveGame and also had that misunderstanding. you would think it would be one or the other.
maybe I was tired.
aha!
Hey peeps,
Got a question, is it possible to get the aspect ratio of a video playing through a media player using BP?
Like the imported resolution of the video?
could also just add a tag to those who should be saved
whats the best way to determine the "impact" of a raytrace?
For instance if a raytrace car is in the air and it hits the ground, I want to return the force at which it hit the ground to determine how loud the impact will be.
This is to weed out "false positives" where the raytrace might go up in the air for a milisecond and then down again.
velocity
and mass
What do you need it for?
Guys I have a queston. As you explore the world in my game, it pauses everything but the generation as it should. but the game "Hangs" (lags) for a second or two after un- pauseing. Do you guys know any way to fix this?
I'm building a media player for part of my project and some videos aren't 16:9 ratio so need to set the image in the UMG to the correct size so the video isn't distorted.
It's my first time creating a media player so I don't know if there's another way for it to work with non-average ratios for the videos.
I had to make a function to grab the MediaTexture's size from an unexposed property in 4.27. I doubt it's changed since then. I pass this value into a material to use it for UV projections. Nothing else I tried had correct values but this. :/
FIntPoint USomeLibrary::GetTextureSurfaceSize(UTexture* InTexture)
{
FIntPoint ReturnValue;
if (InTexture)
{
ReturnValue.X = InTexture->GetSurfaceWidth();
ReturnValue.Y = InTexture->GetSurfaceHeight();
}
return ReturnValue;
}```
Profiling it to see what the real problem is.
Insights is fairly easy to use. Just run it before you run the game. Make the lag happen. Find the long frame from it and look through the callstacks.
is there a video on how to view that?
I dunno. I wouldn't doubt it. I learned from trial by fire when I first did.
i remember it being able to pull from the UMediaPlayer object, but im not too sure, it also purely depends on the implementation the media player used at the time.
Maybe. In my case this was a Bink player. I don't remember why it wasn't working normally anymore. π€·ββοΈ
these thing
hey,
I have a question about inheritance. I have a BP_Weapon and a BP_SMG, BP_PISTOL.
I implemented a "CanFire" interface one the BP_Weapon and Override it in both child class with their own specificity ( animations, recoil...)
Do you think I can make the code even more abstract by moving some of the logic in the BP_Weapon Blueprint ? Because right now it only have the variables.
Here is some screenshots of my Fire event implementation on my BP_SMG
im not entirely sure why but when i line trace on a trace channel i made it doesnt detect the objects i want it to even though they are set to block traces on that channel. is there any other additional settings that influence it other than just setting the channel to what i need?
I just tried that Get Video Track Aspect Ratio and it was returning a value of 1.7 for a video that is a 16:9 ratio. Gonna have to look up the documentation on it see what its trying to put out
if you have inheritance, you probably can skip interface in the first place
as for weapon hierachy, i personally will do somthing similar
BP_Weapon -> Parent has functions like StartAttack/StopAttack
- BP_Firearm -> Override StartAttack/StopAttack to treat it like pulling and releasing triggers, setup all firearm logics here
- - BP_Firearm_SMG -> Mostly to set variables like firerate, projectile properties, magazine sizes
- - BP_Firearm_Pistol -> Mostly to set variables like firerate, projectile properties, magazine sizes
- BP_Melee -> Override StartAttack/StopAttack to play montage maybe, possibly charging attacks
- - BP_Melee_Knife -> Mostly to set variables, maybe custom behavior when hitting targets
i mean it is indeed 1.7778
oh its doing it like that
what you need is probably the dimensions, since you need to set the UImage size to match the video dimension
yes you are most likely right. it is the dimensions I need lol
thank you ! So you would use inheritance without interface ? And when the player fires, I call the parent function fire() right ?
if you have a BP_Weapon, probably would be StartAttack or something similar. if its BP_Firearm as base, then Pull/Release Trigger maybe.
You only need interface if there are shared functionality/behavior you need from unrelated objects, like interacting an object, the object would determine the response.
if they are all weapons, can use inheritance instead
yeah ok I understand, it makes sense you're right
thank you for your feedback. I will work again on my logic
Thank you by the way
π
?
if you are tracing static meshes, its actual collision shapes do matter, simple vs complex collision, but its unlikely to have problems though you may double check
and also whether Query is included in the Collision settings
you also can just do a sanity check and try to just trace a collision shape instead.
ok thanky ill check all of that
nice that worked π
Hi guys. My ActorComponent that's a component of a Pawn keeps getting a BP Runtime Error "Accessed None", but everything associated with it actually works. (The mechanics that are implemented there actually work) aside from the errors. Any Ideas about the error?
Impossible to say without seeing your code, but if it's producing an error that is "accessed none", it's because it's accessing nothing.
try adding some breakpoints into the blueprint
doesn't mean it's valid during run time.
Obviously the variable "exists", that's not the error
What makes a variable "invalid"?
If it fails to add the static mesh comp, the return value would be nullptr
Plus, as I said, the add component node and set transform node work - the mesh is showing up in runtime
Also this started after a blue screen, worked fine before that
Tried restarting
Who is the target?
Target is owner
The actor component is a component of a Pawn
It was all part of a tutorial though
g'afternoon
Anyone able to help me with my BPs? rotate works off the rip, but for some reason as soon as it hits first mark it is like nahhhhh im done
Actor [rotation object in center] spawns the 4 ships around it, which attach to it using attach actor to actor
This is on the center object, which works initially
And sprite component on the other actors
have this to keep them facing down
ok so i have a while loop, but i only want one iteration to happen per frame. is there anything i can make it async or something to temporarily pause it until the next frame once one iteration is done?
It looks like it is at the end of my first lerp/movement
is where it stops
and I have no idea why
right before it finishes. (still a little to get to location when it stops rotating)
yea so its stopping when it hits 90 deg rotation
oh there we go
add actor world rotation works
as expected this does not work. but you can see what i mean with this. i want each iteration of the loop to happen after the next, and each be delayed by a frame
While loops need to finish within the same frame.
If you want something to happen after so many seconds, set a timer by event.
Then click "looping" and it'll keep on triggering after however many defined seconds you want.
does that work with having it happen once a frame until a certain condition is met in that case?
this wouldnt be an issue if u could just make my own async tasks 
If you want something done every frame, then use event tick. If it's the only thing you do on the tick event, you can either enable or disable tick on the actor as needed. Otherwise, you can use a branch on tick to trigger your desired logic.
i dont want it to happen every frame, only every frame after i trigger it, and then for it to stop after a period of time
So again, you can use a branch or enable and dsiable tick as needed.
thats really the only way??
What's wrong with that? That's how you'd do something like that.
in unity id make a async task of some kind to handle these kinds of one off operations so i dont need to have stuff constantly being in update
You can make async tasks, but not within blueprint.
welp, i guess i had to run into blueprint limitations at some point 
This is what I'm describing as what you can do.
yeah i understand that but i prefer to not do it that way to keep it cleaner
but in this case i guess im kind of forced to
hey fellas im trying to figure out how to set this float value via linear value, how would i accomplish this
via line?
like 0 at 0 seconds and 1 at like, 2 seconds or something
Timeline
hm well it appears i cant make a timeline in a GAS ability
also would i be able to apply a nonlinear scale to a timeline if i wanted to
Sounds like a timeline
stop after what period of time?
Just tick into a branch
Tick -> done? -> no -> do thing
-> yes -> don't
although, what are you trying to do here?
i guess this might be counting as programming an animation, but its translation with splines. so i just wanna trigger moving an object across the spline and have it be done moving whenever it reaches the end
yeah tick
you want the thing to be in a new position each frame
thats tick
if it was a predefined time, you could use a timeline
which is sort of a temporary tick with keyframes
ah isee, well thats useful to know though
Hey Guys
So I've added a print for debugging and the value for variable "Preview Mesh" is definetely the desired one and not None...
So it's actually printing the display name of the thing that I want in that variable
but somehow it's still showing accessed none
what's being printed out looks like a reference to a static mesh component, not the static mesh asset itself
is that intended?
Well I need to be able to change the World Transform of it
Can I change the World Transform of a reference?
show some code
It's not an asset, it's a static mesh component
or can just link the message
^
That's where the Preview Mesh Var is assigned and its static mesh set
I've never used preview mesh. is that just for editor purposes?
i was so confused
lol
place a breakpoint where you think it's breaking
select the node and press F9
then play and see what the actual values are when you hover over the pins
as of now, the tiny code snippet you show isn't enough of a snapshot to show where it could be breaking
and the error your getting isn't shown in your screenshot either
Hi, can someone help me connect a pressure plate to several rectangular lights in UE5? I'm working on a school project, but cannot for the life of me find a tutorial where you don't need to interact with the pressure plate. I just need the player to stand on it or step on it and it activate the lights.
when looking for solutions to your problems you have to learn to google more broadly, and be able to reinterpert what you learn for your own specific needs
you may not find solutions specifically about a pressure plate, but you'll find solutions about collision triggers for instance
you can use what you learn from there, and reinterpert it for your project
if i undersand you correctly you want an event to happen when a player steps on a specific actor / location
Awesome, I am still rather new to blueprinting so sometimes I am unsure of how to connect things to other things.
Yes
you can achieve that with box collision
Yes, I have a box collision on my pressure plate but unsure of how to connect that to where the player will step on it and the lights are activated.
so look for tutorials on triggers or collision triggers. i'd follow tutorials on a seperate project, and then when you understand, integrate it into yours π
Okay, great, thank you! π
so the trigger needs to tell lights to turn on / off
you may want to be able to reference the light actors from your trigger BP
you can add a light actor array var on the trigger, and drag / drop the light instances into the instance variable in your scene
you could also use tags, or create a channel system.
any tutorial about light switches should go over a technique or two to accomplish this π
Only to turn on. They're alarms for a prisoner escape game π
I've not used tags, but have heard that they're rather useful. Thank you for the info. I will look into tutorials that cover these things. π
np. once you get better you also start realizing that you can watch a tutorial or see an implementation of any mechanic in any engine, and you're able to start piecing how you'd do it in your current engine of choice.
all that to say, don't limit your searches to only your ultra specific use case.
Ty, yeah, I've just got to know the terms of what is what lol. Sometimes, I don't even know what to search. π
omfg, i managed to get it working on one light!!! π <333333 Now to see if I can do it with multiple lights, tysm!!!
Nvm it's been mentioned
π sweet. Glad you got one working
hi! I have made this in my menu bp but I wanna know how can I save this to be loaded when the game launches? because with the game user settings it's really easy and it's what I been using with the other stuff, but with this idk how can I save it. if anyone can enlighten me would be really appreciated
the one thing I've done haha, go to
Edit>Project Settings>Maps & Modes> Game Default Map> Click on the drop down menu & choose ur menu map
btw it won't start the map in editor mode but once you build the game it'll be the first screen to pop up π
if I'm wrong and someone sees this pls correct me π
oh, I see why the question can cause confusion jasdhj thank you for your help :)
what I meant was to save the color vision deficiency variable to load when the game launches
@muted otter you can store the index using save game object
I'll take a look, thanks :)
Does anyone know how to add tags to components? I'm unsure if I am doing it right... My rectlights don't show in play testing, they're basically duplicates of the first one that worked, so unsure of what is going on
I'm trying to reference multiple components (so my variables are not just a long list of the same actor aka my lights) and I think I do that by tags?
Use an array of actor reference
You don't really need tags for something simple like toggling lights
If character overlap plate-> get the array of lights in bp plate, loop through them and toggle. That's it.
What do you mean loop through them? I'm trying to activate multiple lights with the plate π
yeah I'd just go with an array. here I'll give you a quick example
That'd be great bc I don't learn too much from just instructions. :/ I'm more of a visual learner
alright, trigger BP is a simple static mesh with a box collision component
add a BP called Lights
and set it's type to Light, and Array
along with Instance Editible ticked
now in the editor bring your actor out and you'll see it's Lights variable in the details panel
add as many elements as needed. in my case it's 3. one for each light
add your lights to each element via dropdown, or eye dropper.
and lastly here is your code
only because you've been at this for 5 hours
Hi all, i dnt understand this error, can u help me understand
If you have source control you can hit ok
If you donβt have source control yet source control
we need a source control flow chart
Here we go. my finest work of the day
i thought unreal had a git lfs article but i can't find it now
Bro i m using Git SourceControl. Works fine
And yea it uses Git LFS. So if ur project is over 5GB in size, u need to pay 5$ for 50GB monthly
yeah I'm a fan of git. i don't work with a team and i don't have a large project so i see no reason for something like perforce
Perforce is soooo old school
Perforce is the industry standard.
Idk, might just be me but Git seems much simpler to me.
Wow, you went all out π₯Ήπ₯Ήπ₯Ήπ₯Ή you are a godsend ππππ
I am so grateful
Only 5h? π
Sure
The issue is that this part of code is so messy that I'm just embarassed
Here's the thing with the two breakponts on the parts the errors are referencing
shows up like this fsr
But once again, the code does what it should, aside from the errors
Which bamboozles me the most
Like the component is being added, static mesh set and world transform updated
so at some point, is Reset being called when PreviewMesh is null? because that runs independently of whenever you set PreviewMesh
to clean up blueprints, drag as many variable nodes as you need
these tentacles just make for hard to read code
Reset Is being called when I change the component by clicking arrowkeys
And the thing on top is called every tick
you're adding a new component on tick?
bottom line, you have a nullptr exception because at some point when your variable is read, it's null.
i know you know that, but you keep saying your code works, when unreal is trying to tell you that something in your logic is wrong.
add a check to see if PreviewMesh is valid here
Well the actual adding a component happens once
DoOnce node
It updates transform and mesh of the comp every tick
ah didn't see that. why tf is that on tick then? lol. why not on begin play?
Oh right π
I followed a tutorial and that's how the guy did it
another reason i hate bp tutorials.
the prople teaching them don't usually don't actually know how to program
You have a point
But I can see a situation where that needs to be called more than once
then create a function for it, and call it when it's needed. not on tick
Ok, thanks
Damn tutorials π
Abusing tick like that
fr
Gorka Games' "Simple UE5 Building system"
i still dont'' know where your code is actually throwing the error. which node is actually reading the nullptr?
That said my code isn't the same as his but his is still in tick
where I put the breakpoints
so can you just check to see if PreviewMesh is valid before trying to set the static mesh of it
i mentioned it here ^
Building system sounds like its tick worthy tho π
Didnt check this actual thing
But in general they've spammed tick far to much
oh yeah i have no problem with tick. it's just the stupidity of the DoOnce node on tick instead of begin play, or on some method lol
as a matter of fact, if you're going to add a component when it spawns then why even do that in game? why not setup the actor that way to begin with? 
diabolical!
For sure. For building systems i just spawn the bp itself and disable collision
With some material magic
yup. on the same actor i just have build ghost SMC
and i use another slightly scaled down actor SMC to perform collision checks
I tried tons of traces but quickly turned difficult π€£
Wanted to let buildings be placed on slipes within a treshold
Will do
man build systems are decievingly hard. Had to learn to do bitwise operations to get a halfway decent snap system
I thought socket snapping was a common method ?
Thatd how the tut i watched 8 years ago did it ππ
yeah but to define what objects they can snap to
so tags would work, and that i what i do (kinda. i think i just parse the socket name). but how are you going to define that one wall should snap to only certain kinds of snapping points?
Well my thingamajig is set up as a drone thing that builds things - I can possess and unposses it, and when I unposses it I want to remove that static mesh component
and add it when possessed
x=x/100 -> truncate -> *100
If the tag was some category that the attaching actor needed to match
Oh damn
So socket 2 on the beam would have 'Walls'
the numbers at the bottom of the pole (1, 2, 4)
tell you what snap points it lets you snap to
I'm just making it grid based like Space Engineers
using bitswise ops, that's a 7, and since it's 1 bit you know it can snap to 1,s 2,s and 4s
but not 8s, 16, etc
the only thing to keep in mind is that what you define the point as has to be a power of 2
Yeah
And if some designer came in and made new meshes or types
It be complicated to learn, i suspect
and then the arrows are to indicate the normal vectors that it allows the building to snap to
I mean its not rocket science but its a pretty specific way of thinking
yeah i gained one brain wrinkle building out a build system lol
yaeh def not as intuative so involves a smal bit of teaching
I did a video over a year ago for this type of thing. You might find it useful.
In this video, I talk a bit about how I use blueprints to generate the data I need for snap points in a building system to populate a data table.
But yea, snap points are deceptivally hard. So much data. o.O
MY MAN i actually did watch your video when i was building out my system!
I used your technique to create a visualization of where buildings snap to each other
lot i learned from there π
Based on what I know I'd probably leverage editor utilities to help adding/visualizing the snap points in case you wanted a new direction to go.
I find the one of the early things you said to be wrong π
"Players dont want to just build in a grid" -
Minecraft and 100 others says hello
I'd be inclined to just match snap points by the closest one with opposing dot products. If you needed more granular data, can throw it in a data asset that can be reached globally to associate data with sockets. Put sockets on static meshes.
People love to build in grids , they just want smaller building blocks
Lego is all about them grids
Yea, I guess it would depend on the type of game lol.
yeah I've been starting to do more visualization techniques recently.
built out an editor with a custom graph for my quest system recently
It gives pretty good freedom compared to snappoints
and did a ton of debug drawing for my dungeon generation system. that was a mission
Personally i find the snapping ones pretty booring , as it all looks the same
The creative freedom is very limited
Good vid tho!
Not if snaps can be toggled on/off but I know what you mean.
Allow it to be toggled off. But still keep it.
Yeah. π
I prefer the valheim snappoints, they snap but beyond that is pretty much complelely free and not locked to any sort of grid
Yeah but the pieces that comes with these systems are generally large π
I was trying to avoid situations like these as well
So you (often) cant to custom windows, custom roof overhangs etc
That's what the dot product was for.
where the snaps matched, and the forward vectors matched, but they were still not actually rotated / positioned in the right place
yeah that's smart. i hadn't thought about that
The wall's top point faces up. The floor's side point faces out. They should be facing to the side of each other instead of towards each other.
Now if you add bool operations on the meshes, You have won
The conversation is making me want to make another building system. π To many other things to do though. Lol. Such a satisfying feeling when you get it working though.
im going to have to revisit this soon. as soon as i finish my quest system.
thanks for the input π
I got one ready for you
I'm too busy trying to oversimplify my interaction and hover systems. π
I need some more third party input on mine, when its done (reworking it atm, uobjects over structs) π
uobjects are king. πͺ
Mostlyβ’οΈ
Theres some drawbacks to it here
That I gotta remove for a good end user experience
yeah def @ me.
Would that be IsValid node?
drag your var into the graph. then right click it and click "Convert to validated get"
easier than a branch node
Ok I already did a branch π
IMO for quests it doesn't so much matter how you build it as long as it has RuntimeData, StaticData, and RuntimeLogic. Where you put those is personal preference.
With that said. Seriously. Flowgraph. π
man im too dumb to know how to use flowgraph properly
How much are they paying you 8-)
oh it wasnt all that bad haha
i wanted to create a flowgrapph asset that allowed me to have a bunch of data about the quest, and could not for the life of me figure out how to do so without editing the base class
I wish they were. π I just love that system now.
because any derived classes wouldn't open the editor
My quest allows for custom crap to be included with any quest π
as long as its defined it the quest definition, that is
ended up making my own damn editor with a custom graph. it all just functions as a asset builder rather than execution flow
I also got some work to do on the overridable events, as they were created when i used structs, and havn't yet been updated
π π
The dialogue system also now features a customizable uobject that gets passed along with the basic data 8-)
I start to like those very much
alright we got to revisit this convo when it's not 2am
i love my dialogue system but then i found suds today. and surface level, it's very similar to mine but more fleshed out
class DIALOGUENODES_API UDialoguePayloadObject : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, Category = "Dialogue")
FGameplayTag MetaType = FGameplayTag();
UPROPERTY(EditAnywhere, Category = "Dialogue")
TSoftObjectPtr<class USoundBase> Sound = nullptr;
UPROPERTY(EditAnywhere, Category = "Dialogue")
TSoftObjectPtr<class UAnimMontage> Animation = nullptr;
};
I want to check it out and determine if i should switch over
mine is just a text file that gets parsed
commands are just a child of a base UObject that get found and called via reflection
that's still missingi! π¦ export/import functions
Well now it just feels wrong cos I put a crutch in without really understanding why it happens
but ig if it works it works
when you try to access the component it's null. I'm guessing you had some logic on BeginPlay that called the reset event, and it tries to access the component before it's been initialized
also if I'm not making any sense.. it's because it's 2am. myb
Damn
Well it is making sense
at first i was doing something really dumb. and just doing exec ufunctions
then i got the bright idea to learn me some reflection.
Thats smart. I still know nothing about reflection π
Except it exists and is important for a bunch of stuff
It's slow, but as long as you don't need it on tick it's no big deal
in my case say me command is
@ComplateTask
My class is called UCompleteTaskCommand:UCommand
I simply get all the classes that derive from UCommand, and check to see if their name matches. if it does, then create a new instance, and call the ExecuteCommand method
for now really dumb. but going to see if i can add custom metadata to the actual class definition. if i can, then should be even easier to get a hold of the correct class
TArray<UClass*> CommandClasses;
GetDerivedClasses(UCommand::StaticClass(), CommandClasses);
bool FoundCommand = false;
for (UClass* CommandClass : CommandClasses) {
FString ClassName = CommandClass->GetName();
if (ClassName.RemoveFromEnd("Command")) {
if (ClassName == CommandData.CommandName) {
UCommand* Command = NewObject<UCommand>(this, CommandClass);
Command->CommandData = CommandData;
Command->ExecuteCommand();
FoundCommand = true;
break;
}
}
}
now that I'm thinking about it.. prob could cahce the results 
You don't like us UI engineers who have to deal with localization, do you? π
localization? who needs that. all my players are already local. duh!
π
π I guess that fixes that.
i'll be completely honest.. i have not given a single thought to localization. my entire dialogue system is written around a screenplay stile file being parsed into dialogue lines and text with a bunch a funky regex
i guess i could just have different language versions of the script 
first_quest_en.esd, first_quest_fr.esd
that sounds dumb and error prone
or... i could just migrate to this beautiful looking dialogue system https://github.com/sinbad/SUDS?tab=readme-ov-file
I'm not sure how I'd convert that, honestly. But that's always my first initial thought anymore with UI. "Is there text? How can I make sure this won't fuck up localization later?" π
you got a point. 
im going to have to sleep on it 
SUDS seems good. But I admit that I would much rather prefer a datatable style to that. There's really no good reason for the write out. It's a dialog line and a speaker. Speakers can be data assets or another table row. Then you can write the dialog line directly in an FText or add a stringtable entry for more common lines that would duplicate. Can associate a dialog file and everything in that one row right there without typo issues in the data entry.
is using spawn actor for FPS bullets going to lead to bad performance if there are many guns firing at the same time?
Possibly. Depends on what many is, and what your target hardware is.
if I use object pooling would it be fine if I set it to some absurd 10,000?
I'm using spawn actor as opposed to line trace because I've made a ballistics system, where the bullet can drop over time and lose penetration as it travels through objects
Traces can do the same thing when you consider how an actor is moved.
But unfortunately your question still remains at "It dependsβ’οΈ"
many guns would be say a few dozen gun actors firing at the same time
High level PC might not have issues. You may hate yourself if you do this and decide you want to release on consoles in 2 years.
target system is medium and above
IMO. I would consider just making a map that has a bunch of weapons, firing at different things, using and not using the penetration. Get a good test case of a bunch of shit shooting other shit all at once. You get a good way of measuring changes via profiling that way. Then you can just build your bullet system and try it. If it croaks, you already have everything set up to make a change to the bullet system and simply retest it.
When I release C, I dont uncrouch. Why?
I'm unfamiliar with using trace, I can see how penetration and other components would work but is drop off possible?
are there any unreal projects / games that use actors instead of line tracing? every tutorial I've seen online on shooters is using line trace