#blueprint

1 messages Ā· Page 384 of 1

surreal peak
fluid flint
#

Some people when I am saying I do game design they are thinking of game design like create the game itself but actually game designing is not the creation of the game its actually the planning phase before the creation so pre production phase.

scarlet root
#

god damn.. i hate writing Blueprint Async Actions so hard...

surreal peak
#

Game design is not limited to pre production

fluid flint
#

yes I know

surreal peak
#

Then why write it :D

dark drum
#

I wrote an essay on UI free game mechanics and how they differ to usual UI prompts when performing actions in games. It wasn't my finest work. šŸ˜… Getting people to test the end result was interesting though, even if it wasn't very scientific.

opaque wagon
#

hm. game design its like create story/write book? create rules of a world.
And coding -> implement it?

scarlet root
fluid flint
#

I am just saying the focus is in pre production I think afterwards game designers do balancing a lot like difficulty, mechanics of the game and more no and level design probably because its a sub category of game design

#

like creating GDD's

dark drum
#

I don't think I've ever seen a GDD that was the same at the end as it was at the beginning.

fluid flint
#

This has to be done at the beginning and has to be edited afterwards.

frosty heron
frosty heron
scarlet root
#

while i need to say.. today's GDDs can be so much more fun to design and fill.. than 20 years ago..

Milanote and stuff make those things much cleaner and more visual..

#

loves his Milanote works..

frosty heron
#

Trying to start a project with a friend and he wanted to do MMO otherwise its pointless and boring.

scarlet root
#

isn't the point of an MMO to be pointless and grindy (=boring)?

#

XD

frosty heron
#

Not if its a good MMO

#

Well i find Wow and FF pretty boring.

scarlet root
#

Josh Strife Hayes made a Video about that topics, cause of the failure of Ashes of Creation...

kinda was interesting to see the POV of a player..

#

beside the fact, that an MMO is absurd amount of work to keep it running and interesting for a looooong time..

fluid flint
#

Hey, guys! I want to say the line trace in UNreal works the same as in Unity I mean the line has to detect a collider in order to be shown?

fluid flint
#

Or doesn't matter if it has box collision

scarlet root
#

a collider with the specific trace channel

#

what type of collider, doesn't matter

#

only the Trace channel

#

per default you have "Visible" and "Camera"
But can add more Traced channels in the Project Settings

fluid flint
#

yes but my actor doesn't have a box collision but still got detected

scarlet root
#

normally, all Objects you place.. arte in the visible CHannel by default

azure yew
#

Hi there. I was reading a blog post about beginner game development courses with Blueprints. It mentioned both Stephen Ulibarri and GameDev.TV. It said that the latter received negative comments specifically from this discord server, but gives no insight into this what so ever. I’m just wondering if there is any validity to this and what you guys would recommend I start with? Thanks.

scarlet root
#

or a capsule

fluid flint
#

oh so even if it doesn't have a box collision the mesh itself works as a collider

#

right?

dark drum
fluid flint
#

right?

scarlet root
#

A Mesh normally has a Simple and a Complex Collision per default.
You can switch that off in the import popup.. or when opening the Mesh asset, in the details..

fluid flint
#

I dont have to add a box collision right

scarlet root
#

again - the type of collider does not matter for a trace..
Can be Box, Sphere, Capsule, Mesh.Simple or Mesh.Complex

fluid flint
#

What are those?

scarlet root
#

Simple Collision is a very low poly shape of your Mesh.. while a Complex Collision is a more vertex dense Mesh overlapping your actual Mesh, serving as collider

scarlet root
fluid flint
#

I remember I had an issue

dark drum
scarlet root
#

For Props.. the simple collision mostly fits..
While Characters should be complex,

fluid flint
#

When I had the player start inside my house mesh there was a bad size icon in the player start and when I have changed the mesh collision to complex as simple it worked

#

I mean that was interesting

#

why?

scarlet root
#

you even can completely get rid of both colliders and do yourself a setup with Box/Sphere/Capsule

lusty delta
#

is there a way of changing the order of the categories of a blueprint? I got some variables that I want to edit on instances and they should be as far up as possible. I could throw them in Character or Default, but that's not the best solution.

fluid flint
#

Why I had this issue with bad size before?

dark drum
scarlet root
#

maybe the Player start stuck in floor and ceiling?

fluid flint
lusty delta
scarlet root
#

"Bad Size" normally is a collider problem.
Either your Player Start is stuck in the ground collision, or ceiling collision, or both...
Or your Character spawned from that Start will be when spawned...

#

i normally place my PlayerStarts around 10 units above ground level..
Giving them a small drop.. but ensures being unstuck

#

same for when saving Location > Loading location..
I always add 10 units on the Z of the loaded location

#

GREAT..

My Typewriting is actually working šŸ™‚

fluid flint
#

Is there a way to prevent this from being spaghetti soon?

#

I mean some stuff have to be connect with the hit actor of my break result

scarlet root
#

Move stuff closer to each other, don't waste space.

You also can take a look on the Electronic Nodes Plugin, which makes the Wires more straight.

Beside that - in Events.. no..

In Functions on the other hand, you can have local variables to hold stuff and use them without wiring..

  • in Functions, you can Get the Inputs of the function directly in the graph, without wires.
crimson briar
# fluid flint Is there a way to prevent this from being spaghetti soon?

Some more tips:

  • you could make the hit result a local variable if this is inside a function
  • stick nodes like DoesImplement... right below the branch - since it is a bool you don't need to see the wire, it sticking to the branch will be more clear imo
  • don't drag three times from the same output pin (unless the connections are close enough), drag once and double click to make nodes. Less wires to keep track of. But some people dislike the redirect nodes for some reason
  • this is more personal, depends what you like but keep it consistent where you position nodes. For me for example, if I call a function on something else than the current BP, I place the target right above the node. And standard inputs are always below it. I also try to always keep it so the wires don't go backwards - for example the end of the node used in a branch shouldn't be further to the right than the branch

With all of this I don't have problems noticing what is happening in my BPs, most of the time at least. But at the end of the day there will always be some spaghetti, especially the more stuff you add.

true valve
#

Async loading asset in a loop doesn't work, but would it work of if I use macro?

errant snow
normal raft
#

in this pic you can see i have a made a manual chaos setup for the one building using anchor-field, master-field, and sleep-field, all well and dandy you can do what you need with it to a degree, but its like its only really there to create a chaos cache if i am not mistaken? -

The other two are BP's with GC's inside which are able to just crumble themselves so no need for the Master-Field and they can be customized to a different rest collection, and they just use the global AnchorField and Disable Field.

Should i be looking at the geometry cache at this stage, and do you loose collision on the pieces if you go that route?

gentle urchin
errant snow
gentle urchin
#

I don't recall the specifics about it, wether it was some linking cost or something else, but it was enough to affect the performance when you did 'tons' (vague, i know) of redirects

errant snow
#

Then it must have been an Editor-time performance issue. They’re completely compiled out of the runtime bytecode.
But if they’re causing a performance issue it’s probably more general node counts and not the reroutes specifically.

gentle urchin
#

that could very well be , it'd make sense for them to go away during compilation ... but then again unreal doesnt always do things that makes sense (to me anyways )

#

and it seems you are correct. They mostly affect compilation time , and Adrien says no cost

#

so i guess thats debunked šŸ˜„

errant snow
#

Well I know for a fact they get compiled out. I just ran into that code earlier today in fact.

#

šŸ˜‚

gentle urchin
#

damn, what are the odds 🄲

errant snow
#

Yeah I could see them affecting compile time … but again that’d be more of general node count problem.

gentle urchin
#

Yepp yepp

#

Never really had any issues with that , compile time on bp's that is

#

Guess i dont build large enough

errant snow
#

And if it’s getting that bad it might be time to reorganize it a bit.

gentle urchin
#

Indeed. I've seen some pretty stramge things

#

I used to do them myself when i started , because thats whay the tutorial showed me šŸ˜…

errant snow
#

I use them plenty.

gentle urchin
#

8 paths from a swoth on enum with 99% overlap, lets not fix the 1% but do 8 equal paths with separate nodes

queen dagger
#

for the drop item into world for the inventory for some reason the item wont spawn while im walking on the ground but the minute i jump and drop the item the item will spawn

#

the spawn actor is set to always spawn so am i possibly missing something else?

gentle urchin
#

Gotta check whats calling this

#

Add a print to verify that it gets called when it should ?

queen dagger
#

the player character is using this

#

it is being called at the correct time as well

#

its just not spawning unless the actor its spawning isnt coliding with anything

#

should i set the actor itself to ignore collisions?

gentle urchin
#

Could try that yes

#

Ignore it by default, and enable it on beginplay or smth

#

Id also just ofdset it from the player location, but maybe you dont want that

hazy dawn
#

Hi! Not sure what channel to use for this, but lets try this one. As level designer, any recommended course for Blueprint Engineering (Gameplay / Systems), Intermediate/advance that i can start, im not new with BPs

wraith loom
#

I can't set the color of collision boxes during runtime for some reason. I can set the color value fine in the editor, but during runtime setting the color does nothing. Is there some permissions I need to check or something?

leaden helm
#

Having an issue. When execution hits SpawnActor, the array index value is gone, so my offsets are always returning the first value. in c++ I'd pass the index as part of the delegate, but how in BP?

leaden helm
#

Got it working in a different way, adding the spawned character into an array and so went off that

sick sky
#

Loop + async will make loop array data fucked up when you try to get it

leaden helm
#

