#blueprint

1 messages · Page 226 of 1

maiden wadi
#

Your team, or associated color though is a player defined state though. And relates to that player regardless of what pawn they're possessing, so it does belong on the PlayerState.

barren tangle
#

mmm regardless of what pawn... ok i think i understandµ

copper chasm
#

so when you pick a Background, you get to choose between one of two Attributes to boost. I put them in my Backgrounds Data Table as an array of Attributes (so I could set which two you can choose from) - how would I get which one the player picked? Probably use that background in character creation and store it in a variable somewhere?

#

Like, I guess I don't know the best way to do that without making a character creator, lol

maiden wadi
#

Am not sure what you mean by how would you get which one the player picked?

copper chasm
#

Well I changed it to a map with the attribute enum and a bool, and I can probably set one of the bools to true during character creation and pass that along

#

like right now, in PIE, I can pick the race and the code will populate all the attributes and hit points and so on, but I'm not sure how I would go about testing picking the background, because in picking the background I have to pick one of the two attributes to boost

#

I'm trying to test my code, to see if the data is flowing correctly to set all the stats - I can set them as default values and just check that I guess

flat coral
#

Is there like a "Safe" Set timer which won't reset a timer in progress? I can build that functionality obviously by checking myself but I just wanna make sure I'm doing duplicating effort

maiden wadi
# copper chasm Well I changed it to a map with the attribute enum and a bool, and I can probabl...

Feels weird for me to think in that manner anymore. We do everything as definitions. You talk about enums and stuff to define things and my complexity alarm bells go off. Cause to me, a created character is just a long list of picked definitions. Each has it's own data to set up however it was intended during gameplay. Which we also use GAS for, so it's pretty much just a bunch of GEs to apply or abilities to grant.

maiden wadi
#

Can paste you mine if you want.

flat coral
#

Eh... it's probably not worth it. Honeslty I'm solving the problem right now with this do-once but like... I know this is a little gross, right?

maiden wadi
copper chasm
flat coral
#

Nahhh just trying to stop the timer from repeatedly resetting forever and never actually firing, since this code can run on tick

maiden wadi
#

Else.. do nothing?

flat coral
#

There's a blueprint class where every time I try to rename it, Unreal crashes

Assertion failed: !ActorsByGuid.Contains(ActorDesc->GetGuid()) [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\WorldPartition\ActorDescList.cpp] [Line: 50] Duplicated actor descriptor guid 'FA86AAB2F2DE2E9FD01640820EA9F1C7' detected: ABP_AreaEventActivator_C

maiden wadi
# copper chasm I think if I start coding the character creation process, it'll fall into place

I think for me, my primary focus is as a UI engineer. And I've been pushed more into gameplay code lately. So I'm always trying to bundle correlated things together. People have a fascination with using GameplayTags and Enums to "define" things. And it can work. But you create an indirection where you constantly have to look up data for things. Have an enum or tag for some inventory stat? Look up the name for it, look up the icon for it. Have a gameplay tag or enum for some preset NPC monster? Look up it's name, Look up it's stats, look up it's icons and descriptions. Etc. etc etc. For every, single, tiny little detail in the game. Ranks/Levels, item stats, predefined npcs, items themselves, skills, talents, weapons, etc etc. All of it having an enum or tag to look up stuff. Meanwhile we just pass around the data asset that has all of that info in it. The asset is the key and the data. No more indirect lookups.

#

The main issue being that most of those things above go to different systems, not always made by the same person. So you end up with multiple systems with multiple ways to look up data from their keys. And it's just a nightmare honestly.

copper chasm
#

Well, my particular instance presently: I'm solo prototyping, so I'm trying to stay out of C++, I'm translating existing game mechanics from a ttrpg, so I pretty much know what everything is called, and it's very low impact gameplay (click to move top down with turn based combat) so there shouldn't be a ton of performance requirements.

I don't remember the exact number of feats in the game, but it's multiple thousands, having visible data at my finger tips to cross reference with a book is important lol

#

unfortunately, most of the stuff i've consumed online hasn't been super relevant to my use case, so I think out loud in discords and get scolded by folks who know more than me, and use that going forward 😛

maiden wadi
#

I think that was pretty much my learning tactic before I got hired at a studio too. 😂

copper chasm
#

Like for this instance, I'm trying to find something to get a feel for how I'd go about building a debug char creator where I just select the stat options, and I think I'm going to have to work backwards from examples where people make character creators that focus on all the visuals 🙃

maiden wadi
#

Whatever you do, remember to set anything with a combobox on fire.

gentle urchin
#

Passing around a pointer / reference to some data source is pretty free, so yeah you got a point about indirection

#

And for often what is not even a good reasonn

#

It just sounds lightweight passing around that tag

woven spire
#

is there a way i can make only the array elements editable in an instance and not the length of the array in a data asset? (this doesnt really matter but it would be nice to have)

gentle urchin
#

But in reality you end up doing a lookup here, and there, ans oh over there, plus UI...

copper chasm
#

when you make your goblin, you're selecting it from a list of charcreation_ancestries, which then will tell chardata_ancestry it's a goblin so when the ui looks for your ancestry it'll get it from chardata_ancestry not charcreation_ancestries

#

because if I do more work it makes me feel more smarter 🍻

maiden wadi
copper chasm
maiden wadi
#

Stackable tooltips? Like open one, move mouse over it and hover something else and open a second tooltip?

#

Haven't played it. 😄 My wife has. So I'm clueless.

copper chasm
#

Yeah, if you've got a tooltip open and there's a term or whatever that has a tooltip, I think you can hold alt? and click it and it'll open one on top

maiden wadi
#

I was actually looking at one point to try out how to do that in UE. It has the code to anchor tooltips like that but I never found out how to use them. Plus we started considering more gamepad friendly UIs. I don't know how BG3 is with that, but tooltips are usually a bad consideration for gamepads.

dry sleet
#

I think it was definitely a necessary system to get non-DnD people to even have a chance to grasp DnD rules without picking up a rulebook!

spark steppe
#

is there a correct way to use this node?

#

without getting two different random locations?

copper chasm
dry sleet
#

Unless it's been fixed in 5.4

spark steppe
#

i think it gets the filter from the controller by default

#

it was more about the two outputs on a pure node

dry sleet
#

Ah, gotcha

copper chasm
#

So I made a real quick and dirty character creator 😄

dry sleet
#

What a mystery actually!

#

I've never actually considered a case like this -- what exactly causes that node to reexecute

spark steppe
#

my concern is that it's executed twice

dry sleet
#

Yeah, I get it

spark steppe
#

a pure node get's executed when the BP VM tries to resolve an output pin value

#

so for 2 outputs, it's executed twice

dry sleet
#

If I were to hazard a guess I'd assume the return value is safest to use without fear of reexec, but I don't rightly know

#

(as opposed to the pass-by-ref)

#

That node shouldn't be pure imo

maiden wadi
dry sleet
#

Looks pretty elegant on consoles too!

humble matrix
#

Ima Try The Blueprint System When I Get On My Computer

haughty jolt
#

how can i draw line above my image in widget

#

and when i change wieport size its still above my image

#

how can i do this?

gentle urchin
#

GetEquipmentFragment -> IsValid ->...

maiden wadi
#

Mine does. I think Lyra does pretty much the same.

gentle urchin
#

Here i am offloading all that into a more flat layered struct for ease of access

#

To avoid going deep into a nest to find certain info

maiden wadi
#

I also still make specialized data assets too though. Fragments I still keep as reusable functionality. Maybe a system needs it's own fragment on a bunch of data and I don't want to put it directly into those data assets for some reason, I can just add the fragment. But the core data for the asset still goes on it's class.

gentle urchin
#

But fragments are only ever 1 layer deep so shouldnt really be an issue i suppose

#

Right so an item would be
ItemCore + ItemFragments(0 to N)

maiden wadi
#

It's definition would be anyhow. The item itself is just a UObject with a pointer to that definition an array of other runtime values.

gentle urchin
#

Exactly

#

Kinda like my quest system is setup

#

Weirdly enough

#

With core data, and instance wrappers that actually have instance tracked variables

#

Thinking about it i could probably benefit from just wxposing the uobjects directly. Todays struct method is... very nested

#

And doesnt really allow for project specific expansion due to these structs

#

Exposing objects instead would totally solve that

#

Fuck... refactor 2.0 incoming.

maiden wadi
#

I have so much work to do on our new system. We moved to using Flowgraph stuff recently. Similar to the items, it's just an object with the QuestDefinition, an index for the active objective, and then an array of enums for tracking that objective's tasks.

lunar sleet
#

lol you’re only at 2.0? 😛

gentle urchin
#

Sounds very close to mine, altho swapped words

