#blueprint

1 messages · Page 323 of 1

mental trellis
#

I blame 2am.

frail oar
#

division by a very small number causes floating point inaccuracies. that's what the tolerance is for

atomic hollow
#

if the tolerance is checked before the division then no problem

mental trellis
#

Just provide a smaller tolerance.

frail oar
#

checking that all axes are zero is insufficient. to avoid the very small number floating point inaccuracies we use the tolerance

mental trellis
#

A tolerance of 0.01 will match a vector of {0, 0, 0.1}.

#

If you want to filter smaller numbers, use a exponentially smaller tolerance.

atomic hollow
frail oar
#

If you care about fixing that node perhaps you may suggest to epic that it be called "Square tolerance" than "Tolerance". but again, the correct place to do that is their ticket system, not this discord

mental trellis
atomic hollow
mental trellis
#

Pretty sure floats can represent values below 0.0000001.

atomic hollow
frail oar
#

single precision floats can represent up to 7 digits with a min exponent of 2^-127 or something like that

mental trellis
#

-38 😛

frail oar
#

oh rip i'm dumb yes

#

and actually 8 digits in some cases

mental trellis
#

I think doubles is something like 127.

frail oar
#

so as long as the digits you want to represent are all grouped together you can have 30 0's in front no problem

#

yea whatever it is

#

let's see

mental trellis
#

It might just be the case that the BP nodes fail to convert them to floats correctly at such low values.

#

Or they just display them as 0 because they're too small, but the value is correct internally.

frail oar
#

no wait it's 2^-127 which is 10^-39

#

we were both right hehe

mental trellis
#

Ah!

#

Doubles is 10^+/-308. Madness.

frail oar
#

so yea square root of that is 10^-20 so you can get some pretty small floats

#

i imagine you'll be getting division floating point inaccuracies before then

mental trellis
#

Well before!

atomic hollow
#

what is InvSqrt in blueprint called i cannot find one.

mental trellis
#

Inverse Square Root. It may not have a BP equivalent.

mental trellis
#

Ask Epic?

frail oar
#

InvSqrt(x) = 1/sqrt(x)

#

it's more performant to do these two operations in one step if you're going to do them together

#

this is the algorithm it uses

https://www.youtube.com/watch?v=4nShTeUEJIQ

In this video we examine the "fast inverse square root" method developed for Quake 3 Arena. It uses floating point format hacking and Newton's Method to implement a very fast inverse square root method, which can be used for finding normal vectors.

Correction: 2^-6 = 1/64 = 0.015625 not 0.000001 (I was confusing it with 10^-6).

The floating po...

▶ Play video
desert flint
#

I'm making a code where you can grab objects via a cord that comes out of your hand, and move it around, and this workes all fine until you start moving with it, it springs foward when i want it to keep the same range from the player that there was when you first grabbed it, does anyone know how to fix this (yes i know this is some blueprint spaghetti code)

autumn pulsar
#

So I have a rotator, is there a way to locally rotate that rotator?

#

like I want to rotate on the X axis of that

#

combine rotators does two world space rotations to the same rotator

surreal wagon
#

I have three types of object: Physics object, doors and items. I want every item to be able to be interacted, with a crosshair appearing when hovering it. The hovering system is already implemented, but I don't want to use three separate blueprint interfaces to implement this system. How can I accomplish this?

autumn pulsar
#

Actor components

#

Can I set physics on an instanced static mesh?

#

I'm trying to make a chain, and was wanting it to be somewhat sane

lethal venture
#

Hey everyone! Quick question:
When I drag an item from my UI inventory (using CreateDragDropOperation), my player’s line trace stops working so I can’t detect dropping onto a 3D collision box (‘DropZone’).

Is there a reliable way to detect a drag-drop onto a 3D world actor while dragging a UMG widget?

sage lagoon
#

I've been following a tutorial in setting up a shop for an RPG in the works. The tutorial playlist applies to UE4, but most of the steps also apply to UE5. But, there are some things of which I am not totally sure. There are a couple of problems that I have not yet been able to resolve.

  1. Though the shop widget does show items correctly, it doesn't show the first item on the list. (See the data table screenshot as well the blueprint links.)

  2. Thumbnails don't appear and I'm not sure how to set that up properly.

Shop Widget BP: https://blueprintue.com/blueprint/76_hhvun/

Shop UI BP: https://blueprintue.com/blueprint/09t3wl-a/

#

I did follow the instructions - https://www.youtube.com/watch?v=IpqRbEptH3Y&list=PL4G2bSPE_8unUV_Imvs8DmH8SRfascs-A&index=3 - but I think some things were off because of version differences and because the video maker might have forgotten to explain a few things.

In this series we will be creating an in-game shop with a NPC where you can spend in game currency.

In episode 3 we add item data table and the item slots in the user interface.

Support me on Patreon and get access to videos early, join our developer community on Discord, get exclusive behind the scenes videos on my projects and much more over...

▶ Play video
lunar sleet
#

#umg might be better suited to answer that tho I’d recommend making it more concise, people don’t really have time to watch a tutorial you’re following

sage lagoon
#

I don't really expect anyone to watch it. It's just to show what I've been following. I don't know how to make this any more concise, honestly.

#

Not without the blueprint links and screenshot.

#

But let's see...

snow halo
#

So I have a niagara inside of a blueprint, if this blueprint is out there on the level somewhere, the niagara will start, aka if I place this blueprint on the level etc. water will start spraying

#

but after I attach this watering can to my player's hand it no longer works

#

aka when I spawn this blueprint on my player's hand or "attach"

#

Im using EVERY activation node, NONE of them work

lunar sleet
snow halo
lunar sleet
#

Did you try it with it activated by default ?

#

And are you attaching it dynamically or from editor

snow halo
#

if I place it in the world alone unattached from the player then it works

#

its shooting water now for example because its out of the player's control, and blueprint code seems to do NOTHING.

lunar sleet
#

I mean attach it to the player in editor

#

Not with attach node

snow halo
#

how?

#

what do you mean?

#

these are all soft references

#

which attach to a bone

#

but if they attach somewhere on a character then they will stop working

#

you mean attach the niagara component alone?

#

or attach the whole blueprint as a child actor component to my first person character?

lunar sleet
snow halo
#

which panel?

lunar sleet
#

From the component tree panel, add Niagara System Comp, set it to the desired system

#

In your char bp that is

snow halo
lunar sleet
#

Yeah

snow halo
#

ok in editor it looks like it works so far, imma see if it also works in play mode

lunar sleet
#

It should

#

Tho mind you, NS can be tricky

snow halo
#

oh it worked ✅

#

but the question is why does this work, but it doesnt work while parented under the component tree hierarchy of the watering_can?

lunar sleet
#

It should work in any bp. Just don’t try to dynamically attach it at runtime maybe

snow halo
#

oh you mean the component?

#

the component doesnt get attached manually, the whole blueprint does

#

the component resides already inside of my watering_wan_Bp

lunar sleet
#

Then it’s prly related to the attaching

#

An issue with NS is that if you change its transform normally, all sorts of f-ed up things occur

#

It’s likely that when you attach it, it’s transform gets affected and it breaks

#

Chances are it’s active, you just can’t see it because the system is not rendering properly

#

But I’m not sure how to debug it from there tbh.

surreal wagon
#

I want to implement swimming, but every tutorial I've seen just uses flying instead. Why is swimming on the character component in the first place?

gentle urchin
#

Does it require any custom implementation?

#

Never really tried it

surreal wagon
#

It works but the character shoots up into the sky

frosty heron
#

Any movement should be handled there

surreal wagon
#

Yes I mean that

#

Am I missing a variable somewhere? Swimming is so slow

surreal wagon
#

😩

frosty heron
#

never done any logic for swimming, if it's the same as walking, check for the acceleration value?

gentle urchin
#

Isnt it some jump out of water value

steel shadow
#

I'm using UE 5.0.3 and I noticed there is no 'set use as occluder' node to change occlusion status of a component during runtime, is there a BP workaround here or do I have to use C++, if it's even possible there?

astral orchid
#

So I checked the new template for the 5.6 FPS Arena Shooter, and I'm wondering how does the new camera work?

#

Because there's just 2 meshs, one is the normal one, and the other has the viewport camera attached to it. The one with the viewport warps weirdly around the camera to get the first person effect to work, whilst the normal one can't be seen by the camera at all. Anyone got an idea?

copper lion
#

I have a question, i have this bp_door and i wanted to avoid casting to not load in the memory of the door the bp character using interface, but in the size map i see no difference

i have no variable as bp character in the bp either, just using the output from the interface message

dark drum
copper lion
#

yes but doesnt it load whenever you interact with the actor and not always?

dark drum
copper lion
#

so basically there s not difference between this and using a cast in begin play and store the ref in a variable?

dark drum
# copper lion so basically there s not difference between this and using a cast in begin play ...

Nope, using an interface just adds extra steps.

What you could do in your example though, is connect the 'Get Player Character' directly to the 'GetActorLocation' node. There's no need to cast for this as the returned pawn is a type of actor. Once you've done this, you can remove the 'GetPlayer' node and remove the interface from the BP_Door. The door shouldn't then force load anything specific to the character. If however, you only have one type of character then it'll be loaded anyway so wouldn't really be an issue either way.

copper lion
#

Oh okay, i thought that using interfaces to get the player was better than just casting in the begin play, so i might aswell cast and make a variable then cuz i need variables from the player character for this bp anyways

dark drum
surreal peak
#

The interface should prevent the loading fwiw

#

That's one of the main things one can do in BP only to avoid having everything reference everything

#

I still dislike using it for this

#

Cause in those cases you kinda know what you will cast to and only one thing will implement the interface anyway

dark drum
surreal peak
#

Yeah he needs to add functions to return things from the character and not the character itself

#

That would solve the reference

#

In the screenshot it's especially useless cause he's using an actor function

#

Can just use the result of the GetPlayerCharacter

copper lion
#

Im not really worried about it, i dont know when should i be worried honestly, my level will be full of doors, but i dont know when i should be worried about performance for this

surreal peak
#

