#blueprint

1 messages Β· Page 261 of 1

lost hemlock
#

Do you think the problem is in that function?>

dawn gazelle
#

Also these conversion from soft to hard refs you're using aren't good to use...

warped juniper
#

Thank you for the in depth explanation. I'm currently using Ints for the values given a strict design choice but it should be convertible to floats in UI for interpolation purposes...
I appreciate the thorough insight on this very much!

lost hemlock
dawn gazelle
#

Put the breakpoint on the next node within the function

#

If it doesn't break there, then you haven't set up the binding on the text to call GetText0.

lost hemlock
lost hemlock
trim matrix
#

dumb question. but i have a game idea where the player has two screens (vertical but was also thinking possibly some horizontal) and can travel from one screen to the other for things like, digging under an obstacle or enemy, falling down a hole in the top screen and being stuck in a new area thats on the bottom screen, etc. kinda thinking like how ds/3ds games are layed out ig is a way i could describe it, is there a way i could do something like that in unreal? (image just for layout reference)

dawn gazelle
lost hemlock
dawn gazelle
warped juniper
#

Question about performance / organization
I have a system where enemies have 3 body parts each with a Condition (CON) value
Attacks target 1 or more conditions.
To deal damage to them, I'm trying to access the according variable for that part (Ideally also supporting some form of damage modification to be added later down the line)

What would be better:
A) Single switch at the start that changes the Set nodes based on what is getting damaged
B) A system with Select nodes that pick variables based on Enum

dawn gazelle
# warped juniper Question about performance / organization I have a system where enemies have 3 b...

At a fundamental level, selects are better for performance as it's a "non-branching" style of logic but I'm not sure how well that applies from blueprint logic. In reality, the difference between blueprint branching and selects would be absolutely negligible in the grand scheme of things unless you have literally thousands of these things running the logic every frame.

In terms of organization, if the logic required for each of them is all similar but just what variables are being manipulated are different, then selects are usually the way to go since they can produce less node clutter overall, but also have the slight disadvantage that it can make the logic slightly harder to follow, especially by those who don't work with selects all that often. If you end up having lots of select nodes as things vary between what is being selected for, that then can make it very confusing.

warped juniper
dawn gazelle
#

You'd end up selecting the variable to use based on the enum, and plug the output into the set by-ref target.

dawn gazelle
lost hemlock
#

But I can scrap the tick-binding all together and make it something more efficient

#

Something like this

warped juniper
#

Alright I revamped the code and it works better, looks better. Thanks!

dawn gazelle
# lost hemlock

Sure.... Ideally you'd use an.... Event dispatcher... Which your UI can bind to and you call when your inventory changes... Then your UI can just update itself when it receives the message. But for now... This will do so you can at least troubleshoot your problem if the binding isn't working for whatever reason.

lost hemlock
dawn gazelle
#

With the game running, look for this drop down near the play button when you have the widget event graph open....

lost hemlock
#

oh wait, im also never using the binding

#

I mean the newly exposed variable

dawn gazelle
#

If you click on it, can you select an instance?

lost hemlock
lost hemlock
#

Still... No change, and no break-point call either.

#

The numbers stay unchanged

#

so in conclusion I've taken out of the tick-binding function that block of code, and i've put it on the construct of my widget and have it connected to a recurring timer that connects to a custom event that finally connects to this block of code in purple and then at the end of everything I've connected this logic at the end to set the text because now im trying to use an exposed variable rather than a widget tick-bind

dawn gazelle
#

When running the game... Click on the Drop Down near the top where the play buttons are.

#

Select the first instance.

lost hemlock
dawn gazelle
#

This means you don't have any of these on the screen

lost hemlock
#

I do have it on the screen

dawn gazelle
#

I don't see any.

lost hemlock
#

oh you mean the ingredients list

dawn gazelle
#

It's this side you're conerned about, right?

lost hemlock
#

But I dont see anything, they seem idle

dawn gazelle
#

Click on the C7 instance.

lost hemlock
#

those white cables are supposed to visualize the transmition of electricity

dawn gazelle
#

Wait. It should break point on it.

lost hemlock
#

Im on it rn

#

No change crying

dawn gazelle
#

put a print string immediately after the timer event.

#

right here

#

check in the output log for the name of the widget where the log is coming from.

meager spade
#

Did you create your own set tool tip text function or are you calling the default one?

#

Target is Widget makes me think what you are really doing is setting the text that will appear when you hover the border/widget, no?

lost hemlock
lost hemlock
meager spade
lost hemlock
lost hemlock
dawn gazelle
#

You're setting the tooltip text, not the text box text.

lost hemlock
#

Even if it's setting the wrong thing, it still doesn't work

#

in the first place

#

the events dont work at all

dawn gazelle
#

We don't know that.

#

Just some odd behavior is happening.

meager spade
meager spade
#

Instead of calling Set Tooltip Text Call Set Text(Text)

#

Also, I have no idea if this will help or not, but save the return value from the timer. Not sure if blueprint will prevent it or not by not saving the handle but I would consider it good practice

meager spade
lost hemlock
# lost hemlock Im now having a break point on the second node in the fuction

Earlier I was doing something like this, so instead of an event, it was a function, it would have the ability to change stuff within the 3/5 number here, but we would not be able to have Unreal Engine force my view to where that breakpoint is when I run the game. And that was crucial because I needed that to debug why the numbers weren't working properly

dawn gazelle
#

Out of curiosity... if you go to here... and change the class.... Do you have two different WB_IngredientSlots classes?

lost hemlock
#

Everything went on panic red alert mode as soon as I did that

#

I guess I'll just refresh the node

lost hemlock
#

so now it created more of the same ingredients clone widget or smth

dawn gazelle
#

The real question is whether or not you have more than one WB_IngredientsSlot classes.

lost hemlock
#

By default it's Slot

#

i changed it to WB_IngredientsView

dawn gazelle
#

When you click the drop down, do you see more than 1 WB_IngredientsSlot in the list?

lost hemlock
#

oh wait

#

you mean WB_IngredientsSlot ?

dawn gazelle
#

The only thing I can chalk it up to is corrupted blueprint. There's no reason why you shouldn't be hitting the breakpoint in there, nor is there any reason why the print string isn't printing from the timer.

lost hemlock
#

Damn itπŸ₯²

lost hemlock
#

anyway at least now we know it's something to do with that blueprint πŸ‘

dawn gazelle
#

Why not try simpler first... Create a very simple blueprint that has a timer in it that prints... add it to viewport somewhere... Test it out... See if you can get a breakpoint to fire in it.

#

Maybe even try adding a WB_IngredientsSlotWidget on its own somewhere?

#

Feed in some random data.. see what happens

autumn pulsar
#

In a singleplayer game, what's the way to get the current player?

#

and the class of the pawn?

dawn gazelle
autumn pulsar
#

I'm trying to get data off the actor component off of my player character

dawn gazelle
#

What kind of blueprint are you trying to pull this data from?

#

Like a widget?

autumn pulsar
#

yeah

dawn gazelle
#

Get Owning Player Pawn > Get Component By Class > Select the class > You can now access the contents of that component.

autumn pulsar
autumn pulsar
#

What's usually the best way to sanitize an overlap event so I only grab the player character?

frosty heron
#

There could be more than 1 player character in the world depending on the game.

autumn pulsar
frosty heron
#

I will go with casting

#

Player character will always be loaded anyway

dawn gazelle
#

Can always do Other Actor == Get Player Character 0 if you don't want the hard ref too.

autumn pulsar
#

well I'd hope it's loaded if it's generating an overlap event

frosty heron
#

If you want to always grab the character the player possess, you can do what datura says. Get player character 0

autumn pulsar
#

yeah I'd prefer to do it that way since I plan to make a few versions of the player character

dull crest
#

total noob question, what's the correct way to have a blueprint thats just a basic class?

I want to define a data type that TLDR stores a float, but also features a bunch of helpful functions for converting other forms of data to a float.

Basically what I'm trying to achieve, is have a centralized place to transform between various definitions of rotations to.. what I can best describe as "screen space", i.e. imagine an origin at the center of your monitor, with the "0 degree" definition going upwards vertically from it, with positive angles going clockwise.

This has been elusive since my main use case for this involves deriving this angle from mouse movements, but by default (atan'ing the delta of the mouse) defines the zero-degree axis as going horizontally left from the center of the screen

dull crest
#

i assume this is schizophrenically hard to interpret. What i'm trying to achieve is basically like


class AttackAngle {
  
  public float angle
  
  public AttackAngle FromMouseInput(float deltaX, float deltaA) { 
    ....
  }

  public AttackAngle FromControllerInput( ...) { ... }
}

dull crest
# autumn pulsar Actor Component

I see that this still brings with it a bunch of stuff regarding lifecycle etc, is there truly no way to get basically a struct that has functions?

autumn pulsar
#

it lives and dies with the actor afaik

dull crest
#

is this just how UE handles garbage collection? I'm not super familiar with C++ yet

autumn pulsar
#

I think if you want something persistent you'll need to make a manager actor

dawn gazelle
dull crest
#

hmmmm I might be approaching this wrong to begin with tbh; thanks for answering, I think you've given me the "right" answer

autumn pulsar
#

Oh yeah there's function library

#

don't think it stores variables though

dawn gazelle
#

They don't.

autumn pulsar
#

You can make structs with datatables

#

err

dull crest
autumn pulsar
#

structure class

dull crest
#

I think maybe you're right and I should just add util functions and store the actual data I need with primitive floats

#

for context the problem I'm dealing with is that I'm finding myself "handling" the differnet axis definitions in many places and am certain im gonna end up repeating myself

autumn pulsar
#

function library sounds like what you want

dull crest
#

like it's already making maintenance a headache, I'm trying to experiment with changing how I define the initial "angle" being dealt with and its cascading and busting a whole bunch of other stuff

#

forgive me for being vague btw i am kind of sick with covid atm and im struggling to communicate

#

i appreciate your help a lot guys

autumn pulsar
#

no worries

dull crest
#

(all of this is made way harder by me not having version control btw πŸ™ƒ)

#

still havent quite figured out how to set up p4 without building an onprem server or pay for cloud hosting xd

(nevermind how much p4 itself costs, absolutely struggling to find that info)

#

but thats off topic

autumn pulsar
#

Version control? what's that? clueless

dull crest
#

fun fact I left Roblox dev for Unity because i couldnt work without version control anymore

#

then Unity did the thing so now im a UE dev

#

and now i dont have version control again

autumn pulsar
#

I've never actually worked in a proper version controlled environment

#

Data hosting is so expensive

#

I ought to version control locally

#

Wrapping my head around doing doors

dull crest
#

ive only ever used git, genuinely life changing stuff

#

its so good

autumn pulsar
#

I think I'm overcomplicating it

dull crest
#

doors?

autumn pulsar
#

I'm trying to make a door base

#

but when you try to open one, a door can do many different things

#

slide up, slide to the side, etc

dull crest
#

oh literal doors LOL

autumn pulsar
#

yeah lol

#

I guess I'd be better off with an interface

dull crest
#

intuitively I'd say you actually just need a base class right

autumn pulsar
#

A wall is just a door that doesn't realize it yet

#

Was thinking maybe a door container BP that has the visual door BP

dull crest
#

Door -> SlidingDoor, SwingingDoor, VerticalDoor


class Door {
  
  bool currentlyOpen

  default void toggle() { }
}

etc

autumn pulsar
#

C# is so ugly lol

#

public static void

dull crest
#

yes

c#

😬

autumn pulsar
#

even worse fatdog

#

C++ is a dumpster fire as well

dull crest
#

i think theres multiple ways to slice the door onion, personally I'd probably give it state ("open?") meaning i'd use a base class

#

rather than an interface

#

btw for extra thoroughness I WOULD give it an interface for player interaction though

autumn pulsar
#

Well, I have a button

#

and it could open a door

#

or trigger something else

#

so I want to use an interface for that

dull crest
#

I_PlayerClickable

that has a function onClick or something

that then is overriden on the doors such that it routes to the door's open() method orwhatever, y'feel me?

autumn pulsar
#

yeah that was my plan to have an interaction interface

dull crest
#

sound plan as far as I can tell πŸ™‚

#

what are you struggling with? were you venting or did you want my 2cents?

autumn pulsar
#

feels weird to have an interface for one thing though fatdog

dull crest
#

one function does not mean one implementation πŸ˜‰

#

ive been doing professional SwEng for a bit now and I can tell you that the more things an anything does the more i hate it

#

personal take tho

autumn pulsar
#

Mostly just trying to figure out a sane way to do this

#

I think the simplest would be a double BP

#

one to handle the IO and then the other for the visuals

dull crest
#

dont forget theres more than just visuals

#

they kind of have a state

#

open or closed

#

and that im guessing has physics implications for your scenario

autumn pulsar
#

well my doors are planned to be kind of cinematic open and closing

dull crest
#

i cant say that i remember the last time i programmed a door though so grain of salt etc

autumn pulsar
#

physical doors fatCaryll

dull crest
#

do blueprints support multiple inheritance?

#

googlable question my bad

autumn pulsar
#

you can put BP inside BP

#

but my main goal is to let the door do its thing, then I can just cast any interactions to its parent

dull crest
#

you've lost me here

i suspect at this point im making the situation worse rather than better

autumn pulsar
#

I've lost myself too don't worry fatdog

#

I'll eventually figure this out

maiden wadi
lost hemlock
maiden wadi
lost hemlock
#

I think it would be more efficient if all the updates were being done inside of the same Update event that resides in the main menu as well.

dawn gazelle
lost hemlock
#

Like a centralized update system, rather than tick-bindings

dull crest
dawn gazelle
maiden wadi
lost hemlock
#

The Item Amount Needed seems correct

dawn gazelle
#

What about the inputs

lost hemlock
copper chasm
#

I feel like I am overlooking something very simple: When my gamelog prints an entry to my UI, I have a text block that will capture a timestamp in a datetime structure. But as I print more entries, the time on ALL of them updates to the time on the most recent one

dawn gazelle
# lost hemlock

Ok so right now your WB_IngredientsSlot widgets are showing 0/#, right?

copper chasm
lost hemlock
#

numerator/denominator <-------- Only the **denominator **changes, but the denominator shouldn't change

#

It's actually the opposite, and I did all this by following everything the person in the tutorial did, and still came out wrong, so it looks like it should be the opposite, **denominator **should be fixed, and **numerator **should be affected every time you pick up something.

dawn gazelle
#

That' not what your problem is right now.

#

Your function isn't returning values.

#

the inputs were important to check because we needed to make sure you were passing legitimate values to it.

#

I wanted to verify what you're seeing... You should see 0/<whatever value is required for the craft>

#

which should change at least once from the original value of 3/5 (the default text you had in the field

#

SO.. the problem lies in your inventory system.
So now you need to check how items are are searched for in your inventory, and that items are properly being added to your inventory.

lost hemlock
#

It seems like this function node is also called down here

#

So this function has a branch which seems more like an airport security, but this security lets all the data pass anyways no matter what happens

#

(This is from my InventorySystem Component blueprint)

dawn gazelle
#

So the very first item doesn't match, it'll return anyway.

#

disconnect the false execution to the return node and run it again.

lost hemlock
#

So they are all "Names" now

#

but why is this not changed?

#

All my items names are literally names of type name

#

where's before here I was using string type. Comparing it to Name Item ID..

#

So now on this function im comparing Name to Name

rugged junco
#

new on here and have been doing reworks on my project. how do i notify when the character hits the ground once they finish a jump? i want it so the character cannot dodge in mid-air and i've been trying to use gameplay tags to do this, but can't seem to have it so it removes the tag after the character lands. any advice?

autumn pulsar
#

types are weird like that

lost hemlock
#

oh wait I think it's a different struct

dawn gazelle
#

Text values are supposed to be something that is localizable. So when you have text you want displayed, that's when you use Text as if you ever want to release your game in different languages you'll be able to easily replace the text with a localized version.

Names are effectively "named values" - in the background names are stored as numbers but are human readable otherwise - this is part of the reason why it doesn't convert from text.

lost hemlock
#

or everything into string

pulsar osprey
#

names very efficient to pass around! you can explicitly convert them to text iirc

dawn gazelle
#

Of course, you're not prevented from doing some monstrosity conversions, but those end up costing more in the background to do...

#

And no, you don't want to just convert all to one or the other.... You want to use the appropriate type for what it is you're trying to do.

#

Name = Good for IDs for things.
Text = Good for displayed text that can appear in UI and the like.

#

For an item definition, you'd want to probably use both. One as the means to identify, the other as the displayed text whenever you need to display it to the user.

maiden wadi
#

Converting Names directly to Text. 🀒

#

Localization is such a brutal thing to learn.

dawn gazelle
dawn gazelle
#

Bytes | Type

16 | FString
12 | FName
24 | FText

lost hemlock
#

It seems like it's aware of when it should let me craft and when not, but seems now only the number display is the last missing piece of the puzzle

lost hemlock
nova grotto
#

is there a way to constrain a springarm to a plane?

dawn gazelle
#

Yea it's all to do with how they're stored.
FName is smallest because it's not really storing the name as a string itself... it's storing a value associated to the name.
String has to store a series of characters. I'm 99% sure it can actually go beyond that 16 bytes for how long the string actually is.
FText is set up to store a table and ID so that it can locate the appropriate text to be used with the particular field. It doesn't normally directly store any text.

rugged junco
lost hemlock
#

I found out that by connecting these, I no longer have the color indication of when I can afford to make something

#

but now by connecting this cable, you get back the number indications

#

they are working fine, only thing is they are in reverse

#

*So now you're getting no color indication, it always stays red, and the numbers get passed on the *denominator

#

numerator/denominator <----

#

denominator should be fixed at /1, numerator can be any number over zero.

dawn gazelle
#

Are you sure about that.... Usually it'd be indicating current amount in inventory / amount needed for craft

gentle urchin
#

I never realized this was the crafting menu

#

Thought it was an inventory lol

lost hemlock
dawn gazelle
#

I'll give you a hint. It has something to do with this variable.

lost hemlock
dawn gazelle
#

That's definitely part of it.

#

But why is it part of it?

lost hemlock
#

because it should be connected

#

thats passing the values directly

#

to the ingredients calculator system

#

from the inventory

dawn gazelle
#

You're running the IsItemInInventory function which returns true if the inventory has the item, and also the quantity of those items in the inventory but you don't have the quantity hooked up anywhere.
Right now, what value is being passed into the text display?

lost hemlock
#

Oh wait I think I know why, maybe its because I didnt have this connected earlier. Maybe

dawn gazelle
#

Ahhh!

#

There you go πŸ˜„

lost hemlock
#

But it still looks reversed

#

wtf

dawn gazelle
#

It's not reversed. Your branch there doesn't look right.

#

You're checking if Quantity in Inventory >= Item Amount Needed.

lost hemlock
#

This comes from here

dawn gazelle
#

You're only proceeding with the logic if this is false.

#

You want to proceed with the logic if it is true...

gentle urchin
#

The branch would mostly be a color selector, and first false disables craft button?

lost hemlock
#

So perhaps this branch would be crossing it's legs there?

#

But it still doesn't work

#

no change noticed

gentle urchin
#

Theres also a ton of data being pushed all over the place

dawn gazelle
#

That's because that's not what I was saying at all.

lost hemlock
dawn gazelle
#

See this one here/

#

It's only executing if false.

#

You want this one executing when true.

lost hemlock
#

I did try that one as well.

gentle urchin
#

You want it on both, dont you?

dawn gazelle
#

Not "as well". Only.

gentle urchin
#

True = has quantity

#

Or am i looking at the wrong branch?

#

Yes i am

lost hemlock
gentle urchin
#

Ignore me

dawn gazelle
#

You know you have the item in the inventory.
Therefore, you want to know whether or not you have >= to the required number of items in your inventory, and IF TRUE set the colors and use the appropriate formatting for the text.

dawn gazelle
#

Let's see what you have for your screenshot currently.

#

Sorry for my confused wording.... I've been fighting a headcold since early morning yesteray.

lost hemlock
dawn gazelle
#

So now back to breakpoints. There's probably something wrong in your inventory that it's not returning the correct numbers.

gentle urchin
#

(Dont think the last branch is necessary really.. quantity should return 0 if item wasn't found ...)

dawn gazelle
#

ALSO... Going to suggest this... Disconnect the completed pin from this return node. Add a second return node and leave it all disconnected except fro the execution path from completed to it.

gentle urchin
#

You also shouldnt be using the same return node

#

Always use explicit return nodes when using fast tracked returns

lost hemlock
#

Im using an event

dawn gazelle
#

I'm talking about in the IsItemInInventory function.

lost hemlock
dawn gazelle
#

That won't fix the problem, but it's makign sure you're not returning values that shouldn't be returned.

dawn gazelle
#

Yea, connect the completed pin to that empty one.

gentle urchin
#

Is items unique in inventory?

#

If not, this function is wrong

lost hemlock
dawn gazelle
#

Well, right now he's not even registering any items at all, let's see if we can at least get him a number to be displayed.

#

Hit play, gather some rock or wood or whatever... bring up your crfting window where it's displaying the items needed to craft, then put a breakpoint on the for each loop in that funciton. You should then be able to inspect the contents of your array there.

lost hemlock
autumn pulsar
#

Is it possible to tag triangles in collision?

#

to make special collision cases

lost hemlock
dawn gazelle
#

No they are not.

lost hemlock
#

But I see them being added

#

every time I open the crafting menu

dawn gazelle
#

You have 5 wood in your inventory but it displays 1 on there.

#

you have 4 rock, but it displays 3 there.

lost hemlock
#

Thats a different play run-time

dawn gazelle
#

Well part of the problem is this.... Why is your inventory saying item amount needed based on the contents of the iventory?

#

How is this even updating... I don't know.

gentle urchin
#

πŸ˜†

lost hemlock
# dawn gazelle Well part of the problem is this.... Why is your inventory saying item amount ne...

Hello everyone,
Welcome to the next part of our series on the Unreal Engine 5 crafting system!
In this video, we are going to update the Ingredients Widget, show the item Amount that is needed to craft and also show if we have enough items in the inventory by a red border.

Previous video: https://youtu.be/KTtoLPpg49w
Discord: https://discord.g...

β–Ά Play video
gentle urchin
#

Amount required should come from the recipe

lost hemlock
#

He shows the result of each video at the start, at first on the first few seconds of the video he gives an explanation for what its gonna be about

gentle urchin
#

Current Quantity -> is requested from Inventory

Required Quantity -> is requested from crafting recipe

lost hemlock
#

because the update will get taken care of in the next parts

#

on part 9 he says is where he guides through the update

#

but I can't move on with the update if I first dont fix the other more basic stuff

dawn gazelle
#

But the numbers and color indication won't work correclty if you're not getting the values right.

#

You're doing this bit on construct, that means it'll set that value one time.

#

But then you're saying you're seeing it increment the "Item Amount Needed" each time you pick something up....

#

HOW can it being doing that if you don't have logic changing it somewhere else?

gentle urchin
#

There is only one answer to this riddle

dawn gazelle
#

Do you still have a bind set up on that text field?

#

Are you setting that value somewhere else?

lost hemlock
#

actually i do have a bind on it

#

but it doesnt work, right?

dawn gazelle
#

If you ahve a bind set up , the bind would end up taking precedent since it executes every frame.

lost hemlock
dawn gazelle
#

I didn't say you were incrementing it somewhere... just that you're seeing it increment.

lost hemlock
#

or where am I incrementing?

gentle urchin
#

Lol

#

This is the correct function to use

#

Im confused why you have the other one at this point

#

Especially since it returns what looks like quantity. But its really "QuantityInFirstFoundSlot"

dawn gazelle
#

other than on the construct of the widget

#

God my spelling is so bad right now too @_@

lost hemlock
#

oh wait thats not a set

dawn gazelle
#

OH... You're deconstructing the widget entirely?

rich coral
#

why im only can get the state weight (cover walk left)? but i have cover walk right or idle too

lost hemlock
#

only once

gentle urchin
#

Remove that chain of logic

dawn gazelle
#

concerned

lost hemlock
#

This is no longer in use though

lost hemlock
gentle urchin
#

The last two nodes are bs

dawn gazelle
#

Yea you don't need these

#

Then replace this function with "Get Item Amount From Inventory"

#

Remove the first branch. The second branch true goes to top, false goes to bottom.

#

Then it should work.

gentle urchin
#

Wellll

#

maybe

#

I share your concern, to put it thah way lol

lost hemlock
#

This is almost fixing it

#

But right now I've picked up more than 4 rocks and some wood

#

but no response

gentle urchin
#

It disturbs me that you use hand typed identifiers for items

#

When gameplaytags exists

#

A silly typo would break this setup

dawn gazelle
lost hemlock
#

ok I think you're right, I could use actor has tag to make a comparison and then work with them that way? @gentle urchin

dawn gazelle
#

GameplayTags != actor tags

gentle urchin
#

^ sad truth

#

Very very sad

lost hemlock
#

I already had problems earlier when I tried to change "Rock" name to "Stone" and the color indicator thing didnt work on the rock but everything else

frosty heron
#

Comparing hard coded characters in 2024 lurkin

jaunty jolt
#

Can anyone explain me why the random changes twice ?

frosty heron
#

The moment you need to rename it you will have to go through dozens of bp as well

frosty heron
#

If you want to use the same result, cache it

#

(Promote to variable)

jaunty jolt
#

so each white pin it executes all the code before????

gentle urchin
#

Pure nodes connected to it.

frosty heron
#

You might want to read about pure nodes

jaunty jolt
gentle urchin
#

Undo the collapsed node

#

Make a function instead

frosty heron
jaunty jolt
gentle urchin
#

It was for the cachimg part with local vars

#

Collapsed are still just regular event graph, so no local variables

jaunty jolt
#

so collapse nodes have this flaw

frosty heron
#

Oh yeah, local variable would be a available for function

#

But you will lose the ability to do latent action

#

Pros and cons I guess

gentle urchin
#

I never ever do collapsed πŸ˜†

jaunty jolt
#

its great

gentle urchin
#

If i need it latent, i use macros

#

If not, i use functions

frosty heron
#

I did in earlier days, now I don't do anymore logic in bp

#

Only prototype stuff

#

That bp corruption experience terrifies me

gentle urchin
#

Gotta burry the axe with it

frosty heron
#

But only happend because I did cpp stuff I guess

gentle urchin
#

Stay safe with backups

frosty heron
#

Never had problem when I did bp only

gentle urchin
#

I have to much faith

jaunty jolt
#

macros also dont allow local variables?

frosty heron
#

Back up doesn't help when it break silently

#

πŸ₯Ή

gentle urchin
gentle urchin
frosty heron
#

Nooo way

gentle urchin
frosty heron
#

I can't believe it πŸ₯Ήyou out of all people

gentle urchin
#

Only 1 of my 4 active projects got source control

frosty heron
#

I see

gentle urchin
#

Which ofc is bad

#

Stupid as hell

#

Its what happens if you drive your car 2 million miles and you never have a flat tire

frosty heron
#

Stepping on a minefield is a wakeup call

gentle urchin
#

You start trusting it

#

Untill it rips the floor from beneath you

frosty heron
#

Yup, until the day it break 🀣

jaunty jolt
#

sorry to interrupt you guys. but how does a macro get local variables

gentle urchin
#

Right click in the graph

#

Local integer/float or smth

#

Afaik locals in relation to macros isnt really locals

#

They're just hidden member variables

jaunty jolt
#

so only function will work in this situation

gentle urchin
#

No, it will work for a random node

#

Also

#

In 5.X they added an option to convert pure nodes to unpure ones if im not mistaken

jaunty jolt
#

this seems to be what you are referring to

gentle urchin
#

Set by ref

#

Yes

jaunty jolt
#

though there is no Local Name

#

unfortunately

gentle urchin
#

Thats prob true πŸ˜•

#

Prob local string tho

#

If you really wanted to..

#

But

#

Youd save the local index

#

Not the name

#

And get the name from the name array with the index

jaunty jolt
#

ahh i can just use the integer of the first array

gentle urchin
#

Peeersonally, unless latent, id put this in a function instead

#

Macros are like.

Code templates.. when you use it you 'paste' the code template into the code where you use it, resulting in more code to compile and execute

#

Compared to a function which only exists in one place in memory, is compiled once, and is reused every single call

gentle urchin
#

Only caveat being functions are required to return instantly, and thus cant be latent / delayed in any way

jaunty jolt
#

though this set by ref var is amazing

gentle urchin
#

Its usefull for maany things

#

That along with a select node can be pretty powerful in terms of code cleanliness and readability πŸ˜„

#

Also GameplayTags are worth getting used to. Predefined hieriarchal list of tags with a bunch of utility functions and typo safety !

jaunty jolt
frosty heron
lost hemlock
#

Oh wait

#

This is my struct

frosty heron
#

Why is the rarity a byte 🫠

#

Also hard reference in data table is bad.

#

You will end up loading all the icon/image on the entire DT.

gentle urchin
#

Stats, quests, npcs, scene cameras, you name it, i got a tag for it

lost hemlock
#

I'll put it back πŸ‘

untold fossil
#

Hello. Is there a way to find out how much seconds have passed using the time nodes? I want to include a timestamp into a spawned actor and then I want to later check the actor's timestamp against the "Now" node to find out how many seconds have passed. How would I do this?

#

Would this work?

gentle urchin
#

On spawn -> save now to a variable

#

Yepp

#

I thiiiinkn

#

It returns the full thingn

#

So youd need to combine everything bigger than and including seconds

untold fossil
#

ah right

#

but wait

gentle urchin
#

Unless theres a seconds node avalible

#

Directly from timespan

untold fossil
#

how about this?

gentle urchin
#

Yepp

untold fossil
#

πŸ‘

#

Will test if this works, thanks

#

yup it works perfectly

#

noice

tiny tundra
#

is there a way to check if an actor doesn't have any tags?

normal raft
#

array length

tiny tundra
#

yeah just figured it out. if length == 0. But thank you

frosty heron
gentle urchin
#

10 ways to skin a cat plushie lol

kind estuary
#

I have a function in one Widget called Deliver Medicine.
So when i click on a button in my widget it delivers medicine.
But then i need this function also in another widget and in a character.
So i just copy pasted it in 3 places.

#

Obviously this is not a good practice

#

What should i do here. BlueprintFunctionLibrary sounds too much and not necessary

frosty heron
#

the issue is why the function lives in the widget to begin with

#

widget just read and display info, the sooner you accept this workflow the less stress you will have.

kind estuary
#

because its called from the widget

gentle urchin
#

pastamaker will make pasta

frosty heron
#

called from the widget doesn't mean deliver machine need to live in widget...

#

get a ref to an actor that is actually RESPONSIBLE for delivering the machine

#

Widget->GetTheDeliveryMan->DeliverMachine

kind estuary
#

okay so i put it in the character and then cast it then deliver medicine

frosty heron
#

well does it make sense for the player to deliver the machine?

#

really depend on the context

kind estuary
#

can also create uobject

#

ah

frosty heron
#

or just an actor manager

kind estuary
#

uobject, create uobject, MedicalStuff->Deliver

frosty heron
#

again, depending on the goal....

dark drum
frosty heron
#

like if you have a BP that can edit rooms and have functions like deleting walls or adding props.
Then widget just go ButtonClicked->BP_RoomManager->DoIt'sThing

#

@gentle urchin I'm gonna try to attack the dot product today lurkin

kind estuary
gentle urchin
#

Meanwhile im doing stupid shit with my cameramanager

#

inflicting pain and suffering on my pc

frosty heron
#

no pain no gain

dark drum
#

Does anyone know what I'm doing wrong? The cursor is on the stump but the trace hits the ground to the right. (The cursor doesn't show when I do a screen grab lol)

#

I thought I might need the position scaled by DPI but it gives the same result.

gentle urchin
#

can't you just get hit result under cursor?

#

does all this crap for you

dark drum
#

Making the window smaller makes it worse. (cursor still on the stump)

gentle urchin
#

they're always so sneaky

#

GetHitResultAtScreenPosition is what they use in c++ πŸ˜„

#

not bp exposed, ofcourse

#

who'd ever need such a thing

#

internally they seem to be what you're doing in the end

#

        return GetWorld()->LineTraceSingleByObjectType(HitResult, WorldOrigin, WorldOrigin + WorldDirection * HitResultTraceDistance, ObjParam, FCollisionQueryParams(SCENE_QUERY_STAT(ClickableTrace)
frosty heron
#

just went thru the function, it looked like it does exactly the same thing

gentle urchin
#

only differencei can see is mouse position

#
if (LocalPlayer->ViewportClient->GetMousePosition(MousePosition))
dark drum
#

I find it funny how we all went and looked at the player controller class. πŸ˜…

dark drum
gentle urchin
#
//BP node:
FVector2D MousePosition = FSlateApplication::Get().GetCursorPos();
FGeometry ViewportGeometry = GetViewportWidgetGeometry(WorldContextObject);
return ViewportGeometry.AbsoluteToLocal(MousePosition);

// cpp :
FIntPoint MousePos;
Viewport->GetMousePos(MousePos);
if (MousePos.X >= 0 && MousePos.Y >= 0)
{
    MousePosition = FVector2D(MousePos);
    bGotMousePosition = true;
}
#

so BP gets it through slate

#

while cpp gets it from viewport

#

which uses some CachedGeometry

dark drum
#

Using the wrong 'Get Mouse Position' node it seems haha. You know because there's 3 of them. o.O

gentle urchin
#

Haha yeah

#

let's givie them options lol

frosty heron
#

does it work now?

dark drum
dark drum
gentle urchin
#

keep it spicy πŸ˜„

dark drum
#

Pick you're poison.

kind estuary
#

Because after you Give Medicine, there's a new dialog message, and this is called from the widget

#

Cant be called from the character

frosty heron
#

If it's part of the dialogue system, then make the function in the dialogue manager.

#

then Get the dialogue manager and call it to do it's thing

dark drum
dark drum
kind estuary
frosty heron
wide beacon
#

Hello, im creating a point and click adventure game for my uni project, im struggling finding a way to create a simple inventory system that stores the items, so when i interact with a pedestal at the end it takes those items and completes the game. i was wondering if anyone could guide me in the right direction when it comes to using blueprints like this. thanks!

thick flame
#

Hey! hoping to get some advice here. Im trying to make it so the player can "push off of" surfaces in a zero gravity environment. It mostly works at the moment, but sometimes the player will just start moving in a circle rapidly. Is there a way to make the movement only a straight line?

dark drum
dark drum
thick flame
lost hemlock
#

Does anyone know what this is?

wide beacon
#

its not meant to be complex but im just so new to all of this

thick flame
dark drum
dark drum
# wide beacon okay thank you very much!

That's assuming you actually want to learn how to make an inventory system. With what you've described, you could probally just get away with an array on the player character using gameplay tags.

wide beacon
frosty heron
#

Data Assets are prefered majority of the time.

thick flame
frosty heron
#

the pitfall with data table for most new comers is they use hard reference on their DT

#

and they end up loading the items in the entire game when they just need to display a few

thick flame
#

last DT i used was for a camera position table

frosty heron
#

Youtube videos are notoriously a bad trap for such important system

dark drum
thick flame
frosty heron
#

written articles are normally a great source of info

#

youtubers tend to copy other youtubers

#

wrong information passed around

thick flame
#

it sucks that the official documentation is so outdated

frosty heron
#

we have victims saying oh don't use cast use interface on daily basis

#

@gentle urchin sorry to bother you, what would be the range for the dot limit?

thick flame
#

ive heard that too- ive been trying to get away from casting, bc like a lot of beginners i used it for everything. I just saw interfaces but havent used them

frosty heron
dark drum
thick flame
dark drum
# thick flame good to know

Function only base classes that you then create children of is the way to go in my opinion. Casting to these types of base classes are pretty much free as they would most likely already be loaded.

gentle urchin
#

-0.7 was suggested

#

goes from -1 to 1, in full range

frosty heron
#

ahh yeah, thanks

dark drum
thick flame
dark drum
thick flame
#

it could be that the when I look around, im clipping the characters hitbox into the ground? its a first person game so its a little hard to tell

lost hemlock
#

How is it possible that the top part is 5 and the bottom part is 1 and this is FALSE?

dark drum
normal raft
#

how would implement this

#

not sure how to create a new BP_WEP_OBJ..

dark drum
normal raft
#

create a array of weapons from a structure

dark drum
normal raft
#

First so i can define custom weapons in the graph

#

then so the player can switch between them in the game

tropic token
# normal raft

you don't need this set members. you aready created it with Make node

thick flame
dark drum
gentle urchin
normal raft
#

ok let me check into those two concepts

frosty heron
dark drum
frosty heron
#

In this talk, Tanglewood Games will present how to add extra functionality to the Unreal Editor by leveraging its existing framework, enabling the creation of tools that feel native and intuitive to use, and that are tailored to custom projects, modular, and easy to maintain.

These frameworks will be presented through a series of practical e...

β–Ά Play video
#

just more editor utility stuff

gentle urchin
#

Ohh fancy that

#

I just left it as an input field

#

You can specify min max values there

frosty heron
#

yea I should probably just leave it as input field

gentle urchin
#

And it has built in slider

frosty heron
#

I don't know why I am even trying with this crying , pretty sure I don't even know how to save the value.

dark drum
frosty heron
normal raft
#

ah and yep all it needed was "Add BP Weapon Component" noded to make it logical

frosty heron
#

not that I have done my own weapon system

#

you probably want to create the UObject when you initialize an item from a data asset

gentle urchin
dark drum
normal raft
#

yeah lol i had a little tour of that recently just slap functions in the h file and get nodes like @gentle urchin says

gentle urchin
#

it's pretty awesome once they work

dark drum
thick flame
frosty heron
#

got it working but I am really wasting my time doing something I don't need lurkin

clever comet
#

Is there a way to fix an actors capsule component inplace during a root motion animation? πŸ€” So that essentially the root moves but the capsule doesn't

pallid dagger
frosty heron
frosty heron
#

i'm trying to filter out targets that is behind my characters

pallid dagger
frosty heron
gentle urchin
#

only because you're doing editor extension

#

instead of just doing the code πŸ₯²

pallid dagger
thick flame
frosty heron
#

not sure what the goal there

#

you want the player to bounce when colliding?

gentle urchin
frosty heron
#

brb 2 hours

gentle urchin
#

Its not a perpetual motion machine you're making πŸ˜…πŸ€”

thick flame
manic orchid
#

Hi chads! Just wanted to make a quick line trace function that checks if certain Interface is implemented onto an object.

My Idea was to pass interface reference as input parameter of the function, but this doesn't seem to work... Why is that? What type do I have to choose for it to be compatible?

lost hemlock
#

Why does this number always remain stuck?

frosty heron
#

Why are they in different order?

gentle urchin
#

But whyyyy u do this in cpp πŸ˜‚

frosty heron
#

I'm using the same function..

gentle urchin
#

You couldve asked and i couldve sent you the snippet πŸ˜‚

#

Im using it for my custom world space screen space widgets 🀣

#

Oh well wheres the fun in not making it yourself !

frosty heron
#

@gentle urchin having the visual... I kinda understand it more....

#

so one arrow that goes from -1 to 1 (clock wise)
and another arrow that goes from -1 to 1 (ccw)

gentle urchin
#

Yepp

#

meanwhile trying to implement my first pathfinding algo

#

wanna avoid copy pasting from the interwebs

#

so i truly have to grasp the fundamentals πŸ˜„

frosty heron
#

I never touched EQS in my life

#

is that something that you will need?

gentle urchin
#

not using EQS

#

I already have an array of my tiles (its a grid based game)

#

so it should be fairly simple to implement pathfinding really

frosty heron
#

@gentle urchin ty for the codes, I might have to ask you about tiles next time πŸ˜… . I would need to use that for dungeon generation

gentle urchin
#

Im using DA for that

gentle urchin
#

I got some easing aswell

#

Priority / Soon Irrelevant / No Priority

#

So basically 2 dot values to check for using it as an alpha for widget opacity

maiden wadi
#

EQS is fun. Wrote a bunch of that lately for AI.

vagrant remnant
#

trace βœ…
differenciating wall and floor βœ…
setting cube's position to impact location βœ…
rotating it along the impact rotation thingy ❌

how can I get the needed rotation for my cube without making my brain explode of hard math?

gentle urchin
maiden wadi
#

They're surprisingly easy to write. Funny enough the logic they need is harder than the test code. Pathfinding ones get a little iffy, but like basic target selections and stuff are a breeze.

copper chasm
#

Physics, I think? πŸ˜…

vagrant remnant
#

I am just playing around with the engine since I'm a newbie πŸ˜… there needs to be a lot of fixing for this

copper chasm
# gentle urchin Im using DA for that

I went alllllllll the way back to start to try and include replication for the gamestate and include a logging system I can use in game and for debug, might revisit your suggestions for grid generation - might actually make some headway

maiden wadi
vagrant remnant
#

currently I'm tracking the Location and the Normal of the trace hit

maiden wadi
#

Should be all you need, mostly. Just need to set the cube's world rotation to the Normal converted to a rotator.

vagrant remnant
#

sounds like it makes sense

#

what is the trace's normal btw?

#

is it the normal of the face it Hit?

#

I'm not on my pc currently

maiden wadi
#

Yeah. If you want something more normalized on a messy wall you would need to do more traces after the initial to establish more points to normalize against, but for an initial implementation the original normal should work.

vagrant remnant
#

nah this is just for fun and even if it was a game I would make extra hitboxes for it

vagrant remnant
frosty heron
austere vapor
#

Hi all! I'm working on a rail shooter where you travel through an endless maze, with each room containing enemy spawns, traps, etc. What would be the best way to go about creating a map that can fetch and spawn/insert these pre-made levels? Some of these rooms are themed, so I want to be able to select from a few at a time. I've seen a lot of different stuff like level instancing, level streaming, world partitioning, packed level blueprints, theres a lot! And I dont know which would be best for me! Obviously not looking for any grand tutorials, but which method sounds best for what I want?

maiden wadi
#

Initially sounds like a case for level instancing. Your main map would just be blank mostly and then you'd have logic somewhere that manages streaming in a level. When done with it you stream that level out and then put a new one in.

normal raft
#

hey .. i managed to get it working ... if any ones curious.. I just dont like that is not explicity a "new" instance the way that looks to me but let me know πŸ˜„

maiden heath
#

Hi everyone, a question in Unreal is it possible to modify the Physics of the "Skeletal mesh" in runtime?

normal raft
#

i think that comes under ragdoll physics stuff

maiden heath
#

Example if I enlarge only the hands of my Unreal mannequin how do I change the size from the standard to the ones I modified

normal raft
#

not sure i fully understand what you want to do but do you want to transform the bones perhaps?

#

I saw some stuff in the graph nodes about that comming of the SkeletelMeshActor

maiden heath
normal raft
#

yeh theres a bunch of physics stuff on skeletelmeshactor also

civic halo
#

I spent 2 hours creating a Dynamic Material because I'm trying to change the color of a mesh to tell it's attacking.

I have the Material but I don't know how to get the changing part

I have a Boolean (bIsAttacking) so I'm trying to sent a Event tick Branch = True but I'm not sure where to go from there

maiden heath
normal raft
#

to get the nodes i am talking about

muted socket
#

Sorry I just started today with blueprints so bear with me.
I have a LP player in my scene and I added two buttons in world space on top of it, one for "play/pause" and one for "skip song".
I made an actor for the button and in there I have a variable to distinguish between them.
I want the player to be able to walk up to it, when he's close the buttons show up, and when he looks at one of the buttons and clicks the corresponding action gets triggered. To do this I trace a line every Tick out from the player camera, check if it's intersecting with the button, if it is get the button name, check which button it is and then either play the song or skip the song. It's working properly now but it just looks convoluted, so I was wondering if there's a more straight forward approach to this.

#

I guess what I'm asking is: is this normal for such a simple scenario?

normal raft
#

thats not too bad is it πŸ˜„

muted socket
normal raft
#

no i dont think so some of these graphs get kind of insanely large πŸ˜„

muted socket
#

ok thanks πŸ™‚

normal raft
#

I swear unreal needs to allow us to zoom out more then -12

#

like i fear having to do endless if statement in graph i would absolutely be running the visual studio hills at that point

#

but the good thing about that in theory is you can just make the first condition in graph then go find that bit of code and implement in a c++ function node

normal raft
civic halo
#

and im trying to create something like this to change the color

#

Butim not 100% sure how to do so

#

bIsAttacking comes from this

north bobcat
#

does anyone know how to make quake and halflife movement like air strafing and surfing in ue5 blueprints?

maiden wadi
dark drum
#

Does anyone know why this would be triggering before I've released the button? My understand of the released trigger could be wrong.

crude helm
#

Any ideas on why I can't draw a rect on tick on this hud class? Sample I'm folowing is drawing a rect on tick of the hud class. Don't quite get why mine says it can't draw outisde DrawHUD event...

#

even if I have fixed values..

maiden wadi
copper chasm
# dark drum Does anyone know why this would be triggering before I've released the button? M...

From what I understand, released causes it to fire started and ongoing when you press, and then it’ll be ongoing for every tick it’s held down, then it’ll be triggered when it’s released

Without seeing the inputaction node or the code, idk what it’s actually doing vs what you want it to do, but I’ve had my ass chapped by connecting started and triggered and making assumptions about how things SHOULD work πŸ˜…

charred cobalt
#

hey does anyone know if there's a way to get the max walk speed to not apply while in the air (I am very new)

normal raft
#

perhaps look at a gravity system

dark drum
crude helm
dark drum
dark drum
crude helm
maiden wadi
normal raft
#

see this is why i dont get ue sometimes.. why is this being made so stupid! ... it so obvious and fairly trivial what i am trying to do... but it refuses to work .. as soon as you attempt to optimize any thing

vagrant remnant
dark drum
dark drum
muted socket
#

I'm trying to cycle through a list of sounds. It works except for a small detail, when I first click on the "next" button I have to click twice to reach the second song, after that it cycles perfectly. I'm guessing that it's because it plays the sound first and only then it changes the current sound index. How do I fix it?

maiden wadi
#

If you play the sound automatically, the starting index should be 1 instead of 0.

muted socket
#

I don't, the player has to move up to it and hit "play". Plus I'm not sure why it should be 1 in that case? It's still playing the first song in the array, right? But it does work if I set it to 1, I just want to understand why

dapper fern
#

I might be too burnt out to see it and I need help, it's a simple combo logic but I can't manage to go past the first anim montage I'm supposed to play

maiden wadi
muted socket
#

Wait no I see it

maiden wadi
#

Because your logic right now is Play. Which probably plays track 0. Then you cilck next. Which plays DefaultValue, and then adds 1 to that default value. If DefaultValue is 0. Then your next button causes it to play 0 on the first click before adding 1 to it.

muted socket
#

these two should be swapped in order

#

and it works

#

thanks

maiden wadi
#

Also an option

muted socket
#

it makes sense, first you change the index, then you play the sound

maiden wadi
dapper fern
#

Ah fuck, thanks dude

maiden wadi
#

Parent setting doesn't matter. The child is setting it to per execution. Which means that it's a new instance every time. πŸ˜„

dapper fern
#

It was indeed the problem

maiden wadi
#

πŸ₯³ Glad it works.

olive yarrow
#

*big fan of the physics, less a fan of the player physics.

How do i stop the ragdolls from freaking out the player while still interacting with the player?

maiden wadi
#

What causes the player to jump and turn like that?

#

Is that an onhit/overlap in the player's BP?

dawn gazelle
# lost hemlock Why does this number always remain stuck?

In case 1, where "IsItemInInventory" returns true, you're using the value "ItemAmount" in your append. If you don't manpulate this variable anywhere then it's going to use its default value of 0.
In case 2, where "IsItemInInventory" returns false, you're declaring 0 as the value in your append, so therefore it'll display 0.

vagrant remnant
#

do blueprints not support hierarchy? 😭

lofty rapids
olive yarrow
dawn gazelle
vagrant remnant
#

I wanted to check if the actor I hit with my trace was inside the SimulatedCubes Folder

lofty rapids
#

i would just make a tag probably or just make them all child of some parent

vagrant remnant
#

and I don't want to apply the tag to each cube manually

#

can I make cpp functions inside my blueprint?

maiden wadi
#

Folders are an editor construct for organization. They don't really exist at runtime gameplay.

vagrant remnant
#

oh

lofty rapids
#

you can probably parse that

vagrant remnant
#

are tags the only solution for this?

pulsar osprey
#

you can call c++ UFUNCTIONs in BP, but you can't define a c++ function in blueprint

zealous moth
#

you can also just use parent-child and test for the parent

vagrant remnant
pulsar osprey
#

that folder is just getting filled with different cubes that have nothing in common with each other

vagrant remnant
#

yea, so?

zealous moth
#

I missed a bit, what do you have in that folder?

pulsar osprey
#

if you want similar behavior between them, make a baseclass, or use tags (which also aren't great)

#

also, that folder will no longer exist when you make a standalone build afaik

vagrant remnant
zealous moth
#

I'd go for a tag and if you have further interactions a BPI

vagrant remnant
pulsar osprey
#

then use a tag

zealous moth
#

or a parent

pulsar osprey
#

^

vagrant remnant
#

seems stupid for a project of larger scale

pulsar osprey
#

what

vagrant remnant
zealous moth
#

reparent your cube actors to a common actor

pulsar osprey
#

having functionality based on filepath is maybe the least scalable option

vagrant remnant
vagrant remnant
vagrant remnant
zealous moth
#

create new actor of class actor, then name it something like BP_Cube_Parent and then in your cubes, reparent them to BP_Cube_Parent.
Then, in your trace hit, check if the actor is of class BP_Cube_Parent either as a cast or boolean

#

wait what

#

show whole hierarchy?

vagrant remnant
zealous moth
#

huh... ok, you meant in the level editor, i thought you meant in the general directory

#

then tags

#

you can select them all and add the tag

normal raft
#

man why does the undo history also have to be such a lag fest

vagrant remnant
zealous moth
#

i did a test on this, i think it's actor tags

#

you can try both and see which ones work

vagrant remnant
#

okay I see now how this works

#

yay it works

#

thank you :)

lofty rapids
#

i like the parent class approach it has other benefits but tags also works

#

usually if your children all have something in common you can make a parent

olive yarrow
north bobcat
#

does anyone know how to make air strafing and bhopping in ue5 blueprints? dm me plz

regal frigate
#

maybe this will do the trick

rigid bay
#

I want to set up a character that can run and walk, depending on whether the alt key is pressed, or whether the movement stick is in a certain range. I already figured out how to do it, but the way I did it is pretty complicated, and doesn't work with the wasd keys. Is there a simple way to set that up?

wide beacon
#

does anyone here have any idea how i can reference this key to this door so it unlocks it? ive been trying for a while and have gotten no where.

ruby cobalt
#

hello. simple question.. just not used to do this kind of stuff in BP.

I want to modify a string.. discard any characters to the right of "_r"

solved, thank you

dawn gazelle
wide beacon
wide beacon
obtuse gale
#

Hello, I'm trying to make a game, where player can throw grappling hooks at different objects and interact with them: move them around, switch levers, pull down ladders etc. I have several actors that share the same parent class and I'd like to specify a point/component where my hook should attach to upon collision. I was thinking about adding a mesh/component variable to the parent class, and select it manually for every type of actor, but I can't can't set it's value, since the list is always empty, even though actor has mesh components. Is there a way to reference a component in a class, or should i go for a different approach. I'm new to OOP, so sorry in advance xd

velvet wigeon
#

is there a way to rotate a 3rd person camera to a desired rotation within a single frame?
ive tried set control rotation, but it sets the camera's rotation the frame after, and ive tried attaching the point of rotation to a component and rotating that but the result is different from the camera's rotation when moving naturally

regal frigate
#

copy this go to unreal and click ctrl+v

#

that is door and key blueprint

dawn gazelle
# obtuse gale Hello, I'm trying to make a game, where player can throw grappling hooks at diff...

You can't populate that variable with a default value as it's not something that can exist at editor time. Create a pure function in your parent class called "GetComponentToAttachTo". Override it in child classes and grab the component you want to attach to and plug it in to the return value. You can now call this function when needed on any of the child classes to get their desired component to attach to.

dire vale
#

I've looked everywhere and I'm sure it's something simple I'm overlooking. I can get screenshots once I'm back at the desk.

I've got a character that has a sash that is rigged. I've set up the skele for physics sim on those bones. Looks great in the physics asset simulation.

Added rigid body in the animation box right at the end before pose.

However the sash turns into a thin line but the constraints still look to be correct.

I'm thinking it's a scaling issue but I can't figure it out.

faint pasture
#

Start with the data

#

what does it mean to "have" a key?

#

WHO (which actor) has WHAT data

obtuse gale
faint pasture
#

you can make a custom component and have it do many jobs. The component is the thing that the hook is looking for, it's the thing you give an actor to give them hook interaction, and it can be the location/hitbox for the hook to hit

#

I'd subclass USphereComponent, you can do that in bp

#

you'll basically make a sphere collider with extra stuff (the hook grabbing bit)

obtuse gale
faint pasture
#

you might want to consider what you subclass, you could subclass static mesh or whatever, depends on how you intend to do the pulling stuff

#

IDK if you're using physics or what

#

but this component can be how you add "hookness" to an actor, just plop the component on it, implement OnHooked (for what the actor does in response to being hooked), if needed, and voila, you're done

#

Just like how an HPComponent might be how you add Healthness to an actor, and Damagability

wide beacon
regal frigate
faint pasture
obtuse gale
#

yes it can do anything a sphere can,

faint pasture
#

does the act of picking up the key unlock the door, or is the door openable if you "have" the key?

#

is there only one key and door per level?

wide beacon
faint pasture
#

on pick up of key, tell door it is now openable

#

set the reference in the editor, basically telling a key in the world what door in the world it cares about.

#

KeyBP
DoorRef MyDoor //set this in the world editor
OnPickup -> MyDoor.Islocked = false

DoorBP
bool IsLocked = true
OnTryToOpen -> if !IsLocked -> Open

Done.

wide beacon
faint pasture
#

start by making sure your door has a bool representing if its locked or not, and that your key has a door ref so it knows what door it cares about

#

1 variable each

wide beacon
faint pasture
#

pick one and delete the other

wide beacon
#

okay

#

ive kept unlocked

faint pasture
#

sure

#

now make a variable of type YourDoor object reference in your key bp

wide beacon
#

ive got that already

faint pasture
#

@wide beacon

#

make it public so you can set it in the level editor

wide beacon
#

the door public?

#

or unlocked?

faint pasture
#

so you can set what door a key cares about in the world editor

faint pasture
#

k so show your current setup. Show the key bp, the door bp, how the character interacts with the key, and the fact that the key door ref is set on the key instance in the world

wide beacon
#

i think the problem is my key is an object type and my door is an actor, so i cant pick the door with key with that object if that makes sense?

#

does my key have to be an actor too or can it be an object?

faint pasture
#

why do you have a BP_Key object and BP_Key1 actor classes?

#

just do it all with actors for now

wide beacon
#

the actor was a test, i have other items. but if it isnt a problem ill use the actor version of the key and keep these other items on this separate thing.

faint pasture
#

you need to decide on what your system is

#

I wouldn't go straight into using UObjects if you haven't done a super simple actor based approach yet

#

what does it mean to have an item in your system?

wide beacon
#

youre so right, they are literally just there to be seen, as soon as you ollecet all items you place them down and this completes the game

#

im making a simple poiny and click adventure for a university prohect

faint pasture
#

why would they be UObjects then

#

you can't place a UObject down