#

Questline (DA)

  • 1 to many Quests
    • 1 to many Objectives
maiden wadi
gentle urchin
maiden wadi
#

I modelled it off of staring at MMO quests.

  • Reach some place
  • Get to location
  • Press the red button
  • Enter some place
  • Go to some location
  • Wait
  • Kill some boss
  • Blap the dude who just annoyed you from talking too much
gentle urchin
#

I also got paralellconditions, but its jsut some way to say that all conditions must be fulfilled at the same time, and not sequentially

#

Im not sure what it actually does tho, as its mot even a failing condition so

#

I dont really have a good usecase for it

#

🤣

#

But man the struct to uobject refavtor will be messy

maiden wadi
#

It always is. :/

gentle urchin
maiden wadi
#

I just ditched tags from my inventory system.

gentle urchin
#

I use tags everywhere

#

Since it goes so well with my QS :p

#

Using the concept of Channel, which isnjust a way to say which external system we wanna listen to

maiden wadi
#

I'm really going crazy with this "definition as a key" thing. Gonna try it out for a while. It hasn't failed me yet, and it just makes my life so much simpler.

proper tulip
gentle urchin
#

IsQuestInProgress(const MyQuestDefinition* QuestID)?

maiden wadi
#

Basically, yeah.

gentle urchin
#

Avoids the extra work of making a second key as a gameplaytag, atleast

humble matrix
#

1st Time

#

I'm New

tulip anvil
humble matrix
#

K

#

Yea

proper tulip
maiden wadi
humble matrix
#

190 now

#

K

maiden wadi
#

Lol, 7.4k

#

You haven't experienced fun until you open the project and it starts at 27k, and after twenty minutes it's up to 34k and still rising.

humble matrix
maiden wadi
#

You drag your screen, then let go. Then paste here.

tulip anvil
humble matrix
#

Oh

#

Got It

tulip anvil
#

u can also save it as an image in the windows notification that pops up bottom right or the notification menu.

humble matrix
#

Yea

bitter folio
#

Say I'm making a dummy that has a health bar and so on, what blueprint would I create and how might I attach my mesh?

surreal peak
#

In theory just an Actor that you can put your health component and what not on

#

If it has to walk around, possibly whatever AI Characters class you have

#

Mesh would just be a Static or SkeletalMeshComponent if Actor. Or just the Mesh that comes with the character class if you choose that option

bitter folio
#

Sorry, I've never used a custom model before. Just started about a week ago

surreal peak
bitter folio
#

Ah, thanks

humble matrix
#

anybody have a good blueprint for worldgen?

bleak mica
#

hi been a while since ive been here, but anyone know of a better solution for storing database data to be used across game modes and such (i think im explaining it correctly). as of now i have my database data converted into an array that is basically a bunch of structures and is stored in the game instance and to make it network capable i just pass it to the gamestate/playerstate. is this fine or is there something better.

olive yarrow
#

I have an actor next to this overlap who has a tag reading "health" as do the components... But when this actor explodes it should activate their sphere collision - thus touching the actor next to it and enabling what is in that actors blueprint. However... That doesn't happen..
The actor that should now be receiving just keeps on like normal. Any help?

bleak mica
#

that glare!!

olive yarrow
#

The laptop I sneak to work can't use discord 😦

#

I mean, the laptop I definitely don't sneak to work.

bleak mica
#

whats triggering the beenpopped event

#

are you calling it somewhere

#

i think collisions have there own overlap event

olive yarrow
#

I switched the sphere collision with a sphere trace by the visibility channel... But even with the other actor reading for overlap... It doesn't register the sphere trace

bleak mica
#

is it only supposed to trigger on overlap

#

only asking cause i would just use the collision spheres overlap event, not sure what your using the trace for

olive yarrow
#

Been popped happens when the canisters hp reaches 0, then is shoots off the sphere trace by vis channel

#

Cause the overlap wun't doin nothin'

bleak mica
#

so you have an object (actor) that when its hp reaches 0 it creates a sphere collision that anything within it that has the health tag should take damage

bleak mica
#

so i bring in my data from my database, then i convert it into structures, i then store those structres in any combination of datasets as arrays, which is just set in my game instance to be used when iver i need to use it

olive yarrow
bleak mica
#

this is the very basic form of what you should be using

#

brb fr a bit

copper chasm
#

me: I'm gonna use SO MANY ACTOR COMPONENTS, my code will be compartmentalized and easy to understand!

also me: puts code from Actor Component beginplay into actor beginplay, forgets, is confused for thirty solid minutes why it's running twice

olive yarrow
bleak mica
#

are you trying to print string from the characters or the canister

#

if from the characters u need to cast to them if from the canister then just print string after the true branch

#

then off the cast call whatever event you have in the character

bitter folio
#

Hey so I made an Dummy to test damage of weapons on, but when I load in it looks like the health bar is in my face, I think its because of the Setup Health Bar node I have, is there a way to make it so it acts how it is intended (being its floating above the Dummy's head? without this node it works fine but the health does not display

olive yarrow
bleak mica
bleak mica
olive yarrow
bitter folio
#

The HUD is over the dummy once Setup dummy hud is removed

bleak mica
bitter folio
#

well actually nvm I get an error, the Health bar is back over the head but not filled with health, and I get this

#

ignore the picture where the screen is red that was old by mistake

#

this is it now

bleak mica
#

and the bar is a progress bar correct?

bitter folio
#

yes

bleak mica
#

so in the bp of the dummy where do you call the progress bar to be added

bitter folio
#

I dont actually think I am

bleak mica
#

lol ok give me a sec to try and recreate it

humble matrix
#

?

thin panther
# humble matrix Does Anybody Have Anything

You might want to be a bit more specific there. Worldgen could mean anything from making minecraft, to a script that plants some trees.
A bit more specific perhaps, because most of what people know as worldgen tends to happen in C++, not scriptside

#

This channel tends to be more used for solving specific issues you've been unable to solve in blueprints, not requesting major chunks of games

humble matrix
#

Prob Trees Mountains Landscapes Lakes Oceans Etc.

thin panther
#

Yeah, no.

Those things don't get generated in blueprints

humble matrix
#

🙁

thin panther
#

Anything to do those things would be entirely handled in c++

#

BP is far too slow

humble matrix
#

I Guess Ill Have To Make A CPP Game☹️

thin panther
#

Since you're new, you might want to start small.

Look in the pins of #ue5-general

A newbie to blueprints and the engine in general isn't going to pull this off overnight, with or without other people's tools. No one makes their dream game first

bitter folio
#

Ok I think it was my interface messing up, though now the red health bar is covering the screen like prior

#

Thats everything I have going on in my Dummy BP

bleak mica
#

in your dummy bp add component of widget

bitter folio
#

Thats how I have it set atm

#

under the dummy BP if I remove this, it fixes and the bar is still above the dummy but is empty

bleak mica
#

in your healthbar widget

#

create binding for progress percent

bitter folio
#

Done that also

bleak mica
bitter folio
#

ah I see

bleak mica
#

then just do this in dummy bp

thin panther
#

The Accessed None error is due to this code.

It's a logical fallacy. "Get me the owner of the widget that isn't made yet, and then create the widget and set the reference."

Nowhere in that begin play is that reference set to a valid widget before you use it

bitter folio
bleak mica
bitter folio
#

I just get this

bleak mica
#

now off of that drag and type get widget

#

then from that cast to your progress bar widget

#

or just right click in you event graph and type get widget

bitter folio
#

is something wrong here?

#

oh wait

#

nvm

#

yeah no still empty

bleak mica
#

did you create binding to percent in your progress bar widget

#

and also what is you max health set to

bitter folio
bleak mica
#

ok then back in your progress bar widget

#

click your progress bar in the hierarchy, then in its details panel under progress click and binding

#

next to the percent

bitter folio
bleak mica
#

screenshot your details panel of progress bar

bitter folio
bleak mica
#

now go to graph up top

#

click you new function

chilly geyser
#

How to update widget without event dispatcher or interface using a direct reference?

spark steppe
#

just get the element and update it!? (or make an update method on the widget)

bleak mica
#

and do this

chilly geyser
#

Alright cool, How do I get a return node on a repnotify

bleak mica
#

and finally in your dummy bp only do this

spark steppe
#

isn't that an event? (which can't have return values)

bitter folio
#

think I see the issue though

chilly geyser
bleak mica
chilly geyser
#

ah, well rip lol

spark steppe
#

also a ViewModel would be better to handle player health

chilly geyser
#

Ive had issues when I had the widget setup as a component, so now it gets added at runtime

bitter folio
bleak mica
#

all of this works for me

#

where is the event begin play and the sequence located

bitter folio
#