"I have no variable as BP character". Yes you do. The output pin the of the interface function

dark drum
surreal peak
copper lion
#

thanks for the help guys ❤️

young meteor
#

Hey folks

Is there a way to export an image/screenshot of the entire Event Graph of a blueprint?

I have too much stuff to fit in a screenshot.

dark drum
young meteor
copper lion
#

part by part xd

dark drum
# young meteor sad :/

Yea, i think there's a few plugins for it. Not sure if any are free but it might be worth you taking a look.

young meteor
autumn pulsar
#

So I was trying to make a modification of a cable component to place on an actor, so I set up a blueprint class that inhereted from it. However, in the component list I don't seem to be able to just add it like I can with the normal cable

#

is there a proper process for that?

tawny hedge
#

Why is the trace hitting something? Only happened after I added the progress bar above the character. I tried to resize canvas but it behaves the same.

frosty heron
tawny hedge
#

I know that's what's hitting but I don't understand why is that. It should be the size of the progress bar. even set the canvas size the same

frosty heron
tawny hedge
#

a lol nvm it was set with collision by default lol

frosty heron
#

the outline would be highlighted

tawny hedge
#

was like this

frosty heron
#

yeah if you don't want to enable collision, just disable it.

#

I found out the hard way. My IK feet kept being lifted above the ground.

#

couldn't figure out for hours until I found the culprit. Widget component plane, colliding with it.

frosty heron
# copper lion Yeah correct, im still learning and i thought interfaces were better for memory ...

How big in scale is the game? Because if you are working on a large scale RPG, adressing it later may not be viable depending on the ammount of work you have to redo.
I gave up on fixing my first project because of the amount of hard reference.

Loading main menu = loading the whole game and patching them would be like making the game from scratch.

Better practice would be to create a native cpp class and learning soft reference.

tawny hedge
#

any way to get the dropdown type of get data table row name as a function's input? instead of having to type it manually

frosty heron
#

Don't know, don't think so but if you are not fammiliar with gameplay tags, now is the time.

#

typing = 👎 , it's prone to error

lofty rapids
frosty heron
#

Enum is useful to describe states

#

Its a named integer

copper lion
tawny hedge
lofty rapids
dark drum
tawny hedge
#

but even so making 500ish data assets manually doesn't seem optimal

#

I just want to expose that node as a dropdown instead of typing in, found a workaround but it's not an input variable for the function, just collapse some nodes with the data table row and output the row name to the name input. still beh but better

copper lion
#

I have this circle for hud and i want this to be full whenever is in range to interact with an item, is it too much if i use a line trace in the event tick to determine wheter or not it can interact?

dark drum
dark drum
copper lion
#

so using a line trace every tick to determine the item is interactable or not is fine?

frosty heron
#

doing a sphere trace actually

copper lion
#

yes sphere trace

frosty heron
#

well are you taking any performance hit? I don't even suffer a single fps

dark drum
frosty heron
#

didn't even bother to profile

#

Yeah I do two

#

1 sphere trace to get all interactables and a line trace to see if there's any wall blocking.

#

So I don't interact with lever from another room.

copper lion
#

ook nice, i thought it was another way :))

dark drum
copper lion
#

yep, thanks

#

getting to it

copper lion
#

works like a charm

atomic hollow
#

Is using pure functions by another pure function inside pure function called that many times how much another pure function uses its value.

#

@copper lion and @dark drum do you know about this

ancient dagger
#

Hey everyone, i’m trying to make a sprinting system, and i added a check so that the character can only sprint forwards, not sideways, nor backwards, i think i did it, but now, i can’t seem to change the speed of the player afterwards, like crouching or walking for example, weirdly, changing the speed worked if i don’t add the check, adding the check seemed to prevent me from changing the speed.

copper lion
surreal peak
maiden wadi
atomic hollow
maiden wadi
atomic hollow
maiden wadi
#

But using them where? A return node or?

#

Where those are hooked up to determines how many times these are ran.

atomic hollow
maiden wadi
#

Then everything in thie graph runs once. Because the only "Executed" node is the return.

#

I can give a better example, sec.

dark drum
lofty rapids
atomic hollow
# dark drum I'm not sure what your question is.

Pure functions are executed many times if their returns are used in the inputs of the non pure functions (have execution pins) I am saying that will they execut once or many times if their returns are used by many other pure functions inside a pure function

lofty rapids
dark drum
atomic hollow
lofty rapids
#

yes, you don't have to use pure nodes in a pure function

dark drum
maiden wadi
#

This might explain it a little better. Each pure node is ran one time per executed node connection when the executed node runs. Anything reused connected to the same executed node will use a cached value and not be reran again until a new executed node uses it.

slender dagger
# maiden wadi

this is possibly the most easily digestable way I've seen this explained

lofty rapids
#

the make array example is great, so your saying because its one execution, all values in the array are the same ?

maiden wadi
#

Correct

atomic hollow
# maiden wadi Correct

That was some great explanation it means that we can reduce the use of execution nodes if using maths functionality

slender dagger
surreal peak
#

There are some more examples of it on that blog page.

maiden wadi
dark drum
ancient dagger
lofty rapids
#

the red things are events, and i think thats your ia_move event ?

lofty rapids
#

your crossing wires on events

#

thats not so good

lofty rapids
lofty rapids
#

and then use that boolean in the other event and do the sprint in the sprint event where it belongs

#

store the yellow

#

and move the blue to the green

#

it might not fix your error, but it will be not crossing execution so it will be more reliable

#

that would be first thing to fix though if i was debugging

lofty rapids
# ancient dagger Like this?

yes close, except see where you dragged out of the set in the top event, and then into the and at the buttom, disconnect that, and drag the variable from the left panel and choose get then connect it to the and

#

"from the left panel" in the list of variables

#

i would also do this a bit differently

#

but see if it works once you figure out the variable and your not crossing execution paths

#

i would probably just simplify it to something like this

ancient dagger
# lofty rapids

Ok I did it, it kinda works, I can change movement speed now, and sprint forwards works as intended, but for some reason, it only works if I’m not sprinting and I try to press sprint backwards, if I am sprinting and I try to press sprint backwards, it still lets me sprint backwards.

knotty scarab
#

Does Anybody know why my casts are failing?

I have a BlueprintClass called PlayerPawn_Athena_Generic, it has the parent class PlayerPawn_Athena_Generic_Parent and that one has FortniteGame.FortPlayerPawnAthena as its parent.

My goal is to call a function i've made inside PlayerPawn_Athena_Generic, now i know for a fact that a PlayerPawn_Athena_Generic exists in the world (as a child).

But everything fails, my Cast to PlayerPawn_Athena_Generic should accept anything thats inheriting from it right?
(also i know the blueprint is quite messy, i'm just testing stuff but cant get further.)

lofty rapids
#

whats with all the casts in the other picutres, these are your tests ? what prints ?

knotty scarab
knotty scarab
#

to see if anything else that would make sense is able to be casted

#

and the print afterwards so i can see what worked

#

(none did)

lofty rapids
#

all casts failed ?

knotty scarab
lofty rapids
#

somethings wrong

knotty scarab
#

yeah, but im not sure what

lofty rapids
#

if it's failing then the target doesn't inherit from the source

#

simple as that

knotty scarab
#

but it must,

lofty rapids
#

i don't imagine it being a bug

knotty scarab
#

ive checked the inheritence

#

well its not a UE bug ofc

#

something on my end

lofty rapids
#

see what it says

#

make sure your data your loading is what you think it is

knotty scarab
#

ive done that aswell, it returns me

/Game/Athena/PlayerPawn_Athena_Generic.PlayerPawn_Athena_Generic_C

is the problem perhaps that the game is expecting PlayerPawn_Athena_Generic_C instead of my PlayerPawn_Athena_Generic?

#

I've also looked around, i do the right casting and it wants a AFortPawn or anything in that inheritance chain yet it still fails

#

so i am 99% sure that something is up with my Blueprint

snow halo
#

Hi, I have a question, Im making a farming system at the moment, I use a watering can which I fill up with water from the rivers and lakes around
then I use a niagara sprinkle for the effect, and a collision sphere
This is the best I could come up with on top of my head for the collision sphere
on begin play by default the sphere has no collisions
but when you turn on the sprinkle water niagara
it will actually turn it on

#

but it creates an endless loop
I tried to do it similar to my tree chopping system, where my animation has a notify state that creates a sphere collider that destroys stuff on its path
but unfortunatelly this will actually enable this "growth" interface that exists on literally every plant in my world
I feel like I solved this many times in the past before
like thousand times, but now can't think of anything better xD
thoughts?

lunar sleet
#

You’re not showing the actual code where the error occurs

lofty rapids
snow halo
lofty rapids
#

click on WateringCan_Item etc...

snow halo
#

Its on the same BP im on

#

thats the one im on xD

#

the code is honestly a little bit, so this is why I only took a little small piece of it

lofty rapids
#

what does growth phase look like ?

snow halo
#

This is the whole picture

snow halo
#

This is what the growth phase looks like in one of my plants 🪴 🫐

lofty rapids
#

howw long is your timeline ?

#

this error usually means something took longer then tick to execute

lofty rapids
frosty heron
#

What does longer than tick to execute means?

#

Infinite loop happends when a function gets called X times within a single frame.

The number is specified in the editor / project settings

lofty rapids
#

ya a single frame

#

if it doesn't finish

#

it can be an infinite loop

frosty heron
#

The default is 10000 iirc

#

So honestly it's just bad code that needs to be fixed.

99% of the time its a function calling it self

lofty rapids
#

ya but even if you go 10000, if it doesn't finish in one tick then it's considered infinite

#

even if its 5000

frosty heron
#

Well what function gets called 10k times or more ?

#

99.99% it's just people accidentally have a function that call it self

#

Causing endless loop

#

Ctrl + shift f. Type the problematic function and look at where you call them.

lofty rapids
#

ya endless recursion can do that for sure

#

i like how it catches it if it doesn't finish quick enough, it's a pain for big calculations

#

for big calculations tho you just use c++ and it won't crap out

frosty heron
knotty scarab
#

like its the correct class, i really don't know why its failing

dark drum
dark drum
# snow halo

I'm pretty sure when you scale an object it'll retrigger the overlap. (Updates overlap events) That's most likely where your infinite loop is coming from.

proud magnet
#

@dawn gazelle I'm so so so sorry to be messaging you again but I'm once again stumped. Fortunately it's not a saving/loading problem.

I'm noticing that when I load back into certain maps (especially ones with lots of assets) in the standalone game, I'm almost always falling through the map. As you can see in the video, this never happens while playing in editor. I can only assume this is due to the game loading me first before loading the map.

I saw someone suggest disabling gravity for a second or two when loading the game so that the character won't fall, but I can't figure out how to get that to work. Do you possibly have any advice?

dawn gazelle
# proud magnet <@218956378654507008> I'm so so so sorry to be messaging you again but I'm once ...

A few things I can think of...

  1. Your start locations may be right on the floor, which could cause it to spawn the player underneath it. Move it above the ground so the capsule it has is entirely above the floor.
  2. Make sure you have a default start location if no matching location was found with the tags. This should prevent issues if the save game isn't present or doesn't have a valid value for the map that is loaded.

I would also double check and make sure you are loading a valid start location name during the Choose Player Start function, and if you don't have one, skip the loop you have checking the playerstarts and just choose the one you want them to start at.

proud magnet
#

@dawn gazelle Wow thank you for such a quick response. The PlayerStart's are all way off the ground so I'm definitely not spawning under the floor, and the start location is being set. I found a workaround by just putting the PlayerStarts in a black box and then teleporting the player to where they need to be based on the checkpoint name.

Do you think I could do this in a cleaner way by using the RestartPlayeratPlayerStart function? I attempted to implement it myself but couldn't get it working.

dawn gazelle
# proud magnet <@218956378654507008> Wow thank you for such a quick response. The PlayerStart's...

You should really work towards figuring out why they seem to be falling rather than making a work around. If the map is loaded by the time the player is spawning, there is no reason why they would be getting spawned under the floor/falling through it. However, if you happen to be spawning in the player before the save game does properly set the location for whatever reason, then your players wouldn't have a proper start location unless you've set it up so they have some valid start location in the game mode function.

A valid approach would actually be to prevent players from spawning before you're ready to have them spawn, which means waiting for the save game to load (if you're using Async load for the save game, then it could be loading after the player has already spawned for example). This ensures that you're doing things in the appropriate order.