Yeah I knew that was the reason, just took a while to figure out a solution

#

first day back in UE after a looong break

sick sky
#

generally an extra event does the trick

#

Loop body -> call event (pass params)

Event -> do stuff -> Async action -> do stuff again

#

event will have the stuff cached data will be maintained before and after the async action

#

event calls should be unique, would have to test tho thonk

leaden helm
#

hm, yeah that would work too. But naw after I spawn the actor, I put into an array, so I just use that index to get the formation index

maiden wadi
#

Just loop the array like is being done. And on every Async callback, check if everything in the array is loaded. When it is, spawn things as you originally intended.

#

This is one reason why bundles are so nice. Preload the stuff you need in gameplay and not have to do this kind of stuff in gameplay classes.

leaden helm
#

this is part of an encounter system for a JRPG type combat thing... so I think a bundle would be too many things to load, tho I'm not really familiar with them

maiden wadi
#

This depends on your data structures. For example at Ironward we would probably have a data asset per enemy type. So it'd be easy enough behind a loading screen before initializing anything to decide what this encounter would use, bundle load them. Now your spawner can just resolve the softref because they're already loaded and will stay that way until you change the bundle state on those assets, which you can do as soon as combat is over.

#

Bundling is just taking SoftClass/SoftObject fields on a data asset and loading their content and keeping it loaded in the asset manager for you so that it doesn't get collected. Essentially tracks the thing for you. So your gameplay classes get immediate access. Which is important for consistency and balance across hardware too.

leaden helm
#

ah, I think i understand, but too advanced for me right now. Just getting the basics going, and following a yt tutorial to do it

icy gust
#

anyone know if theres a reason I cant get a timeline to smoothly change my camera roatation lag speed? it just doesnt seem to do anything when hooked up to the timeline.

#

I have it set to go from 2 to 0 because it is set to 2 initially

sick sky
#

2 & 0 is very low

#

you wont notice it

#

also, do yourself a favor and stop using ue4

icy gust
#

not helpful for 2 reasons

  1. With camera rotation lag speed the lower values = more lag and higher values = less lag, and zero is no lag. So going from 2 to zero is actually pretty significant.

  2. I've been working on this project in ue4 for almost 6 years, moving to ue5 will be way more of a headache than its worth. ue4 is still a totally viable engine and doesn't effect the issue at hand.

hollow mural
#

Hi, I finally got debugging symbols enabled, and I tried to open again that corrupted blueprint I had, is it possible to find out what the problem could be from this error log alone? It crashes everytime I try to open that blueprint

#

I even tried to open it in an empty project and it crashes there too

#

So it looks like a really broken blueprint

#

i just wonder if i could open it to recover the code

#

I wasn't able to export/extract the data somehow from the blueprint.

#

but it does show me in a data table form almost all the things i had inside I just dont know how to translate them into something useful, this form is not very readable or useful. Might as well begin again from an older backup version. I can read the variables tho, and the functions and the graph names etc.

frosty heron
#

@hollow mural run the project from your ide on debug mode.

#

Then observe the call stack when crash.

fresh flicker
#

Anyone think they could help me with my BP? I'm trying to make a bp for VR that lets the player grab and fling off of objects but the tutorial I used was outdated (I think) I'm on UE 5.6

hollow mural
#

it's a blueprint file. I suspect that I might have had added an event tick to do some print string debugs

#

or could be something else.

#

but ever since I made that change it destroyed that blueprint

#

it was maybe only one print string lol

#

im not sure...

#

but how would I run in debug mode?

frosty heron
#

@hollow mural is it a cpp project?

#

Corruption in bp only project except for struct is rare.

#

Print string is harmless in tick or not.

hollow mural
frosty heron
#

When crash, you can look at the call stack to figure out what breaks.

gentle urchin
#

It might be caching it

fluid flint
#

Hey, guys! You know I want to enable outline effect on the objects that have the actor tag highlight and to not enable it when player is looking into an actor that doesn't have this tag. I am not sure why but I am getting this error.

Blueprint Runtime Error: "Accessed None trying to read (real) property CallFunc_GetComponentByClass_ReturnValue_1 in not an UClass". Node: Set Overlay Material Graph: EventGraph Function: Execute Ubergraph BP Player Character Blueprint: BP_PlayerCharacter

and

Blueprint Runtime Error: "Accessed None trying to read (real) property HitActor in BP_PlayerCharacter_C". Node: Set Overlay Material Graph: EventGraph Function: Execute Ubergraph BP Player Character Blueprint: BP_PlayerCharacter

inland walrus
#

Is there a node I can call to emulate a mouse click for buttons?

normal raft
#

top tip for all do not accidentally wire the for loop counter into the delay nodes duration šŸ˜‚ .. that was subtle

violet spoke
floral stump
#

the number they return should be same?

violet spoke
#

-1

#

lenght is 1:N, intexeds are 0:N-1

#

but if you subtract šŸ˜… then yes

floral stump
#

last valid index is length -1 , no?

violet spoke
violet spoke
#

Light blue

#

Watching script, you should check if Hit actor is valid from Hit Result

narrow sentinel
#

Anyone know why i can't add the IAbilitySystemInterface to my player controller BP ?

#

when I search for it can't find it but I've defo added all the needed plugins

#

arr nvm so appparently you can't implement the interface within a BP

wicked surge
#

Hello, I'm trying to create a PatrolRoute "tool" that is based on an array of vectors (WaypointLocations). The idea is that I can add a vector in the editor, and the Patrol Route then adds a child actor component (a "Waypoint") at each vector in the construction script, before adding each waypoint to a "Waypoints" array using "AddUnique".

I seem to get the correct number of waypoints spawning in the level, but the "waypoints" array has far too many entries as shown in the images. More entries get added every time I edit the locations. I understand that this is because the constructor gets fired every time I edit the actor, but I've tried looping through the Waypoint array and destroying each element before doing anything else, and it doesn't seem to have an effect on how many items the array appears to have in the details panel.

Is there an obvious reason for this? I thought there might be an issue with the array info not updating in the Details panel - aside from that, I'm at a bit of a loss.

wicked surge
#

Ok, I think I've solved this by using a "clear array" node in place of Loop and Destroy. But I have no idea what the difference is.

inland walrus
narrow sentinel
#

out of interest anyone know how within a gameplay Effect how I'd alter the player camera settings, bassically when they dash I want to alter the camera settings a bit for some visual feedback

south plaza
#

Hey everyone,

I'm working on multiple different projects right now. This one is finally in a place where I can share it with you all. AND its 100% made in Blueprint

The game is called You’re Invading My Space, and it’s now live on Steam and available to wishlist. It’s also going to be featured in Steam Next Fest at the end of this month, so getting as many wishlists as possible right now would help us out a ton.

If you’ve been around this server for a while and want to support what I’ve been working on, I’d really appreciate you checking it out and wishlisting it..

This has been my biggest step since earning my bachelors in game development.
Thank you guys.

near wolf
#

hey guys I need some help

#

I have a time of the day slider that controls time of the day.
Morning is 600 (dark) , evening is 1800 (dark)

#

I also have Fog cards, that I want to change the opacity as I'm moving the time of day slider

#

the thing is , I want the fog cards to have 0 opacity at 600 (morning), full opacity at noon , middle value - around 1200 - and again 0 opacity at evening 1800

#

how do I do that

#

I guess something like this, but don't think this is the right way (EDIT , I did it with a curve)

tropic wolf
#

Does anyone know what this red outline on top of the nav mesh indicates? I set the static mesh as IsDynamicObstacle so navigation wouldn't generate on top.

tropic wolf
near wolf
tropic wolf
#

runtime curve works too yeah

near wolf
#

I have another question

#

there is this local fog that I'm using in the scene, but It's made with C++.
Is there a way to convert/open this in blueprint ? I want to expose the parameters/variables to my slider as well

#

it has those parameters that I want to expose to my blueprint/widget

tropic wolf
#

Normally you'd create a new BP class and search for this parent class directly, but I'm not seeing it as an option when going to make one. You'd have to make a C++ child that exposes it to BP. You can also just find this actor in your other BP, cast, and access the variables that way.

near wolf
tropic wolf
#

any of these, but you may want to precalculate in Event Begin instead of getting it every single time for no reason

#

especially if the objects aren't made dynamically

#

and then you'd just For Each

tropic wolf
hardy merlin
#

True.

near wolf
#

I'm not really a BP guy so i'll see what I can do lol

near wolf
tropic wolf
#

search the variable name after pulling off the blue pin in the cast

tropic wolf
#

You can't reference a cached variable from another set of execution lines, but this is the basic idea yeah

marble tusk
# wicked surge Ok, I think I've solved this by using a "clear array" node in place of Loop and ...

Destroying an object and removing an entry from an array are two different things. Destroying an object won't magically remove any array entries which reference it. This is because object references (light blue variables) are not the objects themselves but rather just references to those objects. Think of an object reference like a URL to a webpage. A URL allows you to access a webpage, but if the website goes offline it doesn't delete your bookmarks to it.

Epic treats the construction script as a special case and components you add in it will likely be automatically destroyed the next time it's run. I believe this is to prevent people who don't know any better from accidentally adding hundreds or thousands of objects when they drag their blueprints around the viewport. That being said, the array is different since it's just a variable and not the objects themselves. The construction script doesn't reset your variables. That's why you need to clear the array.

near wolf
# tropic wolf

I don't have event beginplay, this is in my widget. I have event contrusct / tick

tropic wolf
#