in the Dummy BP

heady breach
#

I'm trying to set up display options for my game and I keep running into this error when using the enable HDR output node. Anyone know what could be causing this?

Warning: Setting the console variable 'r.HDR.EnableHDROutput' with 'SetByGameSetting' was ignored as it is lower priority than the previous 'SetByCode'. Value remains '0'

bleak mica
#

ok lets start from the beginning

#

in the dummy bp you add component widget

bitter folio
#

right

bleak mica
#

in the details panel you set it to the progress bar widget

bitter folio
#

yeah

bleak mica
#

in the progress bar widget you set the percent value to a binding

tardy ridge
#

I have a situation where I had a C++ class for a level blueprint. The c++ class was renamed, and now I can't reparent the level blueprint to the new class.

Tried a redirector, and it didn't work. Furthermore. In the list of classes to reparent, many classes are just straight up missing. This is a problem that others have run into, but I couldn't see any good solutions to it

#

seems pretty broken

bitter folio
tardy ridge
#

There is also this in the logs, and I can't even select the LevelScriptActor as a base class, it's missing.

bleak mica
tardy ridge
#

This is an issue in the blueprint reparent menu though, it's not listing the right classes, not even the correct LevelScriptActor that should be in the engine

bleak mica
bitter folio
#

yes

bleak mica
bitter folio
#

exactly

bleak mica
#

and the cast fails

bitter folio
#

correct

bleak mica
#

then either you are casting to the wrong widget name or the widget you clicked in the component details panel is not of the same name

bitter folio
#

that may be it

bleak mica
#

click the widget component in your dummy bp

#

then screenshot the details panel

bitter folio
#

does it need to be the name "ProgressBar_399"?

bleak mica
#

no i just put that there to try something

#

under widget class the widget should have the same name as the progress bar widget

#

mine is healthbar

bitter folio
#

got it

#

Lmao I was casting to player Widget

#

Thanks, sooo sorry that was way more difficult than needed

bleak mica
#

all good, always is

#

had plenty of omg it was that simple moments

bitter folio
#

yeah thats been my whole week pretty much

#

Just started

bleak mica
#

well glad i could help

bitter folio
#

yup thanks a ton

bleak mica
heady breach
bitter folio
#

how might I not use a binding then?

tardy ridge
bleak mica
heady breach
# bitter folio how might I not use a binding then?
  1. Right click in content browser > Blueprints > Blueprint Interface. Name this osmething like "BPI_UI"

  2. Open your interface and add an event by clicking "Add" in the top left, name is something like "Update Health UI". Once you've created this, in the details tab below, add an float input and name this "Health". Compile and save

  3. Go into your widget, on the top click "Graph", then navigate to "Class Settings" on the left. Scroll down to "Inheritied Interfaces" and add your interface. Compile.

  4. In your event graph, drag your progress bar variable into the graph and select "Get ProgressBarVar (or whatever your progress bar variable is called)". Drag off the node and make a new node called "Set Percent".

  5. Once you've done step 4, in the same graph, type in "Event" followed by "Update Health UI" or whatever you named your interface event. Connect the execution and float variable to "Set Percent". Compile and save.

  6. Open your character blueprint, and dragging off Widget>Get Widget, type "Update Health UI" and input the health variable or amount you want. Connect this to your BeginPlay in your character or your damage event.

No need for a binding (very expensive to run) and you can call this event any time without needing to cast which is also very expensive.

bitter folio
#

Thank you, i had like half of this already set up from a tutorial but ended up switching methods, ill get that switched over tmr

heady breach
#

np! Be careful with tutorials you see online since a lot of them have bad coding practices. A good few youtubers to follow is Ryan Laley or LeafBranchGames

bitter folio
#

yeah I have realized that over the past few days xD

#

ty

heady breach
#

npnp

frosty heron
#

Don't watch leafbranchgames, he is another youtubers that perpetuate wrong information and bad practices.

Whenever you see a video that says avoid casting use blueprint interface, just click on don't recommend and look away

#

Ofc he also said avoid tick 🤮

heady breach
#

The guy above is trolling. If you excessively use casting you're going to have a huge memory problem on your hands, since casting loads all objects associated with the BP. Not to mention you should make as little use of tick as possible since that runs the code every frame

bitter folio
heady breach
#

Do you have an amount set for your health variable in your player?

#

What are the amounts set for "Health" and "Max Health"

bitter folio
#

Health is 0 and max is 100

heady breach
#

That's why your health bar is empty, because Health is set to 0

#

Try setting Health and MaxHealth to 1

ancient moth
#

What would be the most appropriate way, of creating item pick up hints?

Because to show a hint, you probably need to cast a line trace continuously, to check if the player is looking at an item, but this seems quite unperformant.

bitter folio
heady breach
#

Remove the division in your first screenshot

visual ember
bitter folio
visual ember
#

and for more "highlight when looking close enough" I'd do small vector math and get a dot product between vectors:

  1. actor position to item position
  2. actors looking direction vector
heady breach
#

That should work

#

That's how I have it set up on my end

bitter folio
#

getting nothing

heady breach
#

Oh

#

Remove the binding on the progress bar

#

Almost forget

bitter folio
#

Oh

ancient moth
bitter folio
#

that was it

#

ty

heady breach
#

Yaya glad it works

ancient moth
#

But the collision thing, would be the only way, of having something that is not performed all the time right?

visual ember
ancient moth
visual ember
#

dot product method is way cheaper than traces at least

#

and don't worry about 5 or even 500 items. shouldn't be a big problem

#

though with 500 I would maybe start to cache or otherwise partition

ancient moth
#

Just to avoid lag spikes or whatever, I'm still kind of new to game development and for me having something every frame appears so heavy but its kind of needed and normal i guess.

visual ember
#

though the collision can also be just in front of the player, so we only consider what's in front of us

ancient moth
visual ember
#

CPU is doing billions of operations every second. this is nothing to it for the scope we are talking about here

ancient moth
#

I'm also wondering, I probabyl want the player only to be able to pick up the item he is looking at. Maybe still line trace it? Or would you project the item to screen space and get the closest one to the center of screen?

visual ember
#

you can optimize it a bit by only checking certain channel

#

and having your items on that channel only

ancient moth
visual ember
#

so nothing else is even considered

ancient moth
#

Yea that was my second thought, because having the collision on the item would be nicer regarding that, but then you will have way more overlap

visual ember
ancient moth
#

But you would say, projecting the pickup item, into the screen space and calculating the distance from the center is cheaper than having the line trace?

visual ember
#

but yes, otherwise trace is the standard way I would say

#

mostly due to straightforwardness of getting hit actor, etc.

#

but you are not crunching pi here, so don't worry much about performance

ancient moth
visual ember
#

hook up something that feels good to work with

#

and later optimize if really needed

ancient moth
#

Yea I just wanted to avoid line traces every frame like some YT tutorials suggest ^^

visual ember
#

you have one player (probably). so one line trace. that's not much really

#

you can check it yourself how much of a hog it is. run 1000 or 1000000 traces and check the fps

ancient moth
#

Yea but then on top of that, there is the thing with having the "Pick up" widget facing the player. That would also be on tick to rotate it towards the player, since as far as I've seen screen space, will not scale the widget.

#

I mean even both probably will not be that bad, but I'm wondering what industry standards are, regarding this, because sometimes you find some solutions, that are just outdated and could be done way nice.

visual ember
#

it's for a split second when nearby an item. again, it's not a heavy operation to rotate something

ancient moth
#

I probably have to wrap my head around that, because it appears to be so much work but it probably is not at all in games context ^^

visual ember
#

it is simple, sure, but takes several steps to get everything working nicely together

olive yarrow
visual ember
#

I will say just make a first version of it and don't worry much

grim crypt
#

im making a spline mesh blueprint that's writing custom primitive data into the spline mesh components
the values are correct in-editor, but it seems like theyre reset to 0 when the game is actually playing
does anyone know a fix to this?

ancient moth
visual ember
frosty heron
# heady breach The guy above is trolling. If you excessively use casting you're going to have a...

The huge memory problem isn't casting problem but hard reference problem. It's not casting that loads the object to memory.

Please stop spreading mis information.

The solution is to have native class and use soft reference. BLUEPINT INTERFACE is not a even a tool to address. Not only that will make debugging a nightmare it will defeat the purpose of inheritance.

And in the end when people need to access member variable or function they end up using hard ref in their interface anyway.

You are a victim of people who don't know any better. If you want clarity just ask the programmers in #cpp

bitter folio
#

If I made a dummy to take damage is there anything I need to do with the collision box it uses to allow it to trigger on actor overlap events?

frosty heron
heady breach
#

Casting inherently loads objects. It's slow to do. That's simple knowledge.