proud magnet
dawn gazelle
proud magnet
#

I feel like the problem HAS to be that the game is spawning me before the map has time to load, since it only happens in standalone

#

So wouldn't the logical thing to be prevent the player from spawning until I know the map is loaded?

dawn gazelle
#

How are you verifying that the save game is properly loaded and the start location name is set before spawning the player?

proud magnet
#

I'm not too sure how to verify that the start location name is set. I'd pull off of the False in this branch to do so right?

#

But I'm almost certain it is being set properly since it's spawning me at the correct PlayerStart, I'm just phasing through the floor

dawn gazelle
#

Just put a print string after the cast there and check and see if it has a value currently and see what it says.

#

If it says "None" then it isn't being set by the time you're reaching this function which is an indication that it isn't loaded before you're getting here.

proud magnet
#

Seems like it's printing a proper PlayerStartTag

#

Doesn't say None.

dawn gazelle
#

Alright good stuff, so that rules that problem out.

#

So it has nothing to do with your save game system.

#

Are you using world partition or level streaming or something in the level? I'm not sure if that may impact this.

#

Or Procedural generation?

proud magnet
#

I'm making heavy use of level streaming in this map.

#

But on BeginPlay I'm making sure to load the maps first

dawn gazelle
#

"begin play" might be too late

proud magnet
#

How would I load them before then?

#

Almost all the posts I see just say to hide the player and then teleport them to the spawn, though I feel like thats the lazy/inefficient way to do it...

#

Another post said to manually spawn the pawn and then wait to possess it.

dawn gazelle
#

Well, you're getting into something I'm not very familiar with myself.... But yea, you basically would need to prevent the game mode from spawning the player until the level is loaded. I'm guessing it's a sublevel you've added to the main level and this kind of functionality probably isn't exposed to blueprints to help check for sublevels being loaded but I'm not sure.

The blackbox workaround may be the way to go unless you want to learn more about the depths of the engine.

proud magnet
proud magnet
dawn gazelle
proud magnet
#

Or would not connecting the ReturnValue set it default to None?

#

Like this?

#

Because the return value is the PlayerStart that matches the tag right, so theoretically if it doesn't find one it would return None right?

dawn gazelle
#

You want would want something set in the return value on the completed pin so that it acts as a fallback in case nothing is found.

proud magnet
kind estuary
#

Im making a game where you are in a strategic map, and then when 2 armies meet, it loads a separate battle (different level).
When starting battle level i need the units that are in the campaign to be loaded in battle.
And then when battle ends i need the units results to be loaded back into the campaign.
Should i use SaveGame for this? OR GameInstance? I find these 2 quite confusing

gritty fiber
#

Save game is for saving and loading from a file

#

game instance persists even when the level changes in memory

kind estuary
#

Since you are going to need the SaveGame anyways

gritty fiber
#

well technically you could save it from x level and then load that data in y level

#

¯_(ツ)_/¯

#

not to mention theres tmk not partial updates to save game

#

basically even if you save it depending on checkpoints or autosaving (~every x minutes) theres no point in loading data that can be stored in game instance from a save game

#

you just need to be able to reconstruct your game from the save game data when you're loading it say after a full game close

kind estuary
#

¯_(ツ)_/¯

kind estuary
#

so i thought, when loading back to the campaign after battle

#

we could just load the save game

#

and then just update the unit stats and voilá ¯_(ツ)_/¯

gritty fiber
#

well where are you storing the data you load from the save game

kind estuary
gritty fiber
#

and how are you applying all the changes stored in save game to your systems

#

npcs, inventory, etc

#

cause by the time you apply them to said systems from a reference of the save game

#

and then you have say an npc move or a unit stats change

#

and save it again and load it again

#

there will be some overhead?

#

tbh tho its probably negligible

kind estuary
#

so you do this

gritty fiber
#

so if you load it into the game instance which is persistent across levels

kind estuary
#

SaveGame -> Play battle -> Save unit stats to game instance -> Load Game -> Load Unit stats from game instance

gritty fiber
#

you only need to save the data

#

no need to load it

kind estuary
#

😵‍💫 when you save game instance data, you need to load it later, right?

#

sorry i dont get it

gritty fiber
#

So the typical flow would probably be

#

Load Save Game -> Game Instance -> Propagate wherever you need systems / actors

#

Then following level changes the game instance still exists

#

it persists between level changes

#

so basically whenever you either need to load a save (they want to go back to an older save) or the user closes the game and reopens

#

you'd need to load the save game

#

which is serialized to disk

#

in your circumstance where you transition levels if you have all the data you need already stored in game instance you can just reference it in the new level

#

what you should do like you were talking about backing it up before they go to battle would just require you to save the game save to a slot

#

not require loading it again

kind estuary
paper gate
#

ok im stumped. Ive got a component inside my actor that is set to use world space. And I can't for the life of me get it to move. Rn im just doing some tests and want to to move to a position but use set world location it does absolutely nothing.

Ive tried add world offset, move component to and nothing. Is there something else im missing? Shouldnt setting it to use world space let me then just move it in world space through other means?

snow halo
#

anyway i will not keep this one, I realized that its gonna be much better if I actually sphere trace or line trace instead

tawny hedge
#

any recommended tutorials on targeting systems? mostly curious how to handle modular/dynamic way of targeting based on select/switches if skill is AOE, Single Target, Nearest Target, cone shaped aoe, sphere aoe, rectagle aoe etc, and most importantly with both instant cast and casting confirmation with skill aoe shape drawn on ground. I guess I'm mostly interested in the confirmation and shape part before actually casting

storm solar
atomic hollow
#

how to create 3 by 3 matrix. the 4 by 4 makes too clutter in blueprints when working with 3 by 3 matrix.

spark steppe
#

FMatrix33 or FMatrix3d maybe?!

#

i don't know their difference, just checked what exists

atomic hollow
lofty rapids
#

the top green is the XPlane split, this looks like a 4x4 matrix to me

raven reef
storm solar
#

If it makes it easier, the "onclicked" dosent fire if pressed too quickly/ mashing.

raven reef
#

When you setnthe focus to the new widget put a do once node in front of it then when the widget is fully loaded maybe a retriggerable delay for the duration or even just a frame for it to load and then tie that to reset on the do once so that they cant spam the button to make the widget focused at least based on your pics because they were alittle unclear on what you were doing exactly.

#

@storm solar

atomic hollow
lofty rapids
storm solar
lofty rapids
atomic hollow
lofty rapids
storm solar
storm solar
lofty rapids
#

check the box and see if that helps

#

you can also adjust the radius

#

it's worth a shot, the web says it'll do what your looking for

storm solar
lofty rapids
lofty rapids
#

or they are ?

storm solar
storm solar
thin panther
#

Your screenshot even shows that, they're passing in a zero vector for the W component

stark inlet
#

hiiii im having an issue currently where my HUD appears from the very beginning (probably due to it being linked to begin-play) but i only want it to appear after i have clicked play/after the loading screen. what recourse do i have here ? obviously a delay node wont work bc it will eventually tick over and the HUD will appear then. my main menu is on level 'firstpersonmap' but it opens up to level 'starlien_level' as someone told me its best to seperate the menu and play levels.

lofty rapids
#

and in the map you want to have that widget, load it in that HUD class

#

so for the menu map uses a HUD class that doesn't add the widget, and the regular level uses a HUD class that loads the widget

lofty rapids
stark inlet
#

ummm 😭😭😭

#

okay i'll need to look into it

lofty rapids
# stark inlet ummm 😭😭😭

do you know about the gamemode override in the world settings ? there is a hud class it loads when that level loads, so for each level they can have there own HUD

stark inlet
lofty rapids
#