same difference, it could make more sense to store that variable in the game mode and reference it externally instead of every widget holding their own unique set of data

near wolf
#

how can I make so each of them increases/decreases from the current value. Is it too complex?

tropic wolf
#

Get Radial Fog Density, save value to temp variable within For Each Loop, lerp from current value to expected value

#

It's not going to be exactly like that, but that should give you a better idea of what needs to happen

icy imp
#

Given the following, I have a building and an area around the building, both static meshes. I would like to get point B, by tracing from center of Building that passes through A and hits the edge of Area mesh

faint pasture
#

Center - A can give you the trace direction, do a bit of math to cook up a start point outside the area and trace towards center.

icy imp
#

Yeah, I thought of line trace as soon as I posted this

thorny sage
#

anyone knows how to properly implement a camera bounce system similar to this one in unreal blueprints? Is it some type of spring that follows velocity or smth?

#

How would yall go about it?

rich pike
# thorny sage How would yall go about it?

I don’t do stuff like this because I make Vr stuff, but if I were to try I would have the camera’s rotation interp to its current one plus a displacement variable (I don’t think you can add rotators together, so split it into X, Y, and Z, add them, and recombine it). I’d also have the displacement interp to 0, 0, 0, through either interp to constant or lerp (I’m not sure which is best for the scenario because I mostly use smoothing for delay on grabbed objects follow a Vr controller’s location). I would then set the displacement on impact with the ground, (maybe add a little smoothing for that as well).

maiden wadi
#

Honestly looks like nothing more than a camera shake on landed.

rich pike
# rich pike I don’t do stuff like this because I make Vr stuff, but if I were to try I would...

To then add the slight change in camera angle, add a Boolean called something like ā€œIsClearingDisplacement?ā€ and make it so Displacement only interps to 0, 0, 0, when on a branch where ā€œIsClearingInterp?ā€ is true. That way, you can set it without it constantly trying to clear it. Then have it have that Boolean be set to true after you set the displacement (add a slight delay and you don’t need the smoothing I had talked about at the end of that message).

faint pasture
#

prett easy

true valve
#

In ue5.7, Edit Layers doesn't exist anymore. Is there anyway to enable that to existing landscape that I created in previous UE version.

floral stump
#

return from which clamp value is actually assigned to torque?

I am converting this graph to C++, and found a variable is set this way which takes returns from two return points

crimson briar
#

What in the... is that

#

Seems like a bug, it doesn't make sense for it to be possible to connect two outputs to one wire. Unless you just overlapped two different reroutes.

floral stump
thorny sage
#

never seen that before

near wolf
#

hey guys, I need some help

near wolf
# near wolf ok, I have one more question. I have multiple fog volumes and they have differen...

I have multiple fog volumes and they have different parameter values.
I want to use the slider, to increase/decrease the density based on their current values.
Right now if I start using it , and click the slider, all the fog volumes jump to the same amount of density - for example 0.5.
I'm using a controller BP to spawn the widget and the widget bp for the logic.
One guy told me yesterday what to do , but I'm not sure i'm doing it correctly

hybrid iris
#

there is very less doc or tuts on the android Leaderboard , achi etc other than 9 yr old video not detail explaination.
can you guys suggest me right resource for it.
https://www.youtube.com/watch?v=nJG5qJpCCxU&list=PLZlv_N0_O1gZ-Qe3XN0R88UAPfa79kxJL&index=5

Announce Thread: https://forums.unrealengine.com/showthread.php?102839

Leaderboards, achievements, and ads, oh my! In this stream, Lauren Ridge and Ian Shadden take a look at the online subsystems in Unreal Match 3 and how these key mobile features are set up for Google Play and iTunes Connect.

ā–¶ Play video
fluid flint
#

Hey, guys! I was wondering if there is a way to organize my nodes like especially cables because like you see from my cast node I have to always drag the cables from this point.

#

I mean for the blue lines

#

maybe promote to a variable is going to work?

crimson briar
#

But it is slightly weird that you continue to the same path after the cast from another chain without the cast. I don't see the rest of the code but it is suspicious, the variable from cast may not be valid when you enter this block from the bottom execution path

#

Also promoting to a variable is always an option, especially if you can and want to reuse it

mental trellis
# crimson briar

I'd go below the nodes with teh blue line since the connection is also on the bottom.

crimson briar
#

Sure, depends how you want to do it. With long wires I'm going above since usually I have calculations, branches and other stuff below and I don't want the wire to intersect with unrelated stuff

lost wolf
#

this is something that would be a lot cleaner in c++
auto player = Cast<BP_PlayerCharType>(Object);
if (currentpuzzlestep >= something && player.hasmistake) currentpuzzlestep = 0;

mental trellis
#

Most things are a lot cleaner in c++ šŸ˜›

floral stump
#

yes blueprinters should start learning C++

near wolf
floral stump
dark drum
dapper acorn
#

Does "generate const class" actually do anything? I thought that const meant I couldn't modify anything

But I made a const actor blueprint, then changed the value of a variable at runtime and it didn't give me any errors

I can also inherit from that blueprint and modify inherited members, despite it saying that subclasses inherit the const keyword

Am I missing something? Should I be marking abstract classes as const as well? There's virtually zero knowledge of this out there

near wolf
floral stump
# near wolf not sure if I understand you correctly lol

just access to the material instance of the thing you want to change intensity for it
like you need a variable in the material which set the intensity, and you can change this variable if you can access the material in any blueprint class

near wolf
floral stump
near wolf
#

I guess I need to use an array to store the values of all fogs etc and then add that with the slider value, but I am not sure how to do it exactly

#

I keep trying things, but not sure what to actually do

floral stump
near wolf
floral stump
near wolf
floral stump
near wolf
floral stump
near wolf
#

I'm a bit confused sorry

#

āœ” Store original densities once
āœ” Multiply original value by slider value

I need to do this

floral stump
#

for other 2 and 3 you can check also

#

and apply different values

#

in loop you can see array index

near wolf
floral stump
near wolf
# floral stump

I did that, but I am not sure what is this supposed to do, sorry for my incompetence

floral stump
#

where it says true, connect there

#

and it will repeat checking, next time it will be 2, now apply new density to fog 2

#

yo can also multiply by index the density and apply

#

you will not need to check for it manually

floral stump
# near wolf I did that, but I am not sure what is this supposed to do, sorry for my incompet...
  ā”Œā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”ā”€ā”€ā”€ā”€ā”€ā”
    ↓     ↓     ↓     ↓
  Case 0 Case 1 Case 2 Default
    ↓     ↓     ↓     ↓
  [1.0]  [2.0]  [3.0] [1.0]
    ↓     ↓     ↓     ↓
  [Ɨ]────[Ɨ]────[Ɨ]───[Ɨ] (Multiply by multiplier)
    ↓     ↓     ↓     ↓
  [Set Fog Density] for each
crimson briar
#

That it, if I understand correctly what you want to do. It sounds a little confusing

near wolf
crimson briar
#

Uh, for one, this is a terrible place to do functional stuff - in a construct AND in a construct of a widget? Widgets should only display stuff and communicate to actors/components when something was changed
But anyway, this is the basic, simplified way of doing it.

#

You may not need the second array if you add this value to your fog volume if it is a custom one - they you just get it from the fog instead of the array

near wolf
floral stump
near wolf
floral stump
#

directly connect with the target

narrow sentinel
#

Anyone heard of Gameplay Messaging system before ??

#

on the starship stream youtube channel they are using it to broadcast stuff out etc and then stuff listening for the stuff and then doing something based on that but can't see it within plugins unless it's named something different in UE 5.5

#

Gameplay Message Subsystem I'm looking for

near wolf
steady night
#

any idea s?

fluid flint
#

Hey, guys! Why I am getting this error?

Graph named 'Interact' already exists in 'BP_Chair'. Another one cannot be generated from Event Interact

steady night
fluid flint
steady night
#

BP_Chair contains a grapth named iunteract already

fluid flint
#

so i have to change the name?

steady night
#

y try that

fluid flint
#

no bro

#

it doesn't work

#

How I hate Visual Scripting you can imagine 😭

crimson briar
crimson briar
full badge
fluid flint
#

I mean right click on my interact interface

#

and converted but if I search for the event interact node it doesn't work I am getting this error

#

interesting

fluid flint
#

Hey, guys! I have a question. Event dispatchers are very similar to observer pattern in programming?

scarlet root
#

binding an Event or a Function to a Dispatcher, listens for the dispatcher being called and then fire themselves

#

in unity it was Event.AddListener - as i remember

#

in unreal it is Bind Event to <Dispatcher name>

#

But i guess.. you can somehow compare Delegates (= Dispatchers in BP) of Unreal with Unitys

fleet prism
#

Hello, I made a simple rope swing from a quick tutorial I found. and ran into an issue when I detach from the rope, for him he had no problems but I on the other had would get messed up after getting off the rope like my orientation would be off sometimes, the controls would act like I was still on the rope and sometimes id be stuck in the falling animation. I managed to tame a few things so now it doesn't happen as often but it still dose. somethings I did were keep my rotation and scale relative from whare I detached to the actor because If their on world then it just breaks every time, another thing is setting my movement mode from falling back to walking. and thies changes definitely helped.

fluid flint
#

but not sure if it's the same

scarlet root
#

If you have Delegates in a Subsystem.. this matches..

Else, each Blueprint and Widget can have Dispatchers.. so no central object.. but individuals to link.

sullen palm
#

Hello, I have a question but not sure if this is the right place. I'm truing to make a very simple line map for my game that's a side scroller. I need to be able to show the player's position between the left and right side of the line.. I understand the logic of what I'm trying to do I just don't know the nodes I need in the BP. Basically I need to calculate the distance between two locations, find where the player is in relations to those locations and show it in my UMG. The image is an example of what it would look like on the UI. I'm doing this in BPs not C+. Can any one help me?

scarlet root
#

You have your start world locations and end world locations

Get the distance of this vectors.

Do the same of Player worldlocation and startlocation.

You now have a max distance and current distance.

CurrentDist / MaxDist == normalizedDist

In your widget, you then can use that normalized distancen Ɨ widget distance to get the relative player location

fluid flint
#

Hello, guys! I wanted to say that today I have discovered a new tool/website for sharing and creating blueprints and send to whoever you want. If you dont know its called BlueprintUE and it's cool.

https://blueprintue.com/

steady night
gentle urchin
#

Guess youd need to debug the nav system

#

And perhaps tune it , but prob to early for that atm

steady night
#

hm any advice on how to debug the nav ?

lost wolf
#

its trying to do avoidance

#

i think

lost wolf
#

there's probably other ways to do that then drawing it yourself

scarlet root
steady night
#

im guessing its the index 0 that needs to be tweeked

#

why is there 4 indexes ? how do i select them on the AI if they want different onces ?

#

or rather is there a way to add "Dont Avoidance" this actor ?

near wolf
mental rampart
#

is there a way to stop slate from eating inputs? Like A or whatever

crimson briar
marble wigeon
#

Do you think it's better to change metahuman to ue4 skeleton, if the whole framework is already craeted on the UE4 Manny?

#

Or change the framework to be using Ue5 Manny?

near wolf
novel flame
#

Hi guys, I am 99% sure that this was probably asked before but discord search is attrocious and I cant find it (Also internet search didnt answer it either :/)

Does anyone happen to know why this doesnt actually apply damage?

Firing Test_Health_UI works, however Apply Damage deals 0 damage, so the AnyDamage doesnt trigger

#

What I'm presuming should be happening is 49 damage is dealt, and the print string says "49.0"

maiden wadi
lean flax
maiden wadi
#

They're aware of that. They said "should".

lean flax
#

My bad

novel flame
maiden wadi
#

Yeah. Do you see that print anything?

#

Should see either blank or a name.

novel flame
#

Nope

maiden wadi
#

Where are you setting Player?

novel flame
maiden wadi
#

This will be an empty property to that type. You have to use a SET node somewhere to actually set that pointer to point to a specific instance.

novel flame
#

And then here i do this

#

I presume i need to do the same as for instance with a widget

#

but i havent found what to use for actors

maiden wadi
#

You'll need to tell it what instance though. You're setting this to nothing right now, which means it'll point to nothing.

#

For the moment, you can probably lazily test this with a GetPlayerPawn at index zero and cast that to your BP type.

novel flame
#

when you say "at index zero", you mean for the damaged actor?

#

or for the set

maiden wadi
#

For the Set here.

novel flame
#

So like this?

It doesnt let me connect the return into the player

maiden wadi
#

Like that, but you'll need to cast it.

novel flame
#

So this basically

#

Yes, that prints a message now, lemme see if the whole thing works now

#

Yep, that seems to have done the trick!

near wolf
novel flame
#

Thanks Authaer!

novel flame
# maiden wadi Like that, but you'll need to cast it.

And I assume I need to do this for everything i scope into another thing?

So lets say I have in the gamemode a "Create widget", but then I want to edit said widget in the third person character, I would have to cast the widget/UI in the begin play first before it would work?

#

Or would I do another create widget in the other scope

#

Okay so doing the create widget did resolve the errors from the message log, but I'm keeping the question up incase its suboptimal or this causes other unseen issues

maiden wadi
# novel flame And I assume I need to do this for *everything* i scope into another thing? So ...

That is... A much more complex question than you might realize.

Realistically you shouldn't do widget creation in the GameMode. Most times your widget creation should be somewhere local to a player. The AHUD class is used a lot as a manager.

The main thing with UI is that you essentially never want anything gameplay code wise to care about it. Healthbars are a great example.

Rather than make the character tell a widget that it's health changed. Your character should just change it's health and broadcast that fact.

A widget, or any other system that needs to care about a character's health changing can bind said delegate as a listener, and just update itself.

Essentially your GameMode and Character should never know about or care about UI. UI should always be like this layer on top of everything else that uses an exposed API to get or listen, and it should manage itself.

sand shore
#

Let’s say you create a widget in the game mode and promote it to a variable. That variable will be an object reference, but specifically to an object of a certain type

#

Normally, that would be WBP_YourSpecificWidget, and if that’s the type of the variable, you could use YourGameMode->YourWidget without needing to cast the Widget

#

(You probably need to cast that gamemode though)

#

You could also choose to store the widget into a very generic reference, potentially even an ā€œObject Object Referenceā€ (reference to an instantiated UObject) - then, all usages would need to cast

novel flame
#

ahhhh wall of text oh god

sand shore
#

Now, the return type of functions is a common source of type information LOSS

sand shore
novel flame
sand shore
#

I’d love to give advice on how frequently casting is appropriate, but the complete answer is also a wall of text, and I don’t want to pile on more than I have šŸ˜…

novel flame
sand shore
#

If you’re working on a full project it may matter, but it’s something you can learn later

novel flame
#

But this could be bad, if the UI widget then ends up being the "main" interface

#

ignore the fact that i accidentally deleted the call for the event below it in the first image lol

maiden wadi
#

Now we gonna talk about timers.

sand shore
faint pasture
sand shore
#

Oh maybe you’re trying to solve something specific and my advice isn’t directly applicable- it’s more explaining why casts are required

novel flame
faint pasture
novel flame
# faint pasture I'd use a timer

haha yeah i figured this is suboptimal, i really just followed a tutorial for this just so i can cobble together a first prototype and slowly learn how some stuff works lol

faint pasture
#

If you have a more general reference and need to access stuff declared or implemented in a more specific class, you need to cast to it. If you want to command an Animal to Bark(), you need to cast it to Dog (to check if it is one.

#

If the Animal was actually a Spider, the cast would fail

novel flame
#

-# I really cannot wait until the moment comes where it all just clicks together and i understand what I'm doing lol

faint pasture
#

If you're learning to drive, you don't bash your head against the wall stalling an F1 car over and over again, you work your way up.

#

Push a bit past, but if the last thing you really understood was 5 videos ago, back up.

sand shore
#

Adriel and I have sorta explained what casts are, once that clicks for you we can expand on the advanced stuff

novel flame
#

So, from what I understand so far:

Cast is basically telling the code "Hey, I need this Thing".
The object you define is basically just whatever it is you actually need

mental trellis
#

Cast does not "get" anything. You don't tell it "I need this thing".

#

What cast does is take an object and try to see if it's of a particular class. If it is, it returns that very same object, but of the type you want. If it isn't of that type, you get none.

novel flame
#

I think I'm even more confused than before now

#

and idek why

mental trellis
#

Let's say you have a node, GetPlayerController. It gives you an object and all you know about it is that it's a PlayerController, right?

#

But you want to know if it's your PlayerController class, MyCoolPlayerController?

#

You would Cast that PlayerController you get from the node to check if it's your one. If it is, you get a MyCoolPlayerController object. If it isn't, you get none.

novel flame
#

So its basically a comparison tool, that, if it returns true, also sends the thing you compared through?

#

IE

#

"Is this dog a mammal?"
If yes, then you get "Dog" out the other end
If not, then nothin

mental trellis
#

Something like that.

#

But more "is this mammal a dog?"

#

If it's a dog, you get a dog.

novel flame
#

So taking this code block as an example:

The cast to BP_ThirdPersonCharacter basically goes

"Hi, am I a Player Pawn?"
And if its a player pawn, it sets BP Third Person Character as the Player Variable
If its not the player pawn, it doesnt?

maiden wadi
#

If it's not a BP_ThirdPersonCharacter.

It can be a pawn and not be a BP_ThirdPersonCharacter

#

The cast will only succeed if the thing you pass to the cast is that cast's type.

novel flame
#

Okay so basically if I'm casting BP_TPC, and I get Player Pawn, but the Player Pawn is actually a first person character, it fails?

maiden wadi
#

Correct

near wolf
faint pasture
#

It's guaranteed to be a pawn, so you could do pawn stuff to it like Possess it etc.

#

but you don't know if it's anything beyond pawn without casting.

dark drum
# novel flame So taking this code block as an example: The cast to BP_ThirdPersonCharacter ba...

A cast is just a type check.

If you have an actor type variable, you can store a reference to an instance of any child of actor in it.

When you cast, you're just checking to see if it's actually a child of the specified type.

If the instance your checking isn't of the specified type the cast fails.

Actor -> Controller

The below are both children of controller.

Player Controller
AI controller

A variable of type controller could store a reference to both player and AI controllers.

Not sure if that helps with your understanding.

wispy mulch
#

How do I make a stagger system using timer handles?

  • stagger is a separate resource that enemies have, when they receive damage they receive stagger damage as well
  • while stagger is > 0, damage and knockback are reduced
  • stagger refills back up upon not receiving damage for x seconds
  • upon breaking stagger, enemy is vulnerable to extra damage and knockback, it slowly refills back up to full over y seconds (in the meantime stagger cannot be damaged)

I'm specifically confused on the third and fourth bullet, on how to properly utilize timer handles for those

faint pasture
#

If you must use a timer

#

mechanically it won't be "refilling" over time, it'll refresh after a duration. It's the same thing pretty much. If you must refill over time then just tick, no need for a timer for that

wispy mulch
#

Ah I see thank you

frosty heron
#

Stagger is a buff / effect modifier. Like any effect modifier they have duration and value.

I will use GAS for my stagger and knockdown.

dreamy sierra
#

hello, i tried both ai move to and simple move to for a spawned in AI character movement, but unit walks a little bit and then stops without reaching the destination. Im ripping my hair out, ive tried everything and i cant figure out why it stops a certain distance from spawn location and doesnt keep going. Please help!!!

floral stump
tardy sluice
#

hi

#

can someone help me?

maiden wadi
# tardy sluice can someone help me?

Generally speaking. It's best to pose at least a basic idea of the scope of help you'll need by attempting to frame your question. Otherwise you could be asking how to set a single property, or how to set up a fully data driven UI. Scope matters and so does personal skill in the task you'd need help with. If I say yes I can help you, then you start asking about how to do editor python scripting, that's going to be a sad day, because I can't actually help with that, but I just said I could help you.

tardy sluice
#

ok mate so i want to create a football game

#

i got the basic hang of it

#

but it is hard

#

if possible can u join in vc?

#

@maiden wadi

lean flax
#

This is satire, right?

tardy sluice
#

please help me i have a issue in my game

#

i don't know how to explain

near wolf
frozen hedge
floral stump
near wolf
scarlet root
# tardy sluice please help me i have a issue in my game

we normally do not make vc here.. too much spam and fakes asking for that to then spam you with ads about their "talent" they offer + most of us deal with own stuff, too - and time is money/code..

So.. please, describe your problem - clarify as much as possible.

Blueprint is a visual scripting system - share screenshots, share videos (best MP4, or WMV.. cause possible mobile playbacks).. give us anything beside "i need help" šŸ™‚

floral stump
tardy sluice
#

here

#

i recorded it

near wolf
tardy sluice
#

gpt just confused me

fiery swallow
tardy sluice
#

i am so dumb gang like actually

#

SORRY TO ALL

fiery swallow
#

better to ask 1000 specific questions, then 1 question asking "How do I make the game?" in a literal sense

tardy sluice
#

Ok got it..

tardy sluice
#

i had a dream to create a game

#

i am like on the way

#

but it is difficult

#

ai's just confused me so badly

#

and the videos are pretty old

fiery swallow
#

Whats your question bro?

tardy sluice
#

check the video please

scarlet root
#

(me can't.. cannot play mkv)

tardy sluice
#

oh ok one sec

#

converting it

#

one sec the sound is so less

#

wait 1 minute

scarlet root
#

would say.. you add way too much force to the ball ^^"

tardy sluice
#

no like to show you

#

i add it

#

it will be 100 modtly

#

mostly

scarlet root
#

it is pretty hard to see anything in the video.. cause you scroll around without stopping at some crucial parts..
For the future, calm down, make slower.. and sound is still way too low...

Forward Vector * {8000,0,0} > Add Impulse == "WTF! Fast"

Force is way too much.. and you add the forcer to the relative, not the world..
since you attach the ball using keeping relative, it slings away..

scarlet root
#

Ok..
First - Why so much wasted space and not straight alignments of nodes? It really is hard to read, even such small BP code.

For the ball - since the cast is not linked to anything.. what is the actual code you use in the video?

For the ball - you kick with 8000 Impulse in local space.. detach the ball first and keep world space, before applying impulse..

Altogether, the code seems not to be right to handle a soccer Game.

Maybe this stuff helps you: https://www.youtube.com/results?search_query=ue4+football

#

UE4 tuts, still work in UE5.. there was not that big changes since then

tardy sluice
#

i chceked them mate ,but all of them are not smiple as i am new to this game developing

scarlet root
#

"simple" is a term of experience...

#

i am new to this game developing

Problem i see then is:
No experience + Multiplayer

#

Not to give you bad feeling about this - but, if kicking a ball is not simple.. doing it in replicated environment and P2P... is overkill

crimson briar
#

Making a 3d game WITH physics AND multiplayer is anything but simple.

maiden wadi
scarlet root
#

XD

crimson briar
#

Well some games are simple. Not much needed to make pong

scarlet root
#

Yes.. Unreal is not the RPG Maker.. and even in the RPG Maker, it is anything but simple

maiden wadi
#

Haha, it depends. Even Pong can be pretty complex. I'll even leave out the points that you might want to ship it on consoles and throw in the use of Unreal. You could use the projectile movement component and some basic onhits to just bounce it around and do the barriers for sure. Set up some UMG for the score. Might even be able to make it local coop without much trouble.

But then take a step back and consider everything that goes into the basics of that simple little project you set up. You haven't even touched a settings menu, a game with different modes, didn't code the PMC yourself, didn't program the input handling or map initialization code, didn't do the rendering pipeline or the slate UI system.

Would be anything but simple in reality.

scarlet root
#

it is not only to understand how blueprint parenting works..
You also want to understand how physics in unreal work, colliders.. how switching physics on/off affects the objects, what objects should be affected at all..

  • On Top Movement, Position tracking

AND

then comes AI...

white parrot
#

Just tell him to get a cs major and resume after at this point

scarlet root
#

na.. but at leats getting more familar with Blueprints at all.. before trying to create a multiplayer networking soccer Game ^^"

#

starting with some smaller stuff..

#

Unreal's learning curve is vertical (it has no curve), quite steep and overwhelming if you try to do everything at once without structure and experience.

floral stump
# near wolf probably... I mean what I did is working. Just not the way I want lol

people is thinking these days AI will make their games, I will say they are hitting on their own foot....
never listen to them, and only use AI for prototyping, not for the actual gameplay code
Attend some high profile courses on udemy for blueprints and for C++ both, this will not only save you time but give you something to learn and not depend on AI

frosty heron
#

@floral stump which courses do you watch?

floral stump
frosty heron
#

Tom looman one is pretty expensive

#

But worth it i guess (if someone is new)

floral stump
#

I value to waste money to save time

frosty heron
#

From his course.

#

Any use of asset managers?

scarlet root
#

(maybe unpopular personal opinion...)
i am not a fan of udemy courses.. or paid coursed at all..

Paywall for stuff you can get free on YT or Discords.. and many of them are pretty outdated, still on 5.0 (or less)..

floral stump
frosty heron
#

Speed running instanced struct, fast array and networking.

floral stump
#

I use it most of the time like a starter for a thing to put me on the right track, and than implementation I do myself

frosty heron
floral stump
#

certified instructor

frosty heron
#

Ngl though 90% of the student just copy one to one.

#

Like i see their progress is just using the same asset and doing the exact same thing.

scarlet root
#

i can recommend Ryan Laley for basic Blueprint stuff (not UI.. don't learn UI from him.. please...šŸ™ )

Also the first hour in Unreal...

And my little list:
Blueprint Fundamentals:
https://www.youtube.com/playlist?list=PL2A3wMhmbeAq3WOT7kQ0EGby1YMb0zj5_

Event Dispatchers:
https://youtu.be/ayCEqL7XFZY?si=jQy8UXyu-0Q7vkE3

Interfaces:
https://youtu.be/x1EY7FvnnZE?si=6rVTVgTAM8sSuZKG

Object References:
https://youtu.be/2gKMkkXxdEw?si=4jyQMGXP6pnsA-P4

Class References:
https://youtu.be/QKy40NbixWA?si=hRvY9GtDKv8wf-JC

Soft- Vs Hard-References:
https://youtu.be/BazkY5aqoig?si=gHoC2gVZqTZuRsav

This video will teach you everything you need to know regarding Blueprint Interfaces in Unreal Engine 5. Even if you've never touched them before, in this video you'll learn everything you need to make blueprint communication with interfaces possible.

0:00 - Intro
0:12 - What is a blueprint interface
1:22 - Live example
7:52 - Interfaces vs cas...

ā–¶ Play video

#unrealengine5 #unrealengine #tutorial #blueprint #blueprints
unreal engine version 5.5.3
series for beginners

ā–¶ Play video

The Different types of References are a point of confusion with a lot of new unreal engine users. Soft/hard references? objects and classes? Today we'll take a look at the blue Object references and the purple Class references. What both of them do, and how to use them.

Join the discord for any help you need! : https://discord.gg/24cdJBP

Join...

ā–¶ Play video
frosty heron
#

I think i saw ryan doing multiplayer bp video once.

#

Never looked back ever since.

scarlet root
#

For Multiplayer.. Cedric's Network Compendium is a Lifesafer!!

frosty heron
#

Yeah thats the bible.

scarlet root
frosty heron
#

Most people just straight up teach the wrong thing on youtube when it comes to mp.

dense hinge
#

Hiya. Weird question, but where is the global gravity control? I deleted an unused gamemode, and my gravity is all floaty all of a sudden? Not sure if this is where I'm supposed to ask about this

frosty heron
#

I dont want to frame people but iirc ryan uses multicast to update health points.

scarlet root
floral stump
frosty heron
scarlet root
#

i skip comment sections.. all together.. makes me sad..

frosty heron
#

You cant even convience the OP and the zealots that casting or casting on tick isnt the devil.

scarlet root
frosty heron
#

"NEVER EVER EVER USE TICK"

#

You have timer!!

#

Honestly if they have some decency these avoid tick and casting people need to go.

scarlet root
frosty heron
scarlet root
#

yes.. custom loop is not for-loop

frosty heron
#

Ahh

#

I stay away from macros

scarlet root
#

custom loop is an event you call over and over again from within itself, using DelayUntilNextTick to wait.. and break by a bool or gate

frosty heron
#

Unless i need it but soo fsr soo good

scarlet root
#

Macros are hell..

#

better use functions

scarlet root
white parrot
#

But they are content creators, they care about making revenue by tricking beginners thinking that their tutorial will help them make their unachievable dream game.

frosty heron
#

Perhaps its achieveable

#

But the mountain is steep

scarlet root
scarlet root
cloud token
#

Cast everything on tick bob_the_builder bob_the_builder bob_the_builder

scarlet root
#

From my profession perspective.. UI and GAS..
Nearly all tutorials are only showcasing the least effort amount of work to do, to achieve something sooo unoptimized and hard to maintain.. you normally puke on it and leave it in the dark..

But so many trust these tuts 1:1.. and produce a mess where you normally should overhaul everything from scratch..

Leading to my problems when doing Client work (so much shit UI and aweful GAS implementations..).. or simply some stuff in the UMG channel here i shake my head at...

#

Yes, you maybe a solo indie dev.. or very small team..
But that doesn't mean you shouldn't learn it the right way..
Especially when directing the view on polishing and maintaining after release..

Every good step you do in development, helps you in the aftermath..

Sadly, this gets not covered in most cases..

white parrot
crimson briar
#

In-depth videos about complex topics take time. Most people knowing Unreal well prefer to do their own projects instead of dedicating a chunk of their time to make a tutorial that is going to get like 10.000 views.
It is just not time efficient for pros to do this sort of thing unless they just do it out of pure passion.

scarlet root
#

You maybe right..

frosty heron
#

https://m.youtube.com/watch?v=y4fE2JdFdvY&t=6s&pp=ygUcQXZvaWQgZGVwZGVuY3kgdW5yZWFsIGVuZ2luZQ%3D%3D

This channel should be standard.

Not content creators that use 8 booleans for directional roll.

The Mediator Pattern:
Software Design Patterns are like a guide on how to write good code, whether you're using Blueprints or C++, knowing good software practices is a MUST!

This video goes over the mediator pattern to build a "Combat manager" to coordinate actions between multiple enemies and the player.
We will also be combining the mediator ...

ā–¶ Play video
scarlet root
#

Think mostly the reason to give people exzessive help in the channels or via DM or jobs is.. cause i feel sad for them..

#

Yeah - one of the few good ones

crimson briar
#

Epic themselves could spearhead this by paying someone to make comprehensive tutorials - but epic is focused more on businesses than indies, so not gonna happen

frosty heron
#

Epic talk is actually great

#

Also matthew wadstein were technically epic staff once.

scarlet root
#

The last epic promoted tutorial I saw (CommonUI) was.. wait.. uhm.. I have no idea how to say this without getting strike by a lightning and send to hell..

crimson briar
frosty heron
#

Some epic tutorial is actually bad in the old days.

#

Even the one for beginners.

#

It was the multiplayer chat system.

crimson briar
#

Don't forget the child actor gun that got so many people into the wrong mindset

lost wolf
scarlet root
lost wolf
#

what if we made an official seal of unreal approval certification license

frosty heron
#

When there are no barrier for the entry. Anyone can make anything.

scarlet root
#

Still sad it got recommended by epic xD

lost wolf
#

you only unlock the blueprint part of the engine once you've been certified to look at blueprints

#

we need to have standards. else we will be doomed to a life of shoveling spaghetti

lost wolf
#

^ also companies that are recruiting for a senior role at junior wages when someone with 10y of experience applies

white parrot
scarlet root
#

One should say to beginners, to not try to.learn everything at once.. and definitely don't try to create GTA VII without any experience right away..

lost wolf
#

epic should be giving us money every time we help someone fix their metahair on this server

scarlet root
#

Or Widget..

lost wolf
#

then you learn how to draw a line

#

triangle

#

maybe a bit of 3D

scarlet root
#

And voila- your own engine!

#

XD

lost wolf
#

then you start by making your own engine

#

it's really not hard

#

i feel like i should do a bob ross like series on game engine development

#

a lil variable

#

some happy lil bugs

#

once you've just gone through the experience of getting your own UI and 3D animated models on the screen from scratch then unreal starts to make sense

#

still rather complicated

#

its like building your first robot and instantly using the most state of the art complex solutions & software instead of just having the most simple electronic hardware

scarlet root
#

Na.. but.. maybe follow simple steps by step rules..

In BP..
1st: what is an actor
2nd: what are variables
3rd: Events
4th: Functions
5th: References
6th: Macros... yeah..
7th: Dispatchers
8th: Interfaces
9th: Creating a Character
10th: Creating a simple Door
..and so on..

And not opening UE first time
"How to create Open World like Breath of the Wild?!" 🄓

frosty heron
#

If the goal is to make a dream game dont do a life time side quest like making your own engine.

lost wolf
#

the goal is not to make a dream game

white parrot
#

Tricking people into thinking they can make their dream game 100% BP is the biggest fumble

scarlet root
#

I've 12 years of experience.. never ever created an Open World..

lost wolf
#

to goal is to learn how to make a dream game as fast as possible

frosty heron
#

You r not getting there faster by making your own engine.

scarlet root
#

I now started creating my dream game.. getting out of more comfort zones I could imagine..
But it works..

frosty heron
#

Have you not take advantage of abstraction.

lost wolf
frosty heron
#

I dont need to know how to write code to convert 3d model or take its animation data to make my dream gsme.

scarlet root
#

I know people struggling using Dispatchers for a month now.. or even understand what their purpose is...

lost wolf
#

you can't learn unreal properly by only ever using unreal

scarlet root
#

I mean.. if you know the foundation.. you may wanna try see sourcecode.. since you learn way faster from it..

white parrot
#

It's esay in C++

scarlet root
white parrot
lost wolf
#

blueprints tend to be harder to understand then c++ for anyting that's not trivial

white parrot
#

Who calls what, who broadcasts

scarlet root
#

The biggest problems about learning Dispatchers - are 99% of tutorials..

lost wolf
#

if you are implementing game logic in blueprints beyond maybe 5-10 tasks per execution chain you are doing something wrong

scarlet root
#

Cause so many people don't know, that they do not need to bind a custom event directly to the binding.. but can use CreateEvent instead for remoting..
Or forgetting to tell that you can add Inputs to Dispatchers...
Or bind multiple objects to one event...

lost wolf
#

i have made entire games in blueprint only

#

you can do it

#

doesn't mean it's good

scarlet root
frosty heron
#

But that doesnt also make your statement right.

white parrot
lost wolf
scarlet root
#

(Folks.. have to say.. I love the discussion here šŸ™‚ )

lost wolf
#

so much more maintainable, readable, flexible, powerfull , performant

#

the only reason to use blueprints is well.. not that much

frosty heron
#

Blueprints r nice for asset references

#

And they r good for self contained logic.

#

Like i aint doing my abilities purely in cpp

#

Or gameplay effect.

lost wolf
#

the blueprints are mostly data only

#

as they are meant to be

frosty heron
#

Completly disagree

scarlet root
#

I do most of the hardcore stuff in C++.. and use BP as front-backend to tie it together...

frosty heron
#

I use bp to glue stuff together. As long they r self contained, bp is great.

#

In general bp is designer territory.

lost wolf
#

the only reason where blueprints are "nicer" then c++ was fast iteration times but now with hot reload its basically the same since it takes 2-5 seconds to compile

#

blueprints are good for large teams where you have people that cannot write code

#

but should those people really be implementing logic

#

maybe for AI behaviours but those are in state trees

white parrot
#

Blueprints are for designers imo

#

nothing else

scarlet root
lost wolf
#

yes UI and VFX are nicer as graphs

#

as are AI behaviours

#

i do enjoy not having to write HLSL and making materials

scarlet root
#

I also use the custom expression very often.. knowing hlsl from old Unity times..

lost wolf
#

yeah withshaders you usually end up too limited

#

but once you start having large custom expression chunks it might be nicer to not have those in a single task..

scarlet root
#

I find it easier to write 1 line of hlsl math.. than throwing together 30 nodes..

lost wolf
#

i did make a very complex renderer in the unity material graph and it was fine except performance

white parrot
fiery swallow
lost wolf
frosty heron
lost wolf
#

blueprint local data being binary is kinda dumb

scarlet root
#

I would conclude myself to this with:
BP + C++

But not one of them alone..

lost wolf
#

its so much better if your data is human readable

frosty heron
fiery swallow
frosty heron
#

He probably meant designers

fiery swallow
#

let's hope

lost wolf
#

it would be so nice to have unreal without blueprints

white parrot
lost wolf
#

unity prefabs came close to greatness but are also deeply flawed

#

the question how to implement data in a game engine is not a simple one

#

with modern C++ we could have insane things

#

all of this was created before modern c++

fiery swallow
#

Blueprints aren't for designers, though. Blueprints are for speedy iterations, prototyping, and easy asset handling. The right answer will always be to use both

#

designers benefit a lot from it

lost wolf
#

once your blueprint gets a bit larger then teration speeds for prototyping tend to grind to a halt

scarlet root
white parrot
lost wolf
#

i think the future is more in hybrid engines where people just integrate unreal / unity for the storefront integration and rendering features but everything else is a custom engine

scarlet root
#

streaming engines...

fiery swallow
gentle urchin
scarlet root
#

no more sourcecode altering..

#

hope not..

#

somehow i need to fix some problems with the engine..

fiery swallow
#

where is Northstar, I don't think he'd miss an opportunity to shit on blueprints šŸ˜†

lost wolf
fiery swallow
near wolf
gentle urchin
#

life is good when you use the best tool for the job

frosty heron
#

C++ for core system and contained codes.

Im not gonna make chest that do x, y, z , b.cpp.

Just make the base class in cpp and derive from it for every custom action.

fiery swallow
#

Blueprints were invented for data purposes only bro cmon

dry sleet
#

Honestly, Blueprint's delegate bindings are ā¤ļø

#

And async actions!

#

Sure, UE5Coro gets you even better async actions in C++ but oh man it's nice to just plop a timeline in when you want to do something janky real quick

white parrot
#

Lesson learnt, you want something janky? use blueprints

dreamy sierra
#

hello, why is it that an ai unit only reaches using a move to node only reaches its destination if the character movement speed is high, but stops early and fails to reach its destination when the character movement walking speed is set lower?

dry sleet
#

IMO, you wanna make something small, use Blueprint -- and a game is made up of a lot of small stuff. Triggers, moving platforms, cosmetic stuff (like spawning particle systems or sounds), basic triggers, arranging a attachment hierarchy etc. are all really nice to use BP for.

#

But yeah haha in fairness the things I outlined as nice (async, timelines, and serialised delegate bindings) are all really scary in BP because they're so deep under the hood it's hard to troubleshoot if something goes wrong.

sour forge
#

Hello ! idk if this is the right place to ask this but is there a way to keep a level sequencer playing without making it longer? I just want it to be on standby (with the character's idle animation still playing and all) until it reads a player input?

lost wolf
#

you want to loop it ? or play a different one that doesn't move and loop that until input interupts it

sour forge
#

ideally just the "last frame" while the animation keeps on going until input interrupts it. otherwise, the latter would work fine !

gray hare
#

Annoying editor behavior I experience. Is this a known issue? Is there some setting I'm unaware of that makes this not happen?

  1. validate file: failure -> editor sets focus to the log error pane
  2. fix asset
  3. validate file: success -> editor sets focus to the log error pane
  4. clear log
  5. validate file: success -> editor does NOT set focus to the log error pane
steady night
#

Hey How would i play a random death animation

frozen hedge
steady night
frozen hedge
#

Create, an array of Anim Montages (DeathMontages).

Use Random Integer in Range, Get array element, Play Montage.

#

For random index in blueprint

steady night
#

yeah but i wanan use it in anim Bp

#

not in bp :/

frozen hedge
#

Ah

#

Well the looping can be fixed

#

Inside your Death → Transition out.

Create a transition from Death → Dead (Final), In the transition rule. Enable ā€œAutomatic Rule Based on Sequence Playerā€

steady night
#

oh that makes it not loo p ?

pine carbon
#

What's the most efficient way of getting a Trace to ignore an actor based on tags?

last peak
#

and then you trace on a different one

pine carbon
# last peak Cant you just create a new trace channel for all these objects ?

I am. They're objects that can be picked up, and I'd like to tag them with "Held" to prevent them from being picked up if something else is holding them. Which works on a single trace, but on a single trace obviously it won't fall through to the next available object, and I'm not sure if running a bunch of tag checks on a multi-trace would be a performance hit.

opal kite
#

anyone here familiar with GAS at all? im struggling to understand why the GetAllAbilities function (active breakpoint in the image) is only returning an empty array.

white parrot
#

Or just filter post-trace

last peak
fiery swallow
last peak
#

under a thousand and you should not even slightly mention any performance hit if you just loop trough them

fiery swallow
#

But I would definitely do a multi-trace in a function and return as soon as an actor failed to have the "held" tag and return that actor to avoid any unnecessary extra checks

pine carbon
#

I try very hard to avoid making custom channels if I don't have to. Right now, pickupable objects are anything that responds to the PhysicsBody channel and implements an interface.

fiery swallow
last peak
#

something like this maybe

fiery swallow
# last peak

In a function you dont need a break. You just use the return node and return the array element

opal kite
fiery swallow
#

It will automatically kill the function and any loops or sequences etc

fiery swallow
#

95% sure isnt enough when something isnt working as expected

opal kite
#

yes also sure its getting the right one

#

there is a print string of the component that is going into the function. and the second is a GAS debug screen of that same actor showing it has granted abilites. so unless im checking wrong and somehow these arent the same. it must be right

fiery swallow
#

Yeah strange, i would have to read what the code does to know. I'm wondering if you can just not use that function and make your own function to return your components available abilities?

lost wolf
#

what happens if you call give ability with a test ability on that component before calling get all abilities

opal kite
# fiery swallow Yeah strange, i would have to read what the code does to know. I'm wondering if ...

yea probably. i may have to. though honestly im fairly green and my brain is already stretched to the max setting this up. I was doing it this way cause it seemed like it handled the communication between everything for you.

what is the simplest way to pass this information from a units that can be selected and deselected by a RTS flying in the sky style player controller. would that be to make an interface to handle that?

opal kite
fiery swallow
opal kite
#

ah i see what you mean. yea that might work

fiery swallow
#

And as far as obtaining a reference to the component, you can just use "get componentbyclass"

pine carbon
#

I would really love to implement that Interface in one of my actor components. But it doesn't exist in the add menu. Anyone happen to know what's up with that?

steep violet
#

LogShaderCompilers: Display: Job FRenderSingleScatteringWithLiveShadingDirectCS(permutation 350, format PCD3D_SM5) compile time exceeded threshold (42.398s) What is this issue?

wicked surge
#

Hello, I can "get by ref" from a struct, but I can't seem to do the same for a Blueprint class. Is there a reason for this?

pine carbon
#

That's an array.

#

And most things return by ref by default.

wicked surge
pine carbon
#

That option is there because the array won't. You do that if you want changes made to that value to also be changed in the array.

wicked surge
#

Thanks, I know what the difference is between "ref" and "value", but I don't understand why the option is there for structs but not classes.

pine carbon
#

You are not demonstrating that this option exists for a struct. I don't understand what you mean by that.

woeful mesa
#

Does anyone know why my "minute" variable is only printing 1? I have it looped but it's not adding 1, it just remains at 1.

wicked surge
pine carbon
#

Oh, this question. Yeah someone had to explain this to me too. What do you know about C++?

steep violet
#

Still getting this problematic message Display: Job FRenderSingleScatteringWithLiveShadingDirectCS(permutation 252, format PCD3D_SM5) compile time exceeded threshold (39.474s)

wicked surge
steep violet
#

Obviously nobody wants to help with it

pine carbon
wicked surge
#

I note that there is a "set by ref" node

pine carbon
#

The blue connectors are pointers. It's not making an actual copy of the object despite how it sounds with the get (a copy). It's giving you a copy of the memory address, rather than giving you back the place where the memory ref is stored.

wicked surge
#

And it's confusing because hovering over the round BP pins says "Actor Object Reference". But I thought round pins were copies, diamond pins were refs.

pine carbon
cloud token
steep violet
cloud token
#

Yes it it

pine carbon
steep violet
steep violet
pine carbon
#

Genuinely not sure what that means.

steep violet
cloud token
pine carbon
#

Is this a troll account?

steep violet
#

System reboot is not helping, restarting UE editor isn't helping, bake alll lights isn't helping, so what is to rule out this obviously random thing?

pine carbon
#

Homie, nobody even knows what your actual problem is right now. You posted one error message with no description of what is actually happening and what the desired outcome is.

steep violet
#

But yes, I missed to specify that, so thank you pointing out to that

wicked surge
pine carbon
#

If you want that, do ++.

errant snow
pine carbon
wicked surge
pine carbon
#

Which, as you'll recall, you don't have the ability to do.

#

You can change stuff inside objects pointed to by the pointer.

#

That being an int, it has nothing inside it to be changed.

pine carbon
steep violet
pine carbon
#

THAT'S what that meant. Okay.

#

Goodness.

#

In that case, wouldn't this be a question for #packaging ?

steep violet
pine carbon
#

I think you have to join the dev ops category.

steep violet
frosty heron
pine carbon
frosty heron
pine carbon
frosty heron
#

I dont get it though

#

Think of blue pin as address of memory

#

Doesnt matter if its circle or diamond

#

Its pretty much just a number

pine carbon
#

I know. In fact I think you're the one who told me.

#

I was attempting to be helpful.

wicked surge
#

...when this isn't going to make changes to the single value

pine carbon
pine carbon
frosty heron
#

Yes it will mutate the object.

You r probably doing something wrong.

Show full code.

pine carbon
#

Put another way: The first one is
*(FoundActor[i]).Location = Vec3(0, 0, 0);
The second is
*WaypointNumber + 1;

wicked surge
#

Wouldn't the second one *WaypointNumber + 1; increment the value of WaypointNumber?

pine carbon
#

There's not really a better way to explain that behavior than "that's how C++ works."

#

"=" is the assignment operator.

#

If you don't use the assignment operator, you don't change anything in memory. Anything with "Set" in the name is gonna be an assignment.

wicked surge
#

Ah you're right, sorry!

#

Ok thanks, that makes sense now.

pine carbon
#

šŸ‘

#

Btw in case you don't know, there is an actual increment operator (++) to do this in one step.

wicked surge
#

Yeah, that's how I started wondering about the diamond pins in BP

#

I thought it was possible to get any value by ref in BP and I've been trying to figure out why it's there for structs and not for other values in arrays

pine carbon
#

Get a copy means get a pointer, that's pretty simple. Just poorly named. I'm not actually sure why you can get certain types by ref in arrays. Based on which ones it's possible with though, I'm guessing it's a size thing.

frosty heron
#

Get by value (copies) get by ref (address)

#

Get a copy means getting the copy of being passed.

#

So if you are passing a string by value. A copy of the string will be made.

pine carbon
#

Is it that the basic types aren't actually stored as pointers?

frosty heron
#

Pointers r address (object reference)

#

Other primitive data isnt address. Int, double, string, etc.

pine carbon
#

I figured as much for those, but I noticed you can do it with a couple of things that aren't native C types as well like Transforms.

#

Although I suppose Transforms are just a bunch of floats at their core anyways.

#

Okay yeah that checks out.

frosty heron
#

You can get variables by copies or ref.

Ref access is limited in bp.

pine carbon
#

So an array of objects would be UObject* arr[] = {&Obj1, &Obj2, &Obj3);, while arrays of primitive types would be struct myStruct arr[] = {struct1, struct2, struct3};

frosty heron
#

Those struct also have an address

#

You can deffinitly have an array of structs

#

Dont confused bp limitation with what you can actually do in cpp

pine carbon
#

Are BP arrays C++ arrays at all, or are they implemented as a more complex data structure?

white parrot
frosty heron
frosty heron
#

Kinda nuts to use bp loop over large data.

#

Looping 10k times = 10k copies of the data.

pine carbon
frosty heron
#

In cpp you do loop over the ref.

#

And make it constsnt ref if we just want to reas

frosty heron
#

10k copies of some int8 is cheap

pine carbon
#

Yeah, that's what I'm saying.

frosty heron
#

But imagine passing like your strucr data

pine carbon
#

Where I'm confused, I guess is:
Is get by ref in BP implemented like THIS:

int intArr[] = {1, 2, 3};

int BP_GetACopy(int index)
{
  return intArr[index];
}

int* BP_GetByRef(int index)
{
  return &(intArr[index]);
}

Or THIS?

int* intArr[] = {&(int){1}, &(int){2}, &(int){3}};

int BP_GetACopy(int index)
{
  return *(intArr[index]);
}

int* BP_GetByRef(int index)
{
  return intArr[index];
}

?

frosty heron
#

You cant get ref on most types in bp except struct afaik.

pine carbon
#

You can do it on all the "default" ones.

frosty heron
#

Or maybe you can but im sure its limited.

pine carbon
#

These.

#

Also Enums and obviously Structs.

frosty heron
#

Well as long you get the diamond pins

#

Thst will return the ref

pine carbon
#

Even strings, which I really didn't expect.

sullen palm
pine carbon
#

Get by ref on an int or a float is such a weird niche thing to do and I'm intrigued that Unreal allows it. I actually had to go look up how to make a literal pointer to a primitive because I've never needed to do that before.

dreamy sierra
#

my ai character using move to stops early after spawning with a walk speed of 3cm/s but makes it to destination at higher speeds like 10cm/s. please help

shut blaze
pine carbon
#

Anyone familiar with Gameplay Tag Containers? I'm having trouble getting my tags to stick when adding them at runtime.

#

It goes through two interface layers to get it out, and it sets it successfully, but it doesn't apply back to the original. Which, I am guessing, means I'm about to learn that I STILL don't understand the nuances of copy vs ref in BP. I can't for the life of me figure out how to get a pass-by-reference node passed along this chain though.

sick sky
#

the left pin isnt a diamond

#

add UPARAM(ref) to the "Tags" output variable

pine carbon
#

It's not made in C++.

sick sky
#

then ur getting a copy

#

unless you can tick the "by ref" setting on your interface function of the output var

pine carbon
#

I know, I'd like to change that. Normally there's a little arrow next to the variable declarations that allows you to set as pass-by-ref, but I guess you can't do that in Interface declarations?

#

I'm hoping I'm missing something.

#

It would be tremendously annoying if I cannot do this.

sick sky
#

seems like a no

pine carbon
#

Is there a reason that's not allowed?

sand shore
pine carbon
#

. . . ah.

#

That checks out.

sand shore
#

well it'd be my guess

pine carbon
#

Well that's unfortunate.

sand shore
#

I'd prefer that the function be excluded from the message node system if it returned by ref, meaning that you'd need to cast or something else before you could use it

frosty heron
pine carbon
#

That is a much better idea than making a terrible wrapper object.

#

I will do that instead.

pine carbon
frosty heron
#

Your native class can implement it

#

Should show up in the bp

pine carbon
frosty heron
pine carbon
#

I'm not sure what a native class is.

frosty heron
#

Cpp class

#

Example actor->character.cpp->mycharacrter.cpp->BP_mycharacter

#

You do implement the interface in mycharacter.cpp

#

Which bp_mycharacter would inherit

pine carbon
#

Ah. Unfortunately no, this is raw on top of ActorComponent. Guess I need to make my own. And probably save it somewhere else because I bet I'll want to use this again sometime.

frosty heron
#

Your actor component should have a native class too.

#

Implement the interface there.

torn python
#

Hello šŸ‘‹

I’m scaling my cat mounts randomly using Scale Actor 3D Scale (0.8 to 1.2) on BeginPlay, then counter-scaling the RiderMesh back to 1.0 so the rider looks normal sized.

The rider's scaling works, but the rider’s seating position is inconsistent when attached to a socket. How do I keep the rider’s 'butt' perfectly snapped to the saddle regardless of the creature's scale?

frosty heron
#

@torn python imo the only thing you should do is just changing the creature scale and the socket will scale relatively.

#

Btw becareful with that random node.

Pure function are run per exec (white pin). So you potentially going to get diff value in creature scale and set actor scale.

If you want to get a random number once, cache (promote to variable) it and use that for both the scale and creature scale.

torn python
spark steppe
#

first check if what summer said isn't your issue

#

if you are on 5.5+ you can also rightclick the node and pick show exec pins to turn it into "inpure"

#

so the value stays the same

frosty heron
#

Probably not i just read that he wants to keep the ridee scale one to one.

#

But yea that random func is shuss

#

Kinda pointless too mayhe since you can just. Get Creature->GetActorScale

spark steppe
#

ah wait, the rider is always scale 1.0, yeah

torn python
#

I'll swap the random func like you said and see

Also love your red panda pfp too haha

spark steppe
#

so it's not the issue

#

what is the socket attached, to?

#

a bone or to the root?

torn python
spark steppe
#

also visualize what happens

#

use draw debug sphere or similar to show you where the sockets end up

#

so you get an idea of which one goes wrong

frosty heron
#

Does changing the rider scale with 1, 1 , 1 actually does anything? Im under the impression that it scales down due to the parent.

spark steppe
#

it does (he uses SetWorldScale)

torn python
frosty heron
#

Ahh i c

#

No clue then, it should work fine unless theres issue with the transform.

Theres like 1 in 100 case where things are not ready in the same frame.

If you add delay till next tick after scaling, before setting to socket location. Does it help?

#

Also if the goal is to attach to the socket, perhaps do that.

spark steppe
#

if it's correctly attached to the socket, it shouldn't matter

torn python
#

i added that delay until next tick and switched to attaching to the socket and it is looking better, as in less variance it seems, but the butt location still varies with the scale of its parent creature :/

frosty heron
#

Hmm not sure if this gonna make diff but maybe you should have the socket parented to a bone.

#

As in create the socket in your skeletal mesh asset

torn python
spark steppe
#

wait i thought you had a socket on the rider, too...

#

so the attachment point of the rider is the pivot of the rider

#

is the pivot it's butt?

#

because i guess it's not...

torn python
# spark steppe is the pivot it's butt?

ah no the rider just has its origin at its feet.

Should I make a socket for the rider skeletal mesh too? I didn't know there was an attach socket to socket option?

spark steppe
#

well at least it would give you a point that you can use to calculate the correct offset

#

if you always scale the rider to the same size, you could aswell "hardcode" the necessary offset

frosty heron
#

calculate the delta and make the offset

spark steppe
#

so i guess your socket on that cat thing is also somewhere inside it's torso!?

#

which you should then place rather on the back of it, the actual surface

torn python
pine carbon
#

Multi trace describes its results as sorted, but I'm struggling to figure out what the ordering is. It's definitely not distance, which is what I want.

frosty heron
#

You can make a func to sort your own.

pine carbon
#

I know I can but I was really hoping I was just missing something. Blueprint sorting functions are abominations and I'm trying to avoid using C++ for complicated version control reasons.

#

Ah well, nothing to be done about it I guess.

frosty heron
#

Bp is binary so not mergeable.

Cpp is text, its perfect for source control.

#

If this is something you need often then you can make a blueprint func library.

pine carbon
#

Oh, I'm aware. The issue isn't with versioning the files themselves, it's that half our team aren't programmers and don't have any experience with C++ stuff. Which means that the more C++-reliant code we have, the less they can test on their personal machines.

frosty heron
#

The programmer write the function library.

The bp designer simply use the function from bp.

pine carbon
frosty heron
#

Its not designer business to read the cpp file.

#

Calling the function is no different than using any existing function in bp.

#

Bp node essentialy just calls a cpp function.

#

Make use of abstraction.

You can use get actor of class in bp without knowing cpp or object iterator in cpp.

pine carbon
#

Hopefully I will be competent enough with Perforce in the future to make it work on another project, but it wasn't worth it for this one.

frosty heron
#

Yeah you do havw to be rebuild.