Interfacing is not difficult to debug if you know what you're doing. Interfaces are used widely at numerous AAA game studios without issue. It's also recommended to use interfaces in official Epic docs and streams.

I also never said to never use tick. I said that it should be used as little as possible. Things like UI or niche gameplay tasks like interacting with game objects (pressing E on an object) don't need to run off tick.

frosty heron
#

And no says to not use interface

#

I am saying don't use interface to replace casting, that's Apple and orange

heady breach
#

Then be more clear. I don't care to continue this conversation if you're going to use language with me

frosty heron
#

What language?

#

I am simply saying you are wrong

#

And you can ask other to clarify that

gentle urchin
#

Casting is fine, tick is cool

#

Tick things that need tick

#

But beware that ticks fires every single frame. Use that knowledge

lunar sleet
#

Right tool for right job, at the right time, basically

gentle urchin
#

Yepp

#

And the casting debate is argued 10 times a day so

ancient moth
#

I have one more question, does it really make sense, to prefix every blueprint you create with it's type or is it just personal preference and why is it used so often?

heady breach
#

I want to clarify I never said to never use casting either. I use casting, but it's so far and few between and the circumstances where you'll need to cast is also very rare

gentle urchin
visual ember
lunar sleet
bitter folio
#

is there a specific kind of collision box I need a actor to have in order to interact with On Component Begin Overlap

gentle urchin
heady breach
lunar sleet
#

Quicker for me to cast to something that’s already loaded because I know how they both work, so I don’t need to tell others my way is better

heady breach
ancient moth
# gentle urchin Its often part of some naming convention

But I don't really see the benefit from it, If you look up a widget blueprint and every of them starts with WBP_ it's harder to ready and does not add to much, the only thing I would see, if you want to name the mesh/actor/widget/... all the same but idk.

gentle urchin
#

I use components over interfaces in 99% of the cases

#

Hardly ever use interfaces at all

heady breach
#

Components are good

#

Hell I should be using them more lol

lunar sleet
ancient moth
lunar sleet
gentle urchin
#

You can make your own naming convention

visual ember
gentle urchin
#

Just share it with whoever joins you

lunar sleet
#

I don’t use WBP for example, just W_

gentle urchin
#

Shame on me still using wbp..

#

Tutorials clinging on to me from 2014

lunar sleet
#

It makes no difference tbh

ancient moth
#

Because looking at plugins, they also wont prefix there blueprints, would even be weird to use them prefixed

gentle urchin
#

I prefix mine

lunar sleet
#

I don’t make plugins

gentle urchin
#

SQQuest Plugin

lunar sleet
#

There, all cases have been covered 😀

visual ember
#

if it bothers you, don't prefix. just be consistent

ancient moth
#

I'm just affraid, that then one night I want the prefixes back for some reason, and start renaming every blueprint and waste a few hours but maybe i've got to sleep on it ^^

lunar sleet
#

Imo, once you get enough xp, you get so used to naming conventions you don’t even notice them

ancient moth
heady breach
visual ember
ancient moth
#

I even get bothered by the c++ prefixes, the U, F and S, they are "ok" but prefixing booleans with b why it already is of type boolean, thats just from back in the days, when the ide/text editor was not able to tell you the variables type

visual ember
#

hungarian notation will outlast us and many generations to come

bitter folio
#

does this event not work with actors?

visual ember
#

try to not worry and just bHappy @ancient moth

gentle urchin
#

Wordplay

#

Spicey

#

Atleast you dont have to iInput and qOutput

ancient moth
gentle urchin
#

Yes, its coding standard to do so in my line of work

visual ember
frosty heron
#

Is that imgui?

visual ember
#

that's just winapi, I think

ancient moth
gentle urchin
#

We also use type prefixes but im not doing that 🫣

gentle urchin
#

Time to check out replicated uobjects then... been avoiding this for far to long

visual ember
#

Weird size shouldn't prevent it from being displayed. How are you trying to use/display it?

gentle urchin
#

1000x1000 sounds rather large for something like a waypoint arrow getting 42x42 pixels on screen .. also try to use power of 2 sizes when you can

frosty heron
#

@gentle urchin Have you attacked fast array? I was told that it's good for large data like items but from what I read last night, it also support atomic replication?
Meaning fast array will replicate the whole elements instead regular struct where regular struct just replicate the delta.

Won't that mean fast array is inheretely more expensive for a collections of something, say item data?

gentle urchin
#

I have not, yet. Havn't really had any use for it, altho it does sounds like a neat optimization. Replicating whole element may still be cheaper due to not repliciating the entire thing, even if it's delta ?

#

but 1 to 1 it sounds worse in that regard

shadow holly
#

Hey so I know pure functions get called every for each time their return variables are used, but does anyone know if they are called once or multiple times in cases like this where they all go to the same node? Thanks

gentle urchin
#

once

shadow holly
young meteor
#

Hey folks

I have a mesh set up based on a spline following a tutorial. It sort of works fine but I was wondering if there is a way to have it do a "sharp turn" instead of this rounded corner (hope it is visual)?

#

The corner spline point is what is selected in the screenshot. I tried limiting the tangent lengths for that spline point, but it seems closest possible outcome is a round corner at the moment.
I would like it to be 90 degrees like the track below it.

dark drum
gentle urchin
#

You can specify spline tangents manually

gentle urchin
#

But placing a fixed mesh there is most appropriate , as pattym suggests

young meteor
#

I can control the Tangent, but that won't make the mesh have a 90 degree turn still right?

gentle urchin
#

Doubt it, but maybe

#

Havnt tested that specifically

#

I set mine up with fixed corners , but not exactly 90 instantly, so to speak

young meteor
#

But even the point I selected in screenshot I have reduced tangent length to near 0. And still has a very soft bend.

gentle urchin
#

Bad screenshot but the turn is 90 degree

#

This shows it a little bit better

#

But not a fixed 90 degree, as i mentioned

#

Not dure a spline mesh would be able to do 90 degree at all

#

Wouldnt some faces get inverted by that?

#

Might work if the point itself is 45degrees off

ancient moth
#

I'm trying to remove a UMG widget on mouse down, I'm getting the debug string, but the widget is not removed.

young meteor
tawdry walrus
dark drum
# ancient moth I'm trying to remove a UMG widget on mouse down, I'm getting the debug string, b...

Assuming you're wanting to remove the widget this logic is setup inside, using self is perfectly fine. If not as Silent said, you can connect a references to the widget you want to remove.

However, you need to be aware that the widget (with this logic on) would need to be in the focus path for it to receive the inputs to detect if the mouse button is down. This can be problematic when clicking on a focusable widget as this can result in it receiving the focus instead.

ancient moth
#

But for the list item Remove from Parent didn't do anythign, as it's probably expected i guess 😅

raw dragon
#

Hello guys. Can someone point me to the right resources to properly set up a player character? A buddy of mine uses finite state machines for his game in Unity. From what I found, behaviour trees are a bad replacement for finite state machines and I don't know c++ so I can't really program a custom one for myself. Do we just use the player pawn and player controller or is there an alternative I'm overlooking?

I worry that the character gets way too "conditional" later down the line, considering he has like 4 abilities and a basic attack. I don't want to have ten conditions, for example," If "basic attack" + 5 others are not true, then the character is permitted to do something.

Another suggestion was to use different input mappings and swap between them depending on the what a character is permitted to do at a time, but that also sounds like an inferior supplement to finite state machines.

(Also please ping me, if you have an idea, so I see it immediately.)

sand slate
#

Hello,

Can you open and load a level like this? I saw it in a youtube comment and im not sure if it works this way, maybe it loads it two times?

frosty heron
#

The object ref should be a soft ref to begin with

#

What you do there will load the level before you open the level

#

So you end up with multiple world in memory at some point

sand slate
#

So its better not to use async here?

frosty heron
#

Depends, but in general no

#

Like I'm guilty of async load level too for my loading screen

#

But eventually I will replace it with a better method

sand slate
#

With level streaming?

acoustic tundra
#

hi, maybe a simple question but i've been struggling with this for an hour now. I have a bp with a child actor. I want child actors to be deleted of all the bps of this class. I added a breakpoint and it is referencing all the actors of this class but it's only executing the loop for one of them (the one I hit). What am I doing wrong here?

frosty heron
#

Nah async load level

#

But it's a function made in cpp

sand slate
dark drum
#

Is it possible to make macro libraries only available for specific classes?

frosty heron
# sand slate Thanks im going to look into this,

https://youtu.be/GwCD2WQ7-4U?si=uvQDdEjVWgUEL-CV

If you want to look at it but I won't recommend it. If you are after loading screen and you are using blueprint. You can buy plugin from the market place.