it could if you build out the widget and set its appearence in the HUD

#

idk how your project is setup and what is happening in the HUD

stark inlet
#

im not sure either bc i cant change it between levels ? its the same one no matter what lvl i open ;-;

#

omg wait

lofty rapids
#

lol infamous wait

stark inlet
#

i made my first lvl game override as none and my starlienlvl (hud lvl) to the starlien hud

#

and it works 😭😭😭

#

thank u my life has been saved...

umbral pond
#

I am trying to make a random loot drop system, I just cant figure out how to make it random, all the items in my game are based on data assets, and I have two variables which reference them, ''Items'' which is a struct with the item ID, HP etc, and another which just references the data assets, how would I go about doing this?

lofty rapids
#

a weighted random is your best bet for loot

umbral pond
#

Just need to figure out how to actually randomise the item so when you pickup the orb at the end its a different item each time, but the output needs to be that item struct

lofty rapids
#

well i don't see where you selected the sphere

#

but i would use some maths and use a map or something that picks it by id

lofty rapids
#

hardcoded ?

#

the first thing you need to be able to pick one dynamically

#

then you can choose one randomly

#

so you have all the items in an array ?

umbral pond
#

the way Ive got it working currently is when you walk over the sphere, it destroys the actor, I then need to make it randomly select an item from the data assets, which are the game items, which then goes to a separate thing which adds that item to the characters inventory, I do already have a bp instance for the item rarity probability, which I was going to tie into it later on, I just needed to make it randomly get one of those data assets essentially

umbral pond
lofty rapids
#

ah i c

umbral pond
#

as far as I know the item struct does use arrays though

#

but thats for adding it to the inventory which is already working fine

lofty rapids
#

and can you show how you spawn the item ?

#

i'm not quite understanding

#

i'm not sure i can help much with data assets anyway i never used it

#

but i been using blueprints for a little while now

#

still learning of course

umbral pond
#

yeah items and inventory stuff aint my thing, I mostly do actual mechanics, the add item function in the vid is the whole inventory stuff which is fine

lofty rapids
#

ok it's a struct great

#

i would go with a map of integers, to structs

#

and use weighted random to choose the struct

#

or you can make an array of structs

#

and generate a random index

#

but the weighted random allows you to set precedence on items, like which has more "weight" to drop

#

just a a random number has no weight behind it

#

so which way you do this depends on what you want

#

but i highly recommend weighted even if you just make it equal

umbral pond
#

alrighty thanks for the help! ill have to look into those

lofty rapids
#

here weights and items correspond to each others indexes in the array

#

so weight at index 0, is item at index 0

#

but just to show you the maths involved, and since it's a struct you can just output it np

umbral pond
#

ahh thank you so much, ill try it out

lofty rapids
#

it's just the basic maths, probablyyy has some bugs i tried to translate from c++ to bp

umbral pond
lofty rapids
lofty rapids
#

for each one add an item to items, and weight to weights

#

this can be automated if you can pull the data from somewhere else

#

but with the weights, basically the higher the number compared to the others the more often you'll get it

#

so you could start off with something like just 1 for all of them

#

and increase each one so like another type has a better chance raise that weight up

umbral pond
#

alrighty, again thank you so much for the help, seems like I was just overcomplicating it in my head with it being based on a struct lol

lofty rapids
#

messing with blueprint structs can cause crashes

#

it's most often suggested to create them in c++

#

because they can cause problems

#

basically jus the editing of the actual struct, so like if you add a value to your struct like newStat or something

#

this can be a disaster i've seen it on here a few time

umbral pond
#

oh boy

lofty rapids
#

just keep backups of your code (every so often back it up)

#

do you do any source control ?

#

sc is perfect for fixing these issues where something breaks big time

#

atleast something to think about

umbral pond
#

yeah I do regular backups whenever I add a new mechanic or edit something lmao

lofty rapids
#

i do the same thing just back it up

wheat forum
#

Hello everyone I'm making my own game and I really want to implement mechanics like shift in minecraft, when the player does not fall off the ledge in a squat. I've already tried using can walk of edges and custom systems with line traces, but with all this, the player is uncontrollable and shakes violently from side to side, and I want smoothness. Please help me

frosty rampart
wheat forum
#

Thanks for your feedback. When I tried to do this, I had 3 traces: forward, and 2 on the sides: left and right. But I want it to be able to safely move to the sides. I don't want it to just stop. I tried to look for motion vectors along the ledge through the cross, but it starts shaking when the main beam and the side ones alternate activations. Sorry, I'm using a translator.

#

I also tried interpolating vectors, but it doesn't change the situation much.

frosty rampart
lofty rapids
#

it sounds odd that it's going back and forth the stop movements must be seperate on each trace ?

wheat forum
lofty rapids
#

i have a hard time with videos of bp, but i can see by the looks of it what your probably doing

#

this looks like a classic case of collision where you move forward, but then move backward

#

so instead of "not moving", you are trying to "negate what you moved"

#

thats what it looks like in the video

#

like your moving, but then when that triggers, your bouncing back

#

i could be wrong but thats what it looked like, i'm still learning and am lazy to watch all the video

wheat forum
#

I'm trying to calculate a vector along a ledge and move along it

lofty rapids
#

idk why but i really dislike trying to track a bp in a video

wheat forum
#

I can post the blueprint in blueprintue

lofty rapids
#

ya that looks like #game-math stuff, since your calculation a vector for movement right ?

#

instead of just stopping moving when you hit a ledge

wheat forum
#

Yes

#

I tried using chat gpt but it didn't help me much

lofty rapids
#

as far as the traces and nodes i can see where it's blueprint, but honestly i would share your formulas in the math section see if they are set correctly

wheat forum
#

Thank you

jaunty solstice
#

When calling 'restartlevel' as a console command from my LevelSequence blueprint I always end up crashing with the following obscure error.

lofty rapids
sage pecan
#

Hey! I have a question about GAS and how I can use it to assign multiple abilites to a character at the same time. I have two 'player' abilities I've created using GAS and assigning them to the player character individually works and they activate as expected. Now I've tried - within the third person character blueprint - using the get abilities and find abilities functions to grab all of the abilities at once I want to set but both functions return an empty array. Is there another function I should be using to return multiple abilities or is there something I'm potentially missing here?

frosty rampart
sage pecan
#

No I mean I'm using the Game Ability System to create and manage abilities for my character, and I've created two abilities that I've tested and proven that they work. That's all fine but the plan is for there to a BUNCH of abilities a player can potentially have, so instead of assigning each ability one by one to the player character, which is what I'm currently doing, I want to grab an array of all the abilities and run them through a foreach loop so I can assign them that way. The problem is both functions I've tried to use from the Game Ability System to grab all the abilities in one array return an empty array.

#

For reference

#

Find all Abilites is the other function I've tried with the same effect

thin panther
worthy frost
#

on my blog

#

this is Attributes not abilities btw

sage pecan
worthy frost
#

any why would this have any attributes/abilities unless you gave them/granted them

#

and*

sage pecan
#

I guess the simple description of what I'm trying to achieve is, I want to grab all the abilities I want to assign to the player in an array and then use a foreach to assign them that way, rather than using give ability for EACH individual ability,

sage pecan
worthy frost
#

you make a data asset

#

with all the abilities

#

then you just apply that single data asset

sage pecan
#

Thought there just might have been a prebuilt function to basically grab them like that without having to build a data object but I guess not

worthy frost
#

grab what?

#

there is no function to grab all abilities

#

that wouldn't make much sense

#

sure you can do it via searching packages

#

but why would the ASC give all abilities in the project

sage pecan
#

I was just trying to grab these using an inbuilt function - if it existed which it seems not

#

Before I was just doing this but obviously this isn't very scalable when I start adding in more and more abilities I want to give the player

#

Hence trying to find a solution where I can pull all the custom player abilities at once

frosty rampart
# sage pecan For reference

go to beginplay, first call" initabilityactorinfo" and then keep the ability classes you have in an array and add them with giveability in the loop

worthy frost
#

again why would the ability system component know about any abilities

#

use ability sets or make an array of abilities as mentioned above

#

its not magic, its not going to give every ability to created in your project

summer sail
#

Hello guys, anyone can help me figure out if my math is correct? I'm trying to implement a target LOCK system,
So this first part I'm trying to find the vector that points to my target then use a crossproduct to get the perpendicular vector so my character will circle the target.
Issue that I'm running into is that my character is running into a spiral instead of a perfect circle, I wonder if my math is incorrect or maybe I'm doing something wrong.
Thank you in advance.

paper gate
#

Reposting this cause Ive tried a few more things and im still kinda stumped on it

ok im stumped. Ive got a component inside my actor that is set to use world space. And I can't for the life of me get it to move. Rn im just doing some tests and want to to move to a position but use set world location it does absolutely nothing.

Ive tried add world offset, move component to and nothing. Is there something else im missing? Shouldnt setting it to use world space let me then just move it in world space through other means?

frosty rampart
# paper gate Reposting this cause Ive tried a few more things and im still kinda stumped on i...

think of it this way, your component is still parented to another component inside the actor so even if you set world space, it’s still acting relative to its parent’s transform if you want to truly move it in world space, first use DetachFromComponent to unparent it make sure to check maintain world position when detaching then use SetWorldLocation and it’ll work properly in world space after that right now it’s probably ignoring your set location because it's still being overridden by the parent so: detach first → then move it

frosty rampart
paper gate
#

for context im trying to do this with my player's camera and camera boom. So I can have it move more dynamically, but still have it encapsulated inside the player

frosty rampart
paper gate
#

ok cool thats exactly what I was looking for, tho one follow up question you may or may not know. If I detatch the boom would camera lag still work? or would I need to kinda recreate that effect?

#

cause if not then ya I'll just do it with the camera itself and ditch the boom

frosty rampart
# paper gate ok cool thats exactly what I was looking for, tho one follow up question you may...

if you detach the camera from the boom, all features provided by the boom such as camera lag, rotation lag are disabled because these lag effects only work when the boom is in the component, it is not a physical simulation, it is an offset applied at the tick of the boom, so yes, if you are going to detach it, you need to do that lag effect manually i mean for example, "finterpto" or "vinterpto" to delay the camera to the target position gives the same feeling but you control it

