#blueprint

402296 messages ยท Page 742 of 403

meager spade
#

Because it's not a new frame yet

undone quiver
#

I think we're not really disagreeing ๐Ÿ™‚

forest sable
undone quiver
#

May I should say don't think of it as a snapshot in time

forest sable
#

The first time i enable that time line it kinda works ... after releasing and clicking again it freaks out as the rotation keeps ading to itself although the delta gives me 0

spark steppe
#

set the "old" value once before the timeline

#

or it will refer to the old value on the first frame (now all in my mind is time ๐Ÿ˜„ thanks guys)

forest sable
spark steppe
#

it could be flipping around an axis, not sure

#

you cant force that freak out on the first click?

bright frigate
#

I don't know why my brain isn't working anymore, but what am I supposed to pin into the wildcard so I can get the variable into my widget?

odd ember
#

the thing you want to cast

bright frigate
#

it asks for what MySunPositionBP inherits from, which is the BP_SunPosition

odd ember
#

it craves it

bright frigate
#

yea but I can't get it in the list, it only shows its variables not the actual bp like regular bps

odd ember
#

you have to add the communication for it somewhere

#

the cast node isn't a magic node that will get you what you need

bright frigate
#

I didn't say it was lol

spark steppe
#

most likely you'll do a get actor of class in the construction event and save the reference on the widget

odd ember
#

well the way you've set it up that seems to be your line of thinking here

spark steppe
#

pretty short line

odd ember
#

I think there is a pinned video on blueprint communication in this channel, I suggest you watch it

bright frigate
#

I decided to do all the stuff I was doing for day night into a separate class as recommended earlier, so I made a new class that inherits from the plugin class

#

I had a get all actors and promoted to variable as sun position object in the level bp, but now I've moved it into event begin play in mysunposition bp instead. Should I have done it in the level bp to access it in the widget?

odd ember
#

get all actors is a cheat code basically

#

it supercedes good architecture by allowing you to call things without connection

#

however, the level blueprint naturally has knowledge of all actors inside of the level

gentle urchin
#

^for a while thats what i used the level bp to (long time ago), connecting up relating bp's that didnt have any ordinary means of communication

odd ember
#

it's still valid to use for level specific logic

bright frigate
#

a while ago I was told that I should separate something like time from the level bp so that I can have multiple levels. While I don't need that now, I decided to try it out for learning's sake

gentle urchin
#

For level specific logic (i have yet to encounter something specific enough), I'd probably just hard reference it

spark steppe
#

where do you create the widget? can't you just pass the actor as reference on creation?

odd ember
bright frigate
odd ember
#

it also makes it really hard to maintain visibility of what is going on

forest sable
odd ember
#

since you'll have to check every actor for specific things, on the actor

#

level BP exists for a reason

gentle urchin
#

Just feels dirty using level bp

odd ember
#

why?

gentle urchin
#

some comment some time ago that stuck with me that i cant recall

odd ember
#

it's way dirtier using hard references

bright frigate
#

ok so what's the suggestion?
mysunpositionbp is handling all logic for time
widget is being added to viewport in playerbp
I need variable from mysunpositionbp to bind it to the widget

odd ember
#

if you're doing hard references you might as well be doing get all actors of class

#

it's the same thing

#

just once deferred

gentle urchin
#

Well, you'd need some method of picking the correct ref with the get all method

odd ember
#

it also actively prevents you from creating good architectural setups

gentle urchin
#

so you'd need some unique identifier (tag) or something to get the right reference

odd ember
#

or just use the level blueprint

#

which was made for this purpose

gentle urchin
#

To connect a button to a door ?

#

as an example

odd ember
#

yes

bright frigate
#

guys ๐Ÿ˜„

odd ember
#

level BP even allows you to use delegate calls as events so you can have events for level actors directly in the level BP

odd ember
gentle urchin
#

Guess i could open up about using the level bp for stuff, and avoid hard refs. I usually stay away from hard refs like that in general, for the same reason i dont hard code values in the code etc

#

as you point out, having to check X actors if their hard refs are correct is just a pain in the ass on a level thats bigger than the template-level

bright frigate
odd ember
#

probably? if that's what you want?

#

I don't know

#

it's a line of code that makes sense

gentle urchin
#

^ Get it once, save it, and use that ref? This looks like a binding ..

spark steppe
#

yea^

bright frigate
#

I just wanted a reference. Normally it's pretty straightforward to get stuff done e.g. get player character -> cast to character BP in everywhere else but in widgets I've encountered this. I did widgets like 2 years back last so it's pretty much gone from memory

spark steppe
odd ember
spark steppe
#

i told you 20mins ago what to do

odd ember
#

which is not the same as the persistent level

spark steppe
#

why don't you just use that as solution for now?

bright frigate
#

@spark steppe I have the reference saved in the my sun bp itself in this same get all actors method (I copy pasted it from level BP so I'm sure I don't need to do this anymore in this format)

#

this was in level BP before

#

so should I put this back in the level BP in order to get the object in the widget?

spark steppe
#

you just do the same in your widget

bright frigate
#

okay

gentle urchin
#

on event Construct

wraith bay
#

Is there a way to check if the player is in a specific level?

#

and make a boolean out of it

spark steppe
#

i think there is an "is actor in level" node or something

odd ember
#

not in BP I wouldn't think

#

you'd need a reference to the player globally

bright frigate
#

okie dokie, done, thanks

odd ember
#

in fact the only place I can even see that check being made is in a World Subsystem

spark steppe
#

yea right, you need c++ for that

wraith bay
#

cool thanks

bright frigate
bright frigate
#

+10 points for creativity at least? ๐Ÿ˜„

spark steppe
#

for something that 1 line of c++ can do?

bool AreActorsInSameLevel(AActor* actorA, AActor* actorB){
    return actorA->GetLevel() == actorB->GetLevel();
}
odd ember
#

level specific logic is generally off limits to BP because it requires access to World

#

you could perhaps query the player for their current level

#

however

forest sable
spark steppe
#

how do you calculate your rotation?

gentle urchin
#

This is in the Playercontroller, and atleast so far its working

odd ember
#

what I was saying is that you can't e.g. loop through each level inside a level

gentle urchin
#

Makes sense. My simple mind has not been exposed to multiple levels inside a level sort of experience.

odd ember
#

multi level management

#

persistent level knows its sublevels

#

world knows all persistent levels

gentle urchin
#

Ah. Nice to know. Will come in handy at some point

spark steppe
#

world knows all persistent levels? thought there could only be one at a time?

forest sable
spark steppe
#

why did i ask... ๐Ÿ˜„

forest sable
#

lol

#

1 sec

spark steppe
#

yea you might flip at some point, can you print the rotation value to screen and see if it suddenly goes from around -180 to 180?

#

but then it would also happen on first run.... really weird

forest sable
#

The Yellow Box Ways the bloblem

odd ember
#

all that for a can

forest sable
#

Yup xD

#

Look man I'm learning

odd ember
#

it's all good

spark steppe
#

well i like that feature, was going to try to reproduce it. glad you sorted it out

#

now i can copycat the nodes ๐Ÿ˜›

bright frigate
#

ok so seems when the time is in single digits (e.g. 09:05), it's going to print 9: 5 in the widget since of course, these are just raw numbers plugged in. What can I do to concatenate a 0 to the strings that are < 10?

Or am I supposed to have some sort of defined formatted counter thing I don't even know how to explain

wraith bay
#

I fixed what I wanted to do. Since im new to Unreal im still learning, essentially I made a timer for my game, but the starting area wasnt meant to have a timer. Since I made the timer in my player blueprint, i was dying after 30 seconds of being in spawn, I now moved the whole timer shit to another bp

#

Thanks anyways boys ๐Ÿ™Œ๐Ÿป

spark steppe
#

maybe one of them suits your requirements

open rose
#

Thought id ask again because I'm still having the issue, I was wondering if anyone knew a fix to this problem, its been bugging me for a few weeks now but has gotten that bad in the past few days due to the addition of a car, I really need to fix this as its so easy to cause and effects gameplay hugely, if anyone can help, a response would be really appreciated, and thanks to anyone who even just reads this.

dawn gazelle
open rose
bright frigate
earnest tangle
#

For example if you have any roll rotation that could affect it because character movement comp and the mouse aiming logic hates roll and doesn't make any attempt to work correctly if it's not 0

open rose
earnest tangle
#

There's no real "reset pawn" function so you would have to figure out what value gets messed up and just manually set it back

#

If all else fails, you could try destroying the old pawn and spawning a new one

open rose
#

the issue with respawning my pawn is im pretty sure itll also reset all ammo and health values, and i know that the pitch is the value that messes up, i just dont know how to make it set to 0

#

i have this on an event tick but i feel like it does nothing

earnest tangle
#

Is skeletal mesh the root component?

#

Because most likely the root is what's got the wrong roll if that's the issue

open rose
#

ngl I'm not sure which one the root is, I'm assuming the capsule component but I'm not sure (also idk why i have 2 meshes, the skeletal mesh is the only one that does anything)

#

sorry about me not knowing any of this btw, im really new to unreal

earnest tangle
#

Yeah root component is the component which is the "topmost" one in the component tree, so yeah the capsule in this case

open rose
#

i think resetting the roll of the capsule component every tick worked, not too sure tho, ill test it more, thanks for the help

stray lodge
#

Ok folks, I got a super dumb question here. I'm fairly new to UE and I'm just trying to do a simple thing here which is - debug/print string when a key is pressed.
I have tried changing blueprint classes, used Input mapping, but nothing works. There is nothing in this project except this BP which is a component of a plane. Hello gets printed when I start the game but no key input is being printed.

earnest tangle
open rose
#

nvm its broken again, it fixes it the first time you get in the car, but if you keep getting in and out it slowly breaks, its really weird how it fixes it the first time but still breaks, also it makes my game drop to 0 fps when getting in the car and spawning for a second

harsh hedge
#

How do i disable blueprint temporarly i use blueprint just for prototype for c++?

dawn gazelle
stray lodge
#

If thats what you are asking

dawn gazelle
#

So I'm guessing you placed this blueprint in your level, yes?

stray lodge
#

Yes

dawn gazelle
#

Ok, did you set it up so your player posesses it?

stray lodge
# dawn gazelle Ok, did you set it up so your player posesses it?

I'm sorry, I didn't get it.
There is no player in this project yet. I was working on another project where I was having issue and thought maybe other BPs are causing the issue. So I started with a fresh blank project, added a plane and directional light, created this BP and attach it to the plane. I'm sure I'm doing some basic mistake here.

wraith bay
#

Is there a way to hide a hud bp on specific levels?

#

health bar ^

#

wait i can make a boolean right

dawn gazelle
# stray lodge I'm sorry, I didn't get it. There is no player in this project yet. I was workin...

There's always a player. Whenever you start a game as a client, a player controller is created which is what takes your inputs and does things with the game. It doesn't exist as an actual character or pawn in the scene, but it is still present. Player controllers can possess pawns or characters which will route that player's controller's inputs to the pawn or character they are possessing.

When you set up the inputs on a pawn, all you're doing is basically saying "if I'm possessed by a player, and they press these keys, do these things..." Inputs are not automatically routed to any pawns or characters.

To get your player controller to possess your pawn quickly for testing, you can select your pawn in the world outliner in the top right of the screen, and when selected look under the details tab, and find the "Auto Possess Player" and select Player 0.

open rose
stray lodge
terse latch
#

I was messing around with max limits and noticed something. tho it might be obvious but the numbers like to snap to the limit at a certain point. So is there a way to tell where the limit is before overflow? like with floats I hit the flow limit I think of 9223372036854775808 (overflow?) so here are a few thought i hope to get working.

  1. take the idle game idea and have insane values.
    or
  2. set a cap limit but I am not sure where that limit is before it jumps to the overflow and breaks alot of things.
dawn gazelle
terse latch
#

I thought that which is odd as that is not the limit i am getting. Unless there is is something that is a 64bit int somewhere blocking it. hmmmm welp going to mess with numbers and try and mess with the numbers.

stray lodge
dawn gazelle
stray lodge
#

I know that's not the way, I just thought maybe that was possible.

muted halo
#

Hey guys does anyone know how to change the duration in seconds into FPS? Im trying to get a print string to print every frame instead of second

meager spade
muted halo
#

Ah okay thanks @meager spade Im trying to get my string to output 30 times every second and doing 0.033333 will cause problems for me, later on cause its not gonna line up exactly

meager spade
bright frigate
#

why is my timeline jumping from 0 to 12 and then carrying on as normal?

#

I'm doing a separate timeline for setting the seconds because I can't seem to figure out the maths from the original timeline maths for hours and minutes. So a jank thing once again, but it works perfectly fine if every minute = one second, but if I double it (every minute = 2 seconds) then it goes out of sync like this

odd ember
#

are you doing some kind of rotation

bright frigate
#

right now the curve is set for 2880 duration (2 seconds per minute, 1440 minutes in 24 hours, so end point of 2880 has value 1440).

If I set the duration to 1440, so every second = 1 minute, then it's all fine

odd ember
#

make your hours be in floats

#

I'm pretty sure it's because you're dividing integers

#

which can't be rounded

bright frigate
#

but the inputs have to be ints

#

the sun bp only takes ints

odd ember
#

I don't see any issues with you truncating minutes from float to int

bright frigate
#

sun and sky takes floats and is a lot easier, but it has no connection to sky sphere which means night time is completely dark which is why I'm stuck with this version of the sun bp

dawn gazelle
# stray lodge Reusability. Create a blueprint with various variables which can be used by diff...

Not the greatest way...
You have a few options:

  1. Create a "base" blueprint (can be character, pawn or whatever you need) that contains everything you could possibly need, including any functions, inputs, variables etc. Once created you can create child classes of that blueprint and override anything you need to such as inputs and functions, and you can then create child blueprints of those blueprints which can override things further. Along the way you can add any additional variables and functions in children as well.

  2. Create and use Actor Components - these can be added to any pawns or characters, and can contain functions and logic in them, but not direct inputs - you would have to route the inputs from the pawn/character to the component in order to use its logic, or read values from the component in your character.

  3. Attach Actors rather than Pawns or Characters Pawns and Characters are meant more to be moving objects in the world that can be possessed by players and AI. Actors can be objects that are not possessed. An example of this could be something like a gun - when you attach the gun actor to your character, the character could hold the gun appropriately, and when you press the "Fire" button it passes info to the attached "Held" weapon, and then the weapon can then do its thing. Similar to the Actor Components, you'd have to pass values back and forth between the attached Actor and the character.

bright frigate
#

i.e. minute 1, second 1, minute 2, second 2, etc.

odd ember
#

it's not going to change your logic

bright frigate
#

and so that leaves the sun still moving in a jarring way

odd ember
#

but it will show you the error

bright frigate
#

this is how I understand it so far:
if I have one minute change for every 2 real world seconds
then I need to change the seconds field from 0-59 within 2 real world seconds

#

this is why I used another timeline to span 0-59 within 2 seconds

#

it works if my first timeline (for hours and minutes) is using 1 second as 1 minute
but that's too fast
so for 2 seconds for 1 minute, it goes out of sync

#

ever so slightly

#

so the sun is kinda moving back and forth

#

hope that made sense

odd ember
#

do you want it to work

bright frigate
#

as I mentioned, if I hook up the minutes to seconds directly it does not work

odd ember
#

I'm not asking you to hook up minutes to seconds

#

I'm saying make your hours a float value

bright frigate
odd ember
#

that you are already doing it

bright frigate
#

from which node?

#

the timeline is putting out float until I divide it

#

which gives the int

odd ember
bright frigate
#

you want me to make that into float and connect that to the seconds?

odd ember
#

no

#

read what I said

#

or actually just put down breakpoints and see where it breaks

#

that will find the issue easier

#

but it's almost certainly a rounding error

#

because you divide

#

and only use the whole number

bright frigate
#

but there is no problem with the hours and minutes part of the code

odd ember
#

so where is the code with the seconds?

bright frigate
#

sorry I thought I took the shot properly but I missed it out

#

that timeline is for separately calculating 0-59 within 2 seconds, which is jank I admit

odd ember
#

yeah so it is a rounding error

#

you should be calculating alphas inside of timelines, not real values

#

then multiply the alpha with whatever number you need

#

then you also only need one timeline

zenith trout
#

how can i make an event repeat?

#

so repeat always

odd ember
#

a timer @zenith trout

zenith trout
#

huh

#

how should this work

odd ember
#

drag the red pin out > create event

#

then pick the event you want to repeat

#

and look up google how it works otherwise

bright frigate
#

any suggestions on what kind of an alpha range I should use? Regular 0-1?

#

the issue really isn't the return values it's the duration that is causing my head to spin lol

odd ember
#

0..1 is the alpha range

bright frigate
#

giving me high school flashbacks where I would get headaches from these time-calculations in maths classes lol

odd ember
#

the duration and the last keyframe are probably not synced up either

#

if I had to guess

bright frigate
#

I tried both enabling disabling use last keyframe and it didn't seem to make any noticeable difference (except when duration was set for 1 minute per second)

odd ember
#

your last keyframe should be set at the end of the duration

bright frigate
#

yea it is

odd ember
#

how long is the duration

stray lodge
# dawn gazelle Not the greatest way... You have a few options: 1) Create a "base" blueprint (ca...

So, basically I have to create a pawn or character which has all the inputs or base functions, variables. Then create child blueprints or actors who can access those inputs and do something.
Now, going a bit off topic and I'm not sure whether this is even relevant to this. I used to create something like GameManager in Unity where I would keep inputs or global variable like say health or player state, etc which were further access and set by other classes. Now, I see UE has PlayerController which I can create with custom GameMode. Is it an ideal way to create all the inputs or other variables in PlayerController Blueprint which is further accessed by a player or npc character or any actor component?
I know I'm jumping guns here but just want to have clarity about the ideal practice with UE and BPs.
Thanks @dawn gazelle you have already made my day, not sure how long would I have been stuck on this. I really appreciate your help in this!

bright frigate
#

2880 real world seconds

#

I'm now thinking how to map the alpha range to the 24 hours/minutes/seconds

odd ember
#

you multiply the alpha value

#

and handle calculations outside of the timeline

#

or even better, lerp values

#

that solves your issue with truncating results

bright frigate
#

24 hours = 1440 minutes
120 seconds = 1 game hour (if I want 2 seconds to be 1 game minute)

odd ember
#

use lerps, to lerp between (hopefully) integers

#

that should work

bright frigate
#

so no timeline?

odd ember
#

so that will be 3 different lerps from the same alpha

#

no you need the timeline to supply the alpha

bright frigate
#

ok yea

odd ember
#

actually that's a lie, you'll need 3 alphas. but not to worry, you can create them all inside the same timeline

#

so one for hours (in real seconds), minutes (the same), seconds (the same)

#

so one hour should be 120 seconds in the timeline, a minute would be 2 seconds, and a second would be 2/60, which is just about 2 frames.. about 0.033 second

bright frigate
#

does this make sense

odd ember
#

yeah but why would you want to do it like that

bright frigate
#

I dunno just the most obvious thought in my head lol

odd ember
#

I just told you

#

try to lerp ints

bright frigate
#

I did this just before you wrote your new message

odd ember
#

ok ints aren't lerpable

bright frigate
#

ya mon

odd ember
#

so you can do it without the multiply node

#

also what's with the 6 am?

spark steppe
#

that's some weird math going on there^

bright frigate
bright frigate
odd ember
#

so.... set the timeline to start at 0.25 play length

spark steppe
#

your float value goes from 6 to 24, why don't you just truncate the result of the timeline?

odd ember
#

otherwise you won't ever get to see 00:00 to 06:00

bright frigate
bright frigate
#

the original only plays once and then goes to the new one for a complete 00:00 to 24:00 loop

#

i know TOTAL JANK

spark steppe
#

actually, why do you use a timeline at all?

odd ember
#

just... why

bright frigate
#

๐Ÿ˜‚

#

just you know

#

16 hours awake

#

have to do something

odd ember
#

it's like you had a resevoir of clean water next to you and you decided to walk 5 miles to get water from a dirty river

meager spade
#

๐Ÿ˜‚

bright frigate
#

that's missing out the obvious fact that I don't have feet and am stuck in a spaceship

spark steppe
#

get some sleep maybe?

#

like a lot

bright frigate
#

like I don't have super well rounded knowledge so I'm working with what i'm seeing in tutorials/whatever I know etc.
if someone offers a better solution then that will add to my knowledge

odd ember
#

there's a reason people say start small

bright frigate
bright frigate
odd ember
#

if you're in here asking questions every single step of the way? no

spark steppe
#

yes

#

i think you are overengineering your problem

#

you want to map realtime to gametime, right?

bright frigate
bright frigate
#

2 real seconds to be 1 game minute

spark steppe
#

gametime since launch * 30 = ingametime

#

done

odd ember
meager spade
#

https://www.youtube.com/watch?v=qWSu2C4ANE4&list=PLDnygpcOYwFW2XtNyiandrLDG__OAZs7Q&index=6 This is the video I got my in game time from. Honestly don't remember exactly how he did it but you should be able to scim through it and get some knowledge

In this episode we set up our custom date and time feature which will eventually attach to things like our game speed, build times and other features. Enjoy!

To Custom Day/Night Cycle tutorials:
https://www.youtube.com/playlist?list=PLRj2My38wl9bcycvj_NssOy2f-cFNzPKH

----------------------------------------------------------------------------...

โ–ถ Play video
bright frigate
# odd ember this is like the second or third step where you're asking. if you're sleep depri...

I am primarily an artist so all of this is a lot more gnarly for me even if I understand the theory fairly well. But working with game engines means one needs to become very familiar with someone else's logic (the people who wrote the engine, the ones who developed the API and rules). Considering how intricate the engine is, there are a lot of 'rules' to playing the 'game'-engine, pun not intended

spark steppe
#

that issue is unrelated to the engine

bright frigate
#

there was a time 15 years ago I could do all this in C++ without much of an issue, but again, that would be me writing from scratch and setting up everything myself. This is a different scenario

odd ember
#

the rules are very similar between engines, and between most programming. this engine is no different. the big difference is that it unfortunately makes some end user friendly concessions that end up teaching people without the knowledge the wrong things

meager spade
bright frigate
#

thanks I'll check it out

spark steppe
#

as said, thats a simple multiplication and you have your ingame time

#

idk why you make a big deal out of it

bright frigate
#

how am I making a big deal out of it lol

#

I'm just asking for feedback / better solutions that's it

spark steppe
#

you came up with a timeline

#

๐Ÿ˜„.

bright frigate
#

I didn't come up with a timeline

#

I watched a simpler tutorial which used it

spark steppe
#

3 timelines ๐Ÿ˜„

#

yea another problem with that end user friendly engine is that there's a bunch of tutorials which teach crap

bright frigate
#

and I couldn't figure any other way to make the bp plugin work, the other solutions of my own I tried on tick for example would kinda sorta work but not really

bright frigate
spark steppe
#

or people don't understand why the person is doing something that way

bright frigate
#

the tutorial was fine because it was just like a proof of concept if you will. It had no real requirements like I do where I want the time to be slower and I want the seconds incremented as well

#

the original tutorial had the speed quite fast, 24 seconds for a full cycle (basically mapped 1 second to 1 hour) which means the sun was moving fast enough to not be jarring

#

I only realised I needed to increment seconds as well once I slowed everything down to the usual pace of day night cycles in games

#

I would use the sun and sky bp that uses solar time as a float value, so just 1 value making it really easy and simple, but for some bizarre reason Epic decided it won't use the sky sphere and doesn't take any, which means at night there are no stars and it's pitch black, so I can't really use that

spark steppe
#

you can use a night scene capture for the sky sphere

#

they decided to not force anything on the developer

bright frigate
#

no I mean the sky sphere does not work together with the sunandsky bp at all

#

they don't communicate and can't

#

so if I recapture the sky sphere, it doesn't recognise any sun that it can use

#

because the sun in the sun and sky is nested within the overall plugin, which the sky sphere can't see

#

the older sun bp that I'm using right now does work together

spark steppe
#

i have no idea what you are talking about

#

is that a specific plugin or example blueprint?

bright frigate
#

ok so there is a plugin called "bp_sun position"

#

this will work with the sky sphere and directional light in your world

#

there is another plugin called "Sun and Sky"

#

I believe this is the 'new' one

spark steppe
#

both from epic?

bright frigate
#

default in the arch viz template

bright frigate
#

but this one has a directional light and another thing nested within it, as components

#

but it does not work with the sky sphere

#

so if you want starry nights, you have to use the older one

spark steppe
#

well, you can't take anything out of an "asset" and expect it to work the way you want it to

bright frigate
#

the older one uses separate values for hours, mins, secs
the newer one has one value called solar time, which is a float, from 0.0 to 24.0

#

so it incorporates mins and secs within that one value

spark steppe
#

you should rather try to understand how those blueprints work, rather than trying to adapt your game to their requirements and limiting yourself

bright frigate
#

for this new one, it's really easy to just hook up to event tick, delta seconds x whatever speed I want it to increment and plug it into solar time more or less

bright frigate
#

there is literally only 1 tutorial which I used and that is the timelines one

#

for the older sun position bp

spark steppe
#

the sunposition is just rotation around the world, isn't it?

bright frigate
#

yea but it's geographically accurate

#

with lat, long, north offset, timezone, etc.

#

location

#

date

#

everything

#

and I need those

spark steppe
#

๐Ÿ˜„.

bright frigate
#

so you see :p

#

cause the reason is that I've made a place as accurate as possible, a real place, as it was in a real point of time in history

#

so the lighting needs to be correct as well for that time, which the bp offers easily

rough blade
#

Is it possible to change an actors movement mode in runtime? Whenever a player possesses an actor id like to switch it from navmesh walking to walking but as far as I can tell it doesnt update (same weird interactions during navmesh walking)

spark steppe
#

sure, just set the movement mode on the movement component?!

#

what kind of weird interactions?

rough blade
#

Thats what I do - walking through walls, vehicles freaking out when they stand on them, ect. none of which happens during normal walking

spark steppe
#

you could try to disable the component before setting the mode, and reactivating it afterwards

#

but this somehow doesn't sound like an issue with the CMC (tho im not sure)

rough blade
#

hmmm ill give it a shot - thank you!

spark steppe
#

get array A, set array B and plugin the array a as input of the set node

#

what's the data type of the array?

#

they should just copy over to array b

#

oh

#

you want to compare 2 arrays, sorry, i did misread your question

#

iterate over one of the arrays, and check if the item exists in the other array, if so add it to an temporary array which holds the duplicates

#

there's the "contains item" node for arrays which you should use for the check

trim matrix
#

anyone knows why in packaged when trying to change resolution in fullscreen my screen flickering?

#

like trying to set resolution but cant

#

should i try with command instead set resolution node?

zenith trout
#

what should i do?

spark steppe
#

you should explain what you want to do

#

because the node setup doesn't really provide any informations

#

other than that you want to set somethings location when something got hit

zenith trout
#

if i hid the obj (pad) i want to change th location of the "blockrunter"

spark steppe
#

and blockrunter is what? some other actor?

zenith trout
spark steppe
#

do you have a reference to it on your pad blueprint?

zenith trout
#

no

spark steppe
#

does blockrunter exist multiple times or only once?

zenith trout
#

once

spark steppe
#

then you can use a get actor of class node

#

and set the class to blockrunter

#

and use the output for your target

zenith trout
#

thanks!!!

winged sentinel
#

i cant get my replicated health to appear on my hud, it never updates. How can I fix this?

#

this is my health component

#

could i just make health a rep notify or something and cast to my hud to change the text

#

it does in fact change on the server correctly because this shows my the correct damage being taken

winged sentinel
# dawn gazelle Yep

hm okay is that efficient tho? I was always under the impression that casts are expensive

dawn gazelle
#

Casts are only bad once you get into the 100000s of them per second, and even then, it's minimal impact.
If you're worried about it, you could also set up a bind which is effectively making it update the value on tick - which again, takes literally hundreds of binds to actually see any kind of performance impact - so long as you're not doing some complicated math with them and just using them to display the value, then it's not really a problem.

winged sentinel
#

i see thank you for that information

dawn gazelle
#

You could also do the reverse - have your OnRep call an event dispatcher which your UI binds to - then you only have to cast once to get reference to the object where your health is and bind to the dispatcher - the event can then update your health value in your UI

winged sentinel
#

i have it inside of my rep nootify function for health

#

is it maybe an issue with how im replicating it? do i have to make it run on client as well?

prisma stag
#

Curious as the why this isnt working. I added a breakpoint and it executed but the Item Quantity never changes.

~Thanks

spark steppe
#

the foreach loop might give you a copy, not a reference to the real struct

prisma stag
spark steppe
#

actually you are filling the array with copies

prisma stag
#

Darn. Is there a workaround to this?

spark steppe
#

make a function where you pass the struct as reference, and call it for each struct

#

but you have to set the argument explicitly to reference for it to work

#

at least that's the cleanest way i could think of right now

prisma stag
spark steppe
#

no, you would screw of the loop + array

#

it would only do the addition and set the result

somber crypt
#

Anyone had any issue when you add a startup movie? Game runs perfectly without a startup movie. When I add the UE4 logo movie the game starts and....
Assertion failed: IsInGameThread() || IsInSlateThread() || IsInAsyncLoadingThread() [File:Runtime\Slate\Public\Framework/Application/SlateApplication.h] [Line: 225]

TheGame!FDebug::AssertFailed()
TheGame!FDebug::CheckVerifyFailedImpl()
TheGame!FSlateApplication::Get()
TheGame!FPreLoadSlateWidgetRenderer::DrawWindow()
TheGame!FPreLoadScreenSlateSynchMechanism::RunMainLoop_SlateThread()
TheGame!FPreLoadScreenSlateThreadTask::Run()
TheGame!FRunnableThreadWin::Run()

prisma stag
spark steppe
#

you would make another function which gets called for each struct by the one with the red arrow

#

however it looks like your logic is somewhere earlier messed up, as i think you could avoid doing it for each item type

prisma stag
#

Im just trying to avoid this.

spark steppe
#

that's why you should make a function which takes the struct reference as input

#

that function only does your addition and set the value to the struct

#

you'll still have a function call for each struct, however it's not as messy as what you posted ๐Ÿ˜„

prisma stag
spark steppe
#

no loop for you ๐Ÿ˜„

trim matrix
#

Is it possible to reference a material inside of a blueprint, if so, how would you do it?

spark steppe
obtuse herald
#

Or you use 'Material Parameter Collections'

trim matrix
spark steppe
#

you know you can put <> around links so that it wont create previews?

obtuse herald
#

oh really?

spark steppe
#

try it, and edit them ๐Ÿ˜›

obtuse herald
#

damn

#

thanks!

trim matrix
trim matrix
prisma stag
spark steppe
#

yes

prisma stag
#

oh

spark steppe
#

but you have to set that input to reference

#

in the details

#

actually you are passing a copy, so it shouldn't work

prisma stag
#

It works now.

spark steppe
#

but it shouldnt ๐Ÿ˜„

prisma stag
#

๐Ÿ˜‚

#

the many wonders of coding.

spark steppe
#

until it breaks

#

i would still set it to reference

#

just to be safe

prisma stag
#

Yea, once I ticked the Pass-by-Reference, it started to work.

spark steppe
#

it's one checkbox, you can click it, DO IT

#

ah i see

#

well ok

prisma stag
#

Ok, so now it makes sense ๐Ÿ˜‚

spark steppe
#

yes

prisma stag
#

Thanks for the help.

obtuse herald
#

also maybe you want a loop instead of pasting the same function 10 times >.>

prisma stag
spark steppe
#

no

obtuse herald
spark steppe
#

your array wouldn't hold references

prisma stag
spark steppe
#

unless you can set arrays to hold struct references, i'm not sure about that

obtuse herald
prisma stag
#

Which we set for the input of the function ^

#

Ill give it a try and let ya know.

spark steppe
#

but if that works, you can screw the function you made, and return back to your old setup ๐Ÿ˜„

#

just with references then

#

i was under the assumption that arrays cant hold struct refs

prisma stag
#

No, you're right.

static charm
#

they can hold object references

spark steppe
#

yes

static charm
#

not sure about pass by references

prisma stag
#

So is there a way to loop the function for each struct or is it just create a long train?

spark steppe
#

yea, don't hold them in separate variables like that

#

make a map with name as key and struct as value

prisma stag
spark steppe
#

then i wonder where you looked at ๐Ÿ˜„

prisma stag
#

. . .

spark steppe
prisma stag
#

Oh wait. OMG

#

I didnt even watch the video yet.

#

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

#

Ok, so I havent put any values in the struct for the map variable, but would this work for what I want?

obtuse herald
#

interesting, it says it's by ref but it isn't

#

so nope, you can't loop it.

prisma stag
#

oh

prisma stag
obtuse herald
prisma stag
obtuse herald
#

The map hold the names (key) and their corresponding structs (value), and since we're looping through every key, we can change the value of every key (without needing a ref)

prisma stag
#

Oh, so we are changing the value with a copy, then using the add, to override the values for that key?

prisma stag
#

So now I wont need a struct variable for each item, but rather add it to the map, and it will loop and override by itself.

obtuse herald
#

Yeah

prisma stag
#

Gotcha. Now I just need to figure out how to bind certain struct map values to a widget.

dawn gazelle
winged sentinel
#

So I made a custom event that checks the health and prints it. I made on that is on a replicated rpc and a non replicated custom event. From there I see that server is returning the correct health, and that client is returning 100 health still even if my character is hit. Is that something to do with it?

dawn gazelle
#

That's not how casting works. Casting is taking a less specific reference (like an Actor) and making it more specific (like your character) so you can access the functions and variables within the more specific class. It doesn't convert between classes, so you can't cast a reference that would be your character to your player controller.

On the OnRep, do a "IsLocallyControlled" branch. On the true, get the owner, then get the owner of that, then cast to your player controller and proceed as you were... Pretty sure it'll work from there.

mossy vessel
#

How do you put bps in different sections like this?

obtuse herald
#

(details panel of bpf)

last abyss
#

additionally you can use ' | ' to subcategorize, for example; UI | Text or; Stats | Resistances

gray chasm
#

Is there a nice way of a having a 'marker' on an actor? Like, for example, with a vehicle, I want the character pawn to spawn next to the vehicle when they exit the vehicle. Currently I'm just using an offset, but its fiddly be nice to be able to visually edit the various spawn points.

tame haven
#

I hope i'm not in the wrong thread - if i am then sorry. I have a little problem with widgets. I'm adding widgets to main widget via User created category (i'm using widget switchers and i thought it would be the best option). Widgets added this way does not contain any information. They are visually okay but progress bars are not filling up. Does someone have any idea how to make it right ?

#

For clarification: When i add widget via normal "add to viewport" they are working perfectly fine.

No help needed anymore.

opal totem
#

is there a way to get a random item in a Set?, similar to the way you would get a random value from an array (generating a random index, for example)

gray chasm
#

? Can you not just use RandomIntegerInRange?

gray chasm
#

oh perfect~

#

I didn't realize that was a thing.

obtuse herald
#

you're welcome

faint pasture
opal totem
#

@gray chasm I know I can do that and access an array, to get a random element in my array. However I was wondering if there is an equivalent way to do the same thing with a "Set" instead of an array. I can convert a Set to an array. but I was hoping to avoid that step and be able to somehow randomly access the Set, and get a value.

earnest tangle
#

@opal totem if there is a node to get an item from the set by index, you just need to create your own function which generates a random number between 0 and set length - 1, then get the value from the set

gray chasm
#

There isn't. Weirdly, despite the fact it's implemented in TSet (ElementType& operator[](FSetElementId Id)).

#

uh.... I guess you can't without writing some C++ to pull the index out. nfi why it's not part of BlueprintSetLibrary.h

#

I think 'To Array' is as good as it'll get in pure BP.

opal totem
#

I appreciate the feedback, not going to spend any more cycles on it. ๐Ÿ™‚ arrays will work fine.

lucid lynx
#

Is there a way to clear a mesh or set a mesh to null?

#

Specifically trying to clear the actual mesh, not just set it to hidden.

lethal yew
#

yes, call setmesh and just don't add a reference, leave it blank

lucid lynx
#

lmao, thanks. dunno how I missed that.

jovial prairie
#

hey how do i make it so the buttons switch when i click on them? Atm they just print string for debugging...

#

couldnt find any good tutorial for what im trying to make

#

The buttons are being displayed on this tablet and here i would like to switch between the options

opaque blade
jovial prairie
#

like in going to the next page and back

#

like an option menu

opaque blade
#

There are tons of ways of doing it though

jovial prairie
#

In this video I go over how to create a main menu in unreal engine 4 in 9 minutes.

Check Out My Website For a FREE 3D Model and more of my content: https://www.uisco.dev/

Join My Discord Server (100+ gamedevs): https://discord.gg/WybzV92BKJ

-Ways to Support The Channel-
Check Out My Marketplace Games Assets : https://www.unrealengine.com/ma...

โ–ถ Play video
#

atm tryign this but idk

#

but ill check that one for sure

faint pasture
jovial prairie
#

i made this

feral shale
#

Hey guys, I'm having an issue that I cant really get my head around.
I want a certain object to change material etc. on every rendered frame, so normally I would just put it in the tick function of my object and then just render the sequence out using the movie render queue, however because I'm using subsamples in the render preset to give me better raytraced results, the ticks are firing on the sub steps(16 substeps pr. frame) - is there a way to make a function thats fired every frame and not on the substeps?

lethal yew
#

interesting problem....

#

i don't know, but as a worst case, could you change your logic to take a parameter for how many substeps between changes?

spark steppe
#

have you tried to set the tickrate to match your frame rate?

feral shale
spark steppe
#

hmmm, i thought it would still be framerate bound even when rendering for movie

#

then i would just add an integer which increases to 16 and gets reset then while switching the material

feral shale
#

I mean, I think all internal things are done with a calculated tick, but as soon as temporal samples are above 1, it fires multiple ticks to get everything to blend together

feral shale
spark steppe
#

ok, i dont know about that stuff, maybe someone else comes up with a solution

#

maybe virtual-production or something is a better place to ask

trim matrix
#

How to run UMG widget on the plane mesh of the Actor?

icy dragon
tight schooner
#

@feral shale is there a way you can differentiate a substep tick from a new frame tick? Like is there some frame number or timestamp you can get to make that distinction? If there is, you can maybe compare it to the prev frame data or something to produce a boolean and branch the logic off that.

feral shale
lethal yew
feral shale
#

Spatial samples doesn't fire tick

#

only temporal does

#

atleast thats my conclusion from my testing

lethal yew
#

Ahh ok yeah that would make sense. Was just trying to think why you would get blurring before and after still

feral shale
#

I think it's down to how AA works in UE

#

Temporal sampling where stuff changes from frame to frame will always introduce bluring between the two frames

lethal yew
#

Presumably you have disabled post process motion blur and temporal aa?

feral shale
#

yep

zenith trout
#

how can i make this repeat?

earnest tangle
#

Repeat what?

zenith trout
#

the event so that it always moves upwards

earnest tangle
#

Put it on tick

#

You can also use a timer, but if you want it to smoothly move, then putting it into tick would probably make most sense

late cave
#

What am I missing here? Why isn't Unreal showing me the real values? Just hovering on the lines doesn't work either...

earnest tangle
#

Because the BP debugging functionality is finicky

#

and sometimes just refuses to show you anything useful

dim sun
#

hey quick question, I come from Unity and was wondering how to reference a Camera (or any other object on a level) directly from a Widget, without having to have a GetAllActorsOfClass. Is that possible?

dark crow
#

GetAllActorsWithTag ๐Ÿ’ฏ

surreal peak
#

There are few classes that more or less only exist once

#

Like the GameState

#

Those are accessible from everywhere โ„ข

#

So your actor or camera can always get the GameState on BeginPlay and add itself to it as a pointer/reference

#

Or to a component that you add to the GameState ( to keep things more organized )

#

Your widget can then get that reference from the GameState

dim sun
#

nice

#

thank you!

dim sun
orchid garden
earnest tangle
#

Timers are not guaranteed to run at the exact interval

#

Ticks are indeed frame based, the common method to address this is to multiply movement or other such values by deltaTime

orchid garden
#

nothing that works with floats is guaranteed to work on exacts, as Unreal puts it 'Floating math is complicated'.

earnest tangle
#

sure if you wanna use timers then go for it ยฏ_(ใƒ„)_/ยฏ

#

it is additional overhead on top of ticking, and if your framerate fluctuates enough that a single frame takes longer than the timer interval, you will get jumpy movement

orchid garden
#

and as you said, you can always use delta time to adjust with either method.

earnest tangle
#

if you're going to use deltatime anyway then there's very little reason to use timers

orchid garden
#

not true.

earnest tangle
#

yes?

orchid garden
#

again with timers you have more control then with ticks. a timer can be setup, destroyed, paused. ticks can't.

earnest tangle
#

Ticks can be paused

orchid garden
#

the only real time to use a tick over a timer to be honest is if you want to use it for something thats constant.

earnest tangle
#

What do you mean by constant?

orchid garden
#

๐Ÿ‘€

earnest tangle
#

Like.. constant movement? Like when you want to move a character?

orchid garden
#

if your using a tick to control your movement your doing it wrong.

jovial prairie
#

how do i make it so i have a slide show? or a simple back forward system?

#

the tutorials online dont work for what im trying to achieve

earnest tangle
jovial prairie
#

never worked with that

orchid garden
earnest tangle
#

Character movement component runs most of its logic on tick

#

Physics run on tick

jovial prairie
#

but to be fair this is also my first day with blueprints haha

#

cant i just add a node that tells it to move x amount of pixels up or down?

orchid garden
#

that'd fall back to this arguement the zomg is having with me, you'd basically want to use a lerp with delta time on a timer to move by pixel. he'd probably tell you to toss it on a tick.

earnest tangle
#

you can do it whatever way you want but let's not go claiming that it's wrong to do character movement on tick :P

orchid garden
earnest tangle
#

Where did I say you have to use ticks for everything?

#

You're the one who said that character movement should not happen on tick, and yet the character movement component (and all other movement components) run their logic in tick

#

so feel free to explain how Unreal Engine is programmed incorrectly

#

but stop putting words into my mouth :P

orchid garden
#

omg...

#

twist things some more

#

think im done talking to Zomg.

earnest tangle
#

I'm all ears, please do explain how I'm wrong

#

I'm serious, I'd love to not use tick if I don't have to

orchid garden
#

im serious as well, im done being trolled.

earnest tangle
#

lol okay

earnest tangle
orchid garden
#

again. ... wrong....

earnest tangle
#

Yeah that's a valid alternative

orchid garden
#

you know, UE made those learning courses for a reason Zomg.

earnest tangle
#

I'm agreeing with you, why are you like this?

orchid garden
#

just saying...

earnest tangle
#

Saying what?

#

All I said was I made a suggestion to use tick, and you're just gunning for my head now

orchid garden
#

no i just pointed out you were wrong about the speeds.

earnest tangle
#

No you've repeatedly called me incompetent at this point

#

Is suggesting to use tick such a giant faux pas or what?

orchid garden
#

never once used that word.

earnest tangle
#

You also suggested that I was trolling because I made the suggestion to use tick

#

Again for no reason

orchid garden
#

no i said you were trolling me. not because of a suggestion. you keep twisting things, common thing a troll does.

earnest tangle
#

Yeah you kept attacking what I said when it was simply statements about how UE works

orchid garden
#

lets agree to disagree.

earnest tangle
#

What's your problem with that?

#

You don't want to know how UE works?

orchid garden
#

here we go again....

sleek tapir
#

Hello, Im new to UE and I'm just getting into Blueprints. I have a problem where when the player enters a trigger box the 1st time its firing both the enter and exit nodes at the same time. it fixes itself when i exit and enter the trigger box again, am I doing something wrong?

icy dragon
earnest tangle
#

Yeah I honestly don't know what his problem is.... I'm just trying to help people and he just starts attacking me :P

orchid garden
#

think you got that backwars zomg.

sleek tapir
#

Do you think maybe you guys can just let it go?

icy dragon
earnest tangle
#

Character consists of multiple colliding comps so one triggers entry and one triggers exit?

#

Not sure tbh

icy dragon
orchid garden
#

doing something similar can keep you from getting a begin and end overlap at the same time.

sleek tapir
orchid garden
#

what might be happening is if your actor is holding something / has a secondary component, that component while walking in may be going outside of the box as your characters triggering it. If you check for something specific when something overlaps / ends overlap that can prevent you from getting both a begin and end event at the same time.

sleek tapir
#

Its just the default 3d person rig. The strange thing is it was working just fine, then I added a collision box to the door because he was able to run right through it. Do you think the door is interfering with the trigger box as it runs right through it?

#

*runs right through the trigger box

sleek tapir
orchid garden
#

if he was able to run through your door it sounds like your door itself doesn't have any collision or its set to ignore collision.

gentle urchin
sleek tapir
orchid garden
earnest tangle
#

@gentle urchin yeah, it is the standard way of doing it in pretty much every game engine I've ever used and in pretty much every game source I've ever seen

orchid garden
sleek tapir
orchid garden
sleek tapir
#

I'll give that a try

orchid garden
#

simple doors i just use a single collision box:

sleek tapir
#

yea thats pretty much how mine looks

orchid garden
#

my door never actually overlaps the collision box itself, the collision box is just slightly larger then the door for both closed and open positions.

sleek tapir
#

Yep, setting the triggerbox to only pawn seemed to fix the problem, so the door itself must have been causing the issue. Thanks for the help! and thanks for the vid!

orchid garden
sleek tapir
#

I had it enveloping the whole door by more than enough when closed.

orchid garden
#

more complex doors, like say.....

dark crow
#

Door simulator

orchid garden
#

your going to want to use the first method for begin/end events (checking against whats triggering it) rather then only using the collision.

sleek tapir
#

Yea, I'll have to figure out more of these nodes eventually. Unfortunately a lot of tutorials online seem to say 'add this node' but dont explain why or what the node actually does.

orchid garden
#

ItsMeBro is pretty good at explaining things along the way, only issue i have with his videos is they move abit fast at times ๐Ÿ˜‰

sleek tapir
#

Cool, I'll try to check out several of his vids and see if they help. Thanks again for the help.

earnest tangle
#

That's interesting, I never had issues with components overlapping other components on the same actor ๐Ÿค” Good to know it can happen

orchid garden
late cave
#

I'm very close to pulling my hair now, I think...

dark crow
#

Just a tip for that

Instead of Length - 1 you can use Last Index

late cave
#

huh... that's cool... still, I don't think that's why I'm missing 3 iterations ๐Ÿ™‚

odd ember
late cave
odd ember
dark crow
#

What are you trying to achieve

odd ember
#

I'll be honest, I don't know how macros feel about having a variable inside of them that can be set out of their scope

gentle urchin
#

I also think you're better of temp saving the removed ones.

odd ember
#

so I would try passing the array as a parameter first

gentle urchin
#

then removing them afterwards.

orchid garden
#

are you sure the loop is only cycling 5 times? technically it should be cycling 9 (0-8)

gentle urchin
#
  • last used index
late cave
#

alternative solutions are great, and I guess I'll try, but I'm super curious as to why I'm seeing what I'm seeing

gentle urchin
#

whats the incoming value?

dark crow
#

You are modifying the last index each loop, may explain it

orchid garden
#

you could very well be trying to remove a invalid index....

odd ember
spark steppe
#

what the heck is that supposed to do?

dark crow
#

What are you trying to achieve is the question

gentle urchin
#

Remove a fixed amount of indexes...

dark crow
#

That will give answers

gentle urchin
#

from a desired index

spark steppe
#

when you remove you have to run backwards on the array

late cave
#

the array is always 10 items, but a lesser number is often used... so I want to remove those which aren't (except the last one, which I always want to save)

earnest tangle
#

The array updates when you remove from it

spark steppe
#

and why do you start at 0 if you want to just remove a specific amount?

earnest tangle
#

So when you remove index 0, the index which was 1 now becomes 0

spark steppe
#

the range is quite given?!

late cave
late cave
orchid garden
#

yeah like Ben said, run backward while removing the index with a set number of items you want to remove. rather from 0 to 8 you'd go 8 to 0 that'll keep you from trying to remove a invalid index.

late cave
#

let me throw a cache in there

spark steppe
#

don't go from 8 to 0, go from last index that you want to remove to the first index that you want to remove

orchid garden
#

well i was going by his sample pic ben

late cave
#

ok, cache worked!

#

my math is shit, but now I get the logic at least and can fix the math ๐Ÿ˜„

spark steppe
#

you can try hard to make this work or just pick the elegant solution xD

late cave
spark steppe
#

also last index changes every time you run the loop body if you keep removing stuff, but im not sure if that contributes to your problem, because i dont even want to try to understand it fully ๐Ÿ˜„

gentle urchin
#

Not sure if this explains it very well but

#

makes sense really

#

Starts with array of 10, last index is 10-1, removes 1 from the array, and 9 elements remain

gentle urchin
#

after 5 iterations, assuming in scope, leaves you at loop end.

spark steppe
orchid garden
#

you'd just need to make your own for loop, no backward running ones, original is:

late cave
#

Mine does seem to work now though...

orchid garden
#

there is a reverse for each, just not backward for loop. only difference would be you'd subtract instead of add, and check to against first index instead of last index.

gentle urchin
#

Generally prone to errors when removing from an array you're using as the loop condition moving forward. Many pitfalls. fewer going backwards

#

Still i wonder if this dynamic approach in general has a gentler solution to it, but that's your call in the end

late cave
#

I'm also not looking at any values in the array, because I don't care

gentle urchin
#

True, and i can only assume you validate the incoming index aswell

late cave
#

yes! (from a switch on an integer, always between 0 and 9)

gentle urchin
#

right, so even when starting later, you'd just quit sooner, so no biggie

late cave
#

well this was fun, thanks everyone! ๐Ÿ™‚

tame stream
#

What's the best way to manager character customisation? think runescape character customisation kind of stuff, what i mean specifically is being able to change your legs, torso, stuff like that. I don't understand how you can split mix body parts to make a proper character.

#

I didn't explain that well. I'm just not sure how to seperate a character into seperate sections, torso,legs, arms etc

tame stream
#

modular, thats the word I was after! thank you so much

#

is modulation a cause for performance issues? i imagine it would cause issues instead of being one solid mesh

dark crow
#

I wouldn't worry about it, sounds so minimal

spark steppe
#

the docs go into performance

tame stream
#

it's a VR project, so anything minimal tends to make a difference i find haha

spark steppe
#

scroll to the end, there's an overview

tame stream
#

depends how many players are in the area

spark steppe
#

also with mesh merge you pretty much get the same performance as a solid character mesh

tame stream
#

good point

#

thank you so much for the help!

opal sinew
#

Remove parent does not work here

#

Widget still appears

#

Any idea why?

icy dragon
opal sinew
opal sinew
icy dragon
dark crow
#

Validate Get could work too?

#

And use the given ref directly

#

iirc it's more performant too

winter kettle
#

If I have a blueprint function that returns a value, but there are some paths in the function (like a branch) that doesn't return a value at all, and I call the function and it reaches the path that doesn't return anything, will the node that is executed/connected after the return-less function call be called?

tame pecan
#

Yes

dark crow
#

Yeah

tame pecan
#

And itโ€™ll return the default parameters

dark crow
#

May be best practice to have a return for clarity anyways imo

earnest tangle
#

It's good design to make sure all your codepaths return a value so it's not unclear what is returned when

worthy carbon
#

https://youtube.com/watch?v=nc7F7IJLuik&feature=share (I tried this but i still canโ€™t pickup my weapon) help me please

Check out my Unreal Engine 4 courses right here: https://devaddict.teachable.com/

โ–บSubscribe here: https://www.youtube.com/channel/UCGxt9c_CREmnquHjPEknHYw?sub_confirmation=1
โ–บBusiness Email: devaddictiscringe@gmail.com

New here? Start at Part 1: https://youtu.be/maG2YnVnIVM

Welcome to part 3 of my Multiplayer/Coop Survival Game tutorial for ...

โ–ถ Play video
tame pecan
#

Yep

tame pecan
snow halo
#

hey peeps, are there any nodes to convert a color/linear color var to a hex string or somethin?

worthy carbon
earnest tangle
#

@snow halo there should be a linearcolor -> hex node, if you drag from the color pin and search for hex you should find it

earnest tangle
#

That's odd...

icy dragon
earnest tangle
#

Ohh sorry my bad, the function is from a color wheel plugin I have :P

dark crow
#

Cause that RPC is giving me depression

worthy carbon
dark crow
#

I bet it's not working cause Pickup has no valid ref

worthy carbon
dark crow
#

How are you setting Pickup

#

Let's do this to test first of all

#

Then press the Interact button

worthy carbon
worthy carbon
#

so everytime i press E the weapon attach to the character

dark crow
#

As it should, no?

tame pecan
#

First of all, donโ€™t multicast spawn actors

dark crow
#

For sure, lol

#

But for now he's not testing on server, so shouldn't matter

tame pecan
#

I just saw the multicast, reading on my phone

#

Currently on a walk ๐Ÿ˜…

dark crow
#

Core of the problem is that he's using a Pickup Ref, but not actually using it

#

Probs not even setting it right

#

So validate failed

worthy carbon
#

oh oke

tame pecan
#

Many issues with this code. Iโ€™ll join in when Iโ€™m home

dark crow
#

Yeppp

late cave
#

This is fascinating... it works outside of the function, but not inside of it...

tame pecan
#

Donโ€™t rely on the blueprint debugger

#

Itโ€™s incredibly buggy

dark crow
#

Trash the blueprint debugger

late cave
#

You don't say ๐Ÿ˜ญ

earnest tangle
#

Yeah breakpoints and stepping is the only thing that works sorta reliably

late cave
#

but... I am using a breakpoint...

earnest tangle
#

Hovering over pins to see their values shows nothing useful more often than not :P

#

So it's entirely possible the value you see is wrong

dark crow
#

I would use a print if you really wanna see the value itself, only reliable way i found, but gets messy, lol

#

Then remove it after you're done if it's just a one time thing

tame pecan
late cave
#

Unreal Engine... debug like it's 1985! Woo!

dark crow
#

Unreal, right?

late cave
#

Truly the future of interactive entertainment...

icy dragon
tame pecan
#

Just wait until you find out that airports still use systems from the 80s

late cave
tame pecan
#

You can with unreal too

#

And it works

#

Just expose the variable

late cave
#

no... again, not while stepping through a blueprint

tame pecan
#

Yea no

earnest tangle
#

Sometimes it works... I wonder if they've improved it for UE5

#

Somehow I doubt it

dark crow
#

Probs broke it more

earnest tangle
#

btw it works 100% of the time in C++ :P

tame pecan
#

Usually works better with anything else than references

dark crow
#

Did someone say Rider??

tame pecan
#

Vs all the way

#

๐Ÿค“

dark crow
#

Notepad all the way

icy dragon
tame pecan
#

I use VS because its industry standard and I got a license

#

And I like it

earnest tangle
#

lol

dark crow
#

It's a love hate relationship

tame pecan
#

C++ in unreal is not that annoying. Epic has macroโ€™ed the shit out of it

icy dragon
odd ember
#

there are worse things than working with cpp

#

like trying to help people in a BP channel AYOOO

icy dragon
tame pecan
#

GOT EM

wraith bay
#

I have a blueprint for a trap i put in my game, however I placed 3 of those. Is there a way to get each instance of that class that is placed in the world?

gentle urchin
#

working on someone elses structured text code, where they used 99% pointers

wraith bay
#

Like, it's Trap_BP, but then there's Trap_BP1, 2 and 3, is there a way to get each one?

icy dragon
dark crow
#

Do it on a timer instead

#

0,0001

muted halo
#

Hey guys, is there a way to end my scene after a certain amount of time in my level blueprint?

wraith bay
# odd ember get them where?

I have a button which disarms the traps, however if one of the traps was already activated/destroyed, i get an accessed none error

odd ember
#

do you have a OnPressed Event in the button?

muted halo
earnest tangle
#

@snow halo uhh I think it's called color wheel or something, there's a couple of them but it's the free one

wraith bay
#

Sorry no, not accessed none, its "pending kill"

wraith bay
dark crow
odd ember
odd ember
icy dragon
wraith bay
muted halo
# icy dragon Are you referring to Level Sequence?

hmm I dont know the right term for it but I mean when I try playing/simulating my scene. Im trying to set something up in my level blueprint so that the scene will end after a certain amount of time. Not any sequences or anything

icy dragon
#

"scene" is a vague term, as far as general logic assembly goes.

wraith bay
dark crow
#

Check if they're valid?

But it all sounds like a design issue in the end

muted halo
#

Yeah sorry haha. Like when i click the play button next to compile and launch. I just want the scene to automatically end after a certain period of time

odd ember
#

and only kill them if they are valid

wraith bay
#

Yeah but how do I access 3 instances of the same class

#

Get all actors of class?

odd ember
#

show me your logic

wraith bay
#

sec

odd ember
#

there are many ways of doing just taht

dark crow
#

Just depends why you would want one instance and how do you want to get it

odd ember
#

get all actors of class is the cheat code

#

I don't recommend using it unless it's a quick and dirty prototype

dark crow
#

Overlap is a pretty straight forward way to get one instance

wraith bay
tame pecan
#

Subsystem gang peepoAwesome

wraith bay
#

I placed the 3 traps like this

#

They're all the same blueprint

#

Idk im new to unreal ๐Ÿ˜ฉ

dark crow
#

Wait

#

Is this in the uuh, trap bp?

wraith bay
#

no

#

Button

#

Thats where im disabling the traps

dark crow
#

Oh yeah nvm

#

So what's the problem again? Pending kill?

wraith bay
#

Ye

#

because on the video

#

if i get hit

#

and then press the button

#

it also tries to kill the 1st one

#

but its not there anymore

#

because it got destroyed when i got hit

dark crow
#

Well

wraith bay
#

I guess

odd ember
#

this is very no bueno

dark crow
#

Part of the problem is that you kno

wraith bay
#

xd

dark crow
#

You have it in BeginPlay

#

Just GetAllActors when you press the button

#

After the DoOnce

wraith bay
#

Oh that fixed it

dark crow
#

Cause if you get at BeginPlay, still holds a ref of the already destroyed one

wraith bay
#

wow

#

Yeah makes sense

#

that makes A LOT of sense actually

#

holy shit

#

Thanks

#

I only have 2 weeks in unreal so Im trying

#

Thanks boys

dark crow
#

Neato

#

You seem to be doing pretty well for 2 weeks ๐Ÿ˜„

wraith bay
#

I would send you a little demo but its too big for discord

#

๐Ÿ˜ฆ

dark crow
#

Everything is too big for discord when you need it

wraith bay
#

Oh wait I can send it

icy dragon
wraith bay
#

This is still really raw so bare with

#

The main goal is to have a Shifting maze

#

meaning whenever you die

#

it changes to another layout

#

but i only have 1 layout right now

odd ember
wraith bay
odd ember
wraith bay
#

This video was before the new traps I did this morning

wraith bay
dark crow
odd ember
#

that button will continue to destroy traps in level

#

until it runs out of traps

wraith bay
dark crow
#

Do you place the button and traps or are they procedural?

wraith bay
#

I place them

#

Wait as in

#

I placed them manually

dark crow
#

Cause you could make an Array of Trap Actors, Expose it on the Button and assign the traps to the Button Manually

#

So you have a hard link between instances

wraith bay
# dark crow Aye, looks good for that amount of time!

I wanna have 5 layouts for this "biome", and I want to make the first one really hard, so it forces the player to die, and cycle through to the next layout upon death, if the player keeps dying, it'll keep cycling through the 5 layouts until they learn it and get through to the next biome, which will also have 5 layouts, and so on

odd ember
dark crow
#

If they are manually placed like he said, it should be no problem if random generation is treated like prefabs

wraith bay
#

Yeah idk how to do that xd

dark crow
#

So your traps have a BP no?

wraith bay
#

Yes

#

1 BP

dark crow
#

In your button create a new array variable of the trap type

#

Literally create a new variable and as the type use your trap bp name

odd ember
wraith bay
dark crow
#

Level BP nightmare

#

:p

odd ember
#

nah, people give level BP too much flak

spark steppe
#

and others overrate it

odd ember
#

level BP is arguably the best OOP way of doing it

dark crow
#

Burn the heretic Level BP

#

Burn on the stake

odd ember
#

self registration is ECS god tier

wraith bay
#

You mean like this? @dark crow