If cpp is an option, most common advice around here is to steal lyra loading screen plugin

Unreal Engine 5.0.0 Early Access How to async level load (with C++)
UE4/Unreal Engine 4.26.2

▶ Play video
dark drum
#

I've created a base class that derives from uobject but it can't use macros in any macro library, even macro libraries that that derive from this base class. Does anyone know what I need to do to enable it?

young meteor
#

Hey folks.
I feel like I'm in deep water here trying to control the "roll" of aircrafts in my game. They are following a Spline.
I figured I could get the tangent at the point they are currently at, as well as the tangent of the Spline a bit further ahead.

Then I get into trouble from there with vector math. I basically want to compare the two directions and if the tangent coming up a bit ahead is to the left for example, I would like to start rolling the airplane to the left.

Any suggestions? In screenshot I tried some dot Product, but I'm not sure about that.

tawdry walrus
gentle urchin
#

But..

#

Wouldnt you just calculate target directionn

#

From current to some future point ?

young meteor
#

I'm confused at this point.

gentle urchin
#

In other words

young meteor
#

(not from your comment) From my own 100s of attempts

gentle urchin
#

Target rotation = FindLookAtRotation(Plane.location - Spline.future.location)

#

Future can be pretty short ahead i guess

young meteor
#

Just to make sure. I might just be confused here.
I'm looking to "roll" the plane. Like around the blue axis here

gentle urchin
#

Woops

#

Well

#

Roll would be based om the delta between current and target direction innsome future

young meteor
#

Agreed

gentle urchin
#

Bigger delta = bigger roll

young meteor
#

yup

#

So my issue is back to comparing two directions. Found out since my message I can compare Rotation instead of Tangent stuff at least.

gentle urchin
#

You only need some dot product

#

If you use direction vectors (current and future),

#

Get their right vectors, you can use dot product to set the roll

young meteor
#

But dot product returns positive both if the future point is pointing more to the right and more to the left as far as I can tell.

gentle urchin
#

Nop

#

-1 to the left

#

+1 to the right

#

As long as you use it on the right vectors

young meteor
#

This is with Tangents. Should get forward vector instead?

gentle urchin
#

Right vector*

#

I usually clnstruct my own as i dont trust splines (trust issues)

dark drum
#

If you have an instanced structure as an input on a function and break it, you get an exec pin and a wild card. Does anyone know what triggering the exec pin would do?

gentle urchin
#

Initialize the binding id suspect

young meteor
#

Feel like this prints the right stuff. (+ or - 90 depending on turn)

I'm probably messing up the Interpolation and rotation setting though?

gentle urchin
#

Delta time is GetWorldDeltaTime

#

Speed is prob gonna be faster

young meteor
#

(Running the function every 0,1 seconds on a "Event by Timer" function). Should I still change it?

gentle urchin
#

Change it to event tick my friend

#

But in theory it would be correct-ish

young meteor
#

Can I just save the Delta Seconds from my tick in a variable and then still run function every 0,1 seconds? (and insert that Delta Tick variable in the Interpolation time ofcourse)

gentle urchin
#

Not sure why youd put this on a timer in the first place

#

10 updates per second is rather noticable

young meteor
#

Trying to reduce performance cost

gentle urchin
#

This is important enough to take the cost of updating the rotation

young meteor
#

Calculating spline vector + future spline vector, dot product etc, for all enemies. Might not be an issue though.

gentle urchin
#

Other things should suffer instead

#

Adjust tickrate based on some distance tonplayer using npc optimizer or similar method

young meteor
#

It's a Tower Defense. All the actors are probably relevant.

#

It's all the enemies moving around the track.

gentle urchin
#

Aight

#

Atleast randomize start delay then

young meteor
#

Right.

gentle urchin
#

To actually save performance

young meteor
#

Good point. Can also check performance in insights in the end. Might not matter at all

gentle urchin
#

Yepp

young meteor
#

What is a "normal" Interp speed?

#

like 1?

#

FInterp speed sorry.

gentle urchin
#

Test a few

#

See what feels right

young meteor
#

👍 🙏

gentle urchin
#

You may want interptoconst

cosmic aurora
#

Hi, for some reason, my animation blueprint behaves the opposite in the viewport. I have selected the Spine in Transform Modify Bone, so when I rotate yaw only the player character upperbody will rotate, but for some reason the spine stays still and only moves everything below it. That doesnt happen in the animation blueprint,I checked it with manual values.

Some notes: I have a static camera in the level and the only way I found out how to rotate the player character was with "Use Controller Desired Rotation".

Thanks

floral wyvern
#

Greetings

Im developing a random dungeon generator, and wonder how to optimize "load level by name" node

First, I spawn "Room" blueprints, then I start spawn level instances of the room (like geometry, props, etc)

Loading a lot of levels during generation cause freezes, so Im using "bind on level shown" between level spawn, but they can spawn at the same time (because the code start for every room)

Any clue?

spark field
#

Anybody knows some good blueprint courses

#

What do you thhink about unreal sensei course?

mild galleon
#

hello everyone.
The following problem: I once renamed the widget for health bar.
Now, the casting always fails, even if i do that nodes again new in BP.
Any ideas? would be very welcome

#

(and any general comments on health bar)

granite frost
#

Which node is used to update the position of a text box of a widget in the blueprint? When I get the textbox reference it showed set widget slot positon for "position" search but not working

coral void
#

So I don't really know where should I be putting this but I'd like to create something similar to what's in this video from 8:30 to 11:30 ||https://www.youtube.com/watch?v=ZQzPOcENQsQ ||. I started out by following this tutorial (||https://www.youtube.com/watch?v=VmRggTwhiew&list=PLpzMHKXzqf9m7SIRngM3k3RuCt0KN077R||) and I managed to do it ending with rooms that'd spawn with 1-4 doorways leaving the remaining spaces open. I really don't know how to continue. How could I make the engine create "biomes" where the algorithm would be different? And how to I make algorithms to extend walls or something similar?

fast compass
#

Can you not use delay nodes inside tasks? I made my own Blueprint task for my AI, and in my Receive Execute AI event, i try to use a Delay node, but the Node after the delay never gets executed.

In my picture, the node Break is never reached.

dark drum
tall obsidian
#

Hi , when I do packaging, the widget slider connecting with PCG graph does not work. Now I think the attached screenshot is the cause. what do you think?

fast compass
#

This did the trick, thanks!

nova grotto
#

is it possible to delete specific pins off of blueprints id like to have this set relative location not take into account the x location

wild crater
#

If I put a breakpoint in blueprints it doesn't always trigger each time. When I put prints there, it happens more than the breaks. Why is this? It's super frustrating to debug like this (version 4.25.4 btw)

lunar sleet
#

Ugh idk about 4.25. Whenever that’s happened to me in 5.* it’s been because I had the wrong debug object selected, or any of them selected so only that specific instance would trigger the breakpoint)

atomic salmon
#

@nova grottoit's not possible, but you can get (current) the relative location and feed its X in the new one, so it won't change

nova grotto
tight pollen
#

Hello

#

I have pawn with camera, and I want replicate camera rotation

#

how can I do it?

#

some good way?

#

pawn is replicated

nova grotto
tight pollen
#

I want to have the same mesh rotation on the server and on clients, when the player rotates the camera, the mesh rotation is still obtained from the server

#

and I would like the mesh server to be rotated in the same direction as the camera on the client

nova grotto
#

your gonna need someone better then me then good luck

forest spade
#

When working on an equip/unequip system where the unequipped weapon goes on the players back or hip, is it generally better to destroy and respawn the mesh in the right place, or keep the same mesh and re-parent and adjust transforms instead? Does it matter much?

atomic salmon
#

@nova grottoyou are setting a relative location, but you can retrieve the current one and feed its X into the Set relative rotation so the relative.X doesn't change

granite dirge
#

Are there any good tutorial providers on YouTube you guys would recommend for starting off unreal (blueprints)

Mostly done with c++ basics so I'll be revising it before attempting a hybrid workflow, thus I want to get around unreal engine and blueprints work first

maiden wadi
devout tide
rare mortar
faint pasture
granite dirge
maiden wadi
granite dirge
#

If yours is a single player then a inventory and overworld copy wouldn't be as expensive as spawning one when changed

#

I think atleast

maiden wadi
# granite dirge C++ language not unreal c++, so nope gotta do from full basics

Unreal C++ is basically just knowing your macros to expose stuff to blueprints and knowing the UObject hierarchy. But for learning BP, I normally just tell people to find a "Make a {InsertType} game!" thing with 10-20 episodes and just follow along with it. If you h ave programmer expertise already, it'll click pretty quick. They're not always the best practice, but you're not going to find that from a tutorial usually.