paper gate
#

and I'm assuming you'd recomend chopping it down to the camera just for simplicity reasons. Rather than needing to account for the boom when making calculations?

frosty rampart
paper gate
#

cool cool that makes sense, thank you I think you just saved me a bunch of headaches trying to figure out why this wasnt moving lol. Now I just have to actually go make that system lol
but thx again

frosty rampart
hoary sparrow
#

First time getting blueprint logic to work well for me lol. If anyone has the time and patience, could you give me some advice and feedback on my blueprint? it is for a door interact system for opening and closing and using a key to unlock and such. any feedback is appreciated.

glass blade
#

Are IK bones just regular bones named IK or do they posess special abilities that make them "IK"

#

for example, the left_hand_ik bone has like 1 end on the right hand and the other hand on the proper left hand spot

#

similiarly to foot ik bones, they both aim at the root

lunar sleet
hoary sparrow
#

it can also help with checks and conditions more precisely if im correct

#

if it was just a regular bone, it wouldnt react to the environment in that way

glass blade
#

okay but what im wondering about is, how do you specify a bone to be "ik"

#

so like, the curent ik bones are just regular bones with an "ik" suffix right?

hoary sparrow
# glass blade so like, the curent ik bones are just regular bones with an "ik" suffix right?

no. you would need to go into the animation and select the bones you want to be IK like the foot or hand. you can use FABRIK or just Two bone IK for legs and feet. an example would be, you would us the 'Two Bone IK' node and you would pick the start bone, maybe the thigh and then the end bone which would be the foot and then set the end effector to match the ground. so its more in depth than just having IK suffix

glass blade
hoary sparrow
#

if you downlaoded an asset and it already HAS the IK suffix, then it is and IK bone

glass blade
#

the bones themselves dont have special abilities, what makes them IK is the node you use them with

hoary sparrow
serene canyon
#

Media Player only plays 1 second of WAV stream and stops – UE5

I'm using the built-in Media Player in UE5 to stream a .wav file from a URL. The actual WAV file is around 6–7 seconds long, but in Unreal it only plays for 1 second and then stops.

I’ve set the stream URL as the media source and call OpenSource() then Play(). No errors show up, but playback ends prematurely.

The same URL plays fine in a browser
Would appreciate tips or workarounds

copper lion
dark drum
# hoary sparrow First time getting blueprint logic to work well for me lol. If anyone has the ti...

What i've circled in blue (as far as I can tell) aren't needed so you should be able to remove the nodes.

For the 'Set New Time' nodes, these aren't needed in your use case because you already tell it to either reverse from the end or play from the start.

The second 'is unlocked' branch isn't required either as you do the same check before hand so if it's gotten to that point we already know it's false so no need to check again meaning we can just play the sound.

The bit I circled in purple I would do differently. The idea of reducing a float on tick just to stop overlapping sounds from playing seems wasteful. I would just have a bool 'bCanPlaySound' and set it to false when you play a sound and then use a delay/timer to set it to true after x amount of time. This would remove the need for tick and should give the same behaviour.

Hope this helps. 🙂

dark drum
hoary sparrow
hoary sparrow
paper gate
dark drum
# hoary sparrow How about my layout? is it acceptable? for example if i work for a dev studio 😆

It's fine. If I loaded up a BP to make modifications and it looked like that I wouldn't complain in the slightest.

There are things I'd probably change/add but whether or not there actually need would depend on your game.

Such as:
Collapse the open and close door functionality into individual functions. This gives you a way to control the doors externally if needed.

Add event dispatchers for when the door is unlocked and open/closed. This gives you an easy way to have other actors listen in and do something when these events happen.

dark drum
paper gate
#

Ok, cause. I get what Val was saying last night to pop the camera out so the math can be simple, so that's what i start building last night

lofty rapids
#

sprirng arm giving you trouble ?

paper gate
#

Not exactly, was trying to pop out the arm and camera last night by setting them absolute worl location in their BP and wasn't working then got some other feed back and it started corporaterating

paper gate
lofty rapids
#

this component is a spring arm ? you want to move the camera, or the spring arm ?

lofty rapids
clear ledge
#

Could someone help me understand how to replicate this? This is purely for prototyping so it doesn't have to be fancy but the way I tried crashed Unreal.

#

It's spawning them when I press my input for client and server but the actor isn't replicating

clear ledge
#

**Sorry the CLIENT actor is not being replicated, the server is

frosty heron
#

Replication only happend from server to client.

#

if you spawn something as client, it will only exist for that client machine.

dark drum
frosty heron
#

no one else will ever know about it.

#

Also damn, you are spawning every frame?

#

Triggered execute every tick.

dark drum
clear ledge
#

Oh good catch. It reverted when I crashed

#

It's on STARTED now

frosty heron
#

Re-iterating what pattym already said.

If you are server , spawn away, it will replicate to client if the actor is marked as replicated.
If you are client, ask the server to spawn it (Only way for client to communicate with server is via server rpc, so do just that).

dark drum
#

I don't tend to use started and complete much these days. I just use the 'Pressed' and 'Released' triggers so the triggered pin will only fire once. It allows you to apply an accutation threshold which can be nice for gamepads.

frosty heron
#

Input Pressed -> If Has Authority -> Spawn
If Remote -> Server Rpc (Spawn my building)

dark drum
#

Something like this.

clear ledge
#

@frosty heron @dark drum Thank you guys. I'll give it a shot now. I completely forgot about RPC, to be honest. I'm getting back into this after a very long time.

frosty heron
#

@clear ledge Server RPC is the only way for client to communicate with server.

#

so your task is to have the client Inform the server to execute a function (to spawn)

clear ledge
#

Thank you guys! I got it!
The only problem is that now the clients actor is spawning in the same position as the Servers' last spawned actor.

#

If server spawns a new actor in a new location, the client will also spawn actors in only that new location instead of where the client is looking

#

AH! Client is spawning a new actor where the SERVER is pointing.

frosty heron
#

if you don't pass any parameter then the server is just running a function.

#

it cannot possibly know the transform the client intend on their end.

clear ledge
#

Right. just running the function on behalf of the client instead of the client actually influencing it

frosty heron
#

well it's more about exchanging data

#

I mean telling the server what it needs to know to do what you have to do.

#

Would probably do the following as client, you know since delay exist and maybe the placement isnt actually possible in server.

Client Request to spawn a building, client execute server RPC with the building object and it's transform.
Server runs the function -> Checks if it's possible to spawn the building (e.g check if there's any overlap object or anything blocking the spawning point)
-> If all is well, spawn away it will replicate to client.
If not, you can inform the client that the spawn failed via Client Rpc, or just do nothing.

#

For future reference, head to #multiplayer for better chance to get help.

hushed igloo
#

Hi guys nice to meet you all, I'm making a minigame that revolves around my player character scoring goals with a puck, and something that I want to add is a condition that makes the score total decrease or increase based on the color of the goal zone

#

I'm kinda struggling hard on how to implement said score condition so if you guys could offer some help, it would be greatly appreciated

lofty rapids
#

you have the score changing at all ?

hushed igloo
#

Here are the blueprints, I'm a rookie at Unreal Blueprints, which is why its a little sloppy

#

@lofty rapids yeah, I was thinking something along the lines of, when the goalzone changes to green, the player gains points and when the goalzone changes to red, the player loses points

lofty rapids
#

set the variable when you change the color

hushed igloo
lofty rapids
#

i see you have a points variable you created ?

#

but i don't see you actually using it when you score a goal

lofty rapids
#

other then that you'll have to check the material

#

and verify the name

#

or something which sounds a lot worse imo

hushed igloo
#

strange, cause I think I called the score here:

#

maybe I'm mistaken?

lofty rapids
#

probably, wdym "called the score" ?

#

theres nothing that says points, or score ?

lofty rapids
hushed igloo
#

okay, ill work on it under the meantime, thanks for your time! @lofty rapids

lofty rapids
#

ok 👀

jaunty solstice
inland walrus
#

Anyone know why this is snapping head turns?

dark drum
inland walrus
faint pasture
inland walrus
#

how strange, looks like it automatically returns itself to it's default value

#

thats why it was snapping, it auto returns head to forward vector + I was trying to make it do it too so it was snapping between 2

faint pasture
#

