#blueprint

1 messages · Page 111 of 1

swift sphinx
#

anyone know?

dire frost
#

no because it's pretty much impossible. you could fake it, maybe add a little effect to hide the hard cut-off between perspective and orthographic views

sharp fox
#

how can i keep a simmilar size for every child actor, so if a child actor is big then scale it down and if it's really small then scale it up

remote meteor
#

its written there
use vs2022 not 2019 for msvc version

fading hawk
#

I'm switching over some menus to CommonUI but I found that the "expose on spawn" variables aren't showing up in the Push Widget like they did in Create Widget.
Is there a way to fix this?

gentle urchin
#

otherwise no

dire frost
#

you can go crazy with it if you want

twin shale
#

Anyone know why IsA wouldn't be working in a Blutility?

#

Printing the Class of these assets just returns Blueprint and not the child class

gentle urchin
#

It's messy, to say the least

twin shale
balmy rock
#

im working on a top down retro space shooter for a college project and i've hit a bit of a roadblock

Im probably missing something simple but coding isnt exactly my strong suit. Anyways, the issue is whatever state the enemy blueprint with this pawn sensing node starts with in terms of seeing the player, it will stay that way forever. So if it starts out seeing the player, it will constantly print the string (even if I leave its sight). But if starts out NOT seeing the player, nothing will happen (even if I enter its sight). Of course, i want the sight to be dynamic to where its always checking if it sees the player and does actions accordingly.

Any ideas on how to fix this?

agile moss
#

When I open my project, how can I make it so that it loads automaticaly a specific level?

agile moss
#

thanks mate

lofty rapids
#

search for map

#

theres default maps

balmy rock
lofty rapids
#

whats with the condition it's kind of pointless

#

your printing on pawn sensing ?

#

and thats what keeps showing up all the time ?

balmy rock
#

At this stage, yes
I've tried using other nodes like while loops and sequences, but I seem to get the same result, most likely with how i've been implimenting them
I know im missing something but im unsure what

robust mural
#

hey guys I have a skill bar on my game, where the player can drag the skills on it, and I wanted to bind the text inside the skill widget to the key mapped into the InputAction, how can I get the value of the key mapped

#

I've tried with this node but without success yet

lofty rapids
#

i found this online, i would make it into a function tho

robust mural
#

ooh @lofty rapids nice dude

#

that was what I was looking for, thanks a lot

lofty rapids
rain bolt
fading hawk
#

OMG I need a utility to show the difference between two BP's ... copied a file, made some changes, now I need to see what's changed so that I can undo things that aren't working.

fading hawk
#

vcs?

#

Oh, version control - I use git

#

But git sees the files as binary and doesn't show changes to BP

supple dome
#

If you commited theres a diff tool on right click -> revision control -> diff

fading hawk
#

Inside the UE editor?

fading hawk
#

oh neat - I didn't know that

supple dome
#

knowing is half the cattle

ancient heath
#

Does anyone know why this doesn't work? Does it have to have something prior? Shift doesn't recognize me when I press it (it doesn't really recognize any key)

lofty rapids
lunar isle
ancient heath
ancient heath
lunar isle
#

but i am not sure i never use it for this

ancient heath
lofty rapids
ancient heath
lofty rapids
#

if you just put hello in the print string does it show up ?

#

just put some text in there

#

for now to see if it's running

ancient heath
#

hmm doesnt show up

lofty rapids
#

then it's probably not running

lofty rapids
#

if you wanted to run some code on the widget you could make a custom event or function

#

and use the reference to the widget and call it

balmy rock
# lofty rapids and thats what keeps showing up all the time ?

ok so, I believe something may be wrong with my pawn sensing component itself.

I reduced it to just On See Pawn -> Print String, and i've run into the same issue. Player starts in sight of enemy, infinitely print that string forever, no matter whatever and vise versa

ancient heath
fleet cedar
#

Does anyone know if it's better to use my character blueprint in sequencer or to use a generic skeletal mesh and hide my blueprint? Any preference?

umbral maple
#

I have a value that needs to update on my ui but its not working. When I have it print string, it shows the correct value, but it is not changing it on my ui.

spice viper
# umbral maple

Dumb question, is the text component that shows the 33 set to a value in the UMG or an event binding?

umbral maple
#

UMG, I just added the event tick node and it works now???

spice viper
#

Not ideal, but gets you going in the right direction 🙂 Good luck!

umbral maple
#

I dont know what else to do. Its weird that I had it working just fine the other day and then it stopped. I didnt mess with that code at all.

spice viper
#

So tick executes every frame. If you go to the text component and go to it's value you can assign a specific variable, or an event binding. That's a better way to do it

#

The UMG itself has to have Tick enabled, that's the default setting so it should unless you changed it

umbral maple
#

I have it set up like Ive always done it where it works, but for some reason its not, its driving me insane, ive been stuck on it for 2 days. I have the text set as a variable and have a function to update it when the value changes

spice viper
#

That's not the way to set the text

#

You want to store it into a Text Variable. Then bind the component to that variable

#

Don't directly set the text

#

What do you have in the binding?

umbral maple
#

Binding doesnt allow inputs in the function

spice viper
#

Right, you have to design for that. That's why it's better to create a variable, likely a "Text" variable. Then bind to that

umbral maple
#

Im bad at UI, my set up is all wrong

#

This binding works, but Ill have to make an individual binding for each text variable and I know there is a more efficient way of doing it but it escapes me.

limber parcel
#

also, instead of doing a foreach loop, you can use the "contains" node from your array

umbral maple
#

Without the ref to gm, i cant pull up my current logistics

limber parcel
#

you can, if you expose it on spawn and pass that variable on spawning the widget

umbral maple
#

This is what i have

cedar drum
#

Folks, anyone knows how to make top down camera controllable by the player, and then make a "true first person camera" with them?

spice viper
umbral maple
spice viper
umbral maple
#

it does, thank you, but now ill have to set up 6 more bindings for each variable

spice viper
#

Yep, could make it a different way with a custom widget, or event driven from the game mode with an event binding, or creating a function that takes in the logistic enum (like sustenance or whatever) then THAT is called by the TextBlock's content binding. You can even select those 4 nodes in your image and "create function" as a shortcut

#

#umg will have way more help there

umbral maple
#

Thanks

idle crescent
#

Any suggestions how I detect if a click is within a closed spline, if the spline is to act as a shape?

supple dome
idle crescent
#

It kind of is. I'm making a 4x strat game and I was going to do that to tell if players are clicking within a territory's bounds.

#

I'm open to counter suggestions

supple dome
#

is the territory a spline, or is it made up of cells or grid or smth

idle crescent
#

It's a spline shaped over a sphere's surface.

#

So it's just part of said surface

supple dome
#

but in a sphere it makes it even harder

#

and how is the spline shape decided?

#

like what is the 'enemy territory'

idle crescent
#

The spline shape is determined pre-runtime, I manually change the borders I had planned.

supple dome
#

Could you pre setup that too, by placing some spheres or something?

idle crescent
#

Map territories tend to be rather non-uniform

#

Jagged with a lot of turns and all that.

#

I'm making a 3d object of the earth and kind of doing a 2d project and that.

#

It is a use case for others possibly as well though

idle crescent
#

It truly is a mystery what the best route will be.

#

For one since the spline actors themselves don't have direct collision, I guess I'd need to route through a list of all of them to find which is closest, which is even applicable, etc.

lilac cipher
#

Hey guys, I am doing Gorka Mannequin look at me video but I got my character and animation from Mixamo, Now there is an issue where the mannequin is looking away at me, How do i resolve this? Someone mention its cause Mixamo and UE axis arent the same
https://www.youtube.com/watch?v=8skq8t_Fffk

Hello guys, in this quick and simple tutorial we are going to learn how to make a the AI look with its head at the player in Unreal Engine 5.
↪️Join my Discord Server, NOW: https://bit.ly/GorkaGamesYouTubeDiscordServer

👉Awesome Unreal Engine courses on Wingfox: https://bit.ly/GorkaGamesWingfoxHorrorGame
Check out my Steam Game! https://bit.ly/3...

▶ Play video
surreal peak
#

@idle crescent Not sure how much you can improve that in Blueprints, but in CPP you could put the spline shapes into a grid map and reduce the amount of tests upfront.

Checking if the click is inside is probably gonna be a 2D Is point in Polygon check

gentle urchin
#

Cant you do a trace and pick up the face index of the material or smth?

#

Id think each country had a separate index for easy lookups ...

surreal peak
#

If it's only a spline then there is no face to trace I guess

devout coral
#

I have problem that my BP doesn't set character variable. Anim BP set to correct character

dim night
#

Does anyone know why the first blueprint doesnt work but the second one does?
Ingame the first one takes one second of input and then just doesnt continue further while the second is the usual unreal engine default but modified for clarity

#

Update I fixed it by toggling looping but the multigate switching between the two causes really jittery movement
Is there any other way for organization or do I just have to use a lot of node locking?

lunar sleet
dim night
#

This will involve two sets of controls depending on state

#

The usual system is this

#

I just moved it and rearranged it to make things slightly clearer

#

The multigate is because of the sequential nature of this

#

Instead of making things longer
I want to make them taller

#

Im still cleaning things up here but its an example
Both things need the player controller but if I kept it horizontal it would be a continuous chain of stuff getting added into each other
When Instead I can better view things by having things seperated
The Initial Variable Chain
The Controller chain
The Event chain

#

Here the multigate works fine since it only runs once and the order doesnt matter

lunar sleet
#

Well the main difference between your first 2 screenshots is that the gate’s first out can access the Y value in the 2nd screenshot but not in the first one. A good way to debug these things is to right click watch value on the pin, select a debugging object and observe it live

dim night
#

Wdym it cant access the Y value?

lunar sleet
# dim night Wdym it cant access the Y value?

I mean your 2nd screenshot connects both movement input nodes on the first out of the gate, one for X and one for Y. The 1st one does not. You were asking what the difference is between the 2, that’s it

dim night
#

Ohhh

#

So it has to be the first out only
Because Yes thats the difference but I wanted to understand why that mattered

blissful zenith
#

Having radialForceComponent, I want it to use its Constant Force the whole time (not fire impulse) when something is in the radius, how to do that?

ocean crow
#

These nodes get called but my crosshair UI doesn't fade in/out? Just does nothing? (I was able to get it to work on begin play, just not on these events for some reason, UE5.3)

#

To clarify, the print strings are called correctly, the animation is just not doing anything, am I using the correct nodes?

rain bolt
#

Hey, can you please help me?

Client Widgets are NOT showing in the packaged build. How can I fix it?

thin panther
#

you'll probably get an answer if you give more information.
You've given people basically nothing to work off

rain bolt
#

But I want to package my game and have the UI visible. Which it currently is not since its events are not running without a server.

tired whale
#

Hey guys !

So I'm using Find Path to Location Synchronously into an AI move to to make a simple betting race game. The pawns are using a Floating Pawn Movement Component to leverage the Use Acceleration for Paths feature.

I works fine excepts for the turning of my pawns. They move straight towards the first point of the path, then snap turn instantly toward the next path point and so on until the reach the endpoint.
Is there a way to either make path smoother (curve instead of linear?), of affect the turning of the pawn perhaps?

Thanks

dim sapphire
#

Hi guys,

i have a problem, i don't know is this normal or not. I have a object in a world and i trigger this with a mouse "On Clicked" and after 10 or 15 clicks isn't that more cosntant and he doesn't accept the click anymore.

i couldn't find anything about this on the internet, can anyone tell me if this is normal and i need to look for another solution?

tired whale
dim sapphire
tired whale
#

That would explain the inconsistency in the amount of times you can click it before you can't. The time for it to fall asleep is the same, but during this window you might not have clicked as many times as you did in the previous one.

tired whale
# gentle urchin Have a target direction on the spline somewhat up ahead

Thing is they're not following a spline but just the basic path returned from the find path node. Though I have a spline, that I've used to figure out which pawn's first, don't know I you remember helping me earlier this week.
So it should go something along the lines of:
make em follow the spline instead of the path
use their distance along the spline to get a point slightly further than they are
use this point to rotate my actor
?

gentle urchin
#

This works on regular target vector points aswell

#

Just aim up ahead

tired whale
#

I can't figure out a way to query where they're at along the path, though

gentle urchin
#

Using ai moveTo was it ?

tired whale
#

yup

gentle urchin
#

Not sure if you need to make your own for this tbh

#

It should be not to complicated

tired whale
#

this is what I have so far

gentle urchin
#

But

#

To help you out

#

Each ai can spawn a target actor which does follow the spline

#

And follow that

#

Have that as their target in the moveto

#

Dynamic target

tired whale
#

hmmm interesting approach

#

like the fake rabbit of a greyhound race

gentle urchin
#

Yepp

tired whale
#

Otherwise, what was your previous suggestion, using maths to get a smoother tangent?

gentle urchin
#

Well it doesnt work that well if you dont control the location/rotation along the wayb

#

Which kinda counters the ai moveto

tired whale
#

Oh okay, yeah I need the AI move to so that the actuals stat of my racers are used, ie the accel, max speed, etc.

dim sapphire
tired whale
gentle urchin
radiant ivy
#

I don't know how to fix the error I have in the picture, the error code we told me is PIE: Error: Blueprint Runtime Error: "Accessed None trying to read property MainWidgetRef". Node: Set Inventory Vis Graph: EventGraph Function: Execute Ubergraph Survival Game PC Blueprint: SurvivalGame_PC and what can be seen in the picture, the error code shows me and I don't know how to fix it

tired whale
lofty rapids
gentle urchin
#

Its just an empty variable

lofty rapids
gentle urchin
#

Guess its sort of redundant but a car without advanced nothing is pretty straight forward to setup

tired whale
radiant ivy
lofty rapids
#

what bp is this ?

#

and on what event ?

radiant ivy
lofty rapids
# radiant ivy

no i mean where you create and promote to variable, is it the same bp ?

#

and on what event are you creating the widget ?

#

because your variables null, so your execution order might be off

lofty rapids
#

again, when does the creation run ?

#

i can see it's in the same bp, but when is it running and setting the variable ?

#

because it's most likely out of order, meaning it's not set before you try to use it

radiant ivy
lofty rapids
#

i mean i guess you can use validated get

#

but i would try to figure out why it's not set yet

lofty rapids
#

so if your going to use this as a fix, just put where you want to use the variable or somewhere before you want to use it

#

but it's just going to not work when you run it and it's not valid

#

but might be an easy fix, still i would see why your reference is empty by checking when you set the reference

gentle urchin
#

Probably not set

lofty rapids
#

i'm thinking its not on beginplay and the event hasn't run yet, but idk if it even added to viewport

#

but in this case i feel like that validated get is just a patch that isn't going to work properly

#

unless you looping the event or something and it's just null of the first go

magic parcel
#

Does anybody know if there is a node to create a variable that can be piped into the Geometry Collection?

#

I want to make the Rest Collection Parameter, so I can make this a parent BP

#

Nevermind, I think I found it

#

thanks anyway!

neon acorn
#

Hey all
Is it possible to know if an actor has been completely overlapped by another actor. I can think of some complicated ways of detecting this using traces and such but maybe there is an easier way?

gentle urchin
#

Erh

#

Isnt that a setting

#

Partial vs full overlap

surreal peak
#

I never heard of such a setting, but also never needed to know that

versed sun
#

=== Overlap 🙂

gentle urchin
#

Perhaps not

surreal peak
#

If they share the same collision primitive, it could be some simple math

gentle urchin
#

^

surreal peak
#

Such as checking distance between center points of a sphere and then checking if the radius of the smaller ones still fully fits into the bigger one

#

But that requries either every shape to be handled or only using a given shape that you have the math for

lofty rapids
#

a hacky solution could be just doing distance from centers

surreal peak
#

If they are both capsuls, that could mean a lot

neon acorn
#

so...the situation is that in my top down RTS, I am defining a playable area using a irregularly shaped mesh. I want to check if the buildings that I want to plop are within the mesh fully

#

or...and I just realised this...I could create a inversion of the playable area

surreal peak
#

If both are defined by a 2D polygon so to speak, you could google for "How to check if pol A is to pol B"

#

Which is probably gonna be "if all points of Polygon A are withing Polygon B"

#

Means you'd need to figure out how to check if a given point is in a polygon

neon acorn
#

yeah...but I think I just realised a better method. Since I just want to prevent the assets from being plopped in non playable areas, I can check of any overlapping in the non playable areas which will be a far more easier implementation

lofty rapids
#

tough maths polygons

magic parcel
#

Interesting, so when I add set Geometry Collection, it crashes, no matter what

#

looks like an engine bug

neon acorn
#

Well, thanks for helping me clear off some mental blocks

magic parcel
#

I tried to set rest collection in the construction script, on a variable, but it just crashes, as long as the setRestCollection node is used, it results in a crash

#

even when I create an component, in the BP base, and then try to modify it. I wonder if anybody else get the same situation?

neon acorn
# faint pasture What are the colliders?

The plopable actors will have cuboid colliders, maybe with the pawn preset. The idea was to have an invisible wall collider in the static mesh which defines the play surface

faint pasture
#

It'll just be a transform location -> bounding box test problem.

neon acorn
#

I think I have simplified the problem I had from needing to check if my actor is always fully inside the playable area to checking if my actor overlaps, even partially, to the area outside my playable area.

#

Defining the playable area is a challene I am working on though...

#

As I want the playable area to be based on a heightmask I have

glad otter
#

Hi, I'm actually doing a level based on directed graphs, where, on load, the level activate and desactivate some bridges or doors, here is a simple version of this idea, where I set the paths manually in code (On the screen capture). I would like to use an algorithm, to find all the possible paths, in a larger graphs, to go from spawn to end of the level, then, activating only the bridges/doors of this path, I'm searching how to do that, can someone maybe help me ? I dont know if I'm clear, sorry for my average english

gentle urchin
#

Unrelated to your question, but switch on int exist ^^

glad otter
lofty rapids
glad ether
#

Yooo, why there's no convert to pure cast here

lofty rapids
#

it looks pure already ?

#

it has no execution

glad ether
#

it does tho that white thing is execution pin on my theme

lofty rapids
#

oh ok, i c

glad otter
lofty rapids
#

but you want a specific path ? or the shortest ?

#

the traveling salesman problem is essentially unsolved

#

i feel like this is similar

glad otter
lofty rapids
#

ok so that's not as bad, you'll need some way to store the paths

#

maybe some sort of array ?

#

you may need multiple arrays idk or there could be better structure for it

glad ether
#

Yeah probably an array would do the thing with a random int selecting one inside of the array

lofty rapids
#

well you would need a few arrays for different paths, and just select one

#

or you could store the connections in a string and make use of parsing to have like a 2d array

#

still a bummer no 2d array in bp

glad ether
# glad ether

Imma restart my unreal engine to see if my Good old unreal is freaking out 😄

glad ether
glad otter
lofty rapids
#

just generate a random path if you can

#

why generate a few and pick one ?

#

just generate one

gentle urchin
#

wouldnt it be easier to proc gen the entire thing instead of premade

#

this looks premade + LevelBP

lofty rapids
#

procedural generation ftw

#

drop a block, then drop a bridge, drop another block, drop a bridge and have them set to specific offsets

#

depending on the bridge

glad otter
#

All the path will already be existing, the doors will only open randomly making a path, but I need the path to go from A to B without looping or those kind of things

glad ether
#

I think You should use the GameState Blueprint and create an empty nested array (There will be an array of rooms, the rooms themselves are also an array which are contains the doors) and in the begin Play of each room cast to level blueprint and add themselves to that array (Assuming that you can create a representative blueprint for them in the level)

gentle urchin
#

Proc genned rooms, navmesh doing the path making

lofty rapids
#

i didn't think so

gentle urchin
#

Nah you cant access levelbp in bo

glad ether
#

Oh then GameState can be used for the same purpose

lofty rapids
#

i don't see doors

glad otter
#

here, blue things are doors

gentle urchin
#

this looks like a maze

glad ether
#

I checked my own project and I use Game instance for controlling Global Variables I want to pass and manage around on my inventory system.

gentle urchin
#

there's random maze generators

#

I'd start there and divide rooms that way

glad otter
gentle urchin
#

It's the way to avoid hand selecting variables 😄

lofty rapids
# glad otter

so you just want to open the doors in a path ? or they will open randomly ?

glad ether
lofty rapids
#

you can hard code the paths in an array of bools, so the index would be the door and the bool would be open/closed

glad otter
lofty rapids
#

then have multiple arrays, one for each path

#

and pick an array and loop through and set the doors based on the bools

glad otter
#

But, that means defining myself all the paths ?

lofty rapids
#

yes, defining a path may be as easy as just testing some random paths

#

or you could just open them in a random sequence

#

but defining a path, that would involve have some constraints or variables that tell it a particular type of way

#

other than random

glad ether
#

No question on this one but just wanted to share, looks kinda scary 😄

gentle urchin
#

beautifull

lofty rapids
#

you'll need to know what room your currently on, and then pick a door that wasn't what you came from

#

since theres only a few options of door you could generate a bunch of paths pretty quickly

#

but choosing the "best" one, that's all in how you want it to be structured

#

it's pretty difficult to pick the best one, i would just generate it based on some variables

#

like favor down, stuff like that

#

the "doors" are the blue things ?

#

or what is a door that your saying about

glad otter
lofty rapids
#

i mean your floors can have an array that has the state of the doors around it, might be a bit tricky blending them together like matching doors but should be doable

#

then just loop through your floors and switch some state around

#

to change the doors

#

use the index for north,south,east,west

#

0,1,2,3

glad otter
#

I will take a bit of time to present the problem more clearly, I need to see it in a mathematical way to explain it I guess

lofty rapids
#

so the floors are premade ?

#

but your generating the doors ?

#

or the doors are premade too ?

glad otter
lofty rapids
#

ok so you just want to make visible the right path

lofty rapids
#

i would find a way to attach the surrounding doors to each floor

#

so you can make a path

#

if it was me each floor would have four doors around it

#

that can be on/off

#

so you can loop through the floors and set the doors properly

#

to create a path

glad otter
#

I've for now, thought that, assigning a number/letter to each door and segments of the paths, would let me say : choose a path starting from the Spawn to the End, like [S> AEHGF >E] opening doors between A-E E-H H-G G-F (for example) and, for each door, an associated numbers to simplify that in the code, I can define all the paths manually like that, but, to have a wide list of path, I need to calculate all the possible path, so I will have a list of path, (so for each path, a list of doors), then activate each

#

like in maths graphs

#

euler algorithm etc...

#

but I dont know how the engine can make the list of possible paths by itself

#

without me precalculating and defining everything in the code before

#

because, I dont want to make a list of 150 paths and doors myself

lofty rapids
#

i mean you have all the doors premade ?

#

why not just generate random paths ?

#

if you want 150 paths it's probably close to randomizing

#

and you could put some variables in that say favor down like i mentioned

#

then you would just need the path you can take from each one, pick a random one, move to next

lofty rapids
#

that it would be able to do that

#

because you made this up yourself, so how would the engine know about it ?

glad otter
# lofty rapids because you made this up yourself, so how would the engine know about it ?

In this video I have shown how to find all possible simple paths from one source vertex to destination vertex using a simple Depth First Search, something which will be very useful in competitive programming.

Algorithms Playlist:https://www.youtube.com/playlist?list=PL6tQsxnnBiDivAKpD2sy-PHOevJtFuGOR

Placement Preparation Playlist:https://www....

▶ Play video
#

but I dont understand the guy in the video clearly, and dont know how to properly use C++ and affect that to the level after

lofty rapids
#

c++ would be more performant

#

but finding all the paths could be like i said

#

loop through the floors and pick a door

#

goto the next room

#

pick a door

#

go to that room, pick a door

#

if you hit a wall it's not a valid path or you want to try another way

glad otter
#

Okay, ty, will work on that and see If I can do that

lofty rapids
#

usually pathfinding algorithms can be quite a task

gentle urchin
#

Id just use the navmesh😅

#

But wont return all paths

lofty rapids
#

i feel like you would need to open random doors check path, open random doors check path

#

how would you use the navmesh to find a path when doors are just there to begin with ?

lofty rapids
versed sun
#

you can make a NavMesh ignore doors

#

or , turn off door collision when calculating path , and collision back on after

lofty rapids
#

won't it just give you the best path like a straight line ?

#

you wouldn't even be going through doors

gentle urchin
#

You would if it had to for turns?

glad root
#

any pros here? why actor spawned during runtime in world partitioned map not getting unloaded? Just empty actor with mesh. Same thing with this actor placed during runtime manualy. If placed in editor before simulation it behave normaly and gets unloaded at distance

lofty rapids
#

not sure if that means "loaded" in the level or "loaded" memory

mild pine
#

Hey guys. I wanna make a system where a dynamic Float variable is input into a timer that finterps a float value from 0-1. I would love to use a Timeline as I've done before with similar setups, but the length of a Timeline cant be adjusted realtime, or am I wrong?

#

Can this be done with a Timer, if so how? 😅

versed sun
#

you can adjust the Rate the timeline plays

gentle urchin
#

Set PlayRate

#

So if the timeline is 1 sec, and you want it over 10 sec... 1/10 = 0.1 playrate

sharp fox
#

yo how do i keep a constant size for all objects, like if something is big how do i scale it down and if something's too big how do i scale it up

#

im trying to make a pickup system and i want to keep a constant size for every object

lofty rapids
#

maybe get the bounds

#

and try to match it somehow

#

to your target

sharp fox
#

good idea thanks

lofty rapids
#

maybe something like a loop the scale up or down depending on the actual size

#

once you get some numbers in there you should have a close approx

keen kernel
#

Hi guys!
In my project I retrieve some data from the database (from a server), but can anyone explain me how to save this data inside the server to keep it available for clients connecting to the UE server?

Let me explain: the logic is that of an MMORPG, where the database contains in the table the objects and their standard values, as I think it works in every game. So, taking via an API call the data from the object table, I should save it in the Unreal Engine server, right?

If the reasoning is correct:

  1. How and where to save this data within the UE server to keep it available to people who log in without making a per-client call each time?
  2. How do I connect a possible icon and 3D model to the data received from the database?
lofty rapids
#

i feel like your data storage should be done with your api

#

and kept on your server

#

it's an api that gets data ? but you can't save with it ?

frosty heron
#

What is even unreal engine server

#

They have server?

glad root
#

its like nobody ever spawn actors during runtime

#

with world partition enabled atleast

lofty rapids
#

ya i have not used it much, only in one project it just turned on and i'm forced to select a region every time now

mild pine
keen kernel
gentle urchin
keen kernel
gentle urchin
#

Thats how you access the playrate

frosty heron
#

Not soo much about where one would store their save file

frosty heron
#

You can save the .sav anywhere but an mmorpg would probably not use any of the save file by unreal

#

They would handle storing and loading from their own server (actual physical one) somewhere

keen kernel
#

Not soo much about where one would store their save file
Yes it's not the file issue, in my head I thought about saving the data in an array with structure and make it replicated, but I don't think that's the correct way to do something like this

lofty rapids
#

if you just use an array, then when the server shuts off your f'd

#

unless you can serialize an array ?

#

maybe just save it every so often or on change

frosty heron
#

And an mmo won't even use unreal replication system

keen kernel
#

Yes of course the server doesn't even allow users to log in, but if it is restarted it takes the new info from the database and shares it back with the connected clients, and to do it via a variable seems really unfair to me

frosty heron
#

Software engineers would develop their own system

lofty rapids
frosty heron
#

No mmo in unreal I know use unreal replication system, it is not cut out for mass players

limber parcel
mild pine
keen kernel
limber parcel
keen kernel
lofty rapids
#

i'm not sure what that means

#

you can store them in the server, but not the db ?

#

or that's just what you prefer ?

#

because saving to the db every so often will make it persist

limber parcel
#

he caches the database in the server

lofty rapids
#

that makes sense

gentle urchin
lofty rapids
#

but you still need to save for it to persist or the thing crashes all your data is gone

thin panther
#

Oh, and the millions of dollars and the network engineers, make that easier of course

keen kernel
gentle urchin
#

Id imagine you could optimize it quite a bit for each player, but the server would still have quite the workload if theres some people playin

keen kernel
# lofty rapids you can store them in the server, but not the db ?

I have object data in the database that I call via an API, the call should be made from the dedicated server and not from the individual clients, so the object data should be made persistent in the server so that not X calls are made but only 1 from the server and then replicate the data on the connected clients

limber parcel
gentle urchin
#

Open doors etc

lofty rapids
#

it doesn't work ?

keen kernel
limber parcel
#

the unreal replication already fails at something simple as changing ur movement speed

thin panther
#

A bp only MMO is impossible

limber parcel
#

though i saw this plugin...

keen kernel
thin panther
#

You can absolutely get by, just from knowing C++

Source: I am getting by, just by knowing C++

#

Once you know C++ you know how to find information that you want

limber parcel
#

however, i think we will get new multiplayer system in unreal soon

#

i think beta is already available? what was it called?

gentle urchin
#

Iris you mean?

limber parcel
#

yes

surreal peak
#

Nothing that would allow an MMO

thin panther
#

The only person I know of in this server that's done an unreal MMO would be Sukebi, and they rolled completely custom replication.

random python
limber parcel
#

but i think i can make coop game in blueprint for 8-16 players

gentle urchin
#

I wonder how that'd perform with 16

#

Depends om the complexity of the game ofc

#

16 ppl open doors with keys shouldnt be much trouble

thin panther
random python
random python
limber parcel
keen kernel
#

So ultimately it is virtually impossible to create an MMO with UE, unless you have a team or so much money, that you can pay someone to recreate the system behind UE users' connections?

limber parcel
#

that or ure some sort of savant

thin panther
#

Any larger scale multiplayer game needs an experienced network engineer on your payroll

#

For an MMO, you need many of them

gentle urchin
#

Whats the biggest bottleneck with ue tho? Is it how the replication system works?

#

For an MMO, that is

thin panther
#

For blueprints, it's the fact that they're just too slow

#

For large scale, it's just that unreal isn't really designed for that

#

@valid oyster apologies for the ping, but what did you find were the largest issues with Unreal's built in system

surreal peak
#

Depends on how you do the MMO part

thin panther
#

The one thing that annoys me with unreal is it has no amazing way for large data streaming built in 😆

limber parcel
surreal peak
#

But most of the time UE replication system is built for shorter sessions

#

Without RepGraph or potentially Iris, you can't even run more than 64 or so players on the servers

#

And that is already a lot

thin panther
#

do you really class arma as an mmo though? 🤔

limber parcel
#

well with what they want to do it kinda becomes an MMO

#

but yeah, if you want a good reference of what large scale multiplayer in unreal engine looks like, check ATLAS or ARK

surreal peak
#

Tbh it doesn't matter what you call it. As soon as you do something else than what UEs replication system is for you gonna have that issue

limber parcel
#

it lets u put 300 players into a map, but its a lag hell

surreal peak
#

And the limitations are pretty straightforward.

  • Roughly 100 players per server if properly optimized
  • No seamless switch of servers
#

And with that most MMO stuff somewhat dies and you gonna want to run your own system outside of UE where UE is only the client

keen kernel
#

So really no commercial engine is good for games with more than 100 players. The only solution is to create a proprietary engine with its own system behind

gentle urchin
#

One would think someone made the MMO Engine

keen kernel
#

Guys, but still I read around that TERA was produced with UE 🤔

limber parcel
valid oyster
# thin panther <@989304636588568636> apologies for the ping, but what did you find were the lar...

for an MMO? the biggest issue is how slow the communication / replication actually is (when using BP), one of the second issues is that unreal's system doesn't scale, for example 1 server can barely hold 100 players, and that's with basic* logic, anything more complex and you're going to have to come down to 40-50 players max, and basically have some kind of hub world connector, and instance those 40-50 players so they are never on the same server.

valid oyster
#

10 years old though, no successful mmo's from it

#

each of our servers can hold a max of 5,000 players

#

we can't show that many on screen of course as the client will lag, but that's our current capacity per physical server

#

we made a custom "server" and implemented a custom socket derived from unreals FSocket class

#

that's how you start with an MMO, then you have to figure out how to keep the socket persistent

#

after that you can control all of UEs functions however you please, if you know how to communicate between server/client and implement functions that occur on certain messages from the server etc

#

Unreal is already one of the most MMO friendly game engines out there due to the actor system, you just have to understand how unreal does it and think in the unreal way

lunar sleet
#

But still, not in blueprint 😀

valid oyster
#

Right, not in blueprint

#

there used to be an unreal MMO discord

#

was really cool, someone created a whole MMO framework in UE

#

i think minimal C++ was required

#

there, again, haven't seen any success with this either, but the developer showcased some decent performance, no getting around the 40-50 player limit though

#

i believe there was a way to use one of the external cloud services that offer unreal dedi hosting to allow you to overcome some of the limits

stuck sentinel
#

someone help me

#

i have a zombie

#

when i play this animation the game freezes

blissful willow
#

Aim for the head!

#

Sorry

stuck sentinel
#

is it because he already has an animation and im playing another one?

undone bluff
#

no it's freezing because you're causing an infinite loop

blissful willow
#

That looks like an infinite loop to me. Should you be setting CanAttack to false again at some point? Because you set it to True, then loop when it's True, which is always

stuck sentinel
#

so should it be when false instead?

blissful willow
#

The Output Exec pin of Play Anim Montage isn't fired when the Anim is finished (which based on your code is what I'm assuming you thought would happen). I think the setup could work but you want to fire the Attack anim again after the previous one is finished, your current code would just infinitely play the same animation over and over again every frame

undone bluff
stuck sentinel
#

it just needed a delay

undone bluff
#

an infinite loop with a delay won't crash your game so that's a good start lmao

stuck sentinel
#

why is it not smoothe

trim matrix
stuck sentinel
#

when going from idle to walking

blissful willow
#

You need a blendspace for the Idle anim and the Attack anim

undone bluff
#

it has an event for on completed

#

it's still horrible jank (and you have a wire going backwards)

#

but at least it's not an uncontrolled loop

stuck sentinel
#

im talking about the switching from idle to walking

#

forget the loop

lofty rapids
#

how are you setting the speed ?

#

in the anim bp, in a blend space ?

stuck sentinel
#

what do you mean

lofty rapids
#

what is max acceleration ?

#

and what does your blend space look like ?

stuck sentinel
#

2048

lofty rapids
stuck sentinel
#

yeah from idle to walking to running

#

smoothly

#

so whats the issue?

lofty rapids
#

what does the anim look like that runs the blendspace @stuck sentinel

stuck sentinel
#

the animation blueprint?

lofty rapids
#

and it's probably getting to the walk speed too fast

#

move the walk farther toward 400

stuck sentinel
#

but i need the character to be slow

idle crescent
#

I think I found what I wanted is a blocking volume.

lofty rapids
stuck sentinel
#

no

#

i set it to 1 same thing

lofty rapids
trim matrix
#

bro

#

the problem is that he is calling the animation on an event and not as he should be doing it

idle crescent
#

Can I make a complex, non primitive shape of a blocking volume somehow besides copying it off a mesh directly?

blissful willow
idle crescent
#

Yes, I saw. Can I copy that volume's shape to another actor's?

#

Another blocking volume

blissful willow
#

Hmm, I'm not sure. I'm used to working with something bespoke in the studio, so I've not needed to do that with out-the-box Unreal

#

What's your use case, exactly?

idle crescent
#

I think I can just attach the blocking volume to the actor and go from there.

#

I'm making clickable map territories, and this should do it.

gaunt wadi
#

I'm trying to save an array of actors, however whenever I try to load (2nd image) the array as a data line but no data on it, however when I am saving (1st image) all the data is there, everything else saves fine, just the array seems to empty? Can anyone help?

gentle urchin
#

Afaik you cant really save actor refs

#

Without some trickery anyways

#

Runtime spawned i would assume?

gaunt wadi
#

Ahh okay, that makes me feel better because I couldn't work it out, I just need to spawn actors back in their locations so can figure a work around just annoying me I couldn'y figure out why it wasn't working

fading hawk
#

With my current GameUI, I have dialogues like Quest and Inventory which are created in the beginning and just have their visibility toggled as needed. This means I can bind events to buttons and I use event dispatchers to pass things along.

I now want to switch over to using CommonUI with Enhanced Input so that I have "better?" control and design for console controllers. This is proving interesting though. The CommonUI widgets methodology is that you treat widgets as non-persistent (loose term here). So you update the contents every time you pop the widget onto the view stack. So I'm thinking of switching over from the current bind-event method to a pub-sub method. Click a button, and it sends a message via a channel to anyone who is listening. Have another subscriber react to any messages etc.

So 2 questions: 1 - is this a bad idea? and 2 - what to use for the pub-sub messaging mechanism?

spark steppe
#

lyra has a build in messaging system like that afaik

main lake
#

How to have the white squares organized properly like this and having 10 of them in each row automatically ? because in this case I used the Grid Panel but after the 10th one I had to manually place them otherwise it would continue to the right side of the panel forever. Like I want later to fill it dynamically and have this 10 items per row.

fading hawk
fading hawk
#

Otherwise use a "Wrap Box" instead of Horizontal Box

#

Wrap Box lets you set an explicit wrap size.

main lake
#

Another question, is it possible to make that white square modifiable manually because I made a widget called "WB_AbilityIcon" containing an image + a text for the name of the ability, and I want to expose it in the details panel so I can modify it to put each image I want, is that possible ?

fading hawk
#

Set your wrap box to a variable, then you can programmatically (in BP) create and add the WB_AbilityIcon as needed. - yes

main lake
fading hawk
#

Then I'm not sure 🙂

#

I mean the answer is definitely yes - I'm just not sure what steps you would need to take.

#

On second thoughts, I got it. Open your WB_AbilityIcon and make the image and the text into a variable. Set the Variable to "public" and check "instance editable". Then it will show up in the details panel on WB_GameSettings

#

In the sub wbp

#

Gives me this in the parent wbp

main lake
#

beccause I don't have that option, and it doesn't let me press the eye

fading hawk
#

Click on "Graph" in the top right corner, then on the left list click the "closed eye" icon and change it to an open eye icon.

main lake
#

it doesn't let me click on the closed eye, like clicking it doesn't open it

#

like it flickers for a sec but that's it

fading hawk
#

hmmm

#

Is it another sub wbp? or a native?

main lake
#

and it's not a child to a base class

fading hawk
#

Maybe it doesn't need the public - let me check

#

Well shoot - I guess you can't on a widget object as a variable, only on normal variables.

main lake
#

snif

gentle urchin
#

You expose the variables of the widget

#

Not the widget itself

#

So an icon and a text variable

#

Which are instance editable.

#

@main lake

main lake
#

when I press the eye it doesn't let me do that

gentle urchin
#

Ofcourse you can^^

#

Restart editor

main lake
gentle urchin
#

Clicking the right eye?

main lake
gentle urchin
#

Show me

main lake
gentle urchin
#

The variable in the bp

main lake
gentle urchin
#

This is the txt block.....

#

Not what you expose.

main lake
#

Tjis ?

gentle urchin
#

You need a new text variable

main lake
#

why ?

gentle urchin
#

Because

main lake
#

I'm not sure to understand

gentle urchin
#

You cant expose the components a widget is composed of.

main lake
#

Like I'm trying to make my Txt_AbilityName instance editable so I can modify it manually in my WB_GameSettings here

#

So I can give each icon an image and where it's written "Ability" give it a name

gentle urchin
#

And im saying , to do that you need another variable

main lake
#

So I create a simple text variable ?

gentle urchin
#

You camt expose the elements directly. You need to go through regular variables

#

Yes.

#

Then on Pre Construct you update the txt_AbilityName

#

Pre construct allows you to see it at editor time.

#

Same with icon

main lake
#

What's the equivalent of "SetText" but for the icon (so Texture2D) ?

gentle urchin
#

Set brush from texture

#

Iirc

main lake
#

So like this ?

gentle urchin
#

Test it

main lake
#

But ingame it works

gentle urchin
#

Pre construct

#

Is what i said

main lake
#

my bad

gentle urchin
#

Accuracy matters

main lake
#

indeed, thank you so much 🙏

#

Another question, is it possible to make that number 4 be centered, because I didn't find the option to do that as pressing "Horizontal Center" it shrinks the size of the comboBox and I want it to keep that size

gentle urchin
#

Size rule fill?

#

Horizontal center makes it be as small as it can , centered

main lake
gentle urchin
#

Im sure theres a text setting for itn

#

In the combo box details

#

Under the font settings

main lake
#

oops

main lake
gentle urchin
#

Seems you are corect

#

no setting for it

#

you can make your own, but thats.. troublesome 🙂

main lake
#

Also how to apply a filter on top of my image so it shows the image in a grayscale (I want that to make the player understand that it's disabled) 🙂 ?

fading hawk
#

So for this, I would have 3 variables, each to store a different image. 1 image is pre-grayed for disabled. 1 for "enabled" and 1 for "mouse over". Then you use the various mechanices in the graph to swap which image is being displayed at any time.
So by default you have the grayed one, then onActivate you have the enabled one, and onMouseHover you have the third.

frosty heron
main lake
frosty heron
#

Not for mmo

#

And like exi said, unreal doesn't even support multiple world out of the box

main lake
#

What's the node or the setting please ?

fading hawk
limber parcel
frosty heron
#

@keen kernel tera and blade and soul are made with unreal engine. They certainly roll out their own multiplayer implementation. Not with unreal replication system.

Each player is a client and they just communicate directly to their backend if I must guess

main lake
limber parcel
#

🤷‍♂️

frosty heron
#

Check UI lab for samples

limber parcel
gentle urchin
main lake
gentle urchin
#

I went into Slate

main lake
#

Could you show me what Slate looks like please ? 👀

gentle urchin
#

The important part is the ComboBoxContent

#

during RebuildWidget

main lake
#

Is it C++ stuff ?

gentle urchin
#

yes

gentle urchin
#
[
  SAssignNew(ComboBoxContent, SBox)
  .HAlign(HorizontalAlignment)
];
#

the original ComboBoxString doesnt have allignment parameters exposed

#

for the ComboBoxContent

#

both HAlign and VAlign exist..

#

the actual dropdown is still left alligned

main lake
#

They should make that part of the default unreal for people to use

gentle urchin
#

there we go

#

you dont do any c++ ?

main lake
#

no, because it terrifies me

gentle urchin
#

If you really want this, I'd say this is the least you can do 😄

#

subclass the comboBox

.h

UPROPERTY(EditAnywhere)
TEnumAsByte<ETextJustify::Type> TextAllignment;

virtual TSharedRef<SWidget> HandleGenerateWidget(TSharedPtr<FString> Item) const override;

.cpp
return SNew(STextBlock)
    .Text(FText::FromString(StringItem))
    .Justification(TextAllignment)
    .Font(Font);
#

Weird that this isnt in the default ComboBox tho

#

could easily expose the text justification

main lake
gentle urchin
#

they likely wont touch this at all 😛

main lake
#

I just learned that I can put materials where the "Image" property of the Image widget is, and I'm wondering how to do the gray thing from the example he showed above

main lake
ashen compass
gentle urchin
#

with a suggested fix

#

the fix would be in ComboBoxString.h and .cpp
.h to expose the setting

UPROPERTY(EditAnywhere)
TEnumAsByte<ETextJustify::Type> TextAllignment;

and the .cpp to push the setting to the Textblock used under neath

Line 450..
    return SNew(STextBlock)
        .Justification(TextAllignment) // This is new
        .Text(FText::FromString(StringItem))
        .Font(Font);
...
#

No clue how one would do that in a PR

coarse condor
#

I'm trying to calling an integer value from another blueprint to spawn something at a value. Pretty new to blueprinting, this made sense with what I know but it's not working.

celest trench
#

When I clear and invalidate a timer, if I call the event that is setting the timer and the timer handle later, it never runs the event. Is there something else I have to do before I can use the same Set Timer by Event node?

#

If I never clear and invalidate the timer handle it works fine

#

But I should be clearing it every time I am done with that specific instance of the timer before I start a new one right?

surreal peak
surreal peak
surreal peak
#

Which would mean you made a Variable but never actually filled it with a ref to something

coarse condor
#

Hmm

celest trench
#

When using FInterp To, is there any way to get delta time without using on tick? I want to interp between current and a new value inside of an event without binding to tick event

frosty heron
#

Another multicast users >_>

celest trench
#

Just using it for quick testing, going to change it to an event binding later

#

In an onRep

#

Is that better?

surreal peak
#

Your CountRef variable is basically a container @coarse condor
In CPP you would call it a pointer that points to data in the memory. By default a fresh pointer points to nothing. The container is basically empty.

You can have lots of Counter Instances in your level. UE doesn't magically know which one you mean.

There is a video pinned to this channel, it's a bit older, which explains BlueprintCommunication

frosty heron
#

dela time = time between last frame and current frame

#

it's different on each machine depending on their hardware

celest trench
#

Is there a better way to smooth transition between something then? I've only seen FInterp To

surreal peak
#

You could use a Timeline that goes from 0 to 1 and a Lerp node

coarse condor
#

@surreal peak Here's more of the blueprint. It is calling to another blueprint. Well I think it is anyways. I'll look at the video as well.

surreal peak
#

Gives you also more control via the curve you can freely customize

surreal peak
celest trench
surreal peak
#

Timeline is a component, so that's Actor only I guess

frosty heron
#

Widget Timeline can be used as subtitute

celest trench
#

I don't see that. Does it work differently than just adding a timeline like you can in an actor?

frosty heron
#

well depend on what you want to interp, not a widget I suppose?

celest trench
#

Oh okay so it's an animation thing. Thank you 😄

frosty heron
#

Well it's the same thing imo

#

cuz timeline comp not available in widget

celest trench
frosty heron
#

not a multiplayer expert, exi is

#

but imo 98% of the time u don't use multicast

#

seen youtube tutorials spamming it a lot, you can unlearn that if you watch them

#

Some rare case I would use multicast is like special effects

#

like gun fire

#

it won't matter if they get dropped so just use multicast

celest trench
#

Wouldn't that go in a rep notify?

frosty heron
#

But if u are using multicast on STATEFUL properties

#

u are 100% doing it wrong

main lake
#

I agree, I rather think you need a RepNotify

celest trench
#

That makes sense. I don't plan on using multicast, just using it for fast testing replication before I do a full implementation. I am not fully sure what is best for what I am currently doing though, so I'll probably ask in multiplayer when I get to that point

limber parcel
#

just run it on client and server

celest trench
limber parcel
#

well yeah, in that case u cant run it on client

celest trench
#

Yeah that’s why I’m not sure what the best solution is. I’ll ask in multiplayer tomorrow

limber parcel
#

probably the correct solution is to implement that function somewhere else

celest trench
#

I would still be calling it from game mode so I would need to notify the clients regardless of where it is

limber parcel
#

there isnt much of a point in putting stuff into gamemode except making it server only

#

but yeah, using a multicast should be fine for this

celest trench
#

Hmmm okay. Im using gamemode for checking and initiating stuff relating to the modes and then calling delegates to notify when something needs to be done. Checking score and ending round if it’s a winner, Determining when a full team is eliminated, etc. is this bad practice?

limber parcel
#

but u will have to network everything to the client

#

instead of the client just running the same code as the server

celest trench
#

Would you be willing to elaborate on this a bit more? Where should these things be running then? I don’t want a client to determine if a player was killed or if a teams score should increase. The server should handle all that I thought

limber parcel
#

well yeah, but the server will run its own copy

#

and ideally everything will be in sync

celest trench
#

Where is the best place to put stuff like this relating to the mode and game loop then?

limber parcel
#

i would just make a new actor

#

they can run where you want, and are replicated

#

you can ignore gamemode and gamestate completely

celest trench
#

Okay thank you for the advice. I’ll do some more research 🙂

#

I appreciate the explanations!

heavy plinth
#

Hey guys, I'm having trouble implementing my interaction blueprint interface so that I can display notes in-game. I currently have the Blueprint interface setup and my character blueprint implements the interface with a line-trace when things are interacted with. In my notepickup BP I have the interaction event from the bp interface toggling the pickup which leads to pickup and put down events nodes in a branch

#

None of it is working currently though and I can't even get a debeug print string to appear when I interact with the note

limber parcel
# heavy plinth

maybe u want to make sure ure actually hitting the actor you want before calling the interface

heavy plinth
#

In the note blueprint or the player blueprint?

limber parcel
#

player

heavy plinth
#

I thought I was doing that with the line trace to branch and break hit result checking for actors that implement the interact blueprint interface

limber parcel
#

i mean check if it ever even produces a result

heavy plinth
#

It works on these doors I have

#

I'm using the same line trace and break hit result to check if these doors are unlocked

limber parcel
#

but maybe u dont have proper collision on that item

heavy plinth
#

I think that's what it is maybe

#

I didn't change anything with the default collision from the object I imported

#

Should I regenerate the collision in the mesh or would it be something in the note blueprint?

limber parcel
#

you can add a collider with a custom collision group for interactions

heavy plinth
#

Like a box collision in the note bp?

limber parcel
#

yes

heavy plinth
#

So I made the box collision and added the on component begin and end overlap events

#

Should I connect it to the blue interact node that comes from the interact blueprint interface and then to the toggle pickup event?

limber parcel
#

you dont need any overlap events, you just have to set the collision channel to the same as your line trace

heavy plinth
#

I'm a little confused by that. What do you mean set the collision channel?

#

I went back to the details of the box collision on the note bp and I dont see collision channels but I did change the collision preset to custom instead of overlap all dynamic which was what it was set at

limber parcel
heavy plinth
#

Okay Im there and I checked simulation generates hit

limber parcel
#

you give it same object type you used in ur line trace

heavy plinth
#

I was able to get it to display the print string but it's not activating the toggle pickup custom event

heavy plinth
limber parcel
heavy plinth
#

I'm noticing now that it's displaying the print string twice for some reason

#

It's interacting twice

light garnet
#

Hi guys. I have a question

heavy plinth
#

I figured it out

#

I got the text to popup

#

I was checking for interaction and interacting twice in my player bp

light garnet
#

Cast to impact on performance so if I use get all actors of class and promote to variable then it's soft reference?? Or impact on performance??

#

@limber parcel

limber parcel
light garnet
#

So i can only use the interface for soft reference

heavy plinth
#

Can you help me figure out why I'm getting this weird behavior where it looks like the text is popping in from the left side of the screen?

#

Nevermind, since my game is in the square aspect ratio anyway you can't even notice it in the actual simulation

hazy dock
#

I am having this issue where when I pull up my menu, which pauses the game, sometimes when I am using a button that is also mapped to something with a montage or sequence on it to unpause it will lock up the game where everything looks like it's working, but there isn't any input anymore...

silent drift
#

Morning! Is there a way to make a box that grabs everything inside of it on Begin Play? I want to make a enemy respawn system that is tied to a certain area of the map, so once the player has reached Checkpoint X, it turns off the previous area and on the new area. So it would be:

  1. Add enemies to the level
  2. Add enemy respawn box to the level
  3. On begin play the "active" box or the one being turned on grabs all enemies and places them into an array
  4. If the player dies, all enemies in the active array gets destroyed and respawned at their inital position again

I want to do this, so that I don't need to reset per enemy when the player dies and change all the variables back, but rather just destroy them and respawn them with their inital values.

And the reason I want a box or something more size controlable is that the Switch isn't at all powerful to store all enemies from one level and respawn them... So i need to dividie it somehow into areas.

I tried the "OnBeginOverlap", but is the enemies are already inside the box, it's not working properly, so trying to figure out a better way for doing this.

silent drift
#

It even has the "Class filter" so I can avoid a cast! Thank you for this tip!'

silent drift
# lunar sleet Get overlapping actors

Hmm, I'm a bit confused, it seems to grab everything that is an actor except for my enemies. It grabs everything in blueish, and ignores anything that is red (which is the enemies)

They are Characters and it seems to ignore those, and as far as I can see there is no "Grab Overlapping Characters", and I thought Characters was just a type of actor?

lunar sleet
silent drift
#

yeah, that's what I thought. So it "should" grab them, but for some reason it just ignores those.

lunar sleet
#

So it will grab every character unless you didn’t set its collision to overlap properly

#

Or the more obvious, not actually overlapping

#

Select a class filter

silent drift
#

Yeah, I double checked that one. and they are inside the box.

#

Sorry, I had a class filter set, but it gave me a result of 0, so wanted to see if it grabbed anything. 🙂

lunar sleet
#

Is the box set to overlap those Characters ?

#

And vice versa

silent drift
#

Yeah, they are inside of the box:

lunar sleet
#

Change your collision presets on the mesh too not necessarily the capsule

#

And make sure the box is set to overlap all as well

#

Or at least overlap those chars

silent drift
#

Set all to collision presets (mesh, capsule and overlapping box), to OverlapAll and no change. I'm confused. I will look more into this and see what I might be doing wrong... Because it must be sometjhing since it grabs anything that isn't a character.

lunar sleet
#

Also, where is this event being run, on begin play?

silent drift
#

Yeah, on jbegin play

lunar sleet
#

Right so that could occur before your chars are loaded in

silent drift
#

Oh, that miught be it.

lunar sleet
#

Add a 1s delay to test

silent drift
#

That was it. :d

#

😄

#

Is there a "level fully loaded" event I can use?

#

Or is a delay the best solution

lunar sleet
#

Delay is rarely the best solution but it works here. Idk about level fully loaded, there are some cpp functions that fire when something is loaded but I think you’d need to do that from the char side

silent drift
#

Okay, thank you! And yeah, I try to avoid delay as much as I can since I'm a bit scared of it breaking. I always feel like the "Event Timer" is more secure, but also not ideal.

#

But for now I will go with this, and look into a more elegant solution if I find issues with this.

#

Thanks for the help with this and figuring out the issue!

lunar sleet
#

Timer by event is good in most cases, there’s also Laura’s coroutines but that’s a bit more advanced

light garnet
#

its working fine most of the time but sometime this happens

young meteor
#

Hey guys

Anyone has an approach to break down a complex task into simpler steps?
I'm somewhat comfortable with BP, but have not been programming previously.

Right now I'm trying to think through how I make a flexible setup for various buffs/debuffs in my game.
It will most certainly include timers.
But I would like to make it modular/flexible to be able to do the following:
The variable to buff varies from a quite long list (20 stats maybe)
The way it is buffed can be both additive or multiplicative (the math I think I can do no problem)
The actual value to buff with (additive or multiplicative) can depend on different criteria's (how many monsters nearby, distance to monster, how many times monster has been hit, time since it was hit, etc.)

#

Some maybe do a flow diagram first?
I have done comment layout for simpler things in the past like in screenshot

frosty heron
young meteor
#

Just scratched that idea yesterday. Looked into setting it up. Will have to learn C++ for sure to get anything out of it.

frosty heron
#

only the boiler plate

#

rest can be done in bp

young meteor
#

I don't think so. Already set up a boiler plate GAS that worked. Had to get into custom Execution methods right away.

#

Which meant a bunch of C++

frosty heron
#

other than that, my only idea is probably looking into some marketplace stuff.
I'm using Dynamic Combat System for my old project, it have buffs that can be stacked, removed, applied, with timer etc

#

all in blueprint

#

but it goes without saying that is many times less useful than GAS

young meteor
#

I honestly did not feel there was much to gain from GAS in my case. I have very limited knowledge with it though.
It can do some timers/tag checks for me. Rest was not that useful for me as far as I could tell. And those 2 should be fine in BP?

#

I mean it could also do complicated calculations and such, but just not without going deep into C++

frosty heron
#

From what I see buff isn't really that simple and it's really tied to each project if you are not using Gas.
I can only recommend Dynamic Combat System from marketplace to look at as alternative

young meteor
#

Okay. Thank you.

Just to ask BP specific things. Is there a way to have an input for a custom function be a variable?
(not a value, but actually input the name of a value or something + a value and it will add/subtract etc. from the correct variable?)

dark harness
#

in Anim Graph, is there an equivalent to Soft Pointers? I don't want all animations to be loaded immediately as soon as I use the AnimBP on my character, instead I want it to only load animations only when it's about to use them.

gentle urchin
#

this buff system sounds like it'll contain quite a few loops aswell, so it would probably benefit from being native code aswell..

young meteor
#

What is native code? C++?

gentle urchin
#

yepp

#

this would be troublesome regardless of GAS

dark drum
young meteor
# gentle urchin this would require some c++ ... 😛

I only have 2 main classes to change variables on (towers and monsters)
If I check class first (or do 1 for each class) then:
If I do a struct of all that classes variables (20 ish) and just only set the one I need to a value and leave the rest at 0 with some checks to ignore it if so, would that sound like a performance issue down the line in your eyes?

young meteor
gentle urchin
#

Adding and removing objects sounds reasonable

#

just let your manager tick them

#

I'd say

#

20-30 buffs is nothing to write home about in iterms of performance

young meteor
#

Just remembered I actually already do kind of what I'm talking about for my item system. Just using Enums. It's a bit messy, but seems to work.

dark drum
# young meteor Is using UObjects the same as Data Assets? Is that what you mean?

Data assets are children of uObjects (as is everything in UE lol) but I'm not familiar with their pros and cons so I don't know if you would be able to use them instead.

uObjects are just the simpliest of class you can make which can be great for mostly data related objects. (Nothing stopping you implementing your own complex logic within them though)

dark drum
gentle urchin
#

i wonder how that could be compacted to 1 line of code

#

😄

dark drum
young meteor
gentle urchin
#

bunch of + and some custom function

#

i would guess it's like 3 variations

#

seems liek some functions have 3 vs others have 2 inputs

young meteor
#

this "ref" thing is when you turn an input into that diamond shape instead of round right?
That allows it to do what? (can probably watch some videos on it)

dark drum
#

When you start making games, no one ever says how important data management is. Stats systems can get messy very quickly if you're not careful.

gentle urchin
#

expanding on this system would be .. interesting

#

i bet

#

from end to end

dark drum
young meteor
#

Sounds like exactly what I need? If I can just do my own calculation instead of increment

gentle urchin
#

ofcourse

#

😄

dark drum
young meteor
#

you can't quite use by ref in a struct where you store it though right?

#

Asking because I'm looking for some way to remove/revert the buff again at X seconds later.
Was thinking to do a Map with time stamps and a struct to check every so often to see if it has expired.

Otherwise I need to be able to create an "instance" of a Timer or something? (to not override it later if another buff is added)

gentle urchin
#

Uobjects

#

With a duration variablen

#

Manager ticks them and they subtract from this (or add to another comparison variable)

#

Can you even SetLifespan on Uobjects ?

queen heron
#

I seem to be missing something over here
right now my issue is that if I move the mouse on X too quickly, the spring arm won't be able to keep up and doesn't rotate nicely

dark drum
young meteor
#

Don't ask me. I don't even know what "Manager" is 😄

gentle urchin
gentle urchin
dark drum
young meteor
#

Sounds like I need to understand UObjects better at the very least to make the right decision.

queen heron
dark drum
#

Does anyone know how to move gameplay tags to a custom ini?

Edit: I just copied the tags to the new ini and then removed them from the default one using notepad haha. (Editor was closed) When relauching, they still show up in the list and doesn't seem to have broken anything. 😄

dark drum
queen heron
#

I've printed out the float result of the mouse delta x

#

and as expected

#

if I slide my mouse fast enough horizontally, the value quickly interpolates to 0

#

or the oposite value

#

which creates this smooth screen shake

gentle urchin
#

Sounds like a very limited bug to me

#

Call it a feature

#

Add achievement for triggering it

queen heron
#

clamp angle may have fixed it?

#

its what I added after it

#

not seeing any misbehaviour with the camera movement anymore

#

but I'll see if it does still happen

quiet kettle
#

I have weapon pickups as a blueprint actor that I place manually in my level. How do I create a blueprint actors that spawns one of these at random each time the level starts?

frosty heron
quiet kettle
light garnet
gentle urchin
#

Buggy code ?

#

Without seeing any code

#

The guesses and answers you will get holds close to 0 value

queen heron
#

how would I smooth out the movement input so that the character doesn't drift after letting go of the forward button and quickly turning to a different direction?

#

I think I would need the Event Tick for a stable behaviour?

gusty dragon
#

hey I have a building system where I attach parts like planks to a ship but I wanted to be able to fly the ship once the player adds like a steering wheel would I just have to simulate physics and add force and torque etc? if so would I need to add that to each individual part that the player attaches to the ship?

gentle urchin
#

This sounds incredibly expensive ^

#

If done with a bunch of components

gusty dragon
#

ya I am scratching my head its basically like how atlas does their ships

#

they have a ship yard with a frame u put in the planks and design ur ship then u release the ship and it can sail

thin panther
#

I mean it's an mmo.

It will have a big budget, and a custom system dedicated entirely to this

gentle urchin
#

2 days in a row lol

young meteor
#

Is it not possible to have a timer "instance"?

I want to run multiple timers in parallel that don't override/reset each other.

#

Delay node ignores input until done. Timer resets if you call it again before it is done.
There must be a standard way to keep track of time for multiple things at the same time?

frosty heron
#

doing it otherwise will override your existing timer

young meteor
#

hmm, component might work. I need access to variables from the actor I use it in, so I don't think Object can do it.

dark drum
frosty heron
#

just different method

young meteor
#

Can I just have a standard component with logic + timer in, and create as many instances of it I want?

frosty heron
#

Have delegates in the component or object

#

you can bind that to the function where you spawn them

young meteor
dark drum
young meteor
#

I could have all of them in there and either switch on Enum, or branch away variables with value 0 but that seems a bit much.

#

Don't see a simpler solution yet.

#

Not sure how you were going about it though. You might very well have a much bigger brain than mine. 😛

dark drum
# young meteor I tried. Unless I'm wrong I understand what I can do with UObjects/Data assets n...

You would create a uObject for each buff/debuff you have. The base uobject you create would have a base function to initialize it.

If it's a poison debuff, the logic inside the object would handle reducing the health when needed.

A protection buff would handle the logic needed to increase the players armor stats (or however you want to do it)

Because each buff/debuff would be it's own object, they can create their own timer instance. (All though an external clock might be better in the stats manager that keeps track of time as it easier if you need to pause them all)

magic raft
#

hi anyone knows how can i convert a texture 2D to bytes ?

young meteor
# dark drum You would create a uObject for each buff/debuff you have. The base uobject you c...

I see. That makes sense for what you are describing. Don't think it would work in my case because:

  1. I could call the same time of buff (with different values) multiple times before it expires, and I would want them to stack.
  2. I would need to create a base uObject for each stat I would possibly want to change.

The approach you describe might be very valuable for more unique and specific effects though.

#

Right now it's more like a flexible way to do math with any variable I want kind of thing. (on a timer)

dark drum
young meteor
dark drum
young meteor
#

But the buffs/debuffs are basically the same as changing stats in my case.

frosty heron
young meteor
#

call a buff + 30% damage for example

silent drift
#

Anyone know how I can make a projectile collide with most things it comes into contact with, but not with for example the player?

frosty heron
magic raft
#

I'm trying to export it as string to encode it in base64

frosty heron
#

don't know about string