#blueprint

1 messages ยท Page 392 of 1

lost wolf
#

if you do it like i described it would be massively less complex then whatever you have going on with 3 nested for loops

narrow kite
#

I keep mine separate like Black Desert Online inputs. F is a skill. Shift F is a different skill. The combos have nothing to do with the inputs. Each skill has an input. In Street Fighter it would be like LP + LK+MP is the combo. While each kick/punch has it's own input.

maiden wadi
#

EIS is just the input handler. It says you're inputting a specific type of move. It's up to an actual combo system to decide if it wants to allow or ditch that input.

lost wolf
#

usually in fighting games you want it to respond to the first key and then blend into a different thing after the first thing ends

queen heron
#

I only have the basic attack buttons as enhanced inputs
and send a blueprint interface trigger into the combat actor component to add all the pressed buttons into an array

lost wolf
#

this wont even do that

queen heron
#

then that array is processed inside the loop by checking if the pressed combo matches with a row from the table

#

if not, remove the last item from the string array and check again

lost wolf
#

uh

narrow kite
#

It sounds like you are trying to jam the entire combo in by the player then actions start?

queen heron
#

if a match is found, all loops are stopped and a row with that matching input is called to send the containing data into the combat component to play the animation

lost wolf
#

its very wrong in a lot of ways

queen heron
lost wolf
#

but if it works it works

narrow kite
#

That sounds fundamentally wrong from a game play standpoint

#

Because in Street Fighter for example if you fail combos you still do the actions

#

Or some portion of the inputs

lost wolf
# queen heron how so?

its like orange flavoured chocolate , you can do it, but if i had to eat it myself, i would rather [censored]

frosty heron
#

A fighting game like Tekken would buffer the inputs within a window

#

then just evaluate the keys at the end of the window to perform an action.

queen heron
lost wolf
#

if it works for you it works

frosty heron
#

I use Data Asset to define the combos. Then a series of Gameplay Tags for each combo.

lost wolf
#

just dont expect other people to like it ๐Ÿ˜‚

queen heron
frosty heron
#

string comparsion shouldn't be a go to ever imo.

lost wolf
#

by building messy and overcomplicated systems you are not making it flexible for future adaptations

#

its the opposite

frosty heron
#

Everyone start from somewhere. Who hasn't rework their system over and over? literary no one.

lost wolf
#

yeah its fine to start with a solution like this everyone has to start somewhere but then you start making it better

#

by simplifying it

frosty heron
#

making something simpler doesn't mean better

lost wolf
#

if it achieves exactly the same things with the same amount of modularity (or even more) or performance or whatever you are after then yes less code is much better then more code

narrow kite
#

Someone has to code these insane inputs

storm solar
#

Is their an easier way to update an individual entry in common tile widget?
I have a shop I update with a custom input that changes the selected quantity of an item.
The issue is, when I use regenerate all entries node, it changes what my highlighted selection is. In the first picture I selected iron spear and updated its quantity, but it is now selecting the helmet.
I can't figure out how to get to the specific highlighted entry and just update that information.

dawn gazelle
storm solar
dawn gazelle
#

I'd assume that one of these casts has the appropriate reference since you seem to be changing the values in them.

storm solar
#

I was able to use this setup to cast to the list view entry instead.
This seems to work.

queen heron
#

so it was said that using string arrays is not good
so I looked up the internet, and yeah... I now see why strings shouldn't be used in places that fire too many times...

#

how bad is it? ๐Ÿ˜…

dark drum
dark drum
# queen heron how bad is it? ๐Ÿ˜…

Profile and see how it runs and then swap out for using names, profile again. string comparisons can be pretty heavy and here you're doing it on a loop so you should definitely switch unless you absolutely need to have it as strings.

queen heron
#

great, cause I switched the strings and enums to names

#

and tbh
the game project I'm aiming for is pretty big
so I know for a fact that the old setup was going to create problems

#

also I did wanted to use the profiler first and check things out
but I forgot how it's called exactly

#

plus that I can only find the Profile Data Visualizer

#

there seems to be session frontend
but it's not showing me how much is something doing

icy jacinth
#

I have a master BP for the weapons in my game; it uses a root physics component along with a child static mesh and skeletal mesh. When a static mesh is assigned to the component, it works fine. But assigning a skeletal mesh breaks it so the item falls through the map. Both the static and child mesh components have the same collision settings. Any ideas?

icy jacinth
#

I've confirmed that the skeletal mesh has a physics asset, tried different combinations of simulating physics being on or off, and have tried assigning the skeletal mesh as default rather than at runtime; I've yet to find a solution. The skeletal mesh works fine when added to the word (i.e. not assigned to the component in the blueprint, but instead placed in the world).

lost wolf
#

if you make a new basic actor

#

and give it a skeletal mesh

#

does it fall through the floor

icy jacinth
#

Nope - works fine when it's outside of that master weapon BP

lost wolf
#

does a basic actor with a skeletal mesh and physics achieve the behaviour you want for the weapons?

#

why do you need to do something different in the weapon bp

#

you can also use a different blueprint for the weapon that you see in the world (which doesn't need animations) and the one that the player actually uses when he picks it up

icy jacinth
#

It's a roguelike that rolls random weapons and stats, so the data (including meshes) is based off a data table; I could use a different one for the in world vs the equipped version, though itd be a bit tougher to transfer all the rolled data back and forth

#

I'm sure it could be done if need be, just hoping to try to figure out the collision instead if possible ๐Ÿค”

faint pasture
lost wolf
icy jacinth
#

The root physics component is a collision sphere

faint pasture
#

Could be that skelmeshes don't support automatic welding?

#

What happens if you have a skelmesh with no physics asset

lost wolf
#

my AI characters all use collision capsules and nobody is falling through the ground

icy jacinth
lost wolf
#

the skeletal mesh component should be completely separated from what happens with physics , same with static mesh

lost wolf
#

and if it doesn't break and you have everything then gz you are doone

crimson briar
#

Does anyone have a better idea for having very simple buckets with liquids - but different types of liquids can go inside?
For now I have:

  • LiquidMaterial
  • Cylinder StaticMesh attached to the bucket: it is the actual representation of the liquid, semi transulcent
  • Curve asset for scaling the mesh (bucket is not a perfect cylinder)
  • CurrentAmount - variable that modifies the mesh OnRep

So when the current amount of liquid changes, it takes the data from the curve asset, scales/repositions the cylinder mesh. Hides it if empty, changes material if there is a new liquid etc.

#

But it kinda looks like a lot of components for something this simple

lost wolf
#

can you name 1 game that has done it

crimson briar
#

I mean, not really, it is just a moving plane of water representing how full a bucket is

lost wolf
#

either you do it very simple like minecraft or you make something a lot more complicated

faint pasture
lost wolf
#

if you make the bucket asset a little bit more suited (thicker walls) then you can get rid of the scaling

#

just design the bucket in a way where you can move the water up and down

#

you can either just move a plane

#

or you can make a fancy shader for it

crimson briar
lost wolf
#

if you set it up as a material with parameters for blending between different types then you can have mixtures of multiple liquids

faint pasture
crimson briar
lost wolf
#

usually the plane of water clips into the side walls of the thick bucket to hide it

#

scaling will look weird

#

there are better ways

#

like just using an animated mesh

icy jacinth
#

Tried removing the physics asset and tried spawning a weapon with a skeletal mesh multiple times; oddly, one stayed on the ground but the rest fell though

lost wolf
#

and is their collision detection set to continuous

faint pasture
#

Just with the root collider

icy jacinth
icy jacinth
#

Still falls through whether CCD is on or off

faint pasture
icy jacinth
# faint pasture What are you doing to kick this thing off, only enabling physics on the root sph...

Typically a different actor uses SpawnActor to spawn the weapon class (though I've tried placing the master weapon BP directly in the level too). The Root physics actor isn't modified in any way during the spawn - it just uses the defaults. (I've tried omitting the simulate physiocs nodes in the ss, as well as having them use the target of the physics component instead, both with the boolean toggled on and off - no luck). This screenshot is the logic in the weapon master BP

#

These are the physics and collision settings of the skeletal mesh component (identical to the static mesh component)

#

Hoping I'm just missing something obvious but I feel like I've tried every combination of simulating physics and enabling collision

#

fwiw this is the logic in the other actor that spawns the weapon master bp

visual crest
spark steppe
#

you need a sequence which handles all components

visual crest
pine carbon
#

What is the recommended place to set up a player's HUD?

#

Gamemode blueprint? Character Blueprint? Controller? Camera?

visual crest
frosty heron
pine carbon
#

I don't understand the built-in HUD class at all.

visual crest
frosty heron
#

Thats all, its a simple class.

#

You shouldnt have your widget all over the place. Instead have them in the hud instead.

pine carbon
#

Is there a way to do it for just a widget and not a widget component? Or should I want to use a widget component?

next hollow
#

What is your overall question?
You asked wheres the best place to setup your hud?
You mean, add it to the screen?

pine carbon
next hollow
#

Theres add to viewport, and add to player screen
I prefer viewport if you don't support coop.

While player screen supports coop.
But, both "work"

pine carbon
#

Blessedly, I am not currently working on my multiplayer project.

#

What's the difference between just adding to viewport/player screen, and using the HUD?

next hollow
#

The HUD class is just a little helper.
Its also just a "logical" place to store widget related stuff, cuz thats like its intended job.

Viewport, and player screen should state there differences.

I only really know the comments, but if I had to guess.
Viewport is the entire monitor, while player screen is the half or whatever that is the specific coop person.

#

(HUD only exists on that 1 client, and widgets only exist on that 1 client)
So, sort of planned connection, and just the naming.
Heads Up Display

frosty heron
#

Think of hp bar on an enemy unit.

pine carbon
#

Ah. I do not need that for this.

frosty heron
#

Then just make some event to create the widget in the hud.

#

And cache it there.

#

If you need to access it just use the getter.

#

Get game hud. Cast to my hud, get myWidget.

pine carbon
#

Why the cast?

next hollow
#

To access the custom var on your custom class.

pine carbon
#

But my custom class is just a regular widget. Not an instance of HUD.

#

Is HUD a widget at all? I'm still not clear on that.

next hollow
#

No, its an actor.
Just sort of meant to be a widget helper.

#

You create widget, then store a reference to said widget, in the hud.
If you ever need to get that widget later.

frosty heron
#

Cast is just a type check.

#

The hud helper will output generic one.

#

You need to cast to your hud to access your type.

pine carbon
#

I know what casting is, I'm confused on what HUDs are. I had been thinking of it as "the player's top-level widget" and that doesn't seem to be true at all. Does it control displaying widgets at all?

next hollow
#

No

#

Its just exists as a little helper.

frosty heron
#

Its just an object that is created for you at the start of the game, with a "global" getter for ease of access.

next hollow
#

You could technically make your entire game, without a custom hud class, if you really don't like it that much.

frosty heron
#

It doesnt do anything else out of the box but it meant to serve as a place to dump your HUD related logic.

pine carbon
#

That's what I've been doing in the past, but I figure it must exist for a reason and I'd like to at least make an educated decision about whether or not I use it.

next hollow
#

I think the hud has like 1 special/ custom function related to drawing to the screen without using a full widget.
But, if you just use full widgets, then you just never need it.

pine carbon
#

So if I make a custom HUD, where to I set it and when is it created?

frosty heron
#

Game mode.

next hollow
#

Its defined in the gamemode, and spawned with/ after the controller IIRC.

pine carbon
next hollow
#

Yes

pine carbon
#

THAT sounds handy.

frosty heron
#

Theres a static func too get player hud.

pine carbon
#

So if this is in my player class, I can mostly treat this the same, but I should make a Hand Sprite variable in the HUD instead and set it there?

next hollow
#

Possessed is server only.
So, if your SP this is fine.
But, if your in multiplayer of any kind, no way

pine carbon
#

Yes, this is single player.

next hollow
#

You also have no already exists check, so if possessed happens multiple times, then there will be multiple of your widget.

pine carbon
#

That can happen?

next hollow
#

Once again, depends on the game.

But, just another thing to think about.
(I personally prefer to code in a way that doesn't have edge cases like that)
That be from big changes, bugs, or etc.

pine carbon
#

Sounds good to me. How do you check for posssedness?

next hollow
#

You would use a var to the widget, on the hud, or player controller, and simply just see if its already valid.

pine carbon
#

Gotcha.

faint pasture
#

I've never messed with skeletal meshes with this technique but I do it for static all the time. A static mesh attached to some collision component with auto-weld on results in 1 physics particle with 2 colliders (if the static mesh has one as well.

My assumption is that the same should work for skeletal meshes.

astral summit
#

Hello,

I am using a Data Asset as a manager to facilitate communication between different Blueprint classes. However, I am facing an issue regarding the World Context when creating functions inside the Data Asset.

Is there a better class than Data Asset to act as a manager? By 'manager,' I mean a primary class that handles communication between other classes.

I want to avoid using the Game Instance because it requires manual configuration in the Project Settings. Since I am developing a Plugin, I need a class that works automatically without requiring the user to set it up manually

maiden wadi
faint pasture
astral summit
astral summit
pine carbon
#

Do animations have a problem hitting keys positioned on the very end?

#

I'm having an issue with Play Animation Time Range where telling it to End on the last frame doesn't seem to fire that keyframe.

astral summit
#

If all I need to do is create the classes in C++ and then inherit from them to convert them into Blueprints, why is this person selling it for such a high price? ๐Ÿค” https://www.fab.com/listings/9d3f0583-008a-4c96-b203-975ab6c187b0

Fab.com

่“ๅ›พ็›ดๆŽฅๅˆ›ๅปบไฝฟ็”จ็š„ๅญ็ณป็ปŸBlueprints directly create subsystems usedๅณ้”ฎ็›ดๆŽฅๅˆ›ๅปบๅญ็ณป็ปŸ่“ๅ›พ ๏ผŒๅœจๅ…ถไป–่“ๅ›พ็›ดๆŽฅ Get ่“ๅ›พๅ็งฐ_C ่Žทๅ–ๅญ็ณป็ปŸๅฏน่ฑกRight-click to create a subsystem blueprint directly, and directly get blueprint name_C in other blueprints to get the subsystem objectDocumentation: English ไธญๆ–‡

maiden wadi
pine carbon
#

Is there a better way to get a smooth average mouse speed than accumulating it and calcing an average every frame?

#

That's the only way I've been able to get a value that isn't super jittery.

dawn gazelle
maiden wadi
#

Oh they fixed it. Nice.

#

Not sure I would personally use them to code anything, but being able to put defaults without having to hand code it in an ini or a dev setting would be immensely nice.

maiden wadi
astral summit
dawn gazelle
#

You don't cast it. That box is the reference to itself.

pine carbon
maiden wadi
#

Sounds like a good enough case then.

pine carbon
#

Cool. It's working, I just wanted to make sure I wasn't needlessly recreating something that exists.

astral summit
maiden wadi
#

What is the C++ class named?

#

Oh, derp right there.

#

Rename the MyBluepint. And call that getter. Not the MyGameInstanceSubsystem

#

Small chance you need an editor restart? Unsure how those getters are done.

dawn gazelle
#

Wow, it works packaged too

maiden wadi
#

@dawn gazelle Thank you for this btw. ๐Ÿ˜„ I was about to start reworking our game rules system. And this is going to simplify that by a metric fuckton.

astral summit
#

I am starting to believe the person answering learns more than the person asking

maiden wadi
#

It's rare I learn new things in here. ๐Ÿ˜„ So it's a nice feeling when it happens. But it's also fair that devs get really set in their ways. Like.. initially my reaction is to say fuck no to blueprintable subsystems. But give it an extra minute and it seems nice. My one strict rule with them would be not to link them to anything else in the project outside of data. Like absolutely no casting or linking to non C++ classes. I might even entirely avoid putting code in mine and use the blueprint as a data setter.

astral summit
#

I found the solution ๐Ÿ‘

pine carbon
#

I'm not sure if that's a bug or intentional.

#

Definitely inconvenient for me though.

pine carbon
#

Alrighty, the more I've messed around with this the more lost I've gotten, and I really hope someone understands what I'm missing. This is a timeline with event triggers. The far right keyframe is bound to one event, and nothing else is bound to it.

#

How is this possibly calling that event?

#

This will also do it.

astral summit
pine carbon
#

The keyframe is at 0.4.

astral summit
pine carbon
#

?

astral summit
pine carbon
#

Is that required? I don't want it to start from 0 if I don't have to. Being mirrored around 0 is handy.

astral summit
#

It's best to start from 0; I don't remember ever needing to start from less than 0

astral summit
pine carbon
#

I am assuming that I misunderstand how this node works, but experimenting has only left me more confused.

#

This isn't specific to those numbers. The general issue is that I can tell it to play from x to y where x > y and it is able to hit z where z > x

astral summit
narrow surge
#

oh fuck is there a redo button

#

i know ctrl z undos

#

but i didnt realize it went across tabs

maiden wadi
#

Ctrl+y

narrow surge
#

you're a godsend

narrow surge
#

not trying to fix but this seems odd to me

rose pewter
#

How is lyra able to do a sequence evaluator without it being overridden by the left hand pose override? When I try this, the "MM_Rifle_Idle_Hipfire" get's removed and I'm just left with an "empty" sequence evaluator that evaluates the left hand post override rather than both left hand pose override and the "MM_Rifle_Idle_Hipfire" like you see in the picture. I've tried looking at the docs and on unreal forums about this but I keep ending up with nothing.

#

I swear if it's because unreal isnt properly displaying the name correctly or something I'm going to shit a brick. This has been annoying me for a month now.

narrow surge
#

I have a 2 player game, Id like to get a reference to cast to the other players character from your own character. whats a good way to go about this? getting all actors of class "character" seems like a start but id assume theres a better way. I like the idea of getting a player index but most of the built in nodes are local only.

frosty heron
#

@narrow surge game state has an array of connected players (player array).

sweet basin
#

so im try to make a lobby menu something like supreme commander should i do this in it own lobby level and not on the main menu level

frosty heron
#

Do you need to transition from starting level to another before match? No? Then it can just be done on one level, w.e you call the level is.

amber fiber
#

Hello! I am trying to figure out how to fix this rotation issue when dragging on the screen with the mouse. I want the sphere to rotate the correct direction, currently it is going in multiple directions. would altering the pivot of the sphere fix this issue? is there a better way to fix this or handle this?

#

I know it is because on one side of the sphere it is negative and one side it is positive, but when you spin the sphere using the x direction, it will flip. How can I make it so that it follows no matter what? I need to alter the Y pivot of the sphere no?

steady night
#

Hi, question regarding preformance, having a healthbar that chefck the heal on tick rather then using a update custom event that updates when health chagnes, how much better is that ?

#

in regards on using a tic event to check and update a varible is this something i should try and rework so everything runs on a update ?

crimson briar
#

It is a good practice to have it run via event, to not waste processing power with unnecessary checks each tick.
But how much better? It depends. If it is one healthbar, probably doesn't really matter. Even if it is 10 it might have close to zero effect on performance - because often you will lose waaaaay more performance on stuff like AI, unoptimized meshes, lighting etc

steady night
#

yeah exactly

crimson briar
#

I would rework it but not because it would save performance - I just like making systems better

amber fiber
#

event tick is good for testing and light usage but not for unnecessary stuff

steady night
#

yeah but just doing checks tho.. but sure

frosty heron
#

Some youtube video is soo cringe n dumb as f ๐Ÿคข . Saying never ever use event tick.

#

Use timer instesd they say... that actually have more overhead if fps is too low.

amber fiber
#

i avoid event tick as much as possible lol

frosty heron
#

Thats just the wrong mindset

lost wolf
#

on a modern cpu you can tick millions of entities

#

like even 20 years ago

frosty heron
#

You dont use it unnecessarily but when you need something done every frame. That is the only place.

#

Bp tick is brutal, but doesnt mean you should avoid it.

lost wolf
#

avoid BP instead

amber fiber
#

avoid game dev entirely tbh

lost wolf
#

and pray to jesus

#

go outside

#

touch gras

#

before its too late

amber fiber
#

lmao

frosty heron
#

The wording wether actually literal or not is harmful to learners.

#

"Avoid casting" "avoid tick"

lost wolf
#

"avoid unreal" kinda true for learners

grim basin
#

Hello, Iโ€™m trying to create a simple blueprint spline to build walls for some blocking level design. I managed through tutorials to have a spline that spawns straight walls, but Iโ€™m stuck when it comes to having rounded corner meshes.
Is there a way to spawn that type of mesh when one point is inside a 90ยฐ angle inside my blueprint, without deformations or weird reactions?

Best regards !

#

(Here is my blueprint )

surreal peak
frosty heron
#

and in low fps, it will make unnecessary multiple calls within a frame.

gentle urchin
#

does it? the timeline?

#

is that running off some timer?

frosty heron
gentle urchin
#

well would you look at that xD

zealous yew
#

Hi everybody I am trying to make an aimtrainer I need to make a target spawning system can someone pls help because i am a bonehead

lost wolf
#

how do you want your target spawning system to work (where you do want them to spawn)

#

do you want to find a random point in a range around a spawner that you can place anywhere in your level ?

#

if (findrandompointinnavigationmesh()) SpawnActor of TargetClass

grim basin
steady night
#

Hey question regardingmy "almost" fresh project.

When i build it for testing the size is 19 gig... is there a way to se why its so large ? or whats included or something, im only adding the .list for what maps that should be included ?

maiden wadi
steady night
maiden wadi
steady night
#

Exclude editor conten when cooking i had disabled

#

im guessing if thats it

#

also exclude editor content when cooking i enabled.

#

hope that helps

maiden wadi
#

What are the sizemaps on those map assets?

steady night
#

or how do u check sizemaps :/?

#

im guessing its not the filesize right ?

#

nevermind found it sec,

#

1,2 gb + 1.2 +1 +2.3

#

so not that much

pine carbon
#

What could prevent adding an actor component at runtime from working?

mental trellis
#

You'll have to define "not working" first.

pine carbon
#

Does not exist.

#

The code hits the add and throws no errors but it doesn't end up findable.

maiden wadi
pine carbon
#

Add (Component Name).

#

It's a custom component. And yes I am doing it outside the owning actor. What is a silent out?

maiden wadi
#

Means it stops the execution after a check without a log or warning.

pine carbon
#

So it's probably just not working at all?

maiden wadi
#

I don't recall where I saw that code before. But I'm 90% sure that if you made a function that called into the owner and called that from your current Add site to make the actor add it's own component, it'd work.

crimson briar
#

I remember I couldn't destroy a component outside the owner, so it might be similar here as well. I had to make a delegate to request the destruction from the owner

frosty heron
knotty current
#

installed a plugin in my editor under "Marketplace". its the ludus ai plugin. it appears in the plugins menu and i enabled it, but none of its features exist

sand yacht
#

could someone help me with some architecural decisions? running into some issues with quite a few edge cases etc

steady night
#

Anyone :// ??

faint pasture
crimson briar
# steady night Anyone :// ??

Look through the other crash logs in the Saved folder (look for the last one with error message from the bottom), usually they have better information which file caused the crash - especially if you have debug symbols installed

steady night
solid needle
#

any known fix for this happening? has this throughout multiple projects (happens at least once a week) where interfaces break their connection and are replacedhttps://cdn.discordapp.com/attachments/1162415123969884202/1483221663448563752/image.png?ex=69b9cd51&is=69b87bd1&hm=2c39a6d03605669b33825765a63a7c962c65f4e88a019aa15e8954e6bdb138e4&

#

renaming it doesnt help

#

this happens a shit ton on projects for me, and my team (5 others)

#

(5.4.4)

steady night
# crimson briar Look through the other crash logs in the Saved folder (look for the last one wit...

Log file open, 03/16/26 22:09:30
LogWindows: Failed to load 'aqProf.dll' (GetLastError=126)
LogWindows: File 'aqProf.dll' does not exist
LogProfilingDebugging: Loading WinPixEventRuntime.dll for PIX profiling (from ../../../Engine/Binaries/ThirdParty/Windows/WinPixEventRuntime/x64).
LogWindows: Failed to load 'VtuneApi.dll' (GetLastError=126)
LogWindows: File 'VtuneApi.dll' does not exist
LogWindows: Failed to load 'VtuneApi32e.dll' (GetLastError=126)
LogWindows: File 'VtuneApi32e.dll' does not exist
LogWindows: Started CrashReportClient (pid=22976)
LogWindows: Custom abort handler registered for crash reporting.

im guessing this is the relevant part

solid needle
#

interface hasnt been renamed (the class, the function has lol), the folders didnt change name, no changes to interface, all are fine, but roughly 1 in 10 break

lime wing
#

Hi everyone! I'm planning a rally-style time trial game in Unreal Engine 5 and I'd like some advice on the best architecture.

The idea is simple: cars drive from point A to point B on rally stages and I record the time.

Current design idea:

10 different cars in the game

the player chooses a car from a garage menu before starting a stage

10 rally stages (tracks)

each run is a solo time trial (no AI opponents)

I record the total time + split times/checkpoints

For progression:

each stage gives points based on the final result

I'd like to keep track of the results across all stages

I also want a separate mode where the player can:

drive a stage

record their time

submit the result online

Then I'd like to have a web page leaderboard showing the best times for each stage (updated from player submissions).

My main questions:

What would be the best way to structure the timing system and checkpoints? (Spline + triggers?)

For submitting times online, is it better to use:

a custom backend API

PlayFab / EOS / similar services?

What is the common approach in UE5 for secure leaderboard submissions so players can't easily fake times?

Any advice or resources would be really appreciated! Danny

pine carbon
#

Why the heck is this double-spaced lol.

spiral kite
#

I want to set parent socket to head but when I do it it turns to left like this and rotation keep 0 how can I handle it

pine carbon
#

You don't want to keep the rotation 0.

#

You want to use the rotation of the thing you're attaching it to.

dawn gazelle
# lime wing Hi everyone! I'm planning a rally-style time trial game in Unreal Engine 5 and I...

In terms of worrying about fake times, you won't really be able to control it if you're trusting players to submit their values. It doesn't matter which backend you use, they will all have similar problems as you're allowing players to submit data. You may be able to set up the backend to only accept certain values for certain tracks, but that won't stop fake entries and players could discover that minimum you've set.

The only actual secure way is to have players connect to servers that you control that those players play on, and those servers keep track of the values as the player plays, and submits the values on their behalf. At any point where you allow players any method of submitting through their computer, you open up a means for fake values being submitted.

serene coral
#

anyone know if i've made a mistake on the blueprint here? I finished this, and now the character can't walk. The blueprint is working as intented, but she can only turn and jump, the walking animation won't even trigger anymore :/

#

deleting the new nodes doesn't fix it either

dawn gazelle
#

What calls "Primary Thumbstick"?

serene coral
#

i'm not sure actually, i edited the og movement input for the third person base, and it was already there. Could it be messing with the walking animation?

dawn gazelle
#

Well to be honest, I'm not sure why you would need that interface at all assuming everything is set up correctly with your input systems and your Primary Thumbstick would be bound to IA_Move.

Try connecting "Triggered" on the IA_Move node to the top "Move" node and see if your movement returns.

serene coral
pine carbon
#

Is there a way to draw a line with a tiled image as the brush?

#

As in, say I have a sprite of tangled wires that tiles vertically. I want to render that in a three-dimensional plane between 2 points, and have it still face the screen like a billboard.

tough ridge
#

hello. Im learning unreal and im trying to impliment a sensitivity feature with sliders but im getting a bunch of confusing errors in like a whole different BP. It might be straight forward but i dont really understand what im reading. If anyone is willing to help itd be greatly appreciated ๐Ÿ™‚

pine carbon
#

These are Widget Components. There is stuff on them that isn't black, but it's on the other side. They're set to double-sided, but that just makes the other side black, not a mirror of the texture. Is there a way to get them to do that?

granite nacelle
#

Sup everyone, hopefully I can get some help on this. I was following the "Simple Options Menu In Unreal UE5.2," which is on YouTube, and I'm having issues with two new functions I made in my project, one for brightness and the other for a PS1 shader toggle. Both are separate post-processing volumes for which I get the tags in the event construct of the graphics widget. The funny thing is those only load once I go back to the graphics menu in game, and I don't want that the master volume loads fine though. And i also create the widget in the menu level blueprint so everything loads on game start. I can't figure out why the PS1 shader and brightness won't load. Help would be great.

dawn gazelle
granite nacelle
dawn gazelle
# granite nacelle no its all in the graphics widget

That's where the problem lies.

Creating the widget in your menu level blueprint isn't really the answer for "loading" your settings, as when you swap levels presumably your Post Process Volume won't be the same one as what might be present in your menu level, and therefore, won't actually be "loaded", you've just set that one instance in that one particular level to that value.

In order for each of your levels to properly load the values you're looking for into the post process volume, you'd either have to have the begin play of each individual level blueprint read the value from the save game (kinda yucky because you're duplicating code across many levels) or you can use a more common gameplay class (gamestate? gamemode?) and have the code stored there instead that attempts to get the post process volume and set its values from there.

granite nacelle
dawn gazelle
#

You could use the game instance for storage of the value by loading it using the Init event, but it doesn't really help with actually setting the values in the levels themselves.

#

Sadly blueprint GameInstance doesn't have the function that lets you know a new level was loaded.

granite nacelle
dawn gazelle
#

Start simple if you need to....
Use the level blueprints. Use Begin Play of them to load the value from your save game, and put it into your post process. This does require you to use the same code in all of your level blueprints if you want the value loaded in your post process volume.

The next step is to move that exact same code to your GameMode or GameState's Begin Play.

pine carbon
#

Is there a way to view the raw output of this node? I would really like to figure out if it's being expressed as 0-360 or -180 - +180

dark drum
#

I feel like I'm missing something. I'm trying to combine two direction vectors but the order seems to make a difference. Does any one have any ideas what i'm doing wrong?

Edit: Never mind, i shouldn't be multiplying by 0.5 as it shrinks the magniture of the direction.

glad silo
#

hello guys, i have an issue with local multiplayer, i want to assign to each local player controller a different input device, and i don't want to force the player controller 0 to use the keyboard.
i tried different approaches but i'm stuck, i have the flag "skip assigning gamepad to player 1" False

The flow is:
-Lobby
-Press select or Enter to create new player controller
-Press the button on the player in the lobby
-Press any key on the device to assign
-Game Instance assign the device

P.S.
I use the RPC because the game have also multiplayer online

copper flame
#

I have a very basic question, I've used UE4 before but mostly followed tutorials, after being laid off last week I've decided to chase my game dev dreams, so equipped with my much newer PC (previously a 4790K & GTX970), I've started a project and got my pawn setup, added a player controller, but I can't see anywhere in the PC where I set which pawn it is controlling?

I've set up my game mode and set the pawn and controller there, is there anything else I need to do? Or am I overthinking it?

Also what's the best way to reference my pawn in my PC?

crimson briar
#

By default the level will use the pawn and controller that is set inside the gamemode. Controller will posses the pawn automatically after spawning. You also need to make sure you changed the gamemode to yours in the project settings if you made a custom gamemode bp.
There is also an option to place a pawn in the level and in it's details panel set it to be autopossesed by the player controller

dark drum
# copper flame I have a very basic question, I've used UE4 before but mostly followed tutorials...

The controlled pawn tends to get handle automatically regarding the player based on what is set in the game mode.

If you wish to switch pawns at runtime, you can use the 'possess' function which allows you to switch. This will update the relevant properties related to which pawn is being controlled. Note that this property isn't exposed to BP but you can use the 'GetControlledPawn' to get the currently controlled pawn for the supplied controller.

dark drum
copper flame
dark drum
# copper flame no I am using ue5 now, just saying that I have used ue4 before

Ahh ok. One difference you might notice early on is that the input system changes from UE4 to UE5. By default the input system in enhanced inputs. I would definitely recommend dedicating some time to familiarize yourself with it.

You can achieve what was possible with the legacy input system easily enough but you can do a lot more with it. (holds and combo presses)

steady night
#

Hi i need tips, if i want 1000 npc characters with CMC is not an option for preformance, but i can barely find anything regarding using an actor asnpc or such advice where to look ?

copper flame
steady night
#

hm ok but 1000 npc what abit over the head i mean more like 100 * :=)

#

itsent ther a simpler option ?

dark drum
steady night
#

enemies run and fight* so anim instance req'

hard charm
#

Is it wrong to use the geometry cache of an image directly in a widget?

#

Or is it better to take it directly from the event tick?

last peak
#

There are ways but none of them is super easy

dawn gazelle
# steady night hm ok but 1000 npc what abit over the head i mean more like 100 * :=)

340 AI controlled characters with CMC walking around in a small space. This is with some optimizations that basically mess around with tick intervals and enable/disable meshes and animations based on the the distance to the player. Additional optimizations can be done with checking if the actor was on the screen or not and further disable animations and the like if they aren't.

copper flame
steady night
dawn gazelle
#

I actually made that project on an old i7 6700 laptop with 1070 and recall that it could stay around 50-60 FPS with at least 100 on screen, though admittedly, that was some time ago I had last run it on my old laptop so I may be misremembering.

New laptop is a bit more of a powerhouse (275HX with 5070ti), but the principles of optimizing the characters remains - reducing tick intervals and hiding meshes or disabling animations if they're far away can do wonders. It starts to chug around 300 characters if there's lots within the level 1-2 optimization levels, but I was still getting 30 FPS at around 700 characters where most were in the lower quality level 3-5 optimization levels

dark drum
crimson briar
#

So... My line trace starting from an arrow component wasn't hitting anything.
I moved the arrow to 0.25 to test if it was a problem with the origin. Now it worked.
I moved it back to 0. And.. it worked now...? I readded the actor and recompiled between each step, so it wasn't cached or smth.
wtf unreal

spare condor
#

Hey everyone,
Does anyone have good resources on creating an IK Rig for animation retargeting on 5.7?

I have two skeletons where the only difference is that one has an added root bone. Iโ€™m trying to retarget all animations from the original skeleton to the new one, but Iโ€™ve noticed that I need to create a custom retargeter, since the auto-retargeting completely breaks the animations.

Any tutorials or guidance would be really appreciated!

steady night
#

This makes it loop instantly :/ ?? ideas

#

(ive disconnected the bind event on pic)

maiden wadi
steady night
#

the sound being played is a "(battle drum) and when it finishes i want it to play another

#

thats why

#

its not the same

frosty heron
#

Not even plugged in? I made juke box in the past. No issue with audio comp.

#

Dont use spawn sound 2d either.

steady night
#

i dissconnected on the pic, just to se what was wrong

frosty heron
#

Use the audio component

#

Set the audio there.

maiden wadi
#

If they're hand authored in the same order, I'd still do it in a cue.

frosty heron
#

Step one. Add an audio comp to your actor.

maiden wadi
#

One, then the other. Single cue, fire and forget.

frosty heron
#

Ahh yeah if thats the goal, cue is the way.

deep valley
#

Hi I'm a beginner game dev whos trying to make a 1st and 3rd person mmorpg but im having a ton of issues trying to get my game off the ground or up and running. trying to find a gaming tutor but dont know were to look, please support me if you can.

steady night
maiden wadi
steady night
#

dont start with multiplayer either, will ruin you *

maiden wadi
#

I would kill to work on a singleplayer game.

#

Like... Just no networking. Pure game design. Omg please.

steady night
#

he yeah im struggeling with mp so i paused it for 2 years and did singeplayer, everything just works there... never an issue with anything really

#

why dont you btw ?

#

or is it your job thats requiring you to do mp ?

maiden wadi
#

MMOs are worse. If you're making a real one. It's not just multiplayer, you get the extra layer even behind that with the backend shit.

steady night
#

ye

steady night
#

woh cool!

#

looks greate

#

how many are u at the studio ?

maiden wadi
#

Handful. Kaos and I on programming, couple designers, and a small army of artists.

steady night
#

nice, must be nice tho to work in gaming

#

pay any good ?

maiden wadi
#

Good for a small studio, yeah.

steady night
#

cool, any numbers .) ?

#

ballpark

spark steppe
#

42

steady night
#

42 what ยฃ ?

#

a month

spark steppe
#

you asked for numbers, you should know the answer

steady night
#

aye but i dont know thje currency >)

spark steppe
#

schmeckles

steady night
#

ha, wanna compare with what ive got lol

#

but yeah that good money i suppse

#

no idea what ppl in this industry make really

#

just hearing about all the layoffs

maiden wadi
#

It's decent. Can't really give numbers in public.

#

But yeah there's been layoffs. But most of that is just because of the overhiring.

steady night
#

yeah , covid hit hard at the gaming intustry

#

overhiring for sure

deep valley
#

i have unreal engine I'm starting from very beginning i keep coming up with problems just being able to create land i am autistic btw but i really want to create a game and i keep find stop gaps along the way not finding the right plugins finding videos online and nothings working for me and i could really use someones help getting started with the basics

steady night
# deep valley i have unreal engine I'm starting from very beginning i keep coming up with prob...

Welcome everyone! Today I have a complete beginner course for anyone new to Unreal. Following this tutorial will teach you all the basics of Unreal Engine and bring you through creating your first cinematic scene.

As usual please like and subscribe.

Check out my Discord here! https://discord.gg/x8fWVaevs3

Jungle Lagoon Beginner Tutorial: ht...

โ–ถ Play video
maiden wadi
# steady night overhiring for sure

It was just a crash. Companies did well. Hired more, pushed for more. Then there were a few key catastrophic failures in the industry that scared off investors and publishers. Company bottom line got hit. Thousands got let go. Just needs to normalize again.

steady night
#

aye

#

truncate that bi***

steady night
maiden wadi
#

I don't know all of them. I know there was some Blizzard project. A few EA fumbles. A few games in particular that failed were high profile like Redfall. The Blizzard stuff was probably one of the most muddy in the waters because it was a multistep issue. Blizzard canceled some projects that had already cost money, and on top of that were bought by Microsoft who cut down things. There were quite a few hundred people who got let go over that Microsoft issue alone.

steady night
#

aye

#

yeah that redfall was a bummer

mental trellis
#

Redfall was so terrible.

faint pasture
#

XXXXXX Keeper is the new trope, goes there too

mental trellis
#

Except Dungeon Keeper, ofc.

faint pasture
#

The originators of the naming convention are good

#

the games that are so unoriginal they can't even come up with an original shape of a name are what's bad

steady night
#

hm how can i make a loadingscreen show befor loading the map (since clients spawn in ground and load before widget is created) without using like async loadingscreen or such,

#

ideas ?

spark steppe
#

i think CommonLoadingScreen from lyra requires little to no C++ knowledge

pine carbon
faint pasture
crimson briar
#

I'll take X of Y over dumb puns, thank you very much

pine carbon
#

I think my favorite game title as of late is Xenoblade Chronicles X: Definitive Edition: Nintendo Switch 2 Edition.

#

Might be Nintendo's best work in their storied history of ridiculous subtitling.

thin panther
idle crescent
#

Is there any quick function to test if a character will fit at a given location?

#

That returns a bool?

jovial steeple
idle crescent
#

Thanks.

sharp silo
#

UE5.6
I'm having issues with Blueprint Interfaces. I've made my interface, marked it Call in Editor, and set it as an Implemented Interface in the Class Settings of two of my actors, but in the actor's Event Graphs I cannot call the interface as an Event or as a Message. The only option is to call it as a function, which looks different than all the tutorials I'm finding.

maiden wadi
sharp silo
#

For context, I'm trying to use the BPI to pass the Actors in an Array from one Actor blueprint to another. Without being able to get the event I can't drag off of the Input variable, because there isn't one.

maiden wadi
#

Can you show the function in your interface class?

#

It is a little odd that it ended up a function. Normally that only happens when it has a return value.

sharp silo
#

Without the event I can't get anything out of the Input variable, because it's for input.

maiden wadi
#

You can just put your print inside of the function.

sharp silo
#

I've tried adding an input and an output to the interface and then connecting the two in the Actor blueprint, but the variable wasn't passing along and that seems wrong anyways, because I'd have to manually do the connection in each Actor that I added the Instance to.

frosty heron
idle crescent
#

Does anyone know more how the dot product works? I apologize if I make myself sound uneducated by that inquiry, I get it returns how alike two vectors are. Can anyone explain more?

frosty heron
#

If the vector pointing the same way you will get 1 for the dot product.

#

Ans 0.5 in between

maiden wadi
#

0.0

frosty heron
#

I might be wrong 0o

sharp silo
#

Instance should be Interface, but I can't edit.

maiden wadi
#

Perpendicular results of a DOT are 0.f

frosty heron
#

Ahh yeah mb

#

Cant cross the text on mobile imma just delete

maiden wadi
#

It's worth noting that a 45 degree offset isn't 0.5f though. Which trips you a little.

maiden wadi
#

I hate interfaces so much I've never managed to end up with these issues because I avoid them like a plague. ๐Ÿ˜‚

sharp silo
pine carbon
#

How the heck do I make widget components render on both sides?

frosty heron
#

Two sided material? Why though? What kind of widget is it.

#

Most of the time i just do screen space because quality on world space gets compromised.

lost wolf
#

if you have text and you render it on the backside it will be flipped around..

#

so you would need to copy the widget and flip it 180 degrees

dark drum
# frosty heron I might be wrong 0o

I googled it yesterday because I always forget. ๐Ÿ˜… Its a value between -1 and 1 for how much the two vectors are pointing in the same direction. That was my take away lol.

dark drum
#

Its really annoying int vectors don't have any of the standard operators. :/

frosty heron
dark drum
frosty heron
#

same... I watch video about gimbal lock and quats like a dozen time and still don't get it.

#

Cross and dot product is my limit atm.

dark meadow
#

Just a quick and simple question because I'm encountering some check issues

Does the "Or" boolean still work if both are active at once?
So if I want to stop an AI from attacking if it's frozen OR electrified, if both happen at once, it'll work ok?

waxen lark
#

Hello everyone, while creating build, ue throws these errors related to the struct, and further below so many error like like this, how to resolve it!, thanks in advance

#

UATHelper: Packaging (Windows): LogProperty: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/HorrorEngine/Blueprints/Player/HorrorEngineCharacter.HorrorEngineCharacter_C:ModifiedGameplaySettings'. Unknown structure.
UATHelper: Packaging (Windows): LogProperty: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/HorrorEngine/Blueprints/Core/HorrorEngineFunctions.HorrorEngineFunctions_C:EquipmentSettings:CallFunc_GameplaySettings_GameplaySettings'. Unknown structure.
UATHelper: Packaging (Windows): LogProperty: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/HorrorEngine/Blueprints/Core/HorrorEngineFunctions.HorrorEngineFunctions_C:FootstepSoundSettings:CallFunc_GameplaySettings_GameplaySettings'. Unknown structure.
UATHelper: Packaging (Windows): LogProperty: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/HorrorEngine/Blueprints/Core/HorrorEngineFunctions.HorrorEngineFunctions_C:PlayerSettings:CallFunc_GameplaySettings_GameplaySettings'. Unknown structure.
UATHelper: Packaging (Windows): LogProperty: Error: FStructProperty::Serialize Loading: Property 'StructProperty /Game/HorrorEngine/Blueprints/Core/HorrorEngineFunctions.HorrorEngineFunctions_C:GameplaySettings:GameplaySettings'. Unknown structure.

lost wolf
#

HorrorEngine strikes again

dark drum
waxen lark
#

but this time for builds

lost wolf
#

you got yourself into this by choosing to use it, we can't tell you how to fix it

waxen lark
#

๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ

dark drum
lost wolf
#

yeah i would also just delete the entire project, like genuinly if i had to fix something like that

#

deleting is probably not enough

waxen lark
lost wolf
#

print out the bits on paper and do an exorcism to prevent it from haunting your family

dark meadow
dark drum
dark drum
#

Its why I'm not a fan of using structs for item data in inventory systems. The moment you want to add a new property you risk breaking everything. (if its a BP struct)

frosty heron
frosty heron
dark drum
maiden wadi
lost wolf
#

that a possible way to interpret them the mathemathical derivation happens "naturally" if you extend complex numbers into 3D

#

in 3 dimensions it doesn't work

#

Hamilton spent about ten years of his life (between around 1830 and 1840) trying to construct 3-dimensional hypercomplex numbers, before eventually understanding that he needed to move up to 4 dimensions, and he then discovered quaternions. We now know that "interesting" systems of numbers (i.e., division algebras over the reals) only exist in dimensions 1, 2 and 4 (and possibly 8 if associativity is allowed to be weakened somewhat)

mental trellis
#

https://www.youtube.com/watch?v=d4EgbgTm0Bg This is the previous video.

How to think about this 4d number system in our 3d space.
Part 2: https://youtu.be/zjMuIxRvygQ
Interactive version of these visuals: https://eater.net/quaternions
Help fund future projects: https://www.patreon.com/3blue1brown
An equally valuable form of support is to simply share some of the videos.
Special thanks to these supporters: http://3b1...

โ–ถ Play video
lost wolf
#

Don't forgot about the Octonions, Sedenions and Sexagintaquatronions

#

just in case you tought 4D wasn't confusing enough there's also 64D

steady night
#

ideas :/ ?

crimson briar
#

Instead of using two of them it could be better to use one timeline. When starting, do a Start. When stopping, Reverse. If nothing else is manually changing the arm length you don't need to do PlayFromStart

#

Also come one, what is this. Wouldn't it be more readable to have the target somewhere near the node that is doing stuff?

#

Like here, maybe. You don't lose anything, you only gain readability

steady night
#

thanks

lyric rapids
#

My projectile movement component is having its velocity set when fired and i can see it changing in the editor but its not doing anything

pine carbon
#

Two of my BPs are giving me "failed to save" errors.

#

I'd really love to fix that.

dark drum
dark drum
pine carbon
sharp silo
#

I'm struggling with Blueprint interfaces.
The goal is to have the Player mark a tree and then pass a reference to that tree off to an Actor named Manager, which will store the tree in an array (that NPCs query to find trees to cut down when they're idle).

The problem is, the Player Character Marks a Tree using an Interface Function, but the corresponding Event never triggers on the Manager Actor.
Both Actors have the interface added. Both actors have been placed in the level. I've tried both Call Function and (Message), and casting to the interface.

First Screenshot is the PC Actor, second is the Manager Actor, third is the BPI with the function selected.

#

The PC will print the text acknowledging that a tree has been marked with a trace, but then the Manager won't print anything.

meager spade
meager spade
#

If so, it should work if you set that as the target of the interface function call. I don't really see the point of using an interface here though unless you are specifically trying to learn about them

faint pasture
#

just tell manager "hey, that tree needs to get cut down"
It's totally fine for pawn to hold a ref to Manager

sharp silo
sharp silo
faint pasture
#

Assuming what makes a tree a tree is that it's a TreeActor, I have no idea what your approach is here

#

You can store Manager on BeginPlay or just get it every time you need to talk to it with GetActorOfClass, or make it a subsystem (C++ only), or make it a component on GameState, or just make it a part of GameState, millions of ways to do this. None of which really need an interface.

#

You'd want an interface if you wanted to have a lot of various things that are harvestable, and implementing the Harvestable interface could be one way to do it. Could also use components or tags to accomplish the same thing.

sharp silo
#

Trees are an Actor tagged Tree

faint pasture
#

If what makes a tree a tree is the fact that it is an actor tagged as Tree then just send over an actor ref, no need to cast anyway (because you get the hit actor as Actor)

#

now as to how the units know how to harvest an arbitrary actor is another story but if that's your design that's fine

#

The array of ThingsToHarvest would just be an array of actor refs in Manager

signal bane
#

Odd question: when I open a specific blueprint, it opens like 20 different tabs. How do I get it to not default open all those tabs?

faint pasture
#

are they just the tabs you had open last time you closed the editor?

signal bane
#

Individual event graphs, some functions, some macros.

They are from ~last week, when I was going through and documenting all the functions. But if I close them all and close the editor in various ways and reopen it, it keeps reopening them all.

crimson briar
#

Which means your code on manager never runs, because it was never told to run

#

You still need to get a reference to the manager to call an interface on it. But at this point you might as well do what Adriel suggested

narrow surge
#

why would this cast fail?

maiden wadi
#

In fact. Your player controller shouldn't have an owner.

narrow surge
#

oh im tired

#

o7i thought i was getting an actor

frosty heron
#

Casting is just a type check, those noobs dealt with memory overhead from having a reference to blueprint asset and they blame it at the wrong place.

And your interface pass a hard ref of the bp asset anyway. So it doesnt even devoid the memory overhead.

narrow surge
#

I wanna run this custom event on server but this binding interaction in blueprints implies to me that it may not be intended. can someone confirm if doing this would cause any issues?

maiden wadi
# narrow surge

I wouldn't make the callback run something on server, but the delegate broadcast itself.

maiden wadi
#

@dawn gazelle I could probably work around it. But I decided not to go with the BP subsystem in the end. It does "work". But I was having issues with the getter in C++. Cause you have to try to get it from it's parent class, and the getter is a map lookup effectively, which doesn't support parent class gets.

true valve
#

In Niagara Examples Pack, which files are being used for the bullet trace effect?

thin umbra
#

unreal engine 5.4 editor stuck
what is the proven solution when my editor gets stuck and won't load
this happened to me when i put a reference to my game mode like cast it and or set it on another blueprint
i knew it and i thought i didn't fall victim to it, but apparently i did, either through the same problem or another one

the only fix i found was to systematically discard blueprints until i found the offending one that allows me to reopen my editor
is this my only solution or is there a way to really fix this or launch the unreal engine in safe mode or things like that?

dark drum
thin umbra
# dark drum if its stalling on the 'K2Node_CallFunction' class, I would verify your engine i...

this latest log is just noise it changes based on different runs

i'm just doing normal blueprint operation but i don't know if the plugins i have are messing things because i didn't get this issue on my other project

but now regardless of what i did to cause this issue, is there a way people do to force the editor to launch in these cases
like open it in safe mode or things like that

my script found the offending blueprint thankfully but it's stressful when i can close the editor and try to reopen it and it never does ๐Ÿ˜…

steady night
#

Hi, In my built project everything is so dark, in editor everything looks right

#

ideas ?:/

wooden whale
#

Hi everyone I am creating a pinball game and I am working on a bumper mechanic. but currently I face a very annoying problem. I want to make the bumper shoot my ball in the direction it was hitted but I suck at doing the math for this and since ai makes it even worse I thought if you guys have a fix for this?

crimson briar
#

It should be as simple as OnHit -> GetDirection from the bumper to the ball -> multiply the direction by some values -> apply impulse to the ball with the strength you calculated

#

What you multiply by depends on what you want to achieve - a flat value will always add the same impulse. So maybe you should also multiply by some value derived from the current velocity of the ball

#

Also this is just conceptual, it is possible Unreal has something built in for this exact interaction

wooden whale
#

do you mean getting the actuall onhit struct because it does not have a Direction pin

wooden whale
#

guess this is pure math

#

here is what I use as the code

#

also tried something with changing the mass to be lighter and I also tried to use a physics material on the disk itself

crimson briar
#

You could use the stuff provided with the hit result too but I don't remember how to use the normals from there properly

spark steppe
#

just start with law of reflection and improve on that ๐Ÿคท

spark steppe
#

you only need the hit normal and object velocity for a simple implementation

golden frigate
#

This is not an entirely blueprint related question but for some reason when I create a render target 2D as RGBA16f (in blueprints) I am able to apply a material and read an output, but if I change it to R8 I get no output. If I instead pass a premade render target 2D (as an editor asset) into the very same system it will work on R8. Is there something behind the curtains that occurs differently between the image formats?

pine carbon
#

Is there a way to just . . . store a point in space on an actor?

#

Like what Target Point does in levels.

#

But for an actor. I just want a point in space to manipulate so I have a visual reference when debugging.

next hollow
#

Not sure I follow?
Thats the job of the vector type.
Or, do I miss-understand

spark steppe
#

there is, Chris Murphy mentioned it in one of the Epic videos

#

With the Epic MegaJam just around the corner, this week we wanted to focus on the groundwork - how to prototype quickly so you can get to the detail work faster. Time is of the essence when it comes to jam events and to make you feel better prepared we're bringing on Chris Murphy to discuss some tips and tricks on smashing through the busy work ...

โ–ถ Play video
crimson briar
#

But I think it works in local space

pine carbon
#

Local space is what I want. Perfect.

#

It does not seem to be working.

#

Ohh. Level editor only?

#

A billboard seems to serve the purpose in viewport editor.

shut blaze
#

Hey I have a component that spawns in a NIAGARA particle system, but when that component gets erased, the system remains in the world.
How should I get rid of it?

frosty heron
#

Tick auto destroy? May help, not sure what condition makes niagara clean up it self.

shut blaze
#

tick auto destroy?

#

not gonna put an if statement on it now :/
if the component dies, so should the system, this is what I want

frosty heron
#

Its the option in your node.

shut blaze
#

oh

#

let me test it

#

still seems to spawn after component gets erased

#

is the component being erased? lemme check

frosty heron
#

Probably easiest to ask the #niagara folks

shut blaze
shut blaze
#

Coz you could be spawning anything in the world like an actor, and still when your component gets killed, the actor still remains

frosty heron
shut blaze
#

hmmm, could make "On player killed" event dispacher
But this actor is used by others too so no
Maybe I should just make the whole thing an actor with a niagara particle system and call it a day

frosty heron
#

Deleting a component doesnt remove the outer.

shut blaze
steady night
#

or nah thats bad scratch that

#

since its not always hitting with the front

pine carbon
#

Is there something about nesting collisions that stops them from working?

#

Sphere has a different Object Type than HandCollider, but I can't get anything that's set to block or overlap HandCollider's type to work.

maiden wadi
winged rose
#

im new to ue5 and im trying to add GMC v2 to my default Shooter variant project, only problem im having i when i look up or down the weapon and weaponarms kinda do its own thing. i think its because of the pitchN logic but i cant seem to fix it

pine carbon
#

I would love to know how to make the other side of this widget not black.

pine carbon
#

I also really need collision on these Fab meshes, but I have never worked with the collision generator. Are the default settings good or are they gonna cause unnecessary performance hits?

narrow kite
pine carbon
#

Cool.

uneven roost
#

I'm having an issue with an anim BP not changing states when it takes in the new state- I'm using enums to change the state, but looking at the output log it shows the new state for a blip then reverts back to the idle. any ideas?

uneven roost
#

another bizarre part is that it seems to freeze the animation in the editor for the player character while in PIE despite it working fine in the editor and then display an unchanging skeletal mesh- it seems like it still affects the world and has its proper hitboxes

dark drum
dark drum
wooden whale
lost hemlock
#

does anyone know in widgets why is it that when I click somewhere outside of a button my mouse disapears?

dark drum
# lost hemlock does anyone know in widgets why is it that when I click somewhere outside of a b...

Usually something to do with focus and the input mode. There's also the setting on the player controller to show the cursor. Most games have this set to false during normally gameplay and it can be shown whilst the input mode is set to UI. If however the input mode isn't set to UI, clicking the background means it focuses the viewport (the thing that widgets are placed in) which then gives input control back to the main game this can make the cursor disappear if the setting on the PC is false.

Something along those lines.

pine carbon
violet wagon
pine carbon
dark drum
pine carbon
#

Walkable. So probably bigger than would be practical.

dark drum
pine carbon
#

Oh okay cool.

spark steppe
#

i would create a low poly collision in blender or whatever DCC you use

steady night
#

my componenets of my char they all have same collision but when ingame only my original mesh has the collider +?

frosty heron
#

could be physich asset?

steady night
#

nah

#

or i mean

#

idnno

frosty heron
#

check it?

steady night
#

how do i check it per component :/ they all originate from same base

frosty heron
#

click the skeletal mesh component?

steady night
#

yeah but i mean i can only se the overrider ?

uneven roost
frosty heron
steady night
#

hmm i cropped the assets myself but i only shrunk the mesh on some parts could that be related :/?

frosty heron
#

If you don't want the head collision from the phyic asset then just don't set it?

steady night
#

i want the collision i want it on all components

short otter
#

Hey, I was wondering which solution would be better, but can't decide.
So for a light system, I have a BP_Light actor that has logic like TurnOff, TurnOn, etc.
BP_Light doesn't have an actual LightComponent, because there are different light components.
So is it better to have a BP_Light that has the logic and when I drag the light onto the map, I add a one of the light components.
Or is it better to make lot of child BP like BP_HomeLight, BP_BuildingLight, BP_ThisLight, BP_ThatLight that has both the mesh and the light configured.

queen heron
#

so, I'm not sure why it works this way, but for some reason, the furthest socket is considered as the "closest"
but when I try to draw debug spheres to check if the socket locations. All spheres are spawned in the expected locations

so I'm unsure why left foot is considered the closest, when visually it is not

#

the floating debug sphere is the hit location

#

I'm comparing the distance between the sockets and the hit location that is created by the trace

#

I added those sockets into the skeleton btw
they are not deforming the mesh. They simply act as empty bones, meant to tell which area is the character hit on

dark drum
#

I've got a weird one. I've playing around with the combat template (3rd person) and i've move some logic into an actor component but it seems to break the death ragdoll and i can't figure out why.

Does anyone have any idea why using this would result in the skeletal mesh only partly being simulated? (death ragdoll) It looks like its being held at the hips.

Previously it uses the set blend weights and the set body simulate. (set to the pelvis) From what I can tell, it should be doing a full body ragdoll.

queen heron
dark drum
queen heron
#

how are you getting the mesh in the actor component?

dark drum
queen heron
#

I'm pretty sure you need to reference the owner of the component, and get the mesh component from that owner

queen heron
#

this is how I use it
try this way

dark drum
queen heron
#

getting the owner

#

I call the custom event from the owner, into the actor component, by getting itself stored into the Parent Character

#

although, I should switch to storing a mesh variable in the actor component too, after getting the parent character

#

so I avoid using the parent character variable everytime

dark drum
#

The reference to the skeletal mesh is fine. I already get it from the owner.

#

The issue is its not doing a full body ragdoll and i can't figure out why.

queen heron
#

are you able to debug it with print strings?

dark drum
#

oh! I see where the issue is. One sec.

#

Yea i got it. It was an order issue. When I recieved damage I modify the health value which in turn checks if health is <= 0. If it is it does the death stuff. But I have some logic that gets triggered after modifying the health from the on damage receievd. I just need to do another check to make sure the character wasn't dead before applying the hit reaction type thing.

queen heron
#

makes sense

#

I also found out why my blueprint with the socket isn't working

#

turns out the sockets I'm trying to call cannot be found in the skeleton

#

which is weird cause the names actually match

#

ah no

#

it's not the socket

#

it's the hit location???

#

I'm such an idiot....

#

I'm sending the hit signal to the hit actor

#

but I'm getting the hit area variable locally instead of sending the data to the hit actor...

#

aaand crash...

#

unreal just tends to crash when something happens after using it for a while

#

a function could be fired, a blueprint could be compiled, or the save button is clicked
the engine would just crash without a reason

#

and the error it gives me doesn't help

dark drum
queen heron
#

Does it happen in 5.7 too?

dark drum
dark drum
maiden wadi
#

None really. It still functions like you expect, it just won't reinstance things while you're playing. You can still livecode with PIE open just fine and update cpp files.

uneven roost
maiden wadi
#

TIL: VSync applies to BorderlessFullscreen as well.

timber wind
#

What does "editor-only" mean?

maiden wadi
faint creek
#

Hello guys, maybe here somebody can help me
I've created a material to see the Paper Character through the walls, but the material works perfectly only with the 3D meshes.
In the 2D assets, also the player, I'm having these issues:

  • the object should be red only behind other objects, not constantly,,
  • when it goes behind, starts to flicker and to disappear only with a certain angle view.,

Somebody knows how to fix this ๐Ÿ˜ญ

hidden fossil
#

so a quick question regarding blueprint processing. I have a Ryzen 3 CPU on one computer with Radeon graphics and 8GB RAM, and the other (which is my dev rig) runs a Ryzen 5 with 16GB RAM and Nvidia RTX graphics. Now here's the issue that I'm dealing with: one major part of my character's basic ranged attack is a power focusing ability which increases the size and impact damage of the telekinetic projectile that it's based around for as long as the ranged attack button is held down (think of buster cannons in Megaman, the charge beam from Metroid etc.) On the Ryzen 5 machine, the projectile builds up from level 1 (the smallest size and what's fired off if you simply tap the button) to level 3 (a ginormous monster shot that does triple damage) without issue, but for whatever reason it tops out at level 2 on the Ryzen 3 (which is somewhere in between the two extremes in terms of size and efficiency). Is there anyone who can give me some advice on where to check in my charge shot blueprint to see if there's anything I can do about this, or if it's a technical matter that I'm stuck with? (Note that the game runs and performs as expected on the Ryzen 3 aside from not handling the charge shot like it's supposed to.)

#

The blueprint itself is relatively simple - it checks if the ranged attack is supposed to have a focus charge and if so then it brings the attack to level 2 and holds it in (this is indicated by a yellow power draw visual). If not released at level two, and the SFX has finished rising up from lowest to highest on the clef, then it's supposed to advance to level 3 (which is the current maximum level, and I'm not 100% on if I'm gonna do a focus efficiency upgrade like in Megaman X to permit a fourth level of power focus)

last peak
#

To calculate the size of the skill

hidden fossil
#

right now it's processed as a part of the charge shot logic itself

last peak
#

Im not sure what that means

#

Are you using event tick ?

#

If yes thats probably your problem

hidden fossil
#

what I mean is that it's currently set up to where the power build is processed as a part of the overall ranged attack logic

#

so in essence, it's attached to an event which in turn is attached to the button via enhanced input

#

and I guess what you're saying is that event tick would be more efficient and compatible

last peak
#

Can you just post the bp ?

hidden fossil
#

maybe I should have said and/or

#

unless I'm missing something, of course

last peak
#

no and no

#

But event tick gives different results on different hardware

#

Thats why my first thought was that you are using it

hidden fossil
#

that's not what I believe myself to be doing, so thanks for clarifying

maiden wadi
#

Can you show code? Because it's going to be a lot easier to point out your logic issue that way.

hidden fossil
#

in any case, here's the event for the button press/hold note that it's a standard enhanced input processing

#

there are a few nodes which are related to the special attacks system, but the ones you want to read off begin off the started property of the input event. the logic for that checks if it's the default ranged attack (index 0 where the specials are are a maximum of nine depending on progress, so if it's anywhere from 1-9 it's a special shot, if the index is zero then it's the regular shot). If it is on the default ranged attack, it checks if charging is used by the character (which as of now is always true, but there is also logic for rapid fire) so at this point it proceeds to check if charging is in progress, if not then the character begins focusing on her ki energy to build its power. At this point a pair of flags are set to tell the engine that she's focusing her concentration on building her attack power and then calls the event that handles the actual energy focusing

#

with that in mind, here's the primary logic for ranged attacks

#

and here's the logic for the focus charge itself. At this point, there's a slight delay to allow for proper processing of the basic attack; once this has passed the button is assumed to be held down so the first boost is applied to initiate attack level 2. This is where the concentration aura comes into play to indicate the resulting attack power (invisible at level 1, yellow if held for roughly a second to indicate level 2, blue at level 3). So what's supposed to happen here is that after about a 1 1/4 seconds, enough focus has been built to initiate the third level of attack power (which is what's failing on the Ryzen 3)

#

after all of this is done and the attack is released, additional event processing is then initiated to reset the charging status values back to their original states

hidden fossil
maiden wadi
#

Hmm. I'm not specifically seeing anything here that would be determined by framerates.

hidden fossil
#

so the main matter is that there is a standby counter float. the first adds .01 to the level 2 attack's duration; this is done instead of a delay node so that the shot can be released properly. at 1.25 this value is supposed to be greater or equal in order to boost the attack to its third, maxed-out level

maiden wadi
#

I mean, you could make a case that delays and timers might go off more concisely on a faster machine, but the difference would be so immeasurably small to most people's feel that I don't think you'd be asking about it.

hidden fossil
#

also, I should note that the third level of power is not advanced to at all on the Ryzen 3, or at least from what I noticed

#

which, of course, is the problem that I'm trying to solve

maiden wadi
#

Realistically. I think you should dramatically simplify this. Can you generally explain the mechanic? Like what you expect from the controls and spell? If I followed, this is you holding the button down to charge up multiple levels of an ability and then releasing it to fire?

hidden fossil
maiden wadi
#

I'm more likely to think of the plasma pistol in Halo. ๐Ÿ˜„

hidden fossil
#

I completely forgot about that

#

lmao

maiden wadi
#

Uhh.. Run me through your visuals and sounds? How are you visualizing or playing sounds? I'm seeing a sound for shot, and a sound for reaching level 2 and 3 at least.

#

Visuals are these visibilities at the bottom I assume?

dawn gazelle
#

Megaman X style charge would be something like:
Input Pressed (but held) > Shoot a small Single Shot > Charge up begins after a short delay > Visualizes charging > Length of charge determines "size" of blast from charge > Release = Launch charged shot

hidden fossil
#

okay, so I just got done double-checking on the Ryzen 3 again and it's actually delayed slightly so you're right in that it's not as fast on that hardware (and in fact this sometimes also happens while using the playtest function of the Unreal editor so I think there may be a correlation between the two)

#

I guess what I could use at this point is some kind of addition to the logic which takes frame rate into account (or whatever else can speed it up)

hidden fossil
#

so a fairly standard SFX pattern

maiden wadi
#

So charge sound starts at button press, and at full charge has a higher.. whir.. or whatever? And there are sounds at level 2 and 3 levels being reached?

hidden fossil
#

pretty much. once the charging starts, the sound starts low and builds in pitch until it hits the highest note on the clef, indicating max charge

#

this is actually divided into two sound files in my implementation - one as focus is built, the other at max focus

#

hence the two individual sound nodes

#

getting back to the discrepancy between different types and clock speeds on computer systems, I'm in need of an easy thing to check against that works across the board so that it's the same or close to such on any device that I can throw at it

maiden wadi
tough ridge
#

Hello Im having trouble with my Bluprints. Im trying to make a FNAF style way of looking around where there is a fixed camera with a mouse and when it goes to the sides of the screen you look in that direction. Its not working and could really use some help.

dawn gazelle
#

Oops forgot an important part.. the IA setup..

#

Hold Time Threshold determines how long before the "Triggered" starts going

ancient dagger
#

Anyone know how to properly replicate changing the character's speed in multiplayer? right now i'm using multicast and servre RPCs and it works, but i noticed that if I test with network emulation/simulated ping, there's a noticeable delay in input when i press the sprint key, especially at higher ping, I'm not that knowledgeable with networking, but i'm assuming i would have to somehow make the inputs clientside, and only replicate it to the server? if so how? is it even possible in UE?

frosty heron
#

@ancient dagger You cannot do it this way. No one sane will want to play a TPS or FPS game with input delay.
Imagine pressing shift and start sprinting 0.2 sec later if you have 100 ms.
Movement are client side predicted, meaning movement is applied locally, then server is informed about the move data via the MoveData struct.

TLDR, for Server auth movement, you can't use blueprint alone.

#

@ancient dagger https://www.youtube.com/watch?v=urkLwpnAjO0&list=PLXJlkahwiwPmeABEhjwIALvxRSZkzoQpk

Goes over how to implement sprint in networked environment.

https://discord.gg/uQjhcJSsRG
In this video I am introducing a series I will be making which explores the character movement component and how you can extend it in depth.

0:00 Intro
1:00 What is the CMC?
2:00 Do you need a custom CMC?
5:35 What does the CMC provide?
7:10 Outro

โ–ถ Play video
ancient dagger
frosty heron
#

for Server Auth using CMC? yeah 100%

#

there's no blueprint solution to this as the movement data needs to be done in cpp land.

#

and any attempt to fighting the intended way to use CMC will just result in correction.

ancient dagger
#

damn alright, thanks for the info though

full badge
ancient dagger
full badge
frosty heron
full badge
#

if you don't really care about anti cheat you can just turn off correction and manually replicate transform, max speed and velocity on tick with rpc

ancient dagger
#

Ok i think i understand now, also my game is pve only so it won't be that much of a problem, thanks to both of you

dark meadow
#

I'm in the process of setting up some stuff for my project and I've been made aware of how to setup object pooling but I'm trying to work out how worthwhile that would be.

I'm using UE4.27 and currently I have it set up so when you shoot it spawns an actor and it destroys itself. Apparently thats bad for memory. I'm trying to figure out how bad it is for memory and if its worth setting up an object pool.

frosty heron
#

how many instances are you spawning? what kind?

shut blaze
#

help

#

how do I open construction script :c

#

ah done

dark meadow
# frosty heron how many instances are you spawning? what kind?

It depends because I have multiple types of things, but I'm focusing on projectiles

Basically most are actors that when you click, you spawn 1, and after 5-10 seconds it'll destroy itself or wait til it hits something, check what its hitting and act accordingly, then destroy itself.
I have a couple that spawn an actor repeatedly and they destroy themselves much faster

#

So you can see what I'm making

frosty heron
#

unless you are doing some kind of bullet hell then it's probably fine but just profile.

dark meadow
#

Profile?

frosty heron
#

Editor performance is bad though, I made space invader in the past and scrapped it due to projectiles not being gced.

#

shipping is max fps.

#

#profiling @dark meadow Unreal engine comes with a set of tool on how to check bottle neck and what eats performance.

dark meadow
#

Yeah, currently I'm getting like 60fps with occasioanlly 58fps, and 2.8gb of RAM usage in editor

#

I'm also doing this on a 7 or something year old laptop with a 2060, 6gb of RAM and an i7

#

and so far all smooth

hidden fossil
# maiden wadi For a start, I would step back and simplify this. Your logic is literally and fi...

That seemed to do something while in playtest mode. I'm repackaging the test build and will be deploying it as I have a hunch that this method will have more consistent results once I do so. (Though as a side note, I should probably add that I had to up the interval to a second plus half while also carrying over the delay from the old logic as I wasn't able to locate all of the nodes from your example.)

hidden fossil
#

And it's fixed. Thanks a bunch for the assistance.

crystal ridge
#

Is there a way to turn blue prints into images automatically?

pine carbon
#

Screenshot?

#

They use dynamic scaling so you can't just turn a Blueprint into a pdf at any scale and have it zoom in properly.

granite nacelle
#

hey everyone, i have this spawn sound at location for my rocks for like when they hit something, but for some reason it wont make a sound when it hits the ground it mostly makes a sound when it hits each other or a pawn/ actor i want it to make a sound no matter what it hits how could i fix it?

surreal peak
north bobcat
#

can someone help me with converting my singleplayer game to multiplayer in vc?

dark drum
faint pasture
#

normal impulse is what you want for how hard a hit is

granite nacelle
granite nacelle
faint pasture
#

Just check how big that is and play a sound if its > some value

#

vector length

#

if you don't know what normal or impulse mean here look them up

granite nacelle
faint pasture
raw spindle
#

I have an actor component that i need to have references to other instances of itself that are attached to other actors in the scene. is there any way to make this happen so that i can set these in the edit (in the parent dropdown in this case?)

dark drum
raw spindle
#

ah well...

frosty heron
#

Aquanox plugin may be able to do that from memory

#

Ahh yeah here we go

raw spindle
molten crest
#

Ok maybe yall can help me im working on a game I ha a 3d main menu and in it i have a tv playing on loop with a media player. I made a widget that has a play button. So I want when u hit that the camera zooms in to the TV and the TV will play another video how do I fo that. Most of my work is done in the widget but if there is a better way can you tell me

knotty falcon
#

has anyone worked with any good PCG plugins for making randomly generated dungeons that they can reccomend?

shut blaze
#

Hey I have a Streaming level setup
It has a main level setup, so basically, load level 1, then unload that and load level 2 and so on.
One small problem, when spawning an actor, it stays in the persistent level. So the spawned actor stays in all sub-levels instead of a single main streaming level.
Any ideas?

full badge
shut blaze
#

Oh the owner pin?
So basically, the owner should be any actor that comes with the Sub-level

leaden ruin
#

Hi! So I'm not sure how ue5 blueprints work in this aspect, but I want to change this bit of my code to work with all blueprints derived from it? I want the part of my script to change its outcome depending on what object it interacts with, but I'm not sure how to do that without copy pasting it for each individual use case

shut blaze
#

good idea, thx

crimson briar
leaden ruin
#

So right now if I left click and the object is lighter, it pushes away from me, if it is heavier than me, my character pushes off of it

#

The error in getting in seeing a couple forums that are a few years old but the answers have to do with exposing a function thatโ€™s not in blueprints? But I wouldnโ€™t even know where to start with that

mental trellis
#

It will always complain physics aren't enable if you try to get physics data, like mass. We ended up just adding our own accessor to the mass property.

#

Unfortunately, it probably requires c++, as you've found out.

#

Or you edit the engine source to remove the error. Again, c++.

leaden ruin
#

Gotcha, so better to just create a variable? In that case it will make the calculation even more of a pain because Iโ€™d have to somehow assert that any object derived from the parent has that variable and Iโ€™m not sure how that works

mental trellis
#

If you really aren'

#

aren't using the actual physics system, then, yeah, create your own.

leaden ruin
#

Iโ€™m using physics to launch myself, but the calculation for how hard to launch and where is just a vector modified by the mass calculation

mental trellis
#

Are you using the character's launch function?

leaden ruin
#

No add force

mental trellis
#

Oh.

#

That's strange then. If you're already using physics, it shouldn't complain!

leaden ruin
#

Well it depends I think I used launch for my character if the opposing object is heavier

#

But if itโ€™s lighter it adds force to the object

#

I think I tried add force but it didnโ€™t work so I used launch instead now that Iโ€™m remembering it

crimson briar
#

Is the physics enabled collider a root component of the actor you are trying to push? I know physics get wonky if it is not the case

leaden ruin
#

Yes it is enabled, the issue is I want to be able to make multiple different objects of different masses, shapes, and sizes, but I donโ€™t want to have to make a blueprint function for every actor I want the system to be able to interact with

#

So I thought having a single parent actor that all the child actors are derived from would be the solution but I donโ€™t think Iโ€™m currently unreal savvy enough to understand how that will work haha, currently my brain is working off of a โ€œCS: algorithms and data structuresโ€ class level that was taught in Java if that gives some perspective of where my thoughts are coming from at all

#

So I want my system to only act upon actors of the parent or derived classes of the dedicated objects for this system

mental trellis
#

Instaed of a common parent actor, an actor component with a variable you add to each actor would probably be better.

#

You'll likely have issues with a single parent bp like that.

leaden ruin
#

How do I ensure that my system will only work with objects that have that component then? I havenโ€™t messed with custom components yet, assuming thatโ€™s what would be required

mental trellis
#

You just find the component on the actor.

#

Find Component By Class or whatever.

leaden ruin
#

And I donโ€™t need to worry about what happens if I catch an object when I click and the component isnโ€™t found on a non interactable? Just exits the check and wonโ€™t cause issues?

crimson briar
#

You should check for the component before the interaction is allowed to start

crimson briar
#

Then nothing will happen if the target doesn't have it

narrow sentinel
#

Anyone know what I'm doing wrong I'm bassically trying to add an item to the list view and set the data on the created object for what the entry list widget will show after being added.

#

seems issue at the moment is the event for on entry data set isn't getting called from what I can see

raw sleet
#

Is that... new? Never knew this node existed

spark steppe
#

yes, was added in 5.6 or 5.7

raw sleet
errant snow
#

Yeah, 5.6 added it. There was also one for sets added then too. It took a pull request to get it in though.

meager spade
#

What is that, a function? I tried making it with a macro on 4.27 but never got it working properly

errant snow
dark meadow
#

Are macros basically just lines of nodes you can run whenever you want or do they work like functions?
Like if I have a macro used at 1 point in an event graph, can I use it somewhere else and they won't interfere with each other?

full badge
dark meadow
#

Yeah, thats kinda what I assumed

#

Like if I wanted to run the same line of code multiple times without having to redo all the nodes, I could work them into a macro with the variables I need and just customise them when I put them in a line

#

I ask cuz I have a damage tick thing but I don't wanna keep copying how it works with the slight differences so I can just make a macro and tell it the damage I want it to do

errant snow
# dark meadow Like if I wanted to run the same line of code multiple times without having to r...

Yes, but there is a bit of a difference in output. If the macro has 50 nodes in it and you use it twice, your blueprint now has 100 nodes in it (when it's compiled). If you have a function with 50 nodes and you use it twice, you have 52 nodes (50 nodes in your function and 2 function calls).
It probably doesn't make a difference in many cases, but it's a difference worth understanding if you have to start digging into perf and other optimizations.

dark meadow
#

Yeah now you've said that I'm like "Yeah obviously" but I hadn't initially considered it because I wasn't thinking about it

#

I only ask because I'm using a system where multiple types of damage can be done at once, they won't all be active all the time and get turned off after certain stuff happens (Time, damage, triggering a specific state or wearing off) but using a function didn't work when I initially tried it because I needed the damage to be done seperately and if I did 2 types of damage, it replaced another as you'd expect

I've been using macros for making stuff easier for me, things like setting MULTIPLE variables at once or doing collision and visibility I can just pull a macro rather than right click, set variable 20 times or having a bunch of nodes floating around instead of 1 that just acts like a folder

full badge
dark meadow
#

How do you mean sorry?

errant snow
#

You could also create structures and use SetMembers or create object instances and use ExposeOnSpawn.
I don't see in that picture what you're even setting variables on. They all look like they just pass through from one side to the other.

dark meadow
#

They're called at another point on a different event, thats not the damage stuff

#

Thats just for selecting what damage you're using, and I know there's probably better ways to do it but that was how I thought at the time and its worked without any issues

dark meadow
# errant snow You could also create structures and use `SetMembers` or create object instances...

I had somebody recommend structs before and it caused more issues and they told me some of the issues I could encounter and it wasn't worth it for what I was doing
If I'd been using them from the start and had it planned from the beginning, yeah structs would have been great, but changing the entire system back over to structs caused a lot of stuff to break and I couldn't get it working again

dark meadow
#

It's basically setting the cool downs, cost, what spell you're going to cast when you click, how accurate the spell is

#

and when you shoot all I have is like 3 variables that decide how it works, which is set before hand using this macro

#

Trust me it makes sense

dark drum
#

I feel like spells should be defined by a custom uobject or even just a data asset that's passed to a spell BP that it gets its data from.

dark meadow
#

Maybe but the cost and cooldowns are done inside the player because nothing else interacts with those, all the spell does is move forwards and figure out if it hit an enemy

#

A lot of this is to do with the visuals of actually shooting and how it behaves when the player fires

#

not the actual spell projectile

#

The 2D sprite is active because "Spell 3D" is false

#

Check the "is 3D" branch and sets the appropriate thing to not visible, projectile fires, the cooldown happens and it's visible again

#

it's better than having a series of branches for all the different cooldowns when I can set like 3 variables being actually used when it comes to the action of clicking

dark drum
dark meadow
#

But why would I attach it to the spell when it's only ever going to be used in the player's blueprint?

#

I'm sure Uobjects are great but given all I'm doing is setting the aim and cooldown and stuff and the spell contains its own data, they seem like overkill

#

The spell doesn't exist yet, so how would I check the mana cost?

#

And the Uobject also wouldn't be needed here

#

Again, I'm sure Uobjects are great but the ONLY actor in the entire game that needs to see cooldowns and mana costs or if the spell is 3D or not is the player

maiden wadi
#

Most of the time you'll separate these things out into

Static data: Things that don't change, base cooldown time, base damage, damage types, base mana costs, names, etc.

Runtime Data: Current cooldown state, spell level(if you have those), multipliers applied from the caster, etc.

Static data can go in someplace like a data asset or a datatable.

Runtime data needs split up between the concept of an ability, some object related to the player or on the player if you don't want to separate that out. And then the spell itself that you create as a projectile or otherwise.

dark meadow
#

Why would it need to go in a data table?

dark drum
# dark meadow Again, I'm sure Uobjects are great but the ONLY actor in the entire game that ne...

You're missing the bigger picture. When you want to set the spell, you select the class type that you've predefined all its properties. From this you can get all the relevant data to update the visuals and then use the same object to get the cool down.

You're current method is clunky and would scale poorly and would most likely be prone to bugs.

When using uobjects/data assets, if you want a new spell you just create a child of the spell class and define its properties. Everything else should then just work because your systems would have been built to just pull and use the data defined in them.

You also have the added bonus of being able to use soft references and choosing when to actually load the spell into memory.

maiden wadi
#

Because your designer(even you) shouldn't need to touch a programming class to alter gameplay values.

errant snow
# dark meadow Again, I'm sure Uobjects are great but the ONLY actor in the entire game that ne...

It's really of an organizational tool. It's about removing things from the knowlege of the player object it doesn't really need to know.
There's also the unstated "yet" with "the ONLY actor in the game that needs this is the player".
What about enemies? What about traps? Why can't the player have two or three or dozens of spells active at once?
Some things are just easier to make reusable from the jump.

dark meadow
#

This just kinda all feels like overcomplicating what I've made

pine carbon
dark meadow
errant snow
dark meadow
#

I have a document and I made a plan for how I want things to work, like you can only have 1 spell active because you have 1 hand, the other hand is for throwing gestures at enemies

errant snow
#

To paraphrase from something else: "No game design document survives first contact with actually playing it."

dark meadow
#

It doesn't but I still have the idea of what I want and the system I've put together currently hasn't run into any issues other than "this was hard to look at"

dark drum
dark meadow
#

There's not 20 numbers on a keyboard :)
Also modifying the properties wasn't a pain at all and actually takes like 5 seconds

#

Like yeah I was gonna make it in a way that allowed me to scale it a ridiculous amount but I realised it wasn't what I needed or wanted

#

I struggled coming up with the spells I have

#

Especially considering the spells can mix and do combos that are determined outside the player

#

How would I use a dataset or Uobject to make this work better? When I was looking into Uobjects a week or 2 ago and tried to apply it to the idea of my spell switching it didn't really simplify it, so maybe I'm wrong

#

but as far as I could tell it just added a step to getting the number

maiden wadi
#

If this were me doing this, and I had to not use GAS, and it was singleplayer. I would probably make a data asset for my abilities. Define their name, icons, damage amounts, etc there.

Then for the actual gameplay code make an ActorComponent that can be subclassed. Put some base functions on the parent like CastSpell or ActivateSpell or whatever. And then make each individual spell as a subclass of that with the data asset specified in it so it can read off of it.

Add those components to your player bp and you can hard code their activations.

You'll still get the easy hard coding you want. But you at least get some separation of concerns and correct data storage.

dark meadow
#

What advantage does separating them give me though? I'm really not understanding what makes this better? I don't want to sound rude I'm just genuinely confused why it's better

maiden wadi
#

Is your question for the data asset data or the spells into their own actor components?

dark meadow
#

both

#

currently the spells are their own actors

solemn bramble
#

Hello, I'm trying to implement smooth gamepad cursor movement. Technically, movement works (I'm using Game & UI input mode), but it's all kinds of clunky, even worse in the shipping build, where I can only move cursor straight vertically or horizontally (!). Can anyone point me in the right direction how to achieve correct cursor movement with the setup below?

dark drum
# dark meadow What advantage does separating them give me though? I'm really not understanding...

There's a difference between adding gameplay and making a data driven gameplay system.

Systems often allow for more complex behavior that can be easier to build onto. They tend to be more designer friendly and easier to work with. They can also reduce the amount of times you need to repeat code and adds more consistent behavior along with making bugs easier to fix and identify.

In essence, what you're doing is just an inventory system with fix inventory items where you can which which item (spell) is being held/used. When you want to cast the spell, you're just activating the item.

maiden wadi
#

The data gets you easy concepts. This might be unncessary. It's just a habit of mine because I put all game data in a single folder. It helps with editor utility parsing and localization lookup, cause we don't allow localization to search the entire game folder.

Putting your spell abilities in an actor component to handle your activation gets them separated from your character. Cause they're not the character so they shouldn't be in the character directly. Note for these I'm talking about the cast handling as abilities. Like... Managing cooldowns, allowing them to cast at all, etc.

dark meadow
dark meadow
maiden wadi
#

That's a point I'm not going to make, because I'm not sure you'll really appreciate it on your current project until you get to a point later where you start deciding to add more things. It's just something you need to experience from an organizational standpoint to get.

dark meadow
#

If you mean so another actor can get access to the cooldowns or manacost, I still know ways I can do that

#

It feels like a case of if I knew of doing this before I started then it'd be how I'd do it from the start but because it's already like 2 or 3 months in and I've made everything now and don't really have to change it, the way I've built it is fine but if I do something again I'll do it using data sets and such next time?

maiden wadi
#

It's a conceptual thing. Your player is not a spell. So your player class should not care about a spell's mana cost or cooldown time. Just like your player is not a mesh, it doesn't have it's vertices and bones in the player class. It has a skeletal mesh component that handles that stuff.

dark meadow
#

So what you're saying is I should have made a component that just has those varibles in it?

#

Which works the exact same way it's just

#

different?

#

I'm gonna be real I've had multiple people explain component stuff to me and not once has anyone ever explained it like that and it completely changed my understanding. I've had it explained to me before like "putting a different actor in that actor", having it explained as "Oh it's not a skeletal mesh so you have a skeletal mesh component" actually felt like it told me what that does and why I should have done it that way

maiden wadi
maiden wadi
# dark meadow I'm gonna be real I've had multiple people explain component stuff to me and not...

It's for both. Normally the use of composition is to allow it to be used by anything. If you have a fireball in your game, it shouldn't matter if it's triggered by a player or a trap or thrown from a dragon's mouth that is an AI. So putting your spell activation in a component lets you put it on everything.

But beyond that even for simple use cases, it's useful just to keep your separation of concerns in order. To let each component act like your manager for being able to cast that spell independently with generic code for each spell. You get less code over all, which means less bugs, and easier prototyping. For example say you want to test out changing out a spell? It's as easy as adding the new spell and replacing it's activation part in your input area. Cause everything else was already made and done for every other spell.

dark meadow
#

I don't understand the last bit you said with setting the spelland removing stuff or stuff already being made, but everything else makes sense

#

From this point on if I make another actor like this yeah I'll try to set this up but right now, I have so many variables it's just not worth it unless I explicitly need to do it

#

Like if I make an enemy or something that needs this stuff, then I'll do it

#

But as of right now I don't need to do that and it isn't going to be worth setting it all up a second time just because its good practice

#

I get what actor components actually do now so I can use it properly next time

crimson briar
#

Blasphemy I say. Making a system better is always worth it!

  • said a system designer
dark meadow
#

Don't get me wrong it might be something I do down the line when I've finished and wanna do a touch up but given how much I'd have to change around and move and redo

dark drum
dark drum
# maiden wadi You mean their quickbar?

If i remember correctly yea. When you pickup a weapon, it adds it to an array somewhere that you can then cycle through to switch weapons. Granted its been a while since I opened Lyra.

shut blaze
#

Alright I've been debugging and, my structure seems to be reset to default.
To be more specific, past the first delay it gets set to None

#

help?

maiden wadi
shut blaze
#

I thought about that

#

even so

#

still None

maiden wadi
#

Nothing else sets that struct anywhere?

shut blaze
#

no, I just created them, this is the only place changing them

#

super weird

#

after any delay it's just none

#

( I am in the game instance blueprint if that helps, but I doubt )

light harbor
#

When anyone gets a chance, how can I fix invalid data? There are these resolve member warnings and another error that says there are soft references to the old file name it had which don't exist.

maiden wadi
#

I can't explain it, but the only way for it to print correctly and then print badly is that something set it in between. Which I can't explain if you put a DoOnce there.

shut blaze
#

Bruh

maiden wadi
shut blaze
#

but then the original caller
At first it sets it to the correct level, but then it's just None over and over

light harbor
maiden wadi
light harbor
#

or any function params that take a softref

#

I've checked that every reference is valid already

maiden wadi
#

๐Ÿคทโ€โ™‚๏ธ

light harbor
#

im not sure what to do about it though, im sure if I remove that-it will currupt.

#

god why are uassets not text

shut blaze
#

I think I found the issue? apparently it's printing nothing