stop all that wire stretching, just do it nice and procedural.

  1. cook up Head Location (which I presume is meant to be the position you're looking at)
  2. Look towards it

EIther smooth the vector in space or the rotation, whichever you prefer.

ruby cobalt
#

trying out custom mouse cursor but now I get both cursors...

if i do hide cursor in BP.. it hides both.. how do i hide window's default cursor?

lofty rapids
#

what nodes are you using ?

ruby cobalt
#

in project settings

#

it displays a widget

#

and i have a way to toggle if i want to use the cursor or not..

tranquil roost
#

Hey everyone,
is there anyone here who’d be open to occasionally helping me find the right direction in Blueprint development? I'm working on my own project and, while I try to solve most things with ChatGPT, I keep running into spots where I just get stuck or go in circles. Right now I'm wrestling with interactables and the Enhanced Input system.

I'm looking for someone who wouldn’t mind giving me the occasional nudge or even a bit of light mentorship, just to help me keep moving forward and hopefully finish the project one day. It's not a job offer or a full-time gig – more like a friendly guide every now and then.

I'm open to a small compensation if it makes sense, but I don’t want to turn this into a bidding war or anything like that – just hoping the right kind of person might resonate with this.

Big thanks in advance 🙏

paper gate
#

Hey I could definitely help ya with an interaction system a little later if you'd like, and ik a but about enhanced input but im no master on the nitty gritty. I'm busy rn but could answer some questions you may have for it

#

@tranquil roost ^ tho someone else may answer it before im free which is totally fine too

tranquil roost
#

Hey, that would be awesome, thanks a lot! 🙏 🤩
No worries at all if someone else jumps in earlier – I appreciate any help I can get.

So here's what I'm trying to do:
I'm building a clean and modular interaction system using Blueprint and Enhanced Input. I want to have just one main interaction button (F), which triggers different behaviors depending on the interactable – short press for things like "pick up", "switch" or "open", and long press for more involved actions (like holding a lever or dragging an object).

Each interactable is its own blueprint with editable parameters, and I want the player character (BP_GameplayPlayer) to only handle detection and input logic – not the interaction logic itself (separation of concerns). The idea is to detect the closest valid interactable, highlight it, and then call the proper function (short or long) through an interface - detection is working tho 😄 .

Where I'm stuck right now is:

Setting up the input action properly to detect short vs long press cleanly in one input event

Making sure the right interactable gets selected and that only one is active at a time

Keeping the whole thing scalable, so I can expand it later with minimal spaghetti

If you’ve got any tips, examples, or even just thoughts on structure, I’d be super grateful 🙌

paper gate
#

Ya for sure, I can go into some more detail later again if someone else doesn't sooner.
A quick thing is most of your issues can be solved through an interface. Have your player look for objects that implement your interaction interface within X radius and send a message to then to do whatever they do

#

Theres a lot of tuning that can be done but that cleans up a lot of the jank and keeps things modular and scalable like you said because all the actual code is on each object rather than stacking everything on the player

#

@tranquil roost

lofty rapids
dark drum
# tranquil roost Hey, that would be awesome, thanks a lot! 🙏 🤩 No worries at all if someone el...

It depends how modular and how scalable you want it.

Personally, I'd recommend using actor components to save you having to re-implement core logic for each interaction. I tend to have an interaction system component that goes on either the character or controller (depending on the type of game) and an interactable component which does the heavy lifting for the interaction.

The interaction system handles the various linetraces to find a valid interactable. (actor with an interactable component)

The interactable component would handle focus events and triggering the actual interaction using an event dispatcher that can then be implemented in its owner.

It might be worth look into uobjects as well. Whilst they can be limited in BP only projects, they can still add a lot to any system if you're going for a modular approach.

As an FYI, systems like this can take weeks (sometimes months) to setup and fully test to get working how you want so don't get disheartened if it feels like you're not making quick progress.

faint pasture
#

Presuming your interaction system would ever want some sort of state, just do it all with components

#

1 component for your interactor, and 1 for interactees

#

InteractorComponent only ever talks to InteractionComponent, you can just dispatch on OnShortInteract and OnLongInteract to do the bespoke per-actor stuff

lofty rapids
#

to interface or not to interface, that is the question

faint pasture
#

the answer is not, if you care about any amount of state

#

state being, bCanInteract, bSupportsShortInteraction, bSupportsLongInteraction, etc

dark drum
scenic compass
#

Hey I currently have a voxel game that works via a world spawner that when placed in level, spawns the chunks of land which is working great so far but I’m looking to implement water into the mix which is far more difficult than I originally thought as it requires collision differences for the water… my first thought was to try by making a simple water simulator that works off of the same voxel mesh that the land is generated from which barley works as is. Ultimately what I want to ask regarding this is what should I do keep trying to make a water simulator that works or am I barking up the wrong tree would it be better for me to remove the water simulator as is and focus on implementing a separate procedural mesh generator that utilizes similar functions as the land but instead works on forming the lakes and oceans and stuff then cuts into the land gen to form a single world of 2 procedural mesh’s making it easier for me to deal with collision as well as make the water simulator independent from the land voxels

#

God that was a mouthful

faint pasture
#

is it just a z height below which you're underwater?

scenic compass
#

Keep in mind the water simulator I’m looking for is just a Minecraft clone simple nothing crazy

faint pasture
#

in minecraft water is just a voxel type

#

with special rules that update it and its neighbors

scenic compass
dark drum
lofty rapids
faint pasture
lofty rapids
#

i have used components and made one for a project in a tut

faint pasture
#

just plop the InteractionComponent on any old actor and implement OnInteract in the actor and you're off

scenic compass
#

I have 3 types from the tutorial I followed one is a basic one that’s just blocks then I have a greedy mesh one that works well then I have a marching chunk one that I have most confusion on how to edit

faint pasture
#

With components the test for whether or not an actor is interactable is no longer if it implements the interface, it's if it has the component. Or you can just not care about the actor at all, your selection and hightlighting can be vs interactioncomponents

dark drum
tranquil roost
tranquil roost
# dark drum It depends how modular and how scalable you want it. Personally, I'd recommend...

@pattym Appreciate the suggestion! I get the benefit of using components or dispatchers, but in my case I’m trying to keep each interactable fully self-contained. We’re planning a ton of unique interactables, so having a clean base like BP_Interact_Press, duplicated and tweaked (different animation, delay, etc.), makes it way easier to manage than juggling component logic per actor. The player just forwards the input to the actor via interface – that’s the idea anyway.

Right now the issue is: Interface function isn’t triggering at all, even though everything seems wired up correctly. Super frustrating.

So far @paper gate approach aligns the most with where I want to take this system – modular actors, interface calls, no spaghetti on the player side. Just need to figure out why those calls aren’t landing 😅

faint pasture
#

use components, it's much cleaner as you can include the animation and all other data in the component

scenic compass
#

My current water simulator is just trying to replicate what happens when you place a water block in Minecraft I have a function to modify the voxels of the land and I check if the block being placed is water if it is then enqueue water block after it’s enqued it does some checks then try’s to spread it and I forget the entire math involved cuz I was trying to get it to work more than focusing on how it works
i also have the water simulator being created and shared to the chunks when they are spawned in which works but when I place a cube in another chunk other than the one my actor spawns on initially the water doesn’t spread so ugh I’m so lost and confused I don’t even know where to go

lofty rapids
scenic compass
lofty rapids
#

i have not done much with water yet, just used the water plugin one time in a project

#

built a cool island level for an rpg

#

voxels are cool tho

scenic compass
#

Water is so cool in games when it’s logic is done right

dark drum
# tranquil roost @pattym Appreciate the suggestion! I get the benefit of using components or disp...

This is what my hyper modular interaction system looks like in terms of the interactable component. Granted I use some C++ but a simpler version using the same concept is possible in BP.

If i want to change what the focus looks like I just make a new focus response object, if I want something new to happen I can create a new Interaction event object. I also have an event proxy that kicks it back to the actor so you can do things more specific to the actor.

snow halo
#

Hi I have a question related to optimization

#

I have a tree blueprint, it spawns fruit components and smaller chunks of wood or branches that come form the inside of it

#

but the tree component is broken and removed

#

from that point its up to the player to decide if he wants to pick up the trash that came afterwards

#

one mans trash is another mans treasure

#

but ive put a timely event to see that that blueprint is never actually deleted

#

even if all its components have been removed

#

that blueprint will always exist but will not be seen anywhere

#

so my question is should i destroy it somehow?

tranquil roost
snow halo
#

I grabbed all the components that exist inside of my tree

#

and i think about doing is valid, is valid, is valid, is valid, is valid, is valid to each and everyone of them

#

and if all of them are destroyed then I can destroy the blueprint too

#

but I actually think about doing a timer thing, aka if the player hasn't picked all of them up, then maybe I must destroy it anyway

lofty rapids
faint pasture
faint pasture
lofty rapids
tranquil roost
lofty rapids
#

based on the text in your print strings i'd say your logic is wrong

#

you say hold at the top, and press att the bottom

tranquil roost
lofty rapids
#

but really thats an implements interface boolean

tranquil roost
# faint pasture Why are you implementing press and hold on your own, EnhancedInput can do that f...

@faint pasture Yeah, I actually tried using triggers inside IA_Interact at first (Pressed and Hold trigger thresholds), but it was messy in practice – either the triggers fired at the wrong times or they didn’t work well with interface calls.

So now we just use the standard Started, Canceled, and Completed events directly in the Enhanced Input setup, and manually determine if it was a short or long press. Much more reliable so far – or at least would be, if the interface calls actually fired 😅

tranquil roost
lofty rapids
faint pasture
lofty rapids
#

it means i think your logic is wrong your branch and what it says in print string your doing it wrong i think

lofty rapids
faint pasture
lofty rapids
#

i would just switch the red inputs in the branches

#

so that you do a interface check, then if your holding it down

faint pasture
#

ya that

lofty rapids
#

switch the red with the yellow

#

and vice versa

tranquil roost
# lofty rapids

MG! That worked for the Press call 😄 Thanks man a lot! ❤️

#

But it is still calling Hold Complete even on BP_Interact_Press 😄

lofty rapids
#

wdym the press call is working

#

but complete is also running ?

faint pasture
lofty rapids
#

theres probably something off to the right

tranquil roost
lofty rapids
#

try not to do that from press

#

disconnect the execution

#

because you want to press

#

and then holding complete on long press right ?

#

its hard to tell what your going for here because the logic was flawed

#

when do you want isholding to be false ?

tranquil roost
# lofty rapids at the end where you set isholding to false

@engage The intention is that isHolding should be set to false only after the interaction resolves, either:

  • after a valid short press,
  • after a HoldComplete,
  • or if the hold is cancelled early

Eventually, the idea is that each interactable (like BP_Interact_Hold) will define how long it needs to be held, and the system will use that to decide when HoldComplete should fire.

Thanks for catching that – that kind of detail helps a ton

lofty rapids
#

the interface is actually working

#

it's just it didn't move at all ?

#

are there any errors ?

faint pasture
#

use breakpoints

void crescent
# dark drum Also BP interfaces can't have default implementations so you'd be duplicating a ...

I'm no big fan of default implementations of interfaces anyway. I think interfaces loose a good amount of their meaning that way. I never understood why they did not bring some header files into C# (coming from C++). Discovering too much ugly C# sources that just spit public private public blocks into sources that should be scrolled through I finally found peace in interfaces for C# (which even worked fine for mocking unit tests) and lost it after they started adding default implementations as feature into it. For BPs you can use default impementions from base objects. But overall I agree that you are fine with components for interaction objects.

tranquil roost
faint pasture
#

also what happens if selected actor changes during the press time?

tranquil roost
faint pasture
#

You could move all this to the interaction component and have the interactor just call InteractionStart and InteractionStop and let it handle the timing and effects

tranquil roost
# faint pasture You could move all this to the interaction component and have the interactor jus...

@faint pasture That actually makes a lot of sense – and I really appreciate you taking the time to go into it 🙏

I can totally see how pushing everything into a centralized interaction component (handling the lifecycle, timing, visuals etc.) can make things cleaner and more consistent – especially if you're working in C++ or with more generalized behaviors.

In my case, I'm sticking to Blueprint-only for now – mostly because I don’t have the bandwidth (or skillset yet 😅) to maintain a custom C++ framework behind it. So I'm leaning on modular actor blueprints that encapsulate their own logic, and the player just triggers them via interface calls.

But the direction you're describing is definitely something I’d want to evolve toward once I get more fluent – thanks a ton for the insight!

faint pasture
#

you don't need C++ for it

#

Here's how simple it can be:

InteractorComponent:
Tick -> choose SelectedActor and SelectedInteractionComponent -> if SelectedInteractionComponent has changed, call InteractCancel on the old one.
ButtonDown -> call InteractStart on SelectedInteractionComponent
ButtonUp -> call InteractEnd on SelectedInteractionComponent

InteractionComponent:
InteractStart -> store the time
InteractEnd -> check the time vs stored time, choose to do long or short interaction events, fire dispatchers

AnyActor:
just implement OnShortInteract or OnLongInteract from your InteractionComponent -> do whatever you want

molten aspen
#

I'm watching a Udemy video on advanced locomotion and the guy is doing something with interfaces that seems wrong at first glance, but now I'm questioning my own understanding.

He has an interface, let's call it ICharacterMovement and has a ReceiveVelocity function on it. He implements the interface on the AnimBP and then calls the ReceiveVelocity function on a reference to the AnimBP in the Character EventGraph and pushes the velocity value to the AnimBP. This seems bass ackwards to me. However, it gets around an interesting oddity in animation blueprints in UE where you can't call a function on an external blueprint inside the animBP's event graph. So you can, say, press the Tab key in your character BP which then fires the ReceiveVelocity event on the AnimBP which then allows the AnimBP to read the velocity vector value.

Again, this feels wrong to me but it works. Am I wrong? Is there a way to call a GetVelocity function or event on the Character BP from the AnimBP's event graph?

In the words of Weird Al, "Everything you know is wrong! Black is white, up is down, and short is long!"

lofty rapids
#

are you trying to get the velocity of the character in an animation bp ?

#

this is what i use for blendspace

maiden wadi
#

Lol. Making an interface to access a subobject.

molten aspen
# lofty rapids

Right! This is how I'd do it. The instructor is creating an interface to implement custom events on his animBP and then calling these interface events on the animBP to update the values. I genuinely don't think this guy knows how OOP works.

#

I figured it would be good to watch the whole set of videos to get at the meatier bits, but now I'm questioning everything this guy says. I think I'm going to scrap this one and move on.

faint pasture
maiden wadi
#

If it was something less changed than velocity, there is something to be said for only updating said thing when it changes. But velocity is in near constant flux and so you won't get any benefit from not polling it each frame.

However, even for the sake of argument lets say you have plenty of things that need changed semi often and benefit from event driven updates.

For one you can make subclasses of the AnimBP. Templates I think. And put you shit there and cast to them if you want to avoid the skeleton loading, if say you need multiple skeletons in one character class.

But more importantly most of this logic is likely to be handled in the character anyhow and should just have delegates that the AnimBP can bind to and update from the original setter calls.

Zero of this needs anything to do with an interface.

molten aspen
#

I'm currently using a state enum that handles animation state transition conditions. Set enum on character bp e voila! you change animation state on the AnimGraph. I was hoping i would get some more in-depth animation info out of this Udemy course, but it seems like that's not going to be the case.

faint pasture
molten aspen
void crescent
# molten aspen Right! This is how I'd do it. The instructor is creating an interface to impleme...

It's not necessary for velocity but even no drama. Things change in upcoming UE versions and CharacterMovementComponent is getting replaced sooner or later with Mover. Probably they would change the hole character base class ... probably they don't (as it's actor agnostic afterwards). So if you would use a ABP that should by used by any character afterwards interfaces still could make sense.

faint pasture
#

if you do things right you really should only be casting to common classes that are loaded anyway

#

Casting something to YourMainCharacterClass is a total nothing-burger because YourMainCharacterClass is probably already loaded for the obvious reasons.

molten aspen
molten aspen
molten aspen
void crescent
molten aspen
#

Thanks for the insight, everyone!

frosty heron
paper gate
# molten aspen My understanding was that casting created a new object in memory rather than usi...

Casting is to put it in simple terms a pointer to an object. And then you do stuff with that object. If that object is already loaded into memory for whatever reason it is next to no cost to reach over and talk to it.

The danger is if that object ISNT in memory yet and you cast to it. Then you are pulling it fully into memory and taxing your system more than it should be because that object could be really heavy

frosty heron
#

👀

maiden wadi
frosty heron
#

Casting is almost free, the issue isnt with casting but the hard reference to blueprint asset.

maiden wadi
frosty heron
#

Casting is never been the problem, just stop referencing blueprint asset if you want to manage your memory.

paper gate
frosty heron
#

Too much wrong information prepetuated by youtuber

paper gate
#

Ik I have read that and similar articles. I'm not saying casting is evil or anything im just paraphrasing, ik some of it is off rn, im literally on the move rn

#

I've seen plenty of youtubers who scare newer devs off certain functions that with a little understanding arnt evil

frosty heron
#

Well if you already read, you should know the common issue with blueprint only users, start pointing the core of the problem which is a reference to blueprint asset which create dependency and force the asset to be loaded.

Because casting it self is not the issue, so I hope people can stop blame casting.

lofty rapids
#

it's pretty often to see "casting is bad"

#

i have not had an issue with it on tick

maiden wadi
#

This isn't an issue with casting though. It's linkers that do this. And linkers can happen many other ways than casting. Casting just happens to get the blame for it usually. The primary issue is that none of this is a "runtime" cost. You can incur this cost immediately as your game loads if your linker web is too large. And then never realize the issue if your game is small enough cause everything is always already loaded.

frosty heron
#

I wish those content creator just take down their casting is bad videoes

#

Instead it get copy pasted

maiden wadi
#

It's just another premature optimization issue.

#

You avoid casting cause it'll cause memory issues, and then interface everything to the point your project isn't fucking readable because no one knows where the shit your logic is going anymore cause it's entirely unclear. But at least you don't have linker issues. Nevermind the fact you'll have 0% chance to finish your intended project.

frosty heron
#

And 90% of the time, they end up passing reference to the blueprint in the interface lurkin . One example would be smart poly tutorial. Can't believe he charge money for that.

pliant socket
#

is there any way to scroll through the blueprint editor other than dragging with RMB? it's killing my arm over the past week. seems like there's no trackpad gestures. but if anyone knows how to make it work with arrow keys or WASD that could help a lot.

lofty rapids
#

you would probably have to do a source build and edit that yourself

dark drum
lofty rapids
#

base class ftw

paper gate
maiden wadi
#

Realistically, people have to hit these walls to actually learn. Avoiding them will not give you the necessary understanding of how to avoid them correctly and it'll just pollute your project with a different bad practice. It's better to have bad code in a complex project that you can fix and learn from than have a messy project you don't even understand why it is the way it is cause you just did the things told to do.

paper gate
#

Agreed

void crescent
# paper gate I know thats how my project is set up. I use plenty of base master classes. I ju...

Yes... so many base classes and then you think hey that asset from the market place could probably save me some time... should I get it. And you finally find yourself casts all over the place and packs where they let you literally Die() in the backbag and have to cut all wires or figure out you wasted your money :). So if those tutorials says casting is a bad thing and may only be used at full moon after you buried a dead cat it's fine for me.. I guess.

paper gate
#

What

#

I'm honestly not sure what you're trying to say

maiden wadi
#

They think it's fine to avoid casting because they can't find a tutorial to teach them how to integrate bad marketplace code with bad tutorial code. So they're going to interface it to death.

void crescent
maiden wadi
#

The issue is that most marketplace code is an idea flimsily built on an methodology that is their own. You shouldn't buy marketplace code except to learn from it if you really need to unless it really is an agnostic code set.

Marketplace assets are a different issue entirely and if they're done correctly there isn't usually much issue integrating them.

paper gate
#

Thank you tho I guess

dark drum
#

Maybe I should make a few 'stop using interface' videos to try to balance out all the bad casting ones. 😅

void crescent
# maiden wadi The issue is that most marketplace code is an idea flimsily built on an methodol...

What I learned from it most of the time is that you don't save time but pay time. I remember that one survival pack that I bought years ago that had essential character functions for "easy merge into your project" purposes all into one big spagetti inventory. You could add that one component to your character but it still was a huge mess. You should not learn from such packs. Most of the packs with issues do some Cast BP_DemoThing all over the place and no single point where you can cut and replace.

maiden wadi
# void crescent What I learned from it most of the time is that you don't save time but pay time...

I disagree. You absolutely should learn from bad code. You cannot appreciate or understand why seemingly complex good code is the way it is until you have experienced bad code. And if you have zero idea how to make an inventory in the first place, you're probably going to make something even worse. This is why tutorials exist in the first place. You need starting points. Of course you're not going to be printing "Hello World" to the screen in almost any useful application you create, but learning how to print to begin with is important. This is also the reason you should not simply say casting bad, interface good. Anyone with decent experience can probably take a pack, strip it for what they need and integrate it with their own stuff fairly easily. Anyone with decent experience can correctly use casting, composition, and even interfaces perfectly fine. And anyone with decent experience will tell you that all three are necessary, but also that the BP community's obsession with interfaces is way too far and very bad for project health.

dark drum
#

Project Sunrise is pretty good for a BP only project. 🙃 It only uses 1 interface (If remember correctly, and yes this is a cheeky plug 😅)

There's a difference between making something do something and making a scalable system.

#

If you read through enough of the engine classes you start to understand how best to structure things though.

void crescent
# maiden wadi I disagree. You absolutely should learn from bad code. You cannot appreciate or ...

You don't have to pay for bad code to learn bad code. The point to buy something should not be to learn how to not make it but to save some time (and probably learn from it). At least if it's a good asset. Why use UE5 and not create from scratch? I'm learning developing since 40 years now and still learn each day. You never should stop learning. But at some point knowledge is just a further resource and you can't cheat on time. Even if you know how to do it right you still have to do it - or you pay somebody to do it.

maiden wadi
#

I vaguely agree with that. But I'd never touch marketplace stuff outside of assets. Programming packs are often made with a methodology that is their own. And trying to fit that into your own is usually painful and you are more than likely to spend more time correcting that than you save in the end. There aren't a lot of things in games that are truly time consuming to program if you have the experience. Specially if you've put in the time prior and keep a personal toolset you can work off of.

idle crescent
#

Are there any events or anything for when projectile movement hits? Especially that gives where it was going to move to before hitting? I want to model projectile penetration.

pliant socket
#

is there a way a SceneComponent can get a reference to another SceneComponent in a blueprint by means of the Details panel? i have a SceneComponent that handles grabbing an object in VR and i want to be able to optionally allow for a specified SceneComponent to be an anchor point

void crescent
# maiden wadi I vaguely agree with that. But I'd never touch marketplace stuff outside of asse...

I agree MP assets are often a mess and painful to integrate and it gets even worse if they start bug-fixing it and place screenshots. But that's probably more a limitation of BPs itself. Yet most of the time those casts to their assets made things worse. I don't agree that creating code for games is not time consuming. Probably depends on the game. It's consuming its part of time as well as all other aspects of a game. You can't animate and code at the same time. At least I can't. I enjoy both but I can't clone myself to do it in parallel.

dark drum
pliant socket
#

my issue is that i'm getting no results in my instantiated GrabComponent when i try to select another SceneComponent. in my GrabComponent I have a public GrabAnchorPoint field of type Scene Component. when I add my GrabComponent to something, such as BP_Lamp, i'd expect to be able to use the dropdown for the GrabAnchorPoint field to select another SceneComponent in that BP_Lamp

maiden wadi
#

I heard a rumor that functionality might be put in at some point. No idea how true or when.

pliant socket
#

how do people work around this? I noticed that in PhysicsConstraint, you're supposed to type the exact name of A and B as strings. do people traverse the blueprint and string compare?

dark drum
pliant socket
#

it's my own class, in blueprint

dark drum
pliant socket
#

SceneComponent

maiden wadi
#

Actually, seems like there is already a struct for it. Not fully implemented by the looks of it though.

maiden wadi
dark drum
#

Other options are getting attachment parent or getting children depending on what you're doing. I don't think these will be right but you never know, they might give you an idea.

pliant socket
#

thanks for the suggestions! i'm thinking i might make an empty SceneComponent class named BP_GrabAnchor

#

then get owner -> get component by class

#

i hope they add that functionality at some point. i've been having to do a lot of work creating message buses etc just to get around not being able to reference components in the editor

#

being able to pass a blueprint-defined callback in a blueprint interface would be really nice as well

#

i'm trying super hard to keep the reference chains as short as possible but it's not easy

silk cosmos
pliant socket
#

since this project will be handed off to someone else next year i worry about building its foundation on something from the marketplace

#

if that plugin loses support it'll be harder for them to maintain

mental trellis
#

Not everything on the marketplace is bad.

#

(just most of it)

silk cosmos
#

It's actually really easy to use. It's not required obviously but its been really convenient for me instead of doing tag comparisons to fetch components

pliant socket
#

do you mind linking it? i'd like to take a look 😄

faint pasture
#

I havn't found any workaround to using names but then again I haven't tried too hard, names work out fine.

void crescent
idle crescent
#

Right. Well, I'm just trying to figure out what will run with the projectile hitting something

void crescent
idle crescent
#

During it's projectile movement, and how far it wanted to go before it smacked into something.

#

It's a bullet, but I'm trying to make it pass through things if they're not that thick

void crescent
idle crescent
#

Ok.

molten aspen
void crescent
# molten aspen To be fair, this isn't just a problem with UE blueprints. Overly abstracted clas...

I never faced too many interfaces in BPs. 🙂 - Probably I never would if they start creating that don't use interface tutorials now. 😔 I only remember about underly abstracted classes (or code where the keyword "class" was like an alien and the ++ from C was meant to be C+std::string). Probably it depends how you got hurt in the past how you would code in the future. I know companies that work on Monolith-NG-NG-NG-NG because they did not get rid of the mess in Monolith-NG-NG-NG.

molten aspen
#

I've narrowed my ABP issue down to a single state transition and I cannot for the life of me figure out why I have Schrodinger's boolean - it is both true and false at the same time. Anyone have some insight into what's going on here?

frosty rampart
molten aspen
frosty rampart
frosty rampart
# molten aspen The character bp reference?

there are two different transitions at the same time and one is signing letters to true, the other is signing letters to false since these are checked in parallel, both may seem valid at the same time

#

also check if the variable is signing letters is properly set from the character blueprint if it is in anim bp

frosty rampart
molten aspen
void crescent
frosty rampart
#

so bind Try Get Pawn Owner to Cast to IsSigningLetters to the event graph and do this in a place like "UpdateAnimation" that works every frame, not only begin play but even put print string for debug, see "IsSigningLetters" value every frame

molten aspen
#

I did have some redictor reference update issues a little bit ago that messed up quite a few blueprint references. This may be just another symptom, but fixing it might not be so straightforward.

frosty rampart
molten aspen
frosty rampart
frosty rampart
#

and "Refresh All Nodes" in the blueprint ofc

molten aspen
frosty rampart
molten aspen
#

Ugh. So the bad references were worse than I thought. Now upon compile I get two instances of my ABP in two different folders. I deleted the unused (but still somehow referenced) ABP instance.

#

The problem was I renamed the containing folder so the old folder is still hanging around and wasn't truly deleted.

frosty rampart
molten aspen
#

I see now why I like working in C++ so much better than blueprints.

lunar sleet
#

Update redirectors after 5.4 iirc

frosty rampart
molten aspen
molten aspen
lunar sleet
#

Well, not everything

molten aspen
frosty rampart
#

hahaha

molten aspen
frosty rampart
lunar sleet
#

An 80 20 mix is usually right. You don’t wanna do things like Timelines in cpp for instance

frosty rampart
honest wraith
#

Does anyone know how to enable tags in the mutable plugin?

frosty rampart
frosty rampart
frosty rampart
left flint
#

so im trying to set up a camera rotation. i want the camera to rotate when you hold the middle mouse button then drag. but currently, the rotation starts as soon as i start holding middle mouse. im pretty new at this still. i assume its probably something simple. do yall see anything wrong with my input settings?

#

can share the rotation logic also if needed but i figure the problems more likely in the input settings

#

since the rotation is technically working its just working at the wrong time

lunar sleet
#

I used a chorded action iirc

left flint
lunar sleet
#

A chorded action requires 2 actions

#

First is a key, the other can be another IA

#

So MMB and a separate IA for MouseXY

#

In my case regular Mouse XY did panning and chorded turned off panning and rotated cam instead

left flint
#

huh. so a whole nother IA. im guessing id need to change up my BP some in that case?

true valve
#

is this about a struct variable not being initialized?

left flint
left flint
# lunar sleet Show your nodes

first one is my player controller. second is the pawn its attached to. I'm using the new strategy template added in 5.6 and these nodes are pretty much all ive added.

#

oh wait just a sec

#

i had this disconnected because i was just going to move on for now and come back to it later

dark drum
# left flint i had this disconnected because i was just going to move on for now and come bac...

if you're using triggers on the input action you need to use the 'Triggered' pin. This is what is fired when the trigger conditions are met. Started is when a key assoisated with the trigger is pressed, ongoing is while its still calculating. (like hold before the hold time period), cancelled is triggered before the trigger has completed and completed is when the trigger has completed.

coral wedge
#

Hey guys .. I have a hard time finding out why it is that my character are sliding when landing after a jump. Any ideas on how to fix this?

dark drum
storm solar
left flint
#

i did switch back to one IA instead of two chorded since chorded wasnt moving at all. i can try switching back

#

naw i tried again and when its chroded it doesnt work at all...

flat raft
#

How is this useful? (wrapping the BindEvent into a Funtion)

faint pasture
flat raft
#

Are you talking about my implementation or the practice ? 😄

faint pasture
#

the practice

flat raft
#

The Epic folks must allow this for some reason.

faint pasture
#

I mean they allow it but lots of stuff is allowed

flat raft
#

true

faint pasture
#

There could be a reason to use a function if you wanted some smarts to choose what dispatcher to bind to or whatever

#

but just directly wrapping doing the thing in a DoThing function is just some uncle bob level of silly

flat raft
#

ohh shiiittzzz... you're right

#

can choose which dispatcher to bind to

#

this is interesting also

#

can bind from an interface?

#

Is this a new 5.6 thing?

atomic hollow
flat raft
#

Is bind through an Interface any useful? I mean, I would still need a target

dark drum
flat raft
#

Why would a dispatcher need to be private though?

#

I'd assume if I'm making a dispatcher, I'd want other classes to bind to it.

dark drum
#

Lets say you create a custom uobject that does a specific task that might take some time and when it's complete you want it to have a callback. The event dispatcher would be private as nothing else should be triggering the callback except the custom uobject when it's completed its thing.

flat raft
#

Sure... but I can just make a event, and not a dispatcher.

#

Just looks weird to me I guess. lol

faint pasture
#

Just wait till you see a nail, then you'll know what the hammer is for

flat raft
#

how the heck does this work ?

dark drum
dark drum
# flat raft how the heck does this work ?

A delegate is a wrapper for an object and function name. (in its simplest form) When an event dispatcher is called, it goes through all the bound delegates and calls the desired function on the relevant actor.

flat raft
#

so, for that last pic, what would I put into the Event output?

dark drum
flat raft
#

I've never seen this before