gentle urchin
#

Best practives are hidden in different articles spread across the web

granite dirge
gentle urchin
#

Or on this server, mentioned by specific people in specific context :p

granite dirge
#

😂😂✌️

faint pasture
nova grotto
#

how would i be able to get the relative distance between 2 actors

maiden wadi
#

Target minus Start = LengthVector
LengthVector->Length = distance

Also semi sure there's a Distance node that takes two actors

maiden wadi
#

Should be.

#

Er

#

No, the entire vector

nova grotto
# maiden wadi

so im trying to get a camera to be between 2 actors but its still acting wonky did i do something wrong with the vector length part of this

gentle urchin
#

gotta study it a little harder

#

you want the entire vector

#

not just X

#

unless ofcourse, you only care about the difference in X...

hollow bane
#

Hey there,
I made a small stargate which i can go through and spawn at the other stargate. I just use a collision box and set the actor location and rotation. Now I have made an actor which only contains a cube with physics enabled. I cant make it work to spawn at the other gate. My understanding was that the physics is overriding the position so i tried to turn it off and and on again but no help so far. Any advice? 🙂

heady breach
#

Because let's say your first vector is 600, and your second is -400. Your end result would be 1000

gentle urchin
#

which is correct result

#

but incorrect end result

heady breach
#

For distance in between though?

#

Exactly

gentle urchin
#

sorry yeah

#

iff you were to add them .. 600 + -400 = 200

nova grotto
gentle urchin
#

probably want to ignore Z

#

so distance XY

faint pasture
#

If you want the camera to be between the 2 it should be at (Position1 + Position2) * 0.5

gentle urchin
#

or that

#

rip baileys brain

faint pasture
#

if it's for a fighting game cam do it like this.

Midpoint = (Pos1 + Pos2) * 0.5
CameraPosition = Midpoint.X, WhateverYouWantCamYToBe, Midpoint.Z

#

assuming the plane of movement is x and z

dim siren
#

There's also a Get Actor Array Average Location node I believe

gentle urchin
#

the less you need to reinvent , the better

dim siren
#

It can be quite convenient indeed

nova grotto
gentle urchin
#

trying to do

faint pasture
#

Consider 2 fighters circling each other, they can rotate the camera 180 degrees right?

gentle urchin
#

wouldnt that mostly be something like a pawn placed dead center, with a springarm and rotating camera?

faint pasture
#

Now consider that instead of circling each other they just both advanced, ending up in the same final locations as the first scenario. Should the camera have flipped orientations when they crossed?

gentle urchin
#

guess it depends on what freedom you want to give them

faint pasture
#

that makes it much easier

nova grotto
faint pasture
#

start with what you know, you know the positions of the 2 fighters

#

and you know the global UP vector

#

Cross product of any 2 vectors is a 3rd vector at right angles to both

heady breach
#

Get Actor Location of Character + Actor Location of Locked on Target / 2 >> Set Relative Location and Rotation

#

No need for floats

faint pasture
#

so Cross(UnitVector(A.Location - B.Location), Up) is the normal of the plane the camera can move in

gray ingot
#

Hi, i am now working on localization of my game, and i have set up all my text to translate, but how can i change the language form blueprints?

faint pasture
#

PointBetweenTheFighters + PlaneNormal * SomeNumber is where the camera will be. SomeNumber drives how far away the camera is

#

The camera rotation is PlaneNormal.RotationFromXVector

#

so on and so forth. It all is based on the plane normal which is based on the locations of the 2 fighters when the 2d mode is entered.

nova grotto
maiden wadi
thin panther
#

Wait really?! It changes editor localization too?!
That's awesome, and really bad design lol

gray ingot
maiden wadi
thin panther
#

I genuinely have no words 😆

maiden wadi
#

It'll change all loc in your editor to that for FText you have done, but won't actually change the entire editor's locale.

maiden wadi
#

Loc is fun. Enjoy the incoming hell.

gray ingot
#

Thanks! XD

maiden wadi
#

One thing I strongly recommend is finding a way to attach context notes to your exports. Can do this with C++ stringtables, I don't know how to do it with BP only.

gray ingot
#

"context notes to your exports" I don't really know what it means

maiden wadi
#

One example that always comes to mind to express it is Private. We have a military oriented game. So they translated the accessibility dropdown menu. EG Public/FriendsOnly/Private. They translated Private to the rank of Private instead of Private as in secret/exclusive. Identical word in English, not in other languages though. There are a lot of issues like that that pop up without context in translations.

gray ingot
#

Yeah, i know it, i don't really have translate miss meanings, so it is okey i think

#

I have only 2 langs in my game, and i am good at both so it is easy for me

#

If i understood you correctly

maiden wadi
#

I mean if you're your own Loc team, then easy times. 😂

gray ingot
#

Yeah, i am all in one

#

Xd

steady night
#

Hi im trying to change the direction midd air of my "projectile" (using ProjectileMovementcomponent)

#

tips ?

maiden wadi
#

There is a call for that.. sec

maiden wadi
steady night
#

hm, its not working xD

#

hm got it working

#

np

storm shale
#

A yes

#

Average forum interaction

copper chasm
#

It's not super important, but I thought you could hide unconnected pins on a set node?

trim matrix
#

Hey all, I'm trying to add an impulse at a random point along the top edge of a plane (technically a thin cube cause I wanted the reverse side to render) aligned to the YZ axis but for some reason the force and particle always seem to spawn in the centre of the mesh. Anyone have any thoughts as to what could be going wrong?

faint pasture
#

Draw debug point to make sure you're cooking up the location you think you are

maiden wadi
#

If you mean the SetMembers node anyhow.

copper chasm
#

Yeah it's weird, I know it exists, I just don't see it on this set node

#

It's not the end of the world, just would look cleaner to the eye

trim matrix
crude helm
#

Hi, I'm getting quite a headache with rotating and moving this template (big gray rectangle).

The idea is, get one of the arrows (top, down, left or right), then spawn a new room (for now the same room), at that location.
Easy enough, just get the selected arrow location and rotation and spawn the actor there. Works just fine.

Now, just need to choose one of arrows to connect with the original. Rotate the spawned room and, the part that is giving me headache, apply the necessary offset on it.

I got it working with Top and Bottom, so if I pick Top (red), it spawn the new room at the red arrow location, since it is top with top, it rotates 180º, then move it correctly. Same with bottom.

But for left and right, I cannot get it to move correctly. Since it is kind of moving where it should, I guess my problem is with my distance calculation some how, which is just the distance from the center to the selected arrow. Either that or how I'm reversing the forward/right vector.

Well something is definitely wrong, as the select case for direction selected has everything as -1.... I don't get it 🤯

faint pasture
wanton goblet
#

I'm running into an issue where I'm running a line trace in a spawned BP, that's supposed to trace to the ground and derive the impact point to spawn a particle system, but for some reason, it refuses to react on hit with landscape or ground planes, so it always returns 0,0,0 as it's hit point. Not sure what I'm doing wrong here.

faint pasture
wanton goblet
#

It's a passed through logic from the enemy attack one momnet

maiden wadi
faint pasture
#

You're tracing to the characters bottom of their foot and not 1 cm further

wanton goblet
faint pasture
maiden wadi
faint pasture
#

trace further down

wanton goblet
#

ah

#

ok

maiden wadi
#

If that doesn't work. Your floor isn't blocking visibility channel.

wanton goblet
#

hmmm, that set the trace going the wrong direction

#

odd

#

on sec

faint pasture
wanton goblet
#

@faint pasture @maiden wadi thanks!

faint pasture
#

Im surprised none of the traces barely hit but maybe your floor is perfectly flat

wanton goblet
#

in this test scene, it is

haughty jolt
#

why this cast failed???

#

i cast from my camera pawn to my character its allways failed -.-

maiden wadi
#

Is your camera pawn a MasterCharacterBP?

maiden wadi
# haughty jolt

You should try to change the way you think of casting. Instead of reading Cast To MasterCharacterBP, read this as Tread As MasterCharacterBP. Which it can only do if it is one. So your camera pawn has to inherit from MasterCharacterBP to be able to cast a pointer of your camera pawn to it.

haughty jolt
#

its jsut a pawn and my character jsut a character

faint pasture
#

You're either doing this too early, or your player's character isn't a MasterCharacterBP

haughty jolt
#

waht can i do?

#

i odnt know waht you mean

#

i jsut wanna cast to my cahracter

#

why it not works -.-

faint pasture
#

Show your character BP

#

specifically the top right corner where it says what its parent class is

bitter folio
#

Hey so I made a dummy with a health bar, and im using interfaces for it. I think I have my Create WBP Dummy Int widget setup wrong as it does not update and I get the shown error every time its hit, how may I correct this?

faint pasture
#

What class owns this widget?

crude helm
bitter folio
faint pasture
faint pasture
#

That's how widgets end up in world space like hp bars above heads

#

if that's what you're after

bitter folio
#

right its in the world, I just cant get it to update at all

faint pasture
#

do you have a widget component on the actor?

bitter folio
#

yeah

faint pasture
#

and you're creating a 2nd widget

#

saving a ref to it

#

but it's not visible anywhere

bitter folio
#

All the blueprints I have

faint pasture
crude helm
bitter folio
#

Oh I see

faint pasture
bitter folio
#

Working

faint pasture
bitter folio
#

Old methods, I was trying to refrence how I did my health bar for the player but I went through like 3 diff ways and had left over code, with that being said ima go clean that up, ty for the help

crude helm
faint pasture
#

OK first off where does the rotation come from, or do you just pick that?

#

I'm assuming the rotation and the 2 things to line up are set in stone, now just to move the 2nd thing to line them up right?

crude helm
#

comes from the arrow name, each one ends with L, R, T, B.
It does rotate correctly, the issue is the offset movement

faint pasture
#

Do you rotate first then move or rotate and move in 1 shot?

#

If you rotate first it's easy, just move by Arrow.WorldLocation - OtherArrow.WorldLocation

crude helm
#

I was rotating firs, then moving, now I'm trying with set actor location and rotation node, which I don't know how it applies

crude helm
faint pasture
#

If it's all the same just rotate first then move, otherwise you need to effectively do all the rotation math on your own end

crude helm
#

I just don't get how the inverse transform would help since you mention it

faint pasture
faint pasture
crude helm
crude helm
faint pasture
#

That does it all at once

#

you have not rotated by the time you go to get locations of stuff

#

it'll be easier to set rotation -> do the subtraction -> set location

crude helm
#

Oh, I see, I'm subtracting, then rotating

faint pasture
#

yeah you'd need to rotate the subtraction in that case, with all sorts of math to consider how the arrow moves when you rotate the room

crude helm
#

should be easy to invert those nodes, lets see

faint pasture
#

It should be literally this simple
Set Room2.Rotation
Offset = Room1.Arrow.WorldLocation - Room2.Arrow.WorldLocation
Room2.WorldLocation += Offset

crude helm
#

Oh, you are also basing off the other arrow location, I'm basing off the bp center

#

noted, well it is the same, center of new room is the same location of the arrow

crude helm
eternal gate
#

Any way to get this bug to go away aside from restarting the editor?

#

The variable type changing from "thing" to "LIVECODING thing" after a live coding compile

desert juniper
crude helm
lofty rapids
#

i think #cpp will probably know more about it ?

desert juniper
# crude helm Don't tell me, the struggle is real

fr. i've been working on mine for about 2 months.
there was definitely a lot of struggle in rotating the rooms / hallways to face the correct way around a pivot. had to do some math. i don't do math 👿

crude helm
desert juniper
crude helm
desert juniper
copper chasm
#

I decided to start my prototype project over to be more forward with gameplay tags

#

😠

wraith loom
#

Is save game the only way to save player info to a server? If so, what would be the best way to save information? E.g. each player has a save file which holds everything, or each player has multiple save files for different information.

scarlet timber
humble matrix
#

can someone help me get physics?

#

in my game

gentle urchin
#

Ugh refactoring this Quest system really is painfull

lunar sleet
#

Will be worth it tho

visual ember
#

that's the first quest

gentle urchin
#

yeah just gotta rework everything about it

#

once it's done its gonna be good tho.. I think

visual ember
#

what's being fed to these?

visual ember
#

*let's pretend we didn't see it*

frosty heron
#

Nvm I just scrolled up and now it make sense

#

Usually after more than 4 else if ladder I would reconsider what I'm doing

lunar sleet
#

I mean… that whole thing is a mess

#

Idk why people think getting some fancy node/noodle plugin means it’s ok to make your code as illegible as possible, cause the lines are more straight

#

And that’s just the aesthetics lol

frosty heron
#

There is also some degree of precision with floats,

#

Probably want the node with error tolerance

lunar sleet
#

If whatever is plugged into all those branches is the same value, the first and second checks are completely identical

wild crater
tardy spire
#

I'm new to Unreal Engine 5. I was trying to follow a tutorial on how to create a simple kart racer game, but when I tried to implement the wheel rotation movement from the tutorial, it didn't work. Sorry for my bad English. Here is the video I was following: https://www.youtube.com/watch?v=OcNsToxPm_U. I’m having a problem with the section of the video around 8:00 to 9:00. Please help!

SUPPORT ME
Patreon I https://www.patreon.com/ryanlaley
Buy Me a Coffee I buymeacoffee.com/RyanLaley
Donations I paypal.me/ryanlaley

PRIVATE 1-2-1 SESSIONS
Email me at support@ryanlaley.com for more information and rates, or visit http://www.ryanlaley.com/sessions

JOIN THE COMMUNITY
Discord I https://discord.gg/TcPtCBp

FOLLOW ME
Twitter I http...

▶ Play video
young meteor
#

Hey folks

Is there a way to "snap meshes together" using sockets? (I know how to add an actual socket. Just not if I can snap them together easily in my level using those)
Or if you know a better way let me know.

I have a few different track sections that I would like to be able to line up easily.
Like:
Straight
45 degree bend
90 degree bend
crossover

frosty heron
#

what snaps to what?

young meteor
#

So that I can snap two track sections together.
Without socket I feel I can line up the pivot point to a precise location on one end of the track. But I need something to snap the next section to. Thinking a socket might be the way.

#

Stuff like such tubes for example

versed sun
#

In game or in editor?

young meteor
#

editor.

#

Hoping it would help down the line for in-game too, but that is not a requirement right now.

dark drum
#

Does anyone know if it's possible to have an editor utility actor call something if it's destroyed/removed from the level in the editor?

versed sun
#

are they uniform sizes?
Looks like they are

young meteor
#

Like 500 by 500 for example you mean?

versed sun
#

yes , but top one is 1000x 500

#

set your snap size in viewport

young meteor
#

Could maybe make them be

versed sun
#

45° might be hard

young meteor
#

Right, gives trouble when I start using 45 degree bends though.

#

I could maybe center the gismo and make sure they are 500 by 500 for example.
Then I can use the align tool, and move along local gismo direction after that.

#

Just figured there would be some sort of easy customizable snapping.

gentle urchin
#

Editor tool for placing them running constructionscript logic

azure walrus
#

Hello, do I have an error here? when I set the Bool Danger as True, I always get false

frosty heron
#

event begin play run as soon as the actor is spawned

#

who knows when your event danger is called

versed sun
#

but brain has been wrong before....

gentle urchin
#

Nice brain

#

Thinks same as mine

young meteor
#

haha

gentle urchin
#

So its good from my pov 🤣

azure walrus
young meteor
#

What a smart brain you have. It's almost as good as mine 😄

gentle urchin
#

Also

#

You can have it move in a grid

versed sun
#

you can hold info in the socket's tag if you need to have different types

young meteor
#

Need to look into how construction scripts work.
But after that I guess an overlap sphere to trigger and then setting location based on a socket transform would work.

young meteor
versed sun
#

If you have Tubes, and you dont want them to connect to Wires, you can give the socket a Tag, and check for that before snapping

gentle urchin
#

Wowowow

#

Is that new?

tardy spire
#

Can anyone please help me? I'm new here.

versed sun
#

I think i did it in ue4

copper chasm
gentle urchin
#

I never saw it

versed sun
#

Advanced Dropdown

gentle urchin
#

Always looped them and compared the name
....

copper chasm
#

So I'm working on character creation, and I want the character creation system to save the character data - would that just dump right into a savegame function? Wouldn't it make more sense to dump it into a SaveCharacter function and then put any characters we have into the SaveGame?

frosty heron
#

Saving is just the act of writing to storage

#

you can do what ever you like

#

just make sure the design make sense

copper chasm
#

I guess this is more a design question than a blueprint question, yeah

frosty heron
#

You can write straight away, you can pack the data and write it together with other attributes, it really depend on you imo

copper chasm
#

I want to think long term but I also don't wanna try and learn to swim in the ocean, if that makes sense

gentle urchin
#

Some games seem to save entire worlds lol

#

2 minutes in - savefile >50mB

copper chasm
#

If I keep the saving strictly to the character creator for now, later when I build a proper save game I can just feed that data in

frosty heron
#

not really an aswer that people can just say, oh just do X

#

you can always keep it simple ofc

copper chasm
#

sure, I guess I was asking more for opinions on my thought process

frosty heron
#

Press button -> Finalize Character -> Save

#

My game is 1 Character Per slot

#

So i just create a new save slot when character is finalized

#

Save game for slot 1 , 2 , settings

copper chasm
#

I get you

#

I think 😂

#

Is there any reason I'd want to put my tags anywhere other than defaulttags.ini?

gentle urchin
#

Organization

#

Collections

#

Editing Rules

copper chasm
#

UE will load tags from every source I tell it to, and I can put each "category" in its own source?

#

Maybe a little too compartmentalized, but I don't hate the idea

tardy spire
#

@visual ember What should I do? I can't speak English very well. I use ChatGPT to translate, but I'm not sure. This was my question.

frosty heron
#

I add tags as native tags so they are reachable in cpp

gentle urchin
copper chasm
#

the adhd, it forces me to start every thought with "how can I do this with the least amount of self-sabotage" lol

frosty heron
#

doddle on paper

#

Planning before attacking

#

ofc I am never satisfied too because as we learn, we think of better ways to do stuff

gentle urchin
#

Smart

frosty heron
#

but if you keep re-doing your work, you will never finish the game too

gentle urchin
#

I use Miro for this

#

But sometimes pen and paper is much smoother

copper chasm
#

If I had a dollar for every notepad I own with some bit of game info doodling in it

#

I'd pay someone to make the game

gentle urchin
#

Wouldnt pay very much huh

copper chasm
gentle urchin
#

250 notepads barely get you 2 hours these days

gentle urchin
gentle urchin
#

I have a (virtual) bookshelf full of abandoned projects

frosty heron
#

I love doing UI

#

probably the most time I had fun when doing my character creation

#

I'm doing a very painful way of loading the assets to

#

using FStreamableManager

gentle urchin
#

Painful?

frosty heron
#

woulda use UE5Coro if I am not such a noobie

#

it would be 2 lines vs 30

gentle urchin
#

Its 2 lines for me 🤯

#

Well 3 but

#

Curly dont count

#

(Found out you can also do batch loading of assets in a bp macro )

frosty heron
#
void AAGCharacterPreview::ArmourLoaded(UObject* LoadedObject)
{
    if(IsValid(LoadedObject) && IsValid(LoadedObject = Cast<USkeletalMesh>(LoadedObject)))
    {
        USkeletalMesh* ArmourSkeletalMesh = Cast<USkeletalMesh>(LoadedObject);
        GetMesh()->SetSkeletalMesh(ArmourSkeletalMesh);
        OutlineArmour->SetSkeletalMesh(ArmourSkeletalMesh);
        //Set Mesh Anim Blueprint to the Armour Anim BP
        if (ArmourAbpPayload == nullptr)
        {
            ArmourAbpPayload = NewObject<UStreamablePayload>(this);
        }
        ArmourAbpPayload->SoftClassRef = CosmeticDataArmour.AnimClass;
        FStreamableClassPayloadDelegate ArmourAnimClassPayloadDelegate;
        ArmourAnimClassPayloadDelegate.BindUFunction(this, "ArmourABPLoaded");
        ArmourAbpPayload->AsyncLoadClassStreamable(ArmourAnimClassPayloadDelegate);
        //Start Loading Armour Outline Material

        for (int i = 0; i < CosmeticDataArmour.OutlineMaterials.Num(); i++)
        {    // Load Every Outline Material for the Armour //
            LoadArmourOutline(CosmeticDataArmour.OutlineMaterials[i].Material, CosmeticDataArmour.OutlineMaterials[i].SlotName);
        }
        
    }
    PostMeshLoaded.Broadcast();
}

^ What I got 🤡

Coulda just be something like this

AttachedAudio.Add( UGameplayStatics::SpawnSoundAttached(co_await UE5Coro::Latent::AsyncLoadObject(HomingSfx), PSC));
#

cbf refactoring

gentle urchin
#

Puf

#

This looks painful :p

#

Im using a lambda thing

#

Thats my level of knowledge 😂

#

Which just calls the function when the ssset is loaded

#

In a case like yours id batch them all, and call the function when they're all loaded

copper chasm
#

So the thing I liked about using Enums was that I could use them as data and also convert them to player facing information - with gameplay tags, I'm going to have to manually convert Ancestry.Dwarf.Forge to string values that will display in a readable way, I think

#

unless I just handle that strictly through widgets somehow, which I think makess the most sense

frosty heron
#

converting them is one node away?

copper chasm
#

if I convert to a string, it's structured in an ugly way

frosty heron
#

can you show an example?

copper chasm
#

it's not a proper example, but

frosty heron
#

why do you need to convert them too?

#

Enum is just an integer with a name

copper chasm
#

If during character creation, you pick Gnome, and it gives you the gameplay tag Ancestry.Gnome, and then you pick the Sensate Heritage, it gives you Ancestry.Gnome.Sensate, and then I need to translate that to show Gnome and Sensate respectively on a character sheet widget

#

I could convert the enum to a string and use that for UI, if I convert the gameplay tag to a string, it's got gameplay tag formatting

#

I'm thinking it's gonna be better code, but twice the work

#

which is fine, I just am not sure if there's a better approach

#

(not an actual use case example, just showing I'll have to edit that string or set the gameplay tag to a UI text specific or something)

#

before, when you picked gnome, it set the ancestry enum variable on that character, and I could just pull that and convert it for UI

frosty heron
#

if it's for definition you can just make a map pair of GameplayTag and FName(description)

copper chasm
#

How would you format it to not show part of the tag?

frosty heron
#

like the . ?

#

just replace the . with space

#

you already convert it to Fname/String you can format it as you wish to display as a text.

copper chasm
frosty heron
#

you can format the name/string

copper chasm
#

Sure, I just meant I'm ignorant of how to format it in a way that would ignore parts of the name

#

I've only ever really used format to combine multiple variables into a single line of text, not to chop up a variable

frosty heron
#

can you elaborate on "coverting" the tag for UI?

copper chasm
#

In the insance of my above screenshot, I only need the word "Sensate" to show on the screen

#

It's probably better to just use a map like you suggested earlier

#

instead of trying to subtract text from every tag with formatting

frosty heron
#

so you just need the last text from the tag?

copper chasm
#

In most cases, probably

frosty heron
#

you can just format it, find the index of the last . found and just use that as the text

#

Substrings or w/e it's called

#

i am out of touch

#

it should be just one node away too

#

I used enum too for something simple. Mostly UI stuff like to define pages

#

but for something more defined like attributes, characters, types, etc. I would totally use game play tags

copper chasm
#

well eventually, for the character races, the info will be relevant for lots of other stuff (conversations, race specific feats, whatever) so it made sense to convert it

#

I'll just try the map for now

#

kinda works like I'd want, and then I can use the gameplay tag for game data and the enums for user facing data

#

and if i build the data table row to naming conventions matching the gameplay tags, that would make that much easier too I think

#

cool, off we go

frosty heron
#

Im not sure why you want to involve enum here

copper chasm
#

also to prevent typos and make selection easier

frosty heron
#

gameplay tag is there to prevent typos

wraith loom
frosty heron
#

Enum is just a named integer, you already have gameplay tags, I don't see any reason to involve enum there

frosty heron
#

It really depends on your game man, you don't need databases for every project.

#

Look at baldur's gate, multiplayer game, but we save the file locally

copper chasm
#

the enum is for the player facing data, and I can't get the gameplay tag to format the text the way I want, it's potato potato from a map of tags to names or tags to an enum containing all the possible names

frosty heron
#

I am doing listen server too, no data base, nothing. Just save the data locally for each player.

wraith loom
frosty heron
frosty heron
frosty heron
wraith loom
#

I'm not making a co-op game. I'm going to try EOS.

frosty heron
#

if you are using listen-server model, you shouldn't waste your time preventing cheaters

#

because you can't

#

even a 10 years old kid can use cheat engine

copper chasm
frosty heron
#

8 races into an enum?

#

I am not understanding the objective here

#

why are you using enum at all

#

so if there are like 100 races, you are going to make 100 enum?

#

that's labour extensive, apart it still doesn't make sense to me anyway.

copper chasm
#

I guess I just don't understand the manipulation

#

I'll look into it

gentle urchin
#

ParseString (delimiter = .)

copper chasm
#

I got that far, but then i don't know what to do with the index

#

I know he said lastindex, so I'd be getting the last .

gentle urchin
#

Ancestry.Dwarf.Sensate becomes
StringArray(
0 = Ancestry
1 = Dwarf
2 = Seesate)

copper chasm
#

and then probably something about left chop or whatever

gentle urchin
#

No chop needed

#

This splits it

#

At the . Mark

copper chasm
#

google is so difficult to read through for anything other than the most basic ue tutorial trash D: