#blueprint

1 messages ยท Page 254 of 1

trim matrix
#

Can someone help me with an animated widget

#

I have created a fadein and out image widget, how do I get it to play in game??

#

Anything I try I just get a plain black box

sacred rose
maiden wadi
maiden wadi
sacred rose
#

basically all I want is this

maiden wadi
#

Open your BP_ThirdPersonCharacter. Look at it's variables list on the left side. None of them will be NearLadder, or Ladder.

#

If you want to set it on that class, it needs to exist in that class.

sacred rose
#

I see I got it now but like that was not obvious haha I guess I got a lot to learn.

#

Thank you

errant raft
#

does anyone know how to actually use this node to set a new value?

tepid willow
sinful prism
#

fire rate is not working, setting it to "2", "25555", "0.01" yields all same thing, any idea why?

dawn gazelle
sinful prism
#

It works on triggered by once, therefore no rapidly happening thingies.

sinful prism
#

s

quartz parrot
#

Hi guys! I have a short technical question regarding soft references. If I have a getter of a soft object and plugit into a spawn actor/system, the converter will be added automatically, whereas we have the async load node as well. In the case of the converter, how would the engine manage the soft object? as it always was a hard reference? or will it to attemp the async loading each time I call the spawn?

dawn gazelle
violet bison
#

how to get camera direction in gas?

quartz parrot
pine trellis
#

whats the best way to speed up shader comling hardware in a PC

trim matrix
pine trellis
#

I have a 12 gen i9 and a 1080ti but they dont go to 100 percent ever @trim matrix

thin panther
#

well no, they won't

#

the engine by default doesn't use everything so you can do other things

obtuse kiln
#

in situations where either would work, is there a substantial performance difference that favors one or the other between passing around a struct (something I've been loathe to do) and passing around a gameplay tag that's used as a name to look up a row on a data table (what I've been doing everywhere)

crystal sundial
#

I was learning a course and came across this problem..concept is creating a physics material and surface type to say that when bullet hits zombie it give "meat" and when it not it gives "surface".but see the video and i don't know how to solve it

#

if i keep shooting in the same spot it might accidently go to meat but multiple times output

maiden wadi
# obtuse kiln in situations where either would work, is there a substantial performance differ...

Depends on the struct and code using it. Depending on the code and struct using it, it can be the same. You copy the struct every time you call a function and pass it somewhere. You copy it when you pull it from the datatable. So if you pull it from the datatable for nearly as many things as you pass it through functions for, there won't be a lot of difference.

Depending on what your struct is and why you're passing it around, this is why I generally prefer UObject systems and DataAssets. You pass around a couple of pointers and you can access megabytes of data that rarely changes without copying all of it just to say set a name in UI.

maiden wadi
crystal sundial
#

thanks ..i will try

trim matrix
#

love the half life alyx hacking minigames, but got not a lot of experience with VR dev. how could you make something similar to this video linked? (it linked to the time im talking about) https://www.youtube.com/watch?v=zSW2pc3kmqk&start=12258

Half-Life: Alyx is Valveโ€™s VR return to the Half-Life series. Itโ€™s the story of an impossible fight against a vicious alien race known as the Combine, set between the events of Half-Life and Half-Life 2.
Playing as Alyx Vance, you are humanityโ€™s only chance for survival. The Combineโ€™s control of the planet since the Black Mesa incident has only ...

โ–ถ Play video
maiden wadi
# trim matrix love the half life alyx hacking minigames, but got not a lot of experience with ...

I have no experience with VR dev, or even using VR. But in general, one remote controls sphere orientation, another with the pointer controls the location of your moving gizmo. It looks like there may be trigger keys involved. Left trigger to grab the sphere while hand is near, right trigger to start moving the gizmo when pointing at it. Past that it isn't any different than any other game mechanic. Sphere with a particle system driven by some directional vectors. If the gizmo vectors both match up, success, if the gizmo vectors match any of the red vectors, fail. Add to BP and allow it to be rotated by controls and target with a line trace to move gizmo.

floral stump
#

my character body is listening to hit events using the physics body, so when the health is 50% the character mesh size decreased, but it still gets hit when i shoot at empty space where the question mark is shown in the image

#

is this something related to update or wake physics body or what?

#

using ShowFlag.Collision 1 i can see the physics body size also decreased according to the new scale applied to the mesh

#

that location with question mark is empty, so how it is still getting hits from this location?

dawn gazelle
floral stump
# dawn gazelle Can you show your code that is detecting the hits?

its in C++

void ABullet::OnHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)
{
    const AActor* HitActor = Hit.GetActor();
    if (HitActor && OtherActor && OtherActor != this)
    {
        if (AWeapon* const FiringWeapon = Cast<AWeapon>(GetOwner()))
        {
            if (HasAuthority())
            {
                FiringWeapon->ProcessInstantHit(HitActor , GetActorLocation(), BulletProjectileMovement->Velocity.GetSafeNormal());
            }
        }
        //Destroy the bullet after hitting
        //Destroy();
    }
}
floral stump
#

it seems like when character mesh size changed, the physics needs to be reinit manually

#

so i will have to reset the physics asset when the size of the mesh is changed

#

in this image it just for quick test to reassign the current phys asset after a hit

#

and i am not changing the size of the character using SetScale3D i have an animaiton which scales down the character

mystic blade
#

Blueprint Runtime Error: "Accessed None trying to read property DebugMenu"

#

i dont think the variable is being properly set

#

and ive no fucking clue why

sick sky
#

Add a Is Valid check before

mystic blade
sick sky
#

For example before the is visible branch

mystic blade
#

ok

#

so attach an IsValid onto the branch input?

mystic blade
sick sky
#

If you dont know if a object can be valid or null you check for it

mystic blade
sick sky
#

only after checking if its visible

#

so its to late

tired cairn
#

somebody help me plse

#

after opening my game it show this

maiden wadi
tired cairn
#

rtx 4060 8gb

#

i9 13980HX,RTX 4060

maiden wadi
#

Wouldn't think that would have issues with raytracing. UE 5.5?

tired cairn
#

how can i fix this issue

maiden wadi
tired cairn
#

bro i can't understant what did he done

#

plse can you tell me step by step @maiden wadi

floral stump
#

but still curios why the physics state is not updated by itself when the mesh enters a new pose

tired cairn
#

where is defaultengine.ini

#

@maiden wadi

#

i am a beginner i request you to tell me step by step plse

maiden wadi
#

Open your project folder. There is a folder inside named Config. If you open it, you should fine DefaultEngine.ini

tired cairn
#

@maiden wadiit is only showing default engine

maiden wadi
#

Because you don't have windows configured to show extensions of files. That is the correct file.

tired cairn
#

what do next

tired cairn
#

after that i have open the project

#

okay thanks after that the game opens without any errors

tired cairn
#

๐Ÿ˜ญ ๐Ÿฅบ

#

after i click on start button the level is not opening

#

in ue5 the level succefully opens if i click start button but after i package the game i click on start button othing happens

maiden wadi
#

You probably didn't package the map you're trying to open.

tired cairn
#

how can i do that

#

@maiden wadibro i solved now the map is opening but i don't know what i have done

#

can you check and tell me is there any wrong setting i have done

#

new map is my mainmenu ui

#

and babu is the level when i click on start button

#

because when i added the playing level after that the start button is working and opening my level but if i have two level how can i add because in the advanced=transition there is only one option

floral stump
trail pike
#

Good morning all, anyone has any idea why my textures look striped? this is an obj file imported after polygon decimation in Meshlab of a photogrammetry model

#

The material does not show it like this

tired cairn
# tired cairn

but after packaging i will be able to open only leve 1 because in this case,when i click on start button it opens the babu map

#

let's assume that i have 2 level

#

so how can i package the game with both level

tired cairn
# tired cairn

because when i added babu(level1) then the start button works

#

@floral stump

tired cairn
# tired cairn

and there is no 2nd transition map is there to add level 2 map

pulsar light
#

I recently noticed a behavior of the sequencer when BP are spawnable which i perceive is bugged but maybe it's a feature not a bug, when i grab the actor position when it is a spawnable inside a sequencer i always get 0,0,0 instead of the actor position of that actor where it shows in sequencer and then when i scrub or toggle variables in details panel the position data magically updates without the print message from construction script firing again, which is incredibly odd.

I imagine the engine is probably doing this in my particular scenario. 1. spawn the object at 0,0,0 -> 2. run the construction script -> 3. then move it to its location even though not keyed in the sequencer. By the way my script was able to capture the position perfectly fine when it is a possessable in the sequencer.

floral stump
frosty heron
#

Look for List of maps to include in a packaged build and add all the levels you want to include in the package build

#

pretty sure transition map is only for server travel anyway

mental wave
#

hello guys,
ive been developing a first person game using blueprints, implemented some character movements like sprint, crouch, walk.....

its all stuffed in character class,been doing with gameplay tags and if else, but it is getting messy.

read some forums on how manage movement states of character, but they only talk about high level implementation of state machine and GAS... can anyone tell me how to do it, or point me in right direction.. im pretty new to unreal engine.... thanks in advance

maiden wadi
# mental wave hello guys, ive been developing a first person game using blueprints, implement...

In general, the idea with GAS is to simply move your action code into grantable abilities. So Sprint, Crouch, Jump, etc are all abilities that could be granted to an ability user and work on anything that is based on ACharacter since you can call these functions generically on a character without having to know it's specific subclasses.

Your input at this point changes to simply TraActivateAbility. This seems like a lot of work initially for a lot of people who would rather just simply call "Jump" on the jump keybind. But then they want more and more things. First we only want to jump under certain conditions so there's a branch, next we want a sound to play. Now we want a dust particle to play.

GAS allows you to do all of this outside of the character class, and allows you to grant this jump ability to any character, so you don't have to have it in your character hierarchy. More so, it allows you to have Cues. A jump ability would simply be calling it's owner's Jump function mostly. It might also play a cue, and or wait for a quick preparation montage to play. Your animbp can handle the rest of the state transitions. The cue object would house your jump sounds, and particles. Maybe you want some complex scripter logic there where the user gets different sounds than a third person viewer, etc. All stuff you don't have to put near the actual activation and gameplay affecting code since it's in it's own separate cue object.

All in all, I love GAS, and I highly advocate for it, but you'll find a bit of pushback from a lot of people about using it if you're new.. or not new. If you like that kind of separation of concerns, and like your logic nicely separated, it's a good tool. If you work better in monolithic files where everything is located, you really won't like it.

As far as getting into it, there isn't much better than just finding some content to take you through some steps and adapting what you learn to fit what you need.

maiden wadi
hallow compass
#

Having issues playing some level sequences in a packaged game (UE5.2). They have a fade track *from * black at the start of the sequence, and *to * black at the end of the sequence, set to "Restore State" for sanity purposes. In the packaged game, the fade to black at the end of the sequence doesnt get removed - it just stays there at full opacity forever. Has anyone else run into this?

#

for some reason this only happens in some sequences, but I cant find anything that sets them apart from the ones that work correctly with the same fade settings

gentle urchin
#

I only want a fraction of it

#

cba doing the entire thing

maiden wadi
#

Depends on what all you want to use it for. I mean using it is as simple as making a GameplayAbility, and calling GiveAbility on the thing you want to use it. You can activate the ability via class, or even gameplay events if you set up triggers on the GA.

dawn gazelle
#

I think it's just a matter of implementing the IAbilitySystemInterface, IGameplayAssetTagInterface, then defining Avatar Actors..... You don't need to use attributes.

gentle urchin
#

I'm just now starting on the ability system for my project, and it instantly reminds me of GAS ..

maiden wadi
#

If you want Cues, you simply make a cue object, set it's cue tag, and call the play function for it. Works basically like a multicast visual. You can also make them similar to OnReps by adding them to GameplayEffects.

gentle urchin
#

Wanna keep it simple, yet i want a separate "Targetting" uobject so abilities can do custom stuff for that

#

I'm worried i'll get entangled into the web of options gas brings tho.. i tend to be ๐Ÿ˜›

maiden wadi
#

And yeah. Attributes are nice, but they're optional. You don't need C++ for anything except for Attributes, you can do 95% of it all in BP. But it's still nice to have C++ access for helper functions and such.

#

Abilities, Cues, and Effects are all BP accessible. Abilities are basically as descibed above. Effects can still do things like apply tags and play Cues, and Cues really rarely touch BP since they're specifically made to be very graphic designer friendly.

gentle urchin
#

Im mostly using c++ anyways, not really an issue

#

but it feels like enabling GAS is like dropping this massive Octopus into my project

#

entanglement everywhere lol

#

or rather, the concerns are so separated that you end up with 10 files just to fire a basic ability

maiden wadi
#

Only if you want there to be ten. That's basically two files if you're not using Attributes. Ability and Cue. If you're using Attributes and count the Attribute Set, then four files.

AttributeSet, Ability, Cue, Effect.
Attributes, Execution, Visuals, AttributeDefinition

gentle urchin
#
  • targetting
#

with some wait for input stuff

maiden wadi
patent mango
#

for the third person template when we click w a s d its rotation canges right ?
can i overide it so that i allow only rotation with mouse and add animations for right left and back ??

maiden wadi
#

You can do whatever you like. For rotation specifically, disable the orient rotation to movement in the character I think. And then you'll have to set your ControlRotation to the mouse cursor on tick.

Animations are separate and part of the AnimBP.

patent mango
#

got it

autumn pasture
#

this query works in 5.3, but fails to find anything in 5.5, without any extra changes. any ideas why?

maiden wadi
#

Can't speak for queries. But we have not moved to 5.5 at work yet. I tried the other day and had some checks crashing cooked game because of some async stuff in AI code.

gentle urchin
#

seems a tad unstable atm

compact fable
#

Sorry guys, quick question! How can I have my game start in the resolution of the monitor it is running on?

tired cairn
#

i have 2 levels and after packaging START button (for level 1) and for PLAY button(for level2) in unreal the level opens but after packaging when i click on start button nothing happens

#

@maiden wadi

#

startup map default map is main menu ui

#

where i should add my both level to work when i package

fickle tendon
#

I have a blueprint actor with simulation generates hit events disabled on the root/sphere component. But hit events are still firing. Is that expected?

tired cairn
#

so basically what i have done is that i just scroll down and you can see list of maps in packaging i click on + button and write the name of the map and then i package it after i open the game the start button works fine ,if i have done something wrong in this process you can tell me

#

both level is opening

tired cairn
#

whenever i open my project in debug it shows this warning can someboady tell me what is this and how i can i fix this

maiden wadi
frosty heron
#

well I guess he can place his editor maps in some other folder

#

thanks for the advice.

gentle urchin
#

Nice, thats neat!

maiden wadi
maiden wadi
gentle urchin
#

Kinda assumed that was purpise of the dev folders

lyric rapids
#

why am i getting errors attempting to set show mouse cursor

pine trellis
#

how can I speed up shaders being built?

#

it doesnt use any CPU and I have an i9 so I am confused

odd hornet
#

Hello. I'm wowrking on a train game. I'm trying to procedurally animate the steam locomotive. How can I use "find look at rotation" with another pivot? The white rod should always look at where it is on the pics. But it moves with that untextured thing.

pine trellis
#

I cant update my most needed plugins to u 5.5 ****

#

what a nightmare

midnight elk
#

Is there a way for the Input Key Selector widget to recognize mouse wheel up and mouse wheel down as keys?

outer sparrow
#

Hello! So, my character can become invisible and fool enemies, but the enemies can still see her when invisibility is active, how do I solve this?

#

Up is for when the character becomes invisible, down is for when she stops being

#

Basically I implemented a wave system. The invisibility can fool the first enemy of the type, but not the rest of their clones.

maiden wadi
midnight elk
maiden wadi
#

If you have C++ access it's easy to circumvent, just slightly annoying.

midnight elk
maiden wadi
#

FSlateApplication::Get().GetModifierKeys()

You can make a new struct for the thing it returns, which is FModifierKeysState. It's a bunch of booleans. I made a blueprintable struct and populated it from the FModifierKeysState and I pass that back from a static BP library function.

TLDR it gets you all of the currently pressed modifier keys the application itself has detected regardless of what widgets have allowed through or not. Much better than relying on PlayerController pressed keys.

midnight elk
#

ah nice, thanks

dawn gazelle
echo agate
#

So, I am having multiple issues with my camera that I suspect are all coming from the same source. I've done a lot of googling and none of the forum solutions work for me. Probably something basic I am missing but would appreciate any insight anyone could shed on the issue.

  1. My spring arm and camera needs to be offset 90 degrees around the player in the blueprint to be on behind them on play.

  2. When I tilt the spring arm and camera down everything starts to slant towards it, as seen in the overhead shot.

  3. When I move the spring arm and camera too low it snaps into the player. I have turned off testing for collision and it doesn't fix it. Showed in the fp shot.

olive yarrow
#

hey y'all, i've got a missile that spawns and casts a line trace for where it should move to

Buuuuut my delta seconds don't change depending on the distance of the trace so how can i go about making sure the missile flies the same speed regardless of the distance?

#

theres a distance pull from the break hit.. yeesh i didn't even notice. i'ma play with that - cancel the help unless you noticed im hella wrong

#

i did "Time" from the breakhit and multiplies it by my delta seconds. Hopefully that's the right way

maiden wadi
# olive yarrow i did "Time" from the breakhit and multiplies it by my delta seconds. Hopefully ...

Unsure if this will help your thoughts but DeltaSeconds is just a time between frames. 1 second divide by framerate. So 60fps has an average deltaseconds of 0.01666. You use this to multiply speeds so that you get an accurate movement per second.

An example of this is something moving at 300cm per second. (300 * DeltaSeconds) = 5, that means each frame this thing needs to move 5 units on a pc running 60fps. Which will cause this thing to move 300 units over 60 frames, which is one second. as 5 * 60 = 300.

So if you know the speed an object should be moving, and you have it's location, and you have it's target. You can calculate it's movement each frame as Speed multiplied by DeltaSeconds, and use that to multiply the direction the object needs to move which will be TargetVector-CurrentLocationVect normalized.

Alternatively, there is also the ProjectileMovementComponent which also allows homing and setting accelerations and max speeds.

thin panther
#

I was just about to ask why no projectile movement component

gentle urchin
#

It aalso account for framespikes automagically

slim pecan
#

hi everyone is there a way to make a line trace from the mouse while in ui mode?

#

basically i want to have buttons that you can drag and drop on things

pallid dagger
#

APlayerController::DeprojectMousePositionToWorld

slim pecan
#

From the player controller at least

pallid dagger
#

show code/BP

slim pecan
#

i dont have any code yet

pallid dagger
#

I mean there might be "bug" if you are working remotely, so mouse is faked Ratge

slim pecan
#

its not a bug its intended im pretty sure

#

when working in ui mode the player controller doesnt have access to the mouse position

#

only the widget does

pallid dagger
#

I'm getting coords just fine

slim pecan
#

thats a thing??

#

oops

pallid dagger
#

Mentioned util function has "guard checks" like

#

so if it fails on one of them it will just return default vector 0,0,0

slim pecan
#

i didnt know the convert mouse location to world space node existed mb

pallid dagger
#

it returns 0,0,0 i.e. thinks I have no mouse when I'm using moonlight+sunshine as a remote desktop solution, while built-in microsoft RDP works fine

slim pecan
#

i do have a mouse attached so i dont have that problem

slim pecan
pallid dagger
slim pecan
#

ya

pallid dagger
#

mine works from widget's tick too

#

if you have studio and C++ skills, you can try debug it with breakpoints

#

though not sure it will be doable in "non debug" build (for engine), some stuff might be hard/impossible to trace if it's optimized owoShrug

floral stump
#

if the character transit to another state like from stand to crouch,
when the stand pose physics body catch supposed to be cleared/updated?

tulip bough
#

I have a water volume and for some reason when my character hits the top, it thinks its in a falling mode, does the landing animation, and then sinks straight to the bottom. ๐Ÿ˜†

Anyone know why this might be happening?

surreal peak
#

Which will trigger your stop swimming code

tulip bough
surreal peak
#

It goes into falling cause it fails to find a floor inside of the walking mode

#

And the sinking is probably just the gravity still in the velocity when you switch

#

In theory this needs Buoyancy to push you up against the gravity if it should be somewhat realistic

soft wave
olive yarrow
potent laurel
#

a character is not water

faint pasture
#

that is how far you move this frame

#

if it hits, you hit something and explode

#

if not, you move and do it again next frame

tulip bough
faint pasture
#

capsule not touching water at all?

tulip bough
faint pasture
#

make the capsule visible

#

uncheck Hidden in Game

tulip bough
potent laurel
#

at the moment you are just firing the event for entire character class, narrow it down

tulip bough
soft wave
potent laurel
#

can you use OnComponentEndOverlap

#

instead of actor

#

it wont fix the swimming whilst character is verical though in the beggining of your vid

#

the best way would be to add a new collision component to your character like a sphere collision, make it small and about chest height

#

then use that as a check on the overlap events

faint pasture
#

lower the collision box

tulip bough
potent laurel
#

for all water

faint pasture
#

yeah if you can have a secondary collider thatll work too

tulip bough
potent laurel
tulip bough
#

side question: Should I even be using this plugin since its "experimantal?"

potent laurel
#

then on your viewport settings enable colisions

faint pasture
#

However you do it, the problem is that you're considered to be "in water" when your toes are in the water

#

either have the water test collision higher, or do math, or otherwise get around it

tulip bough
#

yeah I'm just wondering if using experimental plugins is good practice or generally considered a no-no

potent laurel
#

or make seperate component in character

potent laurel
#

my method would be

  • add a sphere colision component in your character class
  • make it small and chest height
  • on overlap events, use other character -> cast to your character class and use the new component as a check to bool
thin panther
#

experimental plugins aren't as bad as they sound. Unfortunately the default water plugin is an absolute mess and is an exception.
stuff like instanced structs were experimental for a while and fine to use in production. It just tends to mean that it hasn't yet been tested large scale yet.

tulip bough
#

Cool cool. I appreciate the help. Gonna dig back in and see what I can do

potent laurel
mystic blade
#

like the set node isnt doing shit

#

if i set the default value of the variable to WBP_DebugMenu, it works without issue. but when i relaunch the project later, the value of the variable is set back to none

pine bridge
#

hi, how do i use event dispatcher thats inside of a child actor? the event dispatcher is in the base enemy but i cant call the child's version

dawn gazelle
mystic blade
#

default value of variable keeps resetting to none after launching a project?

warped juniper
#

Hey there
Trying to make a basic system where the Player Actor targets an Enemy Actor, and traces a line from the camera to a Component on the enemy with the right tag.
Issue is, I can't find a way to get access to component's world location for the line trace...

#

I think... This works.

dawn gazelle
warped juniper
#

It does what I want it to do. Seemingly.

warped juniper
#

Since I only care about a single point in space

dawn gazelle
#

May as well change your "Get Components by Tag" class to "Scene Component", then disconnect everything from your loop, hook things back up, but then you won't need to cast.

warped juniper
#

Should I use a get components by class instead?

#

For reference, I have a real time combat system that has area damage.... Player picks 3 areas on the enemy and if they are visible, they can attack

#

There are multiple scene components, but ideally only 1 needs to be visible from the camera to be valid

dawn gazelle
#

Doesn't specifically matter. The tag allows you to filter further is all.

warped juniper
#

Got it... I still need to differentiate enemy reactions based on the tag

#

Which rn I'm using via interface input

#

(The interface call tells the actor which tag they validated the hit with)

lusty oak
#

Anyone seen issues with the Event On Possess node in the AI Controller not giving expected behavior before? According to all debugging, it's only getting hit one time, but it appears to be running it every frame based on the behavior I'm getting. If I swap it for a BeginPlay node, it technically works, but my stuff isn't setup to start running my behavior tree on BeginPlay, so I'm trying to figure out how to get OnPossess working properly....

warped juniper
dawn gazelle
# warped juniper Would this still work assuming there would be more than 1 component with the tag...

What you are doing right now with the images you have:
Get all Actor Components (of class Actor Component) with the Tag.
Looping through all of them, casting to scene component, doing your line trace.

What I was suggeting:
Change the class of the Get All Actor Components to SceneComponent (getting a shorter list) with the Tag.
Looping through all of them, without having to cast, doing your line trace

#

Should work exactly as what you had with the cast.

warped juniper
#

Ahh thank you

#

I got a small bug

dawn gazelle
#

Less nodes. Less stuff happening in C++ too.

warped juniper
#

And it wouldn't let me...

#

The for loop wouldn't update to scene

#

I still should convert the line trace to C++ later down the line though...

#

Like any for loop has no business being BP based in release builds

pine bridge
dawn gazelle
pine bridge
#

im trying to achieve something like, a constant spawn so i need to know if its dead

#

so the spawner will bind the event dispatcher, right?

dawn gazelle
#

Yep. If "BP Enemy Zombie" is a child of "BP Enemy Base" and "BP Enemy Base" has the event dispatcher "Im dead" defined, you should be able to just create a "Call Im dead" node which will then trigger that dispatcher. The spawner can bind to any BP Enemy Base reference it has to know when Im Dead is called.

lusty oak
frosty heron
#

On possess called when a pawn is possessed, do a print string and see if it's called.

#

Also post what you have

#

You said it's called once. So what exactly is the issue?

#

You have to elaborate on the unexpected behavior.

lusty oak
frosty heron
#

It will flicker to the root node if othing stopping it the BT is evaluated every frame after all

surreal peak
#

Probably the tree itself doing something bad

pine bridge
lusty oak
#

Also, I notice in that screen shot I have the decorator set to both, that's been fixed so it's set to self.

#

But that did not fix the issue.

frosty heron
#

Not sure what the issue actually is

lusty oak
#

The issue is it gets the TargetPosition, and continuously is hitting the MoveTo node but the character isn't moving.

frosty heron
lusty oak
#

If I switch the OnPossess node out for BeginPlay, the nodes seem to behave as I expected them to, with the tree returning only to the Selector node instead of all the way to the root, but I get errors because my stuff isn't setup for this to run on play, its setup for it to run on possess...

frosty heron
#

You can cast from the return value if you are sure you are spawning the type

pine bridge
dawn gazelle
# pine bridge it worked! but i tried to called a different enemies from an array but i cant co...

Your return value is of type "Actor" you need a "BP Enemy Base" type. This can be fixed by disconnecting everything from the return value, and from the "Class" input on the Spawn Actor from Class node. Whatever variable you have feeding into the "Class Input" needs to be of type "BP Enemy Base" and then you can connect up the class variable back into it, which should update the return value type to "BP Enemy Base" which you then can reconnect everything else as needed.

frosty heron
lusty oak
frosty heron
lusty oak
frosty heron
lusty oak
pine bridge
frosty heron
#

Your move to logic should have movement result. Print that on completed or failed pin

lusty oak
#

This is what I've got, I don't see any movement result though.

lusty oak
frosty heron
lusty oak
onyx tapir
lusty oak
frosty spruce
#

I have a question im trying to make a system i have a bunch of items listed in an enum (i have 649 right now) where as item=A spawns in Location=A i got the spawning to work first when i first started creating items but now that i have 649 items every time i select one in from enum to struct or i select it in the master item the engine crashes i was curious if anyone knew any way of fixing this

frosty heron
frosty spruce
#

gimme a sec im restarting the engine

#

List to struct

#

whenever i select one in the struct or the encounter BP it crashes

frosty heron
#

this is not what enum is made for. Enum is basically a named integer

frosty spruce
#

So what would be the proper way to create a name list like this?

frosty heron
#

Ideally stored within a struct

hardy quartz
#

is there a problem with my camera input?

#

my camera is not moving

frosty spruce
frosty heron
#

enum is useful to describe state

#

not a whole list of pokemon

frosty spruce
#

Ahhh gotcha thank you!!!

frosty heron
#

but data asset is useful for reading. At the end of the day, you want to store the pokemon information in a struct

scarlet marlin
#

(noob here) so guys yknow how the default templates in ue5 cram all the input and movement logic in the default character blueprint?? i tried to refactor it by transferring all the logic to a player controller blueprint. is this the right way to do it

bc i heard for best practices, ur supposed to separate input and movement logic, the former should go in the player controller and the latter should go in the character blueprint. but tbh idk what that means, all this looks like a mix of input and movement so i wasnt sure how to refactor it

rotund quartz
#

Does anyone know how do i get the pawn reference from collision overlap without casting and interface. Right know i can use interface but it is one more step in the process that i dont need. if i could get the pawn ref from the overlapping actor that would be amazing

frosty heron
#

just cast to pawn

#

Other Actor -> Cast to pawn

rotund quartz
frosty heron
#

but you are going to have a pawn in your map all the time anyway

#

so cast away to pawn

#

you don't need to cast to your specific pawn type, you just cast to the base pawn which is going to be loaded anyway.

rotund quartz
#

does it matter at all if few pawns will be vehicle pawn and others default pawn type?

frosty heron
#

in what context?

#

if you just need to do something that the parent of their has, then don't cast to their type but to the parent

#

example would be possessing

#

that's a method that the pawn class has

#

so you don't need to cast to any of the child, cast to pawn class instead

rotund quartz
#

lets say it is like GTA you have human character and cars, humans can posses cars

frosty heron
#

interface here is ๐Ÿคฎ

#

also ignore youtubers that says use interface instead of casting

#

they are clueless and will ruin your project

rotund quartz
#

aight aight will do thanks a lot

frosty heron
rotund quartz
#

will do

scarlet marlin
frosty heron
#

Where it says enhanced input subsystem, the left blue pin

#

Hook self (the controller) to it.

scarlet marlin
#

wait...how

#

is there a self node

frosty heron
#

Self would refer to the instance of the object you are in.

#

Since you are in the controller, self would be the controller

scarlet marlin
#

yeah but what node do i use

frosty heron
#

Right click empty space and type self

#

You will see a text saying get a reference to self

scarlet marlin
#

ohhhhh

#

ok thx

#

anything else??

frosty heron
#

Well make sure that you actually have the same controller in the world

scarlet marlin
#

like, do i not need to separate the input and movement like those guides said?? bc if i do it like this my character blueprint is empty

frosty heron
#

Print string something after hooking up the IMC

frosty heron
#

For me it's fine to control movement in the charactee

#

A humanoid character can perform walk

#

While a helicopter can fly

scarlet marlin
#

yeah but i wanna do it this way bc i'm gonna have more than 1 playable character

frosty heron
#

Then you handle the input in the character not the controller

scarlet marlin
#

but shouldnt all the characters be using the same controller?? so the input still stays the same even if you switch characters??

frosty heron
#

You can do that too

#

I would create event dispatcher in the controller

#

And any possessed pawn can listen to it

#

And can perform different move logic accordingly.

scarlet marlin
#

isnt that what those red IA nodes are

#

so everything should alr be set up correctly right??

frosty heron
#

handling inputs in the controller is common too. Like you don't want to handle pressing E for interact in the character. What if you want to transform to a robot which can also interact? redoing the logic is redundant

#

so if you have multiple characters, you can handle input in the controller and dispatch an event where anyone listening to it can respond

scarlet marlin
#

ok well as long as it works ig

#

anyway thx

dark drum
gentle urchin
#

I wonder how many weeks deep it will be before i realize dropping GAS for custom implementation was a bad decision and not a good one ๐Ÿ˜…

frosty heron
#

is applying gameplay effect replicated internally, or it's just gonna be applied by the machine that calls it?

#

hmm I guess it doesn;t but since attribute is replicated, client will get the value eventually.

#

I still don't understand how can I do server validation using the prediction key and reject

#

really wish there is a sample code ๐Ÿ˜ญ

maiden wadi
# scarlet marlin (noob here) so guys yknow how the default templates in ue5 cram all the input an...

Whoever told you this hates life, and does not actually understand how the PlayerController was written. Inputs shouldn't just go in the player controller. Inputs go in the Pawn if it's related to the pawn. Consider a very simple case. You have a human and you have a car. You need to possess one of these at a time to control them.

The primary question to ask is, why should your PlayerController care what type of pawn it's possessing? You have to ask that because car controls are going to vary greatly from a humanoid. So much that you should literally have a separate set of named controls for them that people can remap differently.

You would already have a giant mess of input routing logic in your controller for just Humanoid and Car. Now consider adding in Boats, Planes, Mechs, or any other type of specialized control set. And we haven't even talked about special ability controls such as a car also being a semi that can attach and detach trailers, or a plane that has weapons, etc. Your Playercontroller would look like a nightmare.

Instead, these control sets should go where they're used, the base class of your types. Humanoid, Car, Boat, Plane, Mech, etc. The only inputs that should go in the controller are super generic inputs. Like showing an escape menu or something. And there's a lot of us that even argue this, and put it in UI.

maiden wadi
shy matrix
#

then if you have deadlines, that's another story

maiden wadi
#

I went GAS. Never looked back. ๐Ÿ˜„

gentle urchin
#

It feels like a behemoth ๐Ÿ˜†

#

I got it in another long term project, and spent weeks setting up attributes and calculations and whatnot. Bunch of boilerplate stuff just to get it up and running

shy matrix
maiden wadi
#

So does Unreal, but here we all are. IMO I wrote my own little ability system before I got into GAS, and I just repeatedly fell into the cases of "GAS has this.. and they did it so much better.". Kept trying to mimic it and ended up with a zombified version without half the features. ๐Ÿ˜‚ It got deleted.

gentle urchin
#

Thats prooobably what'll happen to me aswell in a few weeks

#

I can already see elements of it , and i've justgotten started

#

I just mever reached the "oh this is soo good" feeling with the setup i got with GAS as i never got to the actual using part of it

#

So i just had the work, and none of the rewards

maiden wadi
#

The other major upside to GAS is that you get new features without having to write them occasionally. Other people understand your ability system so they can help with it. And you get easily transferable knowledge from project to project.

#

What kind of game are you making with it?

gentle urchin
#

Yeah it makes sense to use some common tool when avaliable really. Having some new person dig into my code would... be interesting ๐Ÿ˜…

#

Its a turn based game inspired by a very old ps1 title , "Azure Dreams"

frosty heron
fiery swallow
#

because that sounds like a wild implementation, totally agree with everything else

gentle urchin
#

Planning on introducing some multiplayer elements to it, but should be fairly simple to do since its turn based

maiden wadi
#

You can do that too. I use CommonUI's action router inputs. Allows you to have UI inputs without relying on the controller or focus.

fiery swallow
#

where do you store the reference to the UI

maiden wadi
#

If you put your game in UIOnly or Menu mode, you lose the controller. Which becomes a problem with the ListenForInputAction call since that's all it does is create an input component for the controller to use.

maiden wadi
fiery swallow
#

I always have my options menu created and opened/closed, in the player controller. I guess it's not that hard to get a reference to a UI, but wouldn't it just be so much easier to handle it in your player controller

#

I didn't know people were going that far

frosty heron
gentle urchin
#

In LA?

frosty heron
#

No, in ๐Ÿœ๏ธ

#

๐Ÿ‡ฆ๐Ÿ‡บ but like the most remote city

fiery swallow
gentle urchin
frosty heron
#

take me weeks just to do a basic attack combo... even now there are still a lot to be desired

fiery swallow
gentle urchin
frosty heron
maiden wadi
# fiery swallow I always have my options menu created and opened/closed, in the player controlle...

The idea is that your controller, or even HUD doesn't need to know about your UI at all. No reference needed. CommonUI has a thing called a CommonActionRouter which handles inputs early on before UI or gameplay does, so it has a chance to catch them. The widget itself registers an action, and the widget handles it's callback. No need for anything else to know about it. Not even the action router really knows about it, just the registered callback for the key.

gentle urchin
#

Cant justify travelling half the world tho

gentle urchin
#

They'll never come near us, even with a pole lol

frosty heron
#

@gentle urchin The living legend Nobuo Uematsu returns to Sandefjord, the Pixel Capitol of Norway, with a concert at Hjertnes Kulturhus the 5th of November!

fiery swallow
#

I should really learn about CommonUI, I'm so contempt with the regular UI system it's hard to accept change

frosty heron
#

not sure if that's real

fiery swallow
#

I'd be the college professor still teaching UE 4.27 when UE5.5 is already out

gentle urchin
#

Damn thats reallly close

#

Stavanger is ~1h drive with the new worlds longest underwater tunnell

frosty heron
fiery swallow
#

have you tried it yet? do you like it?

gentle urchin
#

I praise commonUI, and got it as base for many widgets, but not gotten around to actually try/use it ๐Ÿ˜‚

#

Praise based on other peers praise I guess ๐Ÿคฃ๐Ÿคฃ

fiery swallow
#

Maybe we should take the leap

frosty heron
#

the time for inventory will come very soon. I think I will have to start touching list view

gentle urchin
#

Oh no

#

Unless you're going thousands of items ๐Ÿ˜…

fiery swallow
#

think I've used listview once, I made cards against humanity online, complete with steam workshop, youtube music sync, and cardset generator. I never released it on steam because I'm afraid of getting sued

gentle urchin
#

Im lazy, stick with normal one

fiery swallow
#

I should post it on github for free

#

It's totally legal to release the source code of a non profit game for learning purposes tho

gentle urchin
#

I should reallybjust make a reusable inventory with uobjects

#

So i dont have to repeat code ive already done 44 times

frosty heron
#

you are making me question my struct approach ๐Ÿซ 

gentle urchin
#

Thats why i cant re-use them

#

All of them are struct based

#

Well

#

I can genericly structure the structs

#

So its less specific

#

Specially with instanced structs

maiden wadi
# fiery swallow I should really learn about CommonUI, I'm so contempt with the regular UI system...

As a fair note. There's nothing you lose by learning it. CommonUI all sits on top of the normal systems. And if you're not yet into Gamepad/Console territory, you can mostly just focus on the CommonButtonBase class, and the ActivatableWidget stuff.

ActivatableWidgets are like primary menus. They automatically change your control mode(GameAndUI, GameOnly, UIOnly) as they become the foremost activated. And they are required for the control bindings I mentioned before. And CommonUserWidget can register and handle it's own action router inputs, but they have to have a hierarchy parent of a CommonActivatableWidget Activated to use them because it only gives actions to the foremost activated widget's children. So that your inventory behind the options menu doesn't run it's inputs while the options menu is up.

#

Not to mention you get CommonListView widgets with working hover states by just using their button class as the entry widget. Doing those in normal ListViews is super annoying.

CommonVisualAttachment is really useful

Preset text styles are nice. Keeps you consistent with your UI, and makes it so you change literally one field to update every widget in the game if you decide you want that title text just a few shades brighter.

CommonAnimatedSwitcher is nice as well. So is the CommonWidgetStack container.

fiery swallow
#

Kind of sounds like it makes it a lot easier by managing the whole "handled", "unhandled" returns when you'd override the "on button down" function or something like that

#

Atleast I'm hoping that's sort of what you're getting at, because that's the most annoying thing for me with UI currently is overriding a button in UI and forgetting to return the function properly as handled or whatever

#

And then sometimes there's a freaking massive hierarchy of wigets consuming input

#

Maybe it's just a skill issue

scarlet marlin
#

instead i should create a base character class and put the camera and movement logic there??

#

what about the imc tho??

maiden wadi
maiden wadi
# scarlet marlin so you mean to say the default character blueprint setup in the templates is cor...

Correct. I'm not sure what you mean by movement logic though? As largely this is already done for you in the character class via the CharacterMovementComponent and you simply call AddMovementInput.

Mapping Contexts tend to be overcomplicated in a lot of cases. If you have a set of mapping contexts that can work at any point in the game, you can simply apply them in your PlayerController's Beginplay behind a check for IsLocalController. You only need to register them all once. In the case of my last point you could register Human, Car, Boat, Plane etc all at the same time and just leave them there.

IMCs are filters and data. None of those control schemes above should share inputs. And even if they did, you aren't going to possess more than one of them at a time. So even if you have IMCs enabled for Human and Car, no car is going to just drive off if you press W while controlling a human, cause the car is not possessed.

Where you DO want to toggle IMCs at runtime is if you have multiple control setups that may overlap. A common case of this may be like a building mode. You're a humanoid and your left click activates an attack ability. But you enter build mode and your left click should now build something. So you apply a mapping context for building above human's where it will handle it's stuff first. And then when you're done building you remove this so that you can use all of human's controls again.

#

It's also worth a node that if you place InputActions in a component that is attached to an actor, that actor will register them as it's inputs as well. So you could put a Builder component on your human, and it'll register IA_PlaceBuilding for instance with it's own controls so that you don't have to muddle the human class with your building inputs.

scarlet marlin
#

Ok wow that's complicated

maiden wadi
#

Input often is. ๐Ÿ˜„

scarlet marlin
#

Ok well if the bottom line is i dont need to change the default character blueprint then that's fine

frosty heron
#

I want to make it so my character can ride giant hamster

scarlet marlin
#

So if i dont need to put all that logic in the player controller, and even ui controls should be put in ui....then what's the player controller for lol

#

Bc i thought you use it when you wanna have the same inputs for multiple classes but you can achieve that with a shared parent class so like ????

maiden wadi
#

PlayerController houses an InputStack. Which is an array of InputComponents. When an actor enables input, it's InputComponent is added to the controller's InputStack. When a player presses a key, it goes through some stuff and eventually arrives at the PlayerController, where it filters it through it's input stack where it delegates the input out generically to whatever actor the component belongs to that registered the input.

#

So all input does go through the player controller, but that doesn't mean you should stick a ton of input bindings in it. ๐Ÿ˜„ And yes you can achieve that with a shared parent class. Or even just make a component that you can drop into each one if parenting is an issue.

scarlet marlin
#

Man i still think this feature is way too overcomplicated

#

I keep getting conflicting info about it

#

Still dont know how to use it and it's been a month

frosty heron
#

@scarlet marlin you just got advice from someone that work in the industry, I would just believe him over other youtube videos

scarlet marlin
#

Yeah but tbh i dont really get it

#

It's too technical for me

frosty heron
#

you don't have to go that deep into the technically imo

#

tldr, if you want to posses multiple characters, just implement the input in the character class

scarlet marlin
#

So....i dont need a player controller at all??

maiden wadi
#

The core points are simply, if you possess a pawn, and that pawn has input actions, those input actions will work. And you'll have less issues with that, than you will routing a bunch of controls from your player controller to pawns specifically.

frosty heron
#

don't think controller like a playstation controller. It's more like the brain of character you are playing

scarlet marlin
#

Fuck i think im stupid

maiden wadi
#

My entire player controller in my main testing project. Literally just IMCs registered for the local player.

#

And the interaction one is technically wrong, I need to move that. Should have went in the component I use for interaction.

scarlet marlin
#

Ok so basically just put the imc in there and nothing else

#

Haiyaaaa that couldve taken me 5 mins instead of a month

maiden wadi
#

Yep. Then in your character, some super simple IAs.

scarlet marlin
#

Ok...that sure makes it easier

#

Good to know, thx

warm hare
#

Hello, I purchased a horror FPS project and was wondering how to add arms and a simple weapon system with a pistol. Unfortunately the creator isn't too responsive, but I just need to know how to add the Manny arms and a weapon. Any advice is greatly appreciated

loud vessel
#

Hey, I have a question about Physical Surfaces.

Why do I want to do this?
Because I'm trying to migrate some project, and it has its own surface types.
When migrated, it would read from the specified slots, instead of the actual name.
(ie it would look for "Surfacetype5", instead of "Water")

Meanwhile, in the target project, "Surfacetype5" is already some other value, which mustn't be "Water"

#

Please @loud vessel or DM me if you know the answer.
or if this is even possible.

little helm
#

In unreal engine on spawning the actor character in runtime, the actor is not moving but the actor that are already present in the level during editor mode are moving in runtime . Anyone know how to fix this issue ?

dawn gazelle
loud vessel
late gorge
#

ok so... i'm trying to set a data asset object reference default in a struct

#

and it just keeps getting reset to none when i restart editor

#

any ideas why?

#

absolute PITA while trying to migrate code from the struct to the data assets >.<

#

namely i set this in struct, i save it, close editor, expecting all data tables to update with the new default

#

but it just doesn't stick, resets back to none despite being saved (the struct) before closing the editor

frosty heron
late gorge
#

the other values i had no problems changing in the past

frosty heron
#

try to modify them and also set the reference to the DA

#

normally things get defaulted when you edit the struct

#

like adding or removing or reordering

late gorge
#

guess i can try changing the mesh, that shouldn't make the code explode

#

in theory

#

the whole struct is basically

#

in code form

frosty heron
#

Personally I believed there isn't a place for bp struct in unreal

#

you are in the middle of minefield

late gorge
#

well this code has been developed in 4.26, i started working with it in like 5.1

#

and have been carrying it into 5.4, now NVRTX branch of UE5.4

frosty heron
frosty heron
#

Well, I saw someone with the same broken bp struct in 5.5 today

#

it will never be fixed

late gorge
#

well... the static mesh stuck

frosty heron
#

wether it's related to your error or not, I would throw away bp struct

#

unless you are fine with silent error like unknown struct error

#

literary had a person with that today

#

and he is already soo deep with his bp structs it will take ages to replace them

maiden wadi
#

Two notes, For starts I would NEVER default an asset in a struct. And second even if it worked it may not update existing fields, but may work on new ones.

frosty heron
#

but not doing so means he can't ship the game

late gorge
frosty heron
#

up to you

maiden wadi
late gorge
#

but it's still a lot of code

#

and it's used everywhere

#

so right now i'm adding the data asset into the struct, so i can always access it

#

then when all the code is rewritten, swap out the "get data" function with the asset instead of struct

#

and after that, add it to an interface instead of a static function call

maiden wadi
#

An interface instead of a static function call???

late gorge
#

the get data function is in a static function library

#

wherever it's used, it will instead call AI actor interface

#

i didn't write the core of the code man

#

i know it's heresy

maiden wadi
#

I don't understand though. Why interfaces to replace a static library function?

late gorge
#

because what you have at the start is a data row handle

#

not the struct

#

so it always goes through a get data table call

#

so that part is put into a static library

#

i know :(

maiden wadi
#

I can't even remember the last time I've used an interface.

late gorge
#

why not tho

frosty heron
#

most of the time interface ends up being misused for the wrong reason

late gorge
#

it's way better to keep actor instead of "some random BP that has unholy unspoken heresy in it" reference

frosty heron
#

especially people that listen to youtubers and "avoid casting, use interface"

#

it's time

maiden wadi
#

It's also better to have a layer of code only classes that it doesn't matter if you have a reference to or cast to. Interfaces are a bandaid to most BP users.

frosty heron
late gorge
maiden wadi
#

There are actually very few honest good use cases for an interface.

late gorge
#

and it still runs alright in the end

frosty heron
late gorge
#

30 fps is doable, mostly bogged down by the ABP anyway

frosty heron
#

how does fps come into this though

maiden wadi
#

This isn't about framerate.

#

โฌ†๏ธ

late gorge
maiden wadi
#

Interfaces vs casting has nothing to do with fps unless there is a structural problem due to linkers. If you're having problems with memory that cause FPS issues that an interface magically solves, you need to rethink the core structure of your setup and why it's causing linkers you don't want to load enough that it causes problems.

frosty heron
#

it's not about performance...

late gorge
#

minutae of performance*

frosty heron
#

you will have debugging nightmare

late gorge
#

yeah ok try being the only coder on a project, this stuff really brings nothing to the table, so long as it's not breaking, which it isn't

dark drum
late gorge
#

abp

maiden wadi
#

I mean, that makes it all the more important not to obfuscate things and to keep separation of concerns clear.

late gorge
#

and structural code issues that come from having convoluted structs

#

for both ai and items

#

other parts of the code that use far shallower setups (or data assets) have been running with no non-logic issues

#

but logic issues are PEBKAC, not engine problem

late gorge
#

instead of something like... 200x

#

either way, i'm familiar with what you posted about "myths" of best practices, i've been using the profiler lately over anything else as the code is what it is, it's stable where it needs to be

#

but now that combat needs to be improved, the festering swamp has to be tackled ๐Ÿ˜‚

frosty heron
#

it's not about performance, but you do you

late gorge
#

it is about performance to me, i dont give two hoots about the structure of the code, like i said, single coder, i know the code in and out

frosty heron
#

well, we said our piece

late gorge
#

would obviously care if in a team

frosty heron
#

it's apple and orange at this point

late gorge
#

true

frosty heron
#

Youtube craps... no one have the code to calculate direction?
game math people ended up helping me

#

Matt Aspald btw

maiden wadi
#

Calculate the direction of a dodge?

frosty heron
#

Yea based on the input direction

#

someone and adriel already worked it out for me

#

Im just soo mad with some youtube tutorials

maiden wadi
#

O.o Super weird. Would just get the axis values and zero the Z, make a new nornalize vector out of it. Then it even works with gamepads.

#

Transform it into the character's local space and viola.

frosty heron
#

ended up needing 2 vectors, the reference vector is the camera forward vector, the other being input direction vector

maiden wadi
#

Well. From the camera's space, to the world space, then to character space.

dark drum
maiden wadi
#

Lol, booleans though. Imagine only being able to dodge in 8 specific directions with a gamepad. Sad day.

frosty heron
#

whos gonna roll with W A S D?

dark drum
late gorge
umbral jungle
#

Hey everyone, sorry if shits rude sending a message during an active conversation but trying anyway. I have a question about in-engine performance.
I've been completely happy with my machine and the way it handles the editor. (64gb ddr4, 12 core ryzen 5900x) compiling times are fantastic.
I'm working with my player character right now and if I add 21 skeletal mesh components to it, compiling time goes from an easy 15 seconds to a solid 5 minutes.
That makes sense, ya? I know that's an odd amount of skeletal meshes but before I go coming up with a different approach than using 20+ visible/hidden meshes, I wanted to make sure that it's not likely something else is going on.

umbral jungle
#

Yeah

frosty heron
#

well, I never try adding 21 skeletal mesh component

#

but 15 seconds to 5 minutes is pretty crazy

frosty heron
#

then I get the angle between what im looking at (Cam forward vector) and that input vector

umbral jungle
#

Hah, yeah that's why I'm looking for advice. Uncharted waters for me too but the amount it tanks seems off to me. Even closing a test play, there's a noticeable delay in the engine coming back responsive

thin panther
#

Why not use 1 skeletal mesh component, with 21 skeletal mesh soft references, only loading the one you need?

#

What's the use case here? Sounds like an XY problem

dark drum
umbral jungle
#

I'm using the Astronaut Soldier from B. Maksim (are links allowed?)

There's the full mesh version with all the details and pieces of equipment all in one skeletal mesh but he also has a base model with all the attachments separated. My plan is to make each piece an upgrade/equipment.

#

I considered making unique skeletal meshes with pieces equipped but the combination of different parts... would really love to have it as extensive as it seems it could be

pine bridge
umbral jungle
dawn gazelle
thin panther
umbral jungle
umbral jungle
#

But of course, there's always a catch. Material slots get ruined when merging skeletal meshes it seems. Each mesh looks like only gets one slot and assigns the same material to each mesh.

tall tangle
#

Hi guys
Iโ€™ve got a circle spline (not closed) of 4 points and based of a mesh density int varaible I do the math and Iโ€™ve got an equal amount of distance along the spline where I add my spline meshes
from this distance I use get location and tangent at distance
location looks correct but the tangent looks off like itโ€™s not follow the spline but more a default tanget , is anything i miss?
default 4 points the tangent looks correct, at 8 you already see some wiggle, at 12 ... it went bananas

tawdry walrus
#

I am using many actor components for my systems to make them modular. Is that okay?

spark steppe
#

tho it's in very early development stage and there's not much documentation around

umbral jungle
#

5.5 only, yeah?

#

Thanks- ill look into it for sure. Test it out in a different environment and if it does the trick... guess I'll be updating my project. What could go wrong? ๐Ÿ˜…

spark steppe
#

apparently it was already in 5.1 (and is in Beta since 5.5)

#

however, given there have been plenty of fixes, i would probably stick to the 5.5 version

umbral jungle
#

Yeah I just saw legacy sample projects in the github you linked

#

It does seem to handle exactly what I'm trying to achieve and the procedural abilities really opens some doors. Thanks a lot

maiden wadi
glad eagle
#

Hi, I need help with an issue. I have a function that converts the mouse position to a world position, and it works fine as you can see it works fine when I run it every tick. However, when I use it during a drag-and-drop operation, it doesn't work as expected

maiden wadi
maiden wadi
#

Yeah. Sec

maiden wadi
glad eagle
#

I will try

lofty rapids
regal fulcrum
#

I converted a type from UObject to UPrimaryAsset. I was using TSubClassOf<T> in a custom C++ method, but now I have object instances of T. Is it possible to go from an object reference of the UPrimaryAsset to TSubClassOf<T>?

#

Example:

URaevinInventoryItemInstance* URaevinInventoryManagerComponent::AddItemDefinition(TSubclassOf<URaevinItemDefinition> ItemDef, int32 StackCount)
#

URaevinItemDefinition is now the UPrimaryDataAsset (was UObject)

#

So now, in the BP, I have an array of URaevinItemDefinition object instances instead of URaevinItemDefinition class types to pass to that method. When calling GetClass, I'm just getting the base URaevinItemDefintion class and not the actual child asset.

regal fulcrum
#

I think it has to do with the internal mechanics changing, where now different assets are no longer child classes, but I am not quite sure if there is a conversion possible the way I am trying to do it.

#

Without converting the method to just accept pointers instead of TSubclassOf, of course. Basically I am trying to avoid modifying the method if possible.

flat jetty
#

Hey everyone, how to setup like an item affects the thing that its inside of?
For example, I have a lever, lever will start the train when interacted, so how it should be technically setup? BP_Train should add Level as child actor or smth? Since train is moving object, i need to add lever in somehow train.

thin panther
#

Lever should contain a general Activate function IMO,
Level holds a reference to the train in an instance editable variable.

Player calls interact interface on lever. The lever than calls it's activate function/interface on whatever is held in that reference.

flat jetty
#

Yes, but where should lever be placed?

thin panther
#

So the plyaer says "Lever I want to interact with you", and the lever says "psst, train, wake up!"

flat jetty
#

Since train is a moving object, should add it as scene actor or smth?

thin panther
#

and since you probably want it to move with the train, it needs to be a child

#

not a child actor component, just parent it in the outliner

flat jetty
#

No, i mean phsically. I am new to Unreal Engine, but i am a Unity developer. I dont know how hieracically work in UE in those ways

flat jetty
thin panther
#

The same way you can parent gameobjects in the scene and have them move together, you do the same in unreal

thin panther
flat jetty
flat jetty
#

So normally, In unity, I would make the Train as a prefab, then i would add lever component inside of it in Unity.

#

But i cant do that as in Blueprint class, but in the blueprint instance in the level right?

thin panther
#

It depends. If you're placing a train in the level at design time, then just also place a lever and parent it in the scene outliner. That you have to do in the level itself

If you're spawning trains at runtime, have a location variable in the train, tick "show 3d widget" so you can move it around in the bp viewport, align it where-ever you want, then use that variable as the spawn position for the lever that you spawn on begin play. This one can be done in the blueprint class

flat jetty
#

If i dont spawn BP_Train, existing in the scene, But could I parent lever inside the blueprint directly? Not in the level scene, but directly inside the blueprint? I think thats why i wanted add it as child actor, but i dont know pros and cons of it

#

Like directly adding here the BP_Lever, I dont know if thats the good way either.

regal fulcrum
#

You can't place an actor inside of another actor in that way

flat jetty
regal fulcrum
#

An actor can have actor components added to its default class

#

You can, however, attach a lever actor at runtime (PostInit components or during begin play)

#

If you'll notice, each one of those items underneath is a component and not a separate actor.

regal fulcrum
#

But again, at runtime you could spawn a separate actor, then call AttachTo and attach it to the default scene component or wherever. That's where the vector is coming into play that keeps getting mentioned.

thin panther
#

You would have to set a position in the train, then spawn and attach the level

#

I'll show you rq

flat jetty
#

Hmm, so whats the best practise here? Should i add it in the level directly? And if so, DO i need any parent for that to make it visible? What would you do to add BP_Lever to it? Directly dragging into the BP_TrainPawn in level and reposition it, do i need to create seperate parent for it for hiearchical organization?

#

Thanks a lot of your time guys. โค๏ธ I have never thought that i could drag and drop in the instance of the blueprint. I dont know if thats called correctly. The blueprint existing in the scene called BP instance right?
Thats the one called in the Project folder?

#

SO this one i can call instance, but after I click edit BP_TrainPawn, its now the class itself? I will need that info for future references. and to understand the differences. As i guess, when i click "instance editable" of a variable, this means i can edit in the level. So i think this BP in the picture is Instance of the BP

thin panther
flat jetty
# thin panther

Thanks, thats much clear. Did you use "Scene Component" to set position? Would this be looking in the hiearchy like we parented then later to debug?
I mean is this the same process, like parenting in the scene in edit mode, and spawning in runtime.

regal fulcrum
#

Yes they did

#

It's a helper, to make sure of the correct placement when generating / attaching at runtime

flat jetty
#

Like this for example. ๐Ÿ˜„

dull field
#

Good evening,

Is it possible in Unreal to find objects in the scene based on their size in units and assign them a tag? For example, write a Blueprint that finds all objects that are only 1-2 meters/units tall and gives them a tag of my choice? I'm asking because I'd like to replace all my greybox assets of a certain size with my finalized modeled asset. (I'm not very well-versed when it comes to Unreal, so there might be an easier solution, but I'm currently stuck on what I should google.) I look forward to your responses and thank you in advance.

regal fulcrum
#

As like, only an editor tool, right?

#

If so then you might be looking for an editor tool / plugin.

#

Or maybe with python scripting? Never messed with python to know if that is possible though

#

You might be able to create a BP editor extension. I haven't looked personally, but maybe google that

flat jetty
# thin panther Lever should contain a general Activate function IMO, Level holds a reference to...

Thanks for that either. There is two option for me.

  • Lever should know about Train, and call its Start function when interaction interface called by Player
  • Train should know Lever, and listen its "custom event that fired when player interacted via interface"
    I dont know which way is better though.
    Should super class know about the little one, or little one directly knows about the super one and call the method.

What way would you guys prefer for scalable? My train will have a lot of interactables inside that affects the train.

dull field
# regal fulcrum As like, only an editor tool, right?

Thank you for the fast reply ๐Ÿ™‚
Yes, I only need it in the editor, not in the game (or build). I saw someone using an editor widget to spawn assets, and based on that, I had this thought that maybe something like that would work to go from graybox to "final version" of the asset fast by using the asset sizes. But while blocking out, I was a bit messyโ€”that's why I think I need to look for unit size in the scene. (googlin Editor widget filter by size was not successfull-unfortunately)

thin panther
flat jetty
#
  • Lever will implement Interaction interface, then call OnLeverActivated, Then BP_Train will know about Lever, and bind to the OnLeverActivated event, and start/stop the train.
    I can go even more complex and instead of directly knowing BP_Lever inside the train, i know about interface of it, like ISwitch etc. so that i can use it for lights etc. IDK. ๐Ÿ˜„
thin panther
#

This is what I described, however the train is not binding to anything

#

the lever is calling an interface on the object it holds a reference to
the train is implementing the interface to get moving
a light could implement it to turn on
a generator could implement it to provide power
a door could implement it to open

flat jetty
thin panther
#

indeed

#

if you wanted to make things even simpler, the lever could also just use BPI_Interaction

#

I wouldn't personally

flat jetty
#

Thats much better than train knows about lever and listening. So that every interaction in the train can reach Train via an interface, make things modular.

lost hemlock
#

Problem:
Iโ€™ve got a tree actor (BP_Tree) thatโ€™s like a parent dragging its kids (logs) around. The logs are always there, invisible, and just vibing. When I chop the tree, they suddenly "wake up," become visible, and start doing physics parkour.

What I want:
When I press "E" on a specific log, I want just that log to vanish into the voidโ€”not all the logs, and definitely not the whole tree. (No collateral damage to the other logs or the tree itself.)

Whatโ€™s happening:
Iโ€™m looping through the treeโ€™s kids to find the right log, but either my logicโ€™s broken or the logs are conspiring against me. Im trynna wrangle these rebellious chunks of wood

flat jetty
# thin panther if you wanted to make things even simpler, the lever could also just use BPI_Int...

You mean train will implement IInteraction interface, and lever will access via it? Now another question is born for me, unrelated to your suggestion.
Assume my BP_Train has "BPI_Interaction", and it has a lot of static meshes inside, Since I "line trace", which one it will find? I mean since line trace is called on "Visibility", how would my train react? ๐Ÿ˜„ For every static mesh that has collision, would it call interact method? @thin panther

lost hemlock
spark steppe
#

are they child actor components or just other actors which are attached to the tree?

#

or rather, show the hierarchy of the tree BP...

lost hemlock
#

it's already showing in the image

spark steppe
#

nvm

#

i was distracted by all the images

#

i don't get why you iterate over GetAllChildActors in the first place

flat jetty
spark steppe
#

it looks like you should be able to just iterate over the components of the Tree Actor to find the log

lost hemlock
#

Theyre child actor components, clinging to the tree like overprotective toddlers refusing to let go of their parent

Also my logs are technically part of the "BP_Tree" actor as child components, so when I interact, Im basically hitting the parent actor and itโ€™s going, โ€œOh, you mean me, right?โ€ Theyโ€™re like kids hiding behind their momโ€™s leg, and all Im basically getting is, "You talked to BP_Tree"
The issue is that the parent (BP_Tree) is hogging all the interaction attention. I need to dig down into the logs themselves like telling the tree, no, Im not here for you, Karen, Iโ€™m here for your kid!

#

and then DESTROY the kid

#

destroy all kids, one by one

spark steppe
#

either you only show us half of whats going on with the child actors, or you are misunderstanding what they are

#

that doesn't show any child actor components...

lost hemlock
#

BP_Tree is the parent, child actors components are these static meshes contained into BP_Tree1 and BP_Tree2

#

correct?

spark steppe
#

๐Ÿคท doesn't look like it

lost hemlock
#

why?

spark steppe
#

can you just skip the first loop and check if that changes anything?

lost hemlock
#

sure

dawn gazelle
# lost hemlock

There are no child actor components in your BP_Tree actor. These are all "Scene Components". The "Get All Child Actors" executes the following in C++ which looks specifically for "Child Actor Components" and returns the actor references that they contain.

void AActor::GetAllChildActors(TArray<AActor*>& ChildActors, bool bIncludeDescendants) const
{
    TInlineComponentArray<UChildActorComponent*> ChildActorComponents(this);

    ChildActors.Reserve(ChildActors.Num() + ChildActorComponents.Num());
    for (UChildActorComponent* CAC : ChildActorComponents)
    {
        if (AActor* ChildActor = CAC->GetChildActor())
        {
            ChildActors.Add(ChildActor);
            if (bIncludeDescendants)
            {
                ChildActor->GetAllChildActors(ChildActors, true);
            }
        }
    }
}

So when you call the below code, the array is going to be empty as BP_Tree contains no child actor components, so then the loop doesn't execute at all.

lost hemlock
#

I realized that just now

spark steppe
#

are you going to test without the first loop or not?

lost hemlock
#

I am

spark steppe
#

because there's like 20 other things which are wrong on many levels in your BPs...

#

also skip that branch

#

go directly to the 2nd loop

lost hemlock
#

k

#

I know this branch is kinda useless tbh

#

It's just skipping the macro entirely or finishing off too quickly, where I can't even go inside of it

spark steppe
#

yea didn't notice another thing

#

from your actor reference drag and do get components by class then select StaticMesh component

#

and use that array as input for your 2nd loop

lost hemlock
#

oh wait a second, I didn't have something connected that's why

spark steppe
#

it wont work either way as it is in your screenshot

lost hemlock
spark steppe
#

ehm, use BP Tree as target then

#

no idea why your actor reference is an object reference...

lost hemlock
#

my component reference is also an object

#

ok i changed it

#

select StaticMesh component?

#

you mean get it?

ruby cobalt
#

i need both the split and not split vector here.. surely there's a better way of doing this?

spark steppe
#

select static mesh component in the drop down

lost hemlock
#

but you select actor there

#

not SMs

spark steppe
#

you target actor is the BP Tree variable

#

and in the drop down you select actor component classes, which static mesh component is

lost hemlock
#

ohh you're right

#

@spark steppe but i have 4 components

spark steppe
#

that's why it returns an array....

#

because they knew you are going to have 4 logs

lost hemlock
#

4 logs but all are this static mesh

spark steppe
#

that's a static mesh... not a static mesh component

lost hemlock
#

ok, so i'll try to use that one, right? it should work i think

spark steppe
#

no you are going to click the drop down button and seach for static mesh component and just select that one

#

then you plug the array to your right for loop

lost hemlock
#

BUT I HAVE 4 STATIC MESH COMPONENTS

#

lol

spark steppe
#

and then you report back

#

i don't argue further, do what i've said or don't

lost hemlock
#

k

#

yep, I can't

#

๐Ÿ‘

spark steppe
#

how unexpected...

#

show your macro now

lost hemlock
mental trellis
spark steppe
#

no, that's not an Unreal issue, for certain...

#

you still have NOT selected static mesh component in the dropdown

lost hemlock
#

ik but this server only has so few emojis

#

which is considered a war crime

#

it should have over a million emojis to select from

spark steppe
#

also you got the wrong node btw

lost hemlock
#

OH, you meant LITERAL "StaticMeshComponent"

spark steppe
#

you got get component by class not get componentS by class

lost hemlock
#

yes

lost hemlock
#

I think this is almost, ready to rock, and roll

#

?

spark steppe
#

i haven't even started, we are just fixing that one macro...

#

and just because it may work, doesn't mean that it's done or correect

#

so test it

lost hemlock
#

IT WORKS

spark steppe
#

now let's start with your macro tho...

#

1.) when destroying/deleting something which modifies an array, it's a good practice to do a reversed for each loop because otherwise it may skip elements (in your case irrelevant)

#

2.) when you iterate over a array which comes from a pure node, the pure node will be executed EACH array iteration, so ideally you cache the result in a variable, especially as no one guarantees you that the array will always be sorted the same way (not that bad in your case, but keep it in mind)

#

3.) you know you have only one entry which will match, so once you have a match you can go straight to the output and stop iterating over the left over elements

#

now about your player BP.... all the tree/wheat and whatnot logic should be in the actual blueprints where they belong to, otherwise your player BP will become one ugly mess (I guess it's already to late for that....)

#

so wood chopping stuff goes in BP_Tree

#

wheat harvesting or whatever YOU do with wheat goes into BP_WheatPlot

#

you should read/watch some tutorials about how to make interactive things, i can't recommend anything specific tho

#

iirc Unreal Learning portal has a project for that kind of stuff

spark steppe
#

yea, but more of the later

lost hemlock
#

sometimes Im doing that logic in a seperate blueprint

#

sometimes Im doing some of that logic in the character

#

but mostly it's a combination of both flavors into my ice-cream

lost hemlock
#

I like to have everything in one blueprint though

dawn gazelle
#

Things should be responsible for themselves and should handle what they do. You do sometimes need to communicate to another thing, and ask that thing to do something, and at that point, you should basically be handing it over to that other thing to do whatever.

lost hemlock
#

so that I don't have to search for the needle in the haystack every time, all in one

spark steppe
#

your player BP is going to become a barn full of hay if you continue like this

dawn gazelle
#

Yea, better to put the haystacks into separate piles at least ๐Ÿ˜›

lost hemlock
#

Im used to the clutter

#

But I'll definitelly look more into that

#

in the future

#

the reason why i don't do each thing on a seperate blueprint is because sometimes I don't know what logic is where

#

and it's hard to find stuff, and I consider character blueprint good for all that kind of stuff

#

macros, functions, etc.

#

they help make everything compact

gentle urchin
#

Encapsulation and separation of concerns

#

As Datura says, let every thing be responsible for itself

#

PlayerPawn has no business defining how an ability plays out or what swapping inventory slots mean

#

Hardly even UI has any business there beside informing the Inventory that X and Y should swap places

#

Inventory handles the actual swapping. And informs the UI through a delegate that something changed

#

This makes it trivial to find sources of bugs

lost hemlock
#

I tried that and I have already inventory items, but I couldn't interact with Child actor components inside of another actor for some reason

gentle urchin
#

"Oh. Inventory bugs out. Better check the inventory component!"

lost hemlock
#

ye

#

but, that inventory is also very complicated for me

spark steppe
#

cause you have a misunderstanding of child actors

gentle urchin
#

A inventory is in essence just an array

#

With some helper functions

#

Anything about an inventory is litteraly just managing that array

lost hemlock
#

for example, I have fruit static meshes inside of a tree, they drop like components and then I pick them up as components and destroy those components and add them to my inventory from the character

#

If I were to do this with child actor components I would not be able to enable physics from bp_Tree

#

it's not possible because this node doesn't work with child actor components

#

same for set visibility node

#

and I can also outsource that logic into the child actor component BP itself

#

but still it will not really work for some reason

gentle urchin
#

And inventory items may have data that lives inside a generic ItemComponent, but the component itself is merely a vessel for that information, and should be dropped as soon as the actual Inventory gains responsibility of it

lost hemlock
#

Child actors make toggling physics and visibility a pain, so I stick to my messy but functional system for now. I'll organize... someday

lost hemlock
dawn gazelle
#

Child Actor Components contain a reference to an Actor. That's about it.

gentle urchin
#

Amount of work to sustain broken system > refactoring and further working with a better system

lost hemlock
#

try from another actor to enable physics of those child acotr components

#

it will give you the weirdest error you've ever seen in your life

#

I can try it and show you and you will not believe in your eyes

gentle urchin
#

I dont trust CAC to do anything tbh

lost hemlock
#

I don't trust CAC at all..
but whats the alternative? Do I just give up on child actors and start using magic instead? @gentle urchin

dawn gazelle
gentle urchin
lost hemlock
#

wizard indeed

mental trellis
#

Snap

dawn gazelle
lost hemlock
#

What type is this child actor variable?

dawn gazelle
#

The first one is a Child Actor Component. The second one is a reference to the actor that the component contains.

lost hemlock
#

ok so I guess, this "Get Componet By Class" will be my favourite node from now on

dawn gazelle
#

It has its uses.

lost hemlock
#

I thought you have to plug in there a blueprint class which you created rather than the generic type of your Unreal Engine component class, like "StaticMeshComponent"

#

This is what I used to do in the past

lost hemlock
lost hemlock
#

maybe C.A.C.s aren't so bad after all

dawn gazelle
#

CAC are usually regarded as crap.

#

๐Ÿ˜›

thin panther
#

Hell, they're referenced in this

mental trellis
#

THE KERNING

frosty heron
lost hemlock
#

I love how they're using memes there to explain everything in meme terms for the late millenial - gen zers to understand.

flat jetty
#

Anyone used PCG for railroad tracks? Instead of constructing via legacy way (adding spline component, constructing via spline mesh component etc.), I have tried **PCG **to create tracks, but on when spline is rotated, it looks like this.
And here is my graph, Spline Sampler is set to distance and its distance is exact distance with my mesh.

lost hemlock
#

I could be wrong but it seems like PCG wouldn't be able to stretch and deform things, maybe if you spawn actors and you told those actors to stretch?

regal fulcrum
#

PCG is pretty much just data points

#

your static mesh spawner is just spawning it at each data point

#

Turn on debugging and visualize the points to see what needs to be adjusted

flat jetty
#

Yeah, I think i need to calculate tangents or smth to make them merged. In legacy way without PCG, It works fine since we calculate them

#

Like this way, I need to find somehow apply this in PCG if its possible.

regal fulcrum
#

Maybe with an attribute filter

#

or a blueprint PCG element, where you manipulate the transforms at certain points. I'm very new to PCG, so there might be easier ways to do it, but that might give you something to investigate.

flat jetty
#

Maybe a start here. ๐Ÿ˜„

quiet hamlet
#

hello all, I am starting on my first project with the volunteer intern basis indie game studio startup i do work for and i was wondering if anyone had any pointers for a time manipulation ability system for enemy AI for a specified duration of time within a level. i am very new to blueprints and i also have a rough time understanding them

proven loom
#

why is this coming up as a pure function?

#

oh the const

lost hemlock
#

So, hereโ€™s the issue: Even though I destroy the fruit, the game somehow lets me keep pressing 'E' and magically collect fruit out of thin air as if im on an . itโ€™s like the tree's playing an endless prank on me, "You think you're done? Think again!" Toooooooo much food. It would be too easy.

#

The player would die of some kind of type 2 diabetes.

frosty heron
#

Get rid of get actor class

#

Surely you are not planning to only have one tree in the world

#

And even if you do that's just a bad practice

lost hemlock
frosty heron
#

Dynamic in what sense?

lost hemlock
#

I mean, how could I make this better?

frosty heron
#

If this is interaction, you want to handle if the player can interact, and if it can, get the interacted actor and the interactor actor can do its implementation

#

E.g an apple tree drops an apple

#

A door opens a door

#

Etc

#

My suggestion would be to first work on your interaction system. I will use actor component for the job.

lost hemlock
#

I already have an interaction component and I also have these which work with the inventory system that I already have

frosty heron
# quiet hamlet hello all, I am starting on my first project with the volunteer intern basis ind...

If your goal is to be the gameplay programmer then you should get comfortable with OOP. Ability system is a pita, to work on If you just started. Most people would use what epic provide for fortnite to go around their ability system #gameplay-ability-system .

But without knowing basic blueprint or programming principle you won't get far. I suggest to go watch the first few hour to unreal and blueprint communication video by epic.

frosty heron
#

Btw what's all those macro..

lost hemlock
frosty heron
#

You don't check if I hit coconut or hit apple tree

#

That's terrible, make it generic

#

You just want to say, ok I hit this thing and I'm allowed to interact, do the interaction logic that lived inside the interacted actor

lost hemlock
#

yes but not every item is an inventory item, and some of them aren't getting added properly into my inventory

#

I followed the Ryan Lalley tutorial and it was full of bugs

quiet hamlet
frosty heron
#

If you already know any language then you don't have to learn blueprint, you can just use it right away

quiet hamlet
frosty heron
#

Well what programming language you know? The concept is 100% the same.

lost hemlock
#

the problem is they're not being added to my inventory properly sometimes

#

sometimes for example when I add wood inside, it gets added but it becomes invisible

quiet hamlet
#

if it were cpp hard code, it'd be easier for me to understand. the node system format of blueprint is what doesn't entirely make sense in my brain for putting what i've learned so far into practice

frosty heron
# lost hemlock in what way?

Already explained above, you are checking for what you are interacting with in the player character or something.

Like nested sequence of, if this is coconut tree do this, if this apple tree do that.

Please don't do that and just handle the implementation in the interacted actor

frosty heron