#blueprint

1 messages · Page 370 of 1

fathom hazel
sand shore
#

Go back to Get Player Controller (0)

#

This is in the game state, which doesn’t have a great association with a specific player

maiden wadi
#

Ah. You said that was a widget. Yeah you'd need to get the player controller globally then.

fathom hazel
fathom hazel
# sand shore This is in the game state, which doesn’t have a great association with a specifi...

hold on, before i do this i wanna ask the correct way to go about this.

The game is about collecting cats. (ex. going up to them and pressing E. I have the HUD which i have text of how many cats are left. Considering the gamestate is meant for storing the state of the game (ex. cats remaining). The whole interact thing is through an interface, and inside the actual cat actor it sets the cat to found (and is then supposed to communicate to count down by one and change hud). I assumed the whole keeping count of how many cats remaining would be in the gamestate no?

#

whats the way to go about this?

#

as well, this will be annoying but eventually i want to make a hint system where one of the cats remaining makes a meow sound to help the player find the cat. Zero clue how to go about that as well, but thats a later issue. Not sure if that affects how we code it now.

maiden wadi
#

Realistically you'd keep that actual count in the GameState as an integer. And have a setter function for it that first sets the new count and then broadcasts a delegate(event dispatcher).

Your userwidget's Construct could then GetGameState->CastTocCGameState and both set the text initially and bind a delegate to set the text when that delegate is broadcast.

In this way your GameState doesn't have to care at all about the UI and your UI can just listen and update when the GameState says it's changed.

fathom hazel
#

as an int, not a float. Got it.

nova grotto
#

How do you make another actor jump whille not possesing them

maiden wadi
#

Unless you can collect half of a cat. 😄

fathom hazel
#

that was funny though lol

sand shore
#

Hi I’d like 0.463 of a cat please

fathom hazel
sand shore
fathom hazel
fathom hazel
#

as well, should the setter function subtract 1 from the cat, or should i do that in cat actor?

sand shore
#

Cat can call Game State -> Collect Cat, which can then subtract 1 from the cats to collect and can add 1 to the cats collected - using setters

#

But I’m saying that in a vacuum

fathom hazel
#

oh, is that for the hint system?

sand shore
#

Can’t know your project like I know mine

#

I forgor

fathom hazel
#

speak of the devil i just found a cat. Hes on my lap

fathom hazel
sand shore
fathom hazel
#

unless you suggest putting it elsewhere.

fathom hazel
fathom hazel
#

RAHH IM BACK TO THE CASTING OF BP HUD SOMEHOW

#

i thought i got it, although now im having this error. Blueprint Runtime Error: "Accessed None trying to read property K2Node_DynamicCast_AsC_CGame_State". Node: Bind Event to ED Cats Collected Graph: EventGraph Function: Execute Ubergraph BP HUD Blueprint: BP_HUD

#

How its setup: Gamestate has a function called collectCat. Collectcat has a event dispatcher called ED_catsCollected. It calls ED_catscollected at the end of the function. In the BP_HUD, i have Event on initalized set into bind event to ed cats collected. I think the issue is with Event on initialized but im not sure.

frosty heron
dark drum
# fathom hazel

On you're event dispatcher, add an int property and pass the new value through when the dispatcher is called.

On the custom event, also add an int property (so it matches the dispatcher).

Then move the 'Get GameState' -> 'Cast' to the on initialize event so the binding can be created correctly.

You can then correct the 'Custom Event' to use the int that gets passed through to update the text without needing to pull it from the game state.

storm solar
#

Would anybody have any idea on this issue?

past hull
#

hello,
I am having an issue with Damage Event for my Perception AI. If I test my code with the X keyboard shortcut, it works and calls the Damage Sense in my AIC_NPC AI Controller.
But if I call the Damage Event in my Weapon Blueprint, the Damage Sense is never triggered.
When looking at the debug, the damaged actor is correct ( of type BP_Stalker wich is my ennemy type )

I dont know what I am doing wrong

#

In debug, I shoot on the ennemy, the Damaged actor is the BP_Stalker I shot at. So the damage event should be reported on the AIC_NPC that is implemented right ? Just like when I press X

dark drum
storm solar
dark drum
# storm solar

You have a null 'Gameplay Tag Table List', either set it or remove the entry.

storm solar
narrow sentinel
#

Anyone know what that yellow message is meant to mean ??

#

not sure if that appearing is a good or bad thing thats all

sand shore
narrow sentinel
#

well at the moment I am using a mix of placeholder Geomatry standing in until I finalise a basic level layout so I'm thinking is might be that causing the yellow warning

#

the geomatry one

maiden wadi
#

It's essentially just telling you that you have too many lights trying to affect a pixel and that you either need to reduce the light count affecting an area or increase that value.

narrow sentinel
#

when I say geomatry I mean them ones

narrow sentinel
distant grotto
#

why wont physics work on this actor?

#

i want it to collide and simulate physics with the level but not the player.

narrow sentinel
#

any idea how I would delay the spawning of player character ?? essentially whilst all the sub levels load is I don't want player to be spawned and then when ready I tell game mode to spawn player

narrow sentinel
#

so my issue is Game mode has stuff by default to spawn the player I need to delay this so I can manually tell it to spawn player when ready

last peak
#

Spawn a dummy empty pawn then switch to the character once everything is done

maiden wadi
#

GameMode can delay beginning play and spawning default pawns until you set it to.

last peak
#

Ughhhh an Authaer comes instantly and knows a better solution, good that i killed my ego a long while ago 😄

narrow sentinel
maiden wadi
#

No. GameMode has a boolean thing for... Sec I need to open IDE.

#

bDelayedStart. Set this to true.

And then whenever you're ready you can call StartMatch

narrow sentinel
#

arr okay

narrow sentinel
maiden wadi
#

It is. You can even do it in BP. It's in AGameMode, not AGameModeBase for clarity.

narrow sentinel
#

arrr my derived game mode is the latter as I couldn't inherit from GameMode

#

i've changed that so I'm deriving from AGameMode

#

whats differce between them both the none base one to the base one

maiden wadi
narrow sentinel
#

so gamestate is the default one I've not made a derived Cpp yet for that, I prob should though tbf

maiden wadi
#

And the difference is basically just matches. GameMode extends the original to add a "match" like system. You could look at it's implementations for that boolean and do the same thing yourself without the matches.

narrow sentinel
#

arr okay I spose I can still dervive from the gamemode one and jsut not use the match stuff if I don't want to

maiden wadi
narrow sentinel
#

so i've gone with the following using that bool to delay player spawn and just using the restart player function to then actually spawn the player

#

and for now this seems to work okay so think i'll call that a win of sorts

fathom hazel
#

is there a reason you suggest doing the rest of that stuff?

#

on second look, it appears i overlooked something. Not sure how to differentiate between the cats (unless i duplicate the bp)

dark drum
fathom hazel
#

id like to do this right so i dont learn something wrong and have to forget it.

dark drum
fathom hazel
dark drum
# fathom hazel a hud class thats set to the gamemode.

You could do the binding there after you've created it. You can use the 'create event' node and connect the created widget and select the function.

This means the widget doesn't even need to know about the game state. (Assuming you do my previous recommendations)

As for why, it can allow widgets to be reused in different places more easily. Especially when you use child widgets.

fathom hazel
#

nevermind 💀 . one step at a time as you said. Let me do the previous things first quickly

fathom hazel
dark drum
fathom hazel
dark drum
fathom hazel
dark drum
#

Sometimes I'll use a less optimal way because I can't warrant spending the extra time to do it. 😅

#

Granted there's been a few occasions where I've regretted it. 😂

fathom hazel
dark drum
fathom hazel
#

thank you lol

#

alright, its working. Awesome

#

now im running into the issue of the fact that i have 3 of them, and when i click one, the rest of them dont work.

#

its due to this logic here

#

would the best way to fix this just be duplicating the actor bp every single time?

dark drum
fathom hazel
#

How could i fix this problem? i have to differentiate between the cats somehow

fathom hazel
#

actually, duplicating the cat actor might be the best course of action for later on. Im looking to impliment a hint system to where a cat meows if you cant find it.

dark drum
# fathom hazel

Is the 'found' variable set to false on the 3 instances placed in the level?

fathom hazel
dark drum
#

Add a print string to the start of the interact and check it runs on all of them.

fathom hazel
hardy merlin
#

Can anyone point me towards tutorials for editing animations within Unreal Engine?

fathom hazel
#

maybe i dragged the mesh instead of the actual actor?

dark drum
dark drum
dark drum
dark drum
fathom hazel
#

thank you

#

i have found logic twice which is why i cant interact

#

alrighty ive got another thing

#

currently im manually setting how many cats there are. I figured i could use get all actors of calss, and set the actor class to actor cat. From there i could drag out the out actors and use it to set how many cats there are remaining (initally, on event begin)

#

although i cant drag out actors to cats remaining

#

is there a conversion im missing?

#

that way i could just drag cats out and not worry about counting the total cats every time

last peak
#

You can get the length of the array but its useless overhead that you create with get all actors of class, thats dirty

#

If its really just at the beginning of the game, ok it wont hurt you too much but there are probably still better ways

dark drum
last peak
#

You have to become the purest coder in existence, you shouldnt even use a engine you should use raw c code ...... or even better a pc with punchcards and raw boolean logic as language !

dark drum
last peak
#

Isnt get all actors of lcass doing a loop internally trough them all ?

#

to spit out that array

last peak
dark drum
last peak
#

Mhm gotta have to watch the mythbuster vid again

dark drum
#

If you actually need to get all of a given actor it's not a bad option, you just need to be wary of needing to loop through them.

#

Looping through to find a single instance isn't ideal. I've seen that a few times. 😅

last peak
#

This seems like peak programming to me

dark drum
dark drum
#

I wish actors had a default gameplay tag container.

maiden wadi
#

It's funny. I have yet to ever use the loop with break for anything in the entire time I've used this engine.

dark drum
maiden wadi
#

I have a habit of making functions for my getters like that. So they all just return out.

mystic blade
#

very curious as to why the default third person character blueprint was changed so drastically in UE 5.7 and why "EnhancedInputLocalPlayerSubsytem" has been seemingly omitted

#

was it just for general streamlining?

dark drum
next hollow
mystic blade
#

its definitely cleaner than before

distant grotto
#

how do I make this overlay fill the screen?

mental trellis
#

Set the anchor points to the edges of the screen?

#

I'm sure there's a button that does it for you.

distant grotto
#

they are

#

i cant drag the anchor points out any further

#

I think the sizebox is messing with it but its not a child of it so i dont get it

mental trellis
#

You may also need to reset the offsets from the anchors.

#

Back to 0.

distant grotto
#

they are

#

i think if you have a sizebox it limits them to the size of the sizebox

#

becuase if I use a different anchor type i can drag it around freely

#

why is the umg stuff so hard to work with

maiden wadi
#

It's not.

distant grotto
#

I dunno i cant ever get it to behave

maiden wadi
#

What you have up there won't be affected by that sizebox. The sizebox doesn't wrap it. The only thing that will affect it are your anchors in the canvas slot.

distant grotto
#

this one? I dont see any anchor options for it

mental trellis
#

Select the overlay

distant grotto
#

it seems to be locked to the size of the sizebox even though it isnt a child of it

mental trellis
#

That is the same size as its parent.

#

(the canvas panel)

maiden wadi
#

Uncheck SizeToContent

distant grotto
#

on the overlay?

#

the canvas panel doesnt have that checkbox

#

unchecking it on the overlay didnt change anything

mental trellis
#

Probably because it has no content.

#

But your anchors are correct. It's that size because its container is that size. If you want to change the size of the overlay, you need to change the size of the canvas panel.

distant grotto
#

how do I do that?

mental trellis
#

Maybe the root item has some preview size setting?

distant grotto
#

copy pasting the widgets into a new blueprint makes it do waht I want

mental trellis
#

Did you check the settings of the root item? Or the preview settings at the top-right of the viewport?

distant grotto
#

nothing seems out of place here

#

oh if i set it to fill screen the overlay fills the screen, it doesnt in game though

#

so copy pasting it to a new widget didnt fix it

#

what Im trying to do is have an overlay that fills the whle screen so I can check if the mouse has clicked off the actual widget

mental trellis
distant grotto
#

The root item

mental trellis
#

Which is?

distant grotto
#

User widget

#

It's at the top of the hierarchy, above the canvas panel

mental trellis
#

Well, unless you're adding that widget as the root widget in your hierarchy, it will only fill the area it's given.

distant grotto
#

I guess the root widget is the canvas panel then

next hollow
#

Its goofy to see some BP graphs from stuff you work on. 😛
(not bad of course, just goofy)

sacred canyon
#

maybe I wasnt very clear about this the other day, but how do I rotate the player to point at the cursor, but on its own local axis?

#

rotates on world z right now, and I cannot figure it out

next hollow
#

Just ignore the bad rotation, seems like the easiest fix.
You don't care about, what is that Roll? So, just 0 out roll.

faint pasture
sacred canyon
#

Ive tried with local rotation too, does the same thing somehow

#

the only thing that gives the intended result is "add local rotation", but I dont know how to do the maths for adding instead of setting

tropic torrent
sacred canyon
#

still, no idea what to do with it though

faint pasture
#

mess with it

glass blade
#

Can anyone help me with blueprint math? Given a base value of 130, how can I repeatedly subtract 30 so that each subtraction uses the previously calculated result instead of the original 130

dark drum
maiden wadi
grand pagoda
#

I'm having trouble figuring out how crouch is implemented by default in Unreal BP. Crouch and Uncrouch don't seem to trigger the OnStartCrouch and OnEndCrouch events. Are they supposed to?

grand pagoda
sacred canyon
#

but I managed to find a way with add local rotation and minus the difference between current rotation and where it should be

woeful mesa
faint pasture
#

If it's single player anything goes, you can do whatever you want. Multiplayer takes a lot more consideration.

woeful mesa
last peak
woeful mesa
#

Ok ok. On what exactly?

#

How it's executed?

crimson briar
#

The movement in MP is a little more complicated. From my limited knowledge with the CMC the client executes movement, saves some data in batches and sends it to the server for confirmation. If the server movement matches, everything is ok. If not, there is lag or rollbacks. It also does some smoothing and automatic replication of course.
So it depends if you took it into consideration when making your own movement system.

timber wind
fading raptor
#

Hello everyone, I've got a problem : I'm trying to make a "Press E to interact" widget show up and disappear when entering/exiting a box collision for a door. The thing is that it works for the exiting part but not the entering one. If it helps, collisions of the FP character are Query & Physics & the collision box of the door is Query Only

#

Thanks in advance !

timber wind
faint pasture
#

It'll be hard

#

Anything is technically possible

fading raptor
woeful mesa
woeful mesa
#

Thanks

faint pasture
#

It's basically the exact same as any other character system where you can see the character aim in yaw and pitch

spare tinsel
#

would it be correct that inside an actor i get objects (in the entire level and outside the blueprint actor) with a tag and do this? cause in any case targets are expecting a scene component and a primitive component

spare tinsel
mental bobcat
next hollow
#

Assuming you mean the goofy grey cube.
You can see, its cuz the shader has to compile.
Are you running a packaged build, cuz a packaged game compiling shaders seems odd.

mental bobcat
next hollow
#

Thats why then.
For the best results use a packaged build, or just the normal play in editor.
I know the explicit standalone has its own shader caching, so it has to compile more, thus more artifacts like you appear to be seeing.

mental bobcat
drowsy jungle
#

Noob here.. How to send variables to a different blueprint !?

#

I am building a counter that counts the amount of people I save reaching them to a certain area !

#

So the collision counter is between a follower blueprint and a trigger box. I have the functions done but how do I send these functions/variables to my first person HUD ?

mental bobcat
mental bobcat
harsh nebula
drowsy jungle
harsh nebula
sturdy arch
#

Im trying to make a 4 montage attack combo. It worked fine until my roll or hit react montages interrupts this, making me unable to attack as the variable will still be set to true. I tried to fix this by making the variable false when interrupted and resetting the count, but now when I spam left click, the interrupted is triggered and im stuck spamming the first attack. I can still do the combo but only after the notify is triggered, but I want to make it so I can spam left click while having it ignored as a interrupted. Any help is appreciated

crimson briar
#

And why is it breaking when spamming - I'm not sure, hard to ready anything on the screenshot

#

Hmmm, but you have the bool blocking entering into these montages so an attack shouldn't be able to interrupt another attack.

frozen hedge
#

Just a question, might just be me but why is the attack float set at the end after delay?

#

Does that originate back to the normal combat anim

merry sparrow
#

hey guys any one have idea of handling the loading screen for unloading a level full of actors and assets and load another level with a lot of actors in it !
i made it this way i put an empty level between these 2 levels to handle this loading process to be able to at least play the loading animation on the widget ! problem i am facing is the loading screen even freezing for short amount of time and i dont like this at all i need to make it way smoother

hearty rain
#

Are you using level streaming ?

#

Spawning actors is done on the game thread so it will be synchronous, hitches are unavoidable unless you spread the spawning over time

dark drum
crimson briar
#

I just noticed he is setting the attack bool to 0 on both interrupted and notify, so yeah, if the notify is not at the end, it will be possible to interrupt with another attack

#

I would move changing the bool from the interrupted of the attack montage to the start of the other montages that can interrupt it. It is not a great solution but it shouldn't bug out at least.

dark drum
#

Triggering montages can get complex. A hit reaction for example probably should interrupt an attack montage (and stop the combo), but doing a roll shouldn't be allowed during an attack.

It would look at using a gameplay tag container that could be used to help distinguish the state to determine if a montage can be played.

barren tangle
#

Hey do i wrongly use the Disable Input node?

#

inputs are still working

dusk shale
#

Hi, Im new to unreal and am having issues calling events/functions between BPs. I have this event in SLAMMesh Blueprint (img 1) which I am trying to call in OSCServer (img 2) but am not seeing it appear. am unsure of the correct approach, as few online options tell me to use functions but that also doesn't seem to resolve the issue

crimson briar
#

What is the note under the Event definition?

#

Ah I see, you marked it with pass by reference. But it doesn't work like that with custom events. I wonder if this is also blocking the call to the event, I'm not sure though

#

Huh wait, but it is the default behavior with arrays. Hm, I'm stumped, that's new

hearty rain
merry sparrow
hearty rain
barren tangle
narrow pulsar
#

Why isnt the gameplay cue playing the montage? And any prints i put inside print nothing either

hearty rain
#

Where are your print ?

narrow pulsar
#

I removed them because they werent printing

hearty rain
#

stupid question but have you got a slot to play the montage in your anim blueprint ?

narrow pulsar
#

yes upper body

#

if i give the montage to an ability it works but yea

hearty rain
#

Ok ! Well I can't really help right now, but any reason why you play that in a gameplay cue ?

#

not sure it's the safest place to do it

narrow pulsar
#

No particular reason, I wanted to play a sound as well in the impact location so thought might aswell do both montage + sound in a gameplay cue (also because never used them before so wanted to learn about them)

hearty rain
#

I may be mistaken but Cues are more to play sounds or vfx, but not montage. For hit reactions I did it in a gameplay ability

#

but well, I won't commit to this

narrow pulsar
#

well

#

I did notice that I can only make the animation play if i validate it as the server

#

kinda wantd to play the animation locally as well

barren tangle
#

Any idea why it doesn't work ?

next hollow
#

You didn’t pass in a controller.
Just looks like you got it confused, like a ton of people do.

barren tangle
#

if i put the game mode ui only, i cheat in a way

#

but before to call my function i set the mode to

#

so why the disable doesn't work... 😒

next hollow
#

Because you didn’t pass in a “controller” for the input.

#

Just a target

barren tangle
barren tangle
#

i have also tested with get Player Character

#

and i'm sure that pawn and character are valid

#

i check that as well

next hollow
#

Ok, so then let’s reset. Lol
Cuz idk any context around this.
Your trying to disable all player input, and it’s just not disabling?
Even with the controller connected.

barren tangle
#

exactly

#

but when i call the fonction : Set Ignore Move Input
from the controller, it block the move input, issue is i have also button input.. so i can't use that

#

that block the movement input but not all other input so that doesn't help

next hollow
#

Then what would disabling all input get you?
Then the button still wouldn’t work anyway.

barren tangle
next hollow
#

Oh, I miss-understood.
I thought you said that ignore movement, also disabled your button.
It’s that your button still works.

Get the “controlled pawn” from the player controller.
Getting the 0 pawn, could be pulling a different one, if multiple exist.

barren tangle
#

same result

#

is it because of the new enhance input system?

last peak
#

You can override inputs in your uis

barren tangle
#

does't the disable input work with the new enhance input system?

next hollow
#

I’m actually not sure.
It may not. Lol
But, the it’s easy anyway.
Just remove the input context.

barren tangle
next hollow
#

Should legit be “remove mapping context”, from the enhanced input component, same way as added.

barren tangle
#

it works but it looks like cheat 😄

#

because i feel like the disable input doesn't work in fact...

next hollow
#

I would’ve assumed it still worked, cuz the input still has to like “go somewhere”
It doesn’t just go to every actor in the world.

barren tangle
#

i will create a global fonction that will find all player controller, and enable and disable the mapping context for all of them. and i will call that fonction from there it will be better

#

it works, i will assume the node doesn't work with mapping context

white parrot
dark drum
barren tangle
#

I don’t put anything inside the character

#

Controller call function in the character but all input are managed by the controller

dark drum
narrow sentinel
#

so am I not thinking right but do Actors not have a cull distance ??

maiden wadi
narrow sentinel
#

so I've checked and the point light doesn't seem to have cull distance on it either

#

I spose I can put in my own thing where theres a sphere and when player overlaps with it I do the optimising stuff maybe

barren tangle
barren tangle
narrow sentinel
#

wait i'm looking for wrong thing

#

I want draw distance not Cull distance

maiden wadi
barren tangle
#

Controller manage the input not the function of the input

maiden wadi
#

What do you do when you add a boat to your game? More inputs in the Controller?

#

How about a plane? A new set of inputs?

#

Are you just going to switch on pawn type to delegate these out?

#

You're adding unnecessary complexity.

hearty rain
#

Sounds like it's going in the wrong order from an architectural pov

whole citrus
#

Can someone help me turn my blueprints into c++? I really don’t know how but my deadline is in 3 days

hearty rain
whole citrus
#

I now need to convert that into c++

#

I don’t have to use the c++

#

I just need the c++ equivalent

whole citrus
hearty rain
#

Are you already familiar with C++ in Unreal ?

hearty rain
#

Hmmm UPROPERTY inside a function sounds off, it should be in the header

whole citrus
#

But tldr I just need code equivalents of blueprints even if they’re dumbed down

#

Or just a little guidance really

#

Not asking anyone to do it for me

hearty rain
#

Perhaps you should ask in the "cpp" channel

whole citrus
#

Alr

white parrot
tired blaze
#

Hey guys and good morning! If anybody would help me out here, I would really appreciate it. I am making a widget that allows you to select your voice output and input devices. I am struggling how to "store" two strings at once while using a combo box. I don't wanna use the ID to display the device itself in the combo box (as seen in the fourth screenshot). Since the selected item is the string that shows the display name, I can't use it to change the device itself. I can only use the ID to change the device itself as seen in the second screenshot. How can I have it where I select the Display Name in the combo box while having the ID stored somewhere when selected?

narrow sentinel
#

so I have an issue where on game instance I create a loading screen widget when transitioning between Main Menu and Level but because the create widget required a owningobject and at the moment I'm passing in the current world when the main menu world unloads and main level loads the loading screen widget is destroyed in process

#

question is there any way to get around that or would I just have to recreate the loading screen widget on main level being loaded ??

dusk shale
maiden wadi
barren tangle
barren tangle
maiden wadi
# barren tangle i can read c++, why?

If you check out APlayerController::ProcessPlayerInput. You can see how the controller already delegates input to other classes when you place input in them. Like the Pawn or anything else.

It runs APlayerController::BuildInputStack which builds a list of UInputComponents to process in that order. The last thing added is the first thing process. So the order of preferred processing is anything that has been explicitly had EnableInput on it. Then the Controller itself. Then the Level Blueprints, and then the Pawn you currently possess.

This is all native and done already. Your PlayerController is already doing this. And you're narrowing all of that down into just the Controller and negating all of this structure that has already been done for you generically.

dark drum
maiden wadi
#

Technicality. But I'd argue this too. "The controller is more for logic that all characters would have."

#

It should be for input REGARDLESS of whether you have a pawn possessed or not.

#

If all characters can have it, then it should live in their parent class.

barren tangle
#

it's inside the controller, you said that the left part is done directly by the character

tired blaze
barren tangle
#

so we can avoid all the right part

narrow sentinel
#

hmm so seems issue is when the Main Level is loaded the player is spawned delayed and it seems this remove loading screen widget from screen which I don't want

dark drum
maiden wadi
surreal wagon
#

Does anyone know why I don't have any root shake patterns?

dark drum
# barren tangle

That BPI is just adding an unnecessary middle man. Just add the IA_Move to the character.

surreal wagon
barren tangle
#

Yes but when you build an UI controlled by the controller

#

if you want your UI to be controlled as well by the controller

#

you have to code that inside the controller

dark drum
dark drum
barren tangle
#

for example

#

i press pause menu. How do you controlle the menu with the controller?

#

you also put the event into the Widget?

#

i did that last year so i don't remember everything but i think it didn't work

dark drum
# barren tangle i press pause menu. How do you controlle the menu with the controller?

UI uses a different input system. If you set the input mode to UI only input actions don't even fire.

Widgets has its own nav system where it traverses the focus tree. (Granted theres more to it than that) You can also setup nav rules for what widgets it should navigate to when you press the various directions.

Widgets also need to be focusable and hit testable and it works out the box. (sort of)

maiden wadi
#

CommonUI actions. ❤️

dark drum
maiden wadi
#

Like in Atre. Our pause menus have nothing to do with PlayerController. The HUD widget itself listens for escape as a CommonUI action and puts it up. Then the escape menu itself listens for escape as a dismiss key like all other menus do. None of it from the adding of the widget or the dismissal is PlayerController routed.

white parrot
maiden wadi
# dark drum I still don't understand how that works. 😅

I'd check Lyra for their implementation. But you can do this with invisible zero size CommonButtonBase buttons in that menu too. Set a TriggeringInputAction or whatever it is on the button and it'll run it's OnClick which you can do stuff off of.

dark drum
maiden wadi
#

For the dismissal, yeah.

white parrot
#

Don't you just bind input actions manually when the menu pops up? Instead of having a controller and IMC

maiden wadi
#

CommonUI input actions, yeah. Not UInputAction Input Actions.

barren tangle
#

I tryied multiple time CommonUI and it was not working as good as espected.
So to be able to easily manage screen without CommonUI the things was to put the management into the Controller

white parrot
#

Yes, FUIInputAction (IIRC).

white parrot
surreal wagon
tired blaze
dark drum
dark drum
white parrot
dark drum
white parrot
maiden wadi
#

@white parrot@dark drum This is what I meant by the invisible 0 size button. You can use them to fake triggering actions in BP only without doing manual C++ binds.

narrow sentinel
#

anyone able to help at all, I'm trying to have a loading screen widget be peristent across level transitions at the moment main menu into main level. issue at moment is when the main level loads and the game mode calls the temp pawn to be spawned it's removing the loading screen widget before I've had chance to manually call for it to be removed

dark drum
dark drum
white parrot
narrow sentinel
#

so my loading screen widget is a cpp class and its being created and removed on Cpp side

narrow sentinel
white parrot
dark drum
dark drum
narrow sentinel
#

so it's the game mode causing it cause when it creates spectator pawn it's clearing all widgets from what I can tell

#

even is widget owner is the game instance

narrow sentinel
white parrot
white parrot
narrow sentinel
#

issue is though how would I keep it from being destroyed. Only idea I can think of is I get GM to call GI to create the widget

white parrot
#

@dark drum

static_assert(TIsDerivedFrom<TPointedToType<OwnerType>, UWidget>::IsDerived
        || TIsDerivedFrom<TPointedToType<OwnerType>, UWidgetTree>::IsDerived
        || TIsDerivedFrom<TPointedToType<OwnerType>, APlayerController>::IsDerived
        || TIsDerivedFrom<TPointedToType<OwnerType>, UGameInstance>::IsDerived
        || TIsDerivedFrom<TPointedToType<OwnerType>, UWorld>::IsDerived, "The given OwningObject is not of a supported type for use with CreateWidget.");
narrow sentinel
#

might have found the solution on google and it might stem from the function AddToViewport Function

#

hmm no still having the issue, i really think issue here is the GM is removing all widgets or something like that

dark drum
narrow sentinel
#

let me query in cpp channel as its starting to feel like it's a thing that can only happen with cpp stuff

surreal peak
#

Using the PC will get your the GameInstance anyway afaik

past hull
#

hello, I have an issue with my conde handling damage.
My NPC is supposed to chase the player when he receive damages. It work when I press W ( for debug purpose ) but not when I fire with my weapon. The generated event are the same.

#

when I fire with the weapon, the code goes to onFail on the AI Move to . I checked the Pawn and Target Actor and they are correct

narrow sentinel
#

so i've done a callstack thing on cpp to see if it's points to anything useful, the attached file is what I got

#

i found the issue

#

I forgot I put that on my game mode ages ago and well it turns out it was being called all along

timber wind
narrow sentinel
#

yeah it's working how it should now

#

it was all down to the face my GM was running a 5 second delay on begin play and then calling the loading screen remove function. I forgot I added this so weren't until dumping stack I can see the load screen unload function was being called by GM

maiden wadi
# surreal peak Using the PC will get your the GameInstance anyway afaik

Usually. Under normal circumstances.

Widgets can be owned by the GameInstance or a World.

90% of cases a widget will be owned by GameInstance. ONLY the cases where you pass it an invalid controller or a non local player, or a world where there is no GameInstance(editor utilities), will it be owned by a world.

maiden wadi
#

There's an override in...

narrow sentinel
#

it's fine I managed to sort the issue

#

it was me forgotting the function to remove loading screen was being called elsewhere

maiden wadi
#

This is from the CommonLoadingScreen plugin as a small example.

// Create the loading screen widget
TSubclassOf<UUserWidget> LoadingScreenWidgetClass = Settings->LoadingScreenWidget.TryLoadClass<UUserWidget>();
if (UUserWidget* UserWidget = UUserWidget::CreateWidgetInstance(*LocalGameInstance, LoadingScreenWidgetClass, NAME_None))
{
    LoadingScreenWidget = UserWidget->TakeWidget();
}

// Add to the viewport at a high ZOrder to make sure it is on top of most things
UGameViewportClient* GameViewportClient = LocalGameInstance->GetGameViewportClient();
GameViewportClient->AddViewportWidgetContent(LoadingScreenWidget.ToSharedRef(), Settings->LoadingScreenZOrder);```
narrow sentinel
maiden wadi
glass blade
#

How would you guys delay a function by 0.1? I cannot use delay inside functions and set timer even does not allow input / output to be passed

#

i mean i could save the result to a variable and use that but eh thats not the cleanest

#

its currently in my event graph which work fine but just wondering if theres a way thats more tidy

mental trellis
#

As long as you're only calling it once and you don't expect it to be re-entered, you can add an event to the main graph and have the function trigger that event. That event has a delay which then triggers another function after the delay.

#

It's a bit meh, but workable.

glass blade
#

Ty, that sounds very clean actually

#

Also just on a side note. why don't functions allow delay inside them

#

even abilities allow delay nodes

mental trellis
#

I can't remember if I ever actually tried this btw.

#

I hope it works!

#

Might be because it doesn't want to save the scope of the function. All the local vars and such. On a potentially "infinite" amount of function calls.

last peak
cobalt plover
#

Strange question, but has anybody experienced a large frame drop (120+ normal, 80-90 with drop) if they hold down their left gamepad joystick when pressing play for PIE? When I trace, I see an extra 4 ms taken by a GameThreadWaitForTask, which only shows connections back to FDeferredShadingSceneRenderer_InitViews.

#

My joystick has a pretty bad deadzone so it was happening without me realizing it. I've found if I stop, reset the joystick, and play again, my frames go back to normal. I can't correct it in PIE though, once it's started it doesn't seem to recover until I exit PIE.

#

Huh, if I detach/reattach from the player I can trigger it as well.

I'm guessing that the view is still being moved in the editor (even though that window is replaced by PIE), which is slowing everything down.

wheat citrus
#

For components on the same actor is it generally considered better to communicate by interfaces or by references if necessary with casting? Or is it still a case by case basis? As far as I'm aware since they are on the same actor they are loaded into memory with it so the casting memory penalty does not apply but interfaces might still be more modular, maintainable, and I#m not sure which is more perfromant.

dark drum
wheat citrus
# dark drum An interface is for when you have different classes that don't share a common pa...

I see. One thing that I was considering was that using interfaces seems to be more maintainable/modular. In the example below using the interface the actor can have any number of movement dependent components (could even get them by just getting all actor components if that is cheaper since message can silently fail) and removing or replacing one wont break anything while with the references if you remove one component the code breaks and when you add/replace them you also need to update the code manually. But I'm assuming the reference example is still common practice due to it being more performant?

wheat citrus
dark drum
# wheat citrus I see. One thing that I was considering was that using interfaces seems to be mo...

From experience over using interfaces will turn your project into a mess. Making changes can become a nightmare, sometimes making it difficult to find bugs.

You need to lean more into hierarchy and have a base class for your movement component. This would have the core functionality that all movement components should have.

Just to add, you can still use the 'Get Component By Class' from the owner to get a specific component.

Also in your interface example, the interface is pointless as the node you use to get all the components already returns it as that specific class type. That class should have a function that all children can override.

last peak
dark drum
#

If something depends on something else, it 'should' have the dependency. Trying to mask it will come back to bite you eventually.

last peak
#

Or proper hirarchy i guess, but these whole inheritance isnt all that great anyways

dark drum
last peak
#

The unreal engine version of that atleast in bp are components

wheat citrus
last peak
wheat citrus
#

i see, though wouldnt that just internally cast to the component then anyways?

last peak
#

Yes but casting to the component is fine

#

they are not heavy

#

Casting to a actor is aslo perfectly fine btw

#

So proper inheritance can be used for that too like pattym said

#

If you make a really lightweight base class with a few important buttons and only cast to that - thats perfectly valid

#

but the cast like you have it in your picture is kinda problematic

#

You are casting to a specific class of something down the chain, usually that has funny stuff attached to it like animation vfx and whatnot

wheat citrus
#

so a lightweight base class for the actor that would always have those componets?

last peak
#

If the thing your casting to is very light the cast isnt too bad

#

just try to decouple what you can

wheat citrus
#

Cause the movement component in the actual project is provided by a plugin that handles movement replication and predictionn so I cannot really modify it but it has some events that need to call other components evennts like that of the shooting component.

dark drum
#

I tend to use an actor component and custom uobject combo.

The actor component manages custom uobjects which I normally create a base class for and then create children from. This would have the core functions that the actor component would call.

dark drum
wheat citrus
dark drum
#

If it's like an abilities system then yea, it might fit. It's pretty much how GAS works.

wheat citrus
# dark drum The interface on the movement component makes no sense to me. Unless you plan to...

Alright, thanks for the advice!! I definitely see the unneeded middleman aspect. I was mainly considering since it would allow you compeltely swap out say the shooting compoent for one that works differently and still function while the references would break if you did that but I see now that inheritance is the better way to go about it by having a base shooting class that you call to and then creating a new child if you want different logic

dark drum
#

As another example, 'DialougeManager' would be a component, then it would manage a custom uobject 'Dialogue'. You can then easily change the dialogue how you like by just creating a new child of the dialogue class.

I've done an interaction system where the component had a 'focus response' object that I can swap out to change whether it should do an outline or change the material etc... and then an 'interaction event' object. The main interaction system comp knows about these base classes and manages them by calling the core functions.

wheat citrus
barren tangle
#

Hey is there a node to do that but with custom enumeration?

dark drum
barren tangle
#

ha but not based on the boolean

dark drum
barren tangle
#

yes?

dark drum
# barren tangle yes?

Yea, you should be able to connect the enum to the selector pin and it'll automatically create an option for each enum entry.

barren tangle
#

thanks

wheat citrus
barren tangle
#

that's cool 😄

flat coral
#

Hey wait, why can't I override GetOwner in an ActorComponent?

next hollow
#

Because you can’t?
You can’t override everything in BP

flat coral
#

That means there's a way to set variables as Final, how do I do that?

next hollow
#

More info?
Set as final?

flat coral
#

In C++ and other languages, final is a keyword that means an entity cannot be subclassed

#

sealed in C# I think?

#

They made a language that was supposed to split the diff between C++ and Java, and then ignored both and made a new keyword lol

next hollow
#

I believe you’re thinking of “private”?

#

Doesn’t let child’s overwrite it IIRC

#

But honestly never done that in my BO.
So BP may simply not have access to to do.

flat coral
#

Wait what. That's not what private means at all but the tooltip agrees with you!?

#

"Private" is supposed to mean that the variable isn't visible outside the class

next hollow
#

Pretty sure it’s offset by 1
Private is locked to that class.
Protected is child’s can mess with.
Public is everything can mess with?

flat coral
#

final is supposed to be "Subclasses can see it, but not override it" where private is "subclasses can't even see it"

next hollow
#

Oh, ok.
Then, yeah.
I don't think BP supports that in anyway from my understanding.

Its either read only, write only, or both, or neither.

#

From a quick lookup C++ does support that.
But, given BP is an extensions of C++, it doesn't seem like it would be of much help, if you can't ever actually change it in BP to begin with.

#

Since, C++, and BP specifiers are unique.
C++ final doesn't stop BP, and BP's version of "final" doesn't stop C++

flat coral
#

True but SOMETHING is putting that final in a BP class such that I can CALL "GetOwner" but can't subclass it.

next hollow
#

Thats a BP specific specifier.
Preventing implementation (thus can't override), and only being marked as callable

#

Looks like C++ is the same, but not with the final keyword.
Its just not marked as virtual

#

I also think overriding it, would confuse the hell out of the engine.
Since, code owner, and function ower would differ, and probably have a stroke.

ashen verge
#

can somebody help me

#

im new to game dev and idk how to code an ai that chases you while music is playing

#

i dont wanna do patroling because im gonna use my ai for chase sequences and stuff

hollow plover
#

Hey all, looking for some advice or help. I'm new to using Blueprints and am having issues accessing a variable from a component tied to a character from within my widget blueprint. I added a screenshot of current implementation, this works just fine when I hard code a variable (Num Slots) and attach my Event Pre Construct to that and then to the loop but this new way doesn't work as expected. Any thoughts?

slim lotus
#

Hey, does anyone know how to set up a Combobox(string) to Anti-Aliasing? Ive tried currently for 2 days straight and cant seem to get it to work. i can either get it to be off or on, but i haven't managed to set up a sequence where you can toggle between AA methods and have it work.

faint pasture
#

Also you don't need the first cast anyway.

#

Get owning player returns a playercontroller, you can just get pawn from it.

hollow plover
hollow plover
#

Alright for those that care, I found a different solution. Instead of messing with blueprints I made a new base widget class for my Inventory system and just created a BlueprintImplementableEvent that takes the variable I needed and is called in my Player Controller class when inventory is toggled. So I'm left with this in my blueprints instead now. Feel free to tell me this is good or bad , always learning.

maiden wadi
last peak
#

What you should not do however is put any code into widgets that is not directly needed to display or control anything in the widget

slim lotus
# maiden wadi Not fully following the question. Are you changing the engine's AA settings usin...

The combobox contains 4 buttons, one is Off, the other 3 are the types of Anti-Aliasing methods such as TAA. By clicking one of them it changes the method that the engine uses, if you select Off then the jaggies come back, if you select TSR the jaggies go away. I can get the combobox to show the list and I can select them and press apply with my settings apply button, but it doesn’t work because the blueprint sequence isn’t correct as I can’t figure it out.

maiden wadi
timber wind
dark drum
# timber wind How is it possible to open a level over more frames? I thought we just had the "...

As far as I'm aware opening the level isn't async. (hence why the game stalls if its a big level) However, you can change how you load its contents via level streaming, level partition, etc...

The idea is you keep the core level as small as possible so it loads very quickly and then let the other stuff do its thing. Depending on which above techniques you're using, one thing I've seen is using different maps/levels like layers that get level streamed in, leaving the core map pretty empty. They have the main stuff like terrain, large buildings and big features load first and then stream smaller stuff in.

Adding to this, you can frame slice your own logic, so if you need to spawn 1000 actors as soon as the level loads, do 100 over 10 frames instead. (arbitrary numbers)

Just because the level has loaded, it doesn't mean everything is done. You'd be surprised with what you can hide with a half a second fade from black. 😅

last peak
#

So much in gamedev is just smoke and mirrors haha

#

Ohhh what a cool cinematic fade in effect when you start the game - in reallity you need a bit to load all the stuff

hearty rain
#

Or these sequences where running is disabled while your character is walking and talking in a long corridor

crimson briar
#

Don't forget about tight spaces you need to slowly squeeze through. They carry AAA level loading all by themselves

narrow sentinel
#

out of interest if I have a static mesh inside of an actor and I disable tick of said actor, will that mess with the optimisation stuff the UE will do ??

#

or will that all still happen and would it purly just be stuff I put into the actor on tick event won't fire

faint pasture
narrow sentinel
#

The code from the actor class

#

Essentially just wanna make sure all the optimisaion stuff still happens even with tick disabled on the derived actor object

faint pasture
#

Does the parent class have code it runs on tick? Or is it just an empty Actor

narrow sentinel
#

Like actor not being rendered when player cant see it and being out of range of it etc

narrow sentinel
#

Which is empty and then i have my various wall meshes in a derived master wall actor etc

#

On master wall actor i have tick disabled

#

And just wanted to check by doing so it wont mess with the stuff UE put in place like actors not being rendered etc when not in view and player not in range of them etc

#

I assume its only local tick that would be affected by disabling tick on the actor

next hollow
#

Pretty sure, just none of that stuff is handled on the tick you can mess with.
There in different render ticks, and networking ticks sorta shit

next crystal
#

can someone give me 5 beginner projects to make over the course of 1 month

glass blade
#

guys how do you" clean" an array? Say we got an array that returns

1, Invalid value
2, Invalid value
3, valid value -> this is what we want to use
4, Invalid value

The completed pin in a for each loops fires all times even if we have a valid value

last peak
rose crest
white parrot
glass blade
rose crest
#

What do you mean by invalid value?

glass blade
rose crest
#

Just make proper logic to check validity in loop body

fathom hazel
white parrot
rose crest
#

He can't break if he want to clean array

#

Just is valid>add array element to temporary array

last peak
#

Its just odd that the loop returns when it hits a invalid value

rose crest
#

Can you screenshot

#

?

glass blade
last peak
rose crest
#

IsValid

white parrot
#

Because it doesn't, it just loops through all of the items

glass blade
last peak
#

Untill it looked trough all array elements

#

No matter if they are valid or not

#

I just tested it with a empty array / 3 invalid elements

rose crest
#

Let me guess, it's inside function and return node connect to loop body

glass blade
#

its in a plain event graph

rose crest
#

Screenshot it please

glass blade
#

no external factors, just the array has invalid elements

glass blade
rose crest
#

But how your validation logic works?

#

And what object? Actors?

#

Do you get console error for access none?

glass blade
#

how would you remove the invalid eleements

rose crest
#

Use IsValid node

glass blade
#

from the array

rose crest
#

Told you earlier

white parrot
rose crest
#

Use temp array to cycle old array, Validate and set old with temp array values

maiden wadi
glass blade
#

array is holding instanced structs

#

which has 3 plain variables

rose crest
#

...

#

You can't just valid check structure

#

Create your logic that verify values

glass blade
#

the float can be any number

rose crest
#

What do you mean verify float?:D

white parrot
#

I'm not sure where the issue is screen-shotting your logic, but if it goes straight to completed means your array is not initialized

maiden wadi
#

That depends on your system. What is the float for?

glass blade
glass blade
#

why does it matter?

rose crest
#

Ok, I ask simply. HOW do You know it's not valid?

glass blade
jade kraken
#

Hey peeps, I need a little support if possible. I've made my UI Widgets, and all of them work fine in PIE and Standalone play. But as soon as I package the game there are two widgets which refuse to work.

  • Crosshair
  • Interaction Prompt

Is there anything special that I need to do to get these to package and work properly?

All of my widgets are added the same way in the PlayerController, and then the crosshair is updated in the FPSPlayer at BeginPlay. But this does not seem to actually change the crosshair at all in the packaged build.

Same with the Interact prompt, this is updated to visible/hidden whenever the player looks or looks away from something that is interactable, but this doesn't work in the packaged build.

I've been racking my brain for a couple days so any help is super appreciated...

glass blade
#

because the very first item is an invalid value

#

if it would be valid, it would fire on loop body pin

rose crest
#

How invalid? How do you know? It will jump only if there's no array value, for example you remove value or index while looping

glass blade
#

then theres my valid value in between

#

the invaldi values

white parrot
#

But you said it prints the values, and also jumps straight to completed?

maiden wadi
# glass blade why does it matter?

If your float is used for alphas, it can be defaulted to something like -5.0. So your IsValid can be as simple as an IsInRange check for -1.0 to 1.0

If you float is meant for world coordinates, you set it to a max float value and check if it's that.

It's just a number, and the use case of the number determines how you create a validity check for it.

last peak
white parrot
#

IsValid doesn't work for structs

glass blade
white parrot
#

What happens when you print the array? how many members?

last peak
#

So you are looping trough a array of structs ?

rose crest
#

He does

last peak
#

Wtf ....

glass blade
#

idk exactly

white parrot
#

This conversation becomes more and more confusing by the minute.

glass blade
#

again,

1, Invalid
2, Invalid
3, Valid
4 Invalid

#

kinda like this

rose crest
#

You have to break struct and verify by your criteria

glass blade
#

because it will jump straight to on completed pin

#

which is not the proper behaviour

maiden wadi
white parrot
#

If it prints 4-5 of them, that means it does not go into completed straight away, but loops over all of them..like it's suppose to, I'm not sure what you're struggling with, instanced structs do have IsValid (unsure if BP-reflected)

rose crest
jade kraken
jade kraken
glass blade
#

Can i make like a new array from the original "flawed" array and only save valid values?

rose crest
#

Mm, cast on tick. Anyway maybe just try to switch cross hair on demand and pass struct with images that's inside weapon class

maiden wadi
maiden wadi
jade kraken
maiden wadi
#

I'm not certain for the interaction widget. But the crosshair makes me assume order of operations.

last peak
maiden wadi
#

Better question. How is it bad?

#

Are you aware of what it's actually doing? Why is doing it on tick bad versus doing it at beginplay?

last peak
#

becasue it casts each frame thats useless overhead
Instead you could just cast once then do a validated get

maiden wadi
#

And are you aware of what casting actually does?

last peak
#

Yes???

glass blade
#

it wont cast it again if its loaded into memory already

maiden wadi
#

No, you're not. You're repeating things you've read somewhere and it's wrong. There is no overhead to casting.

last peak
glass blade
#

once you cast additiona lcasts of the same csat will cost 0

jade kraken
glass blade
white parrot
#

So branch off from the completed pin based on the logic

maiden wadi
#

Casting, like ANY other pointer type causes linkers. This is not a runtime cost, this is a memory linker cost that keeps thing's classes loaded. This has NOTHING to do with runtime calls to a cast node. You can cause this without a cast at all where there is just an empty pointer to that type and ZERO cast nodes in the entire blueprint.

Cast nodes just also cause this because they have that output type.

A cast nodes EXECUTION is literally nothing but a pointer conversion and an if (Object) afterwards.

The act of casting a pointer is essentially free. The if statement costs more at runtime than a cast does because again it costs nothing.

last peak
#

Lets just do a typecheck every frame, why go for the better practice and do it once? Nah lets shove useless overhead in

glass blade
maiden wadi
#

You're aware that a validated get or IsValid node is actually slower at runtime than a cast node, right? Because it checks more things?

white parrot
white parrot
#

I know how the node looks, i mean in general what's going on.

white parrot
glass blade
#

but the tricky thing is, sometimes 0 can be valid

#

so i cannot elimintate 0 all together

jade kraken
#

What is the whole purpose of this bro god damn

white parrot
#

Show the entire graph my guy

rose crest
glass blade
last peak
rose crest
#

Why it's not connected?

thin panther
#

I believe

glass blade
thin panther
#

I'd be very surprised if validated get does a simple if object

last peak
#

Ah guess in both cases it doesnt matter and the difference is probably negligible

rose crest
#

It jumps because it do the loop which is NOTHING

rose crest
#

You don't think it's a problem?

glass blade
#

thats why im here

jade kraken
#

So... Why don't you have anything in your Loop Body then?

jade kraken
glass blade
#

even if i have loop body connected

#

since the first value is nothing

jade kraken
rose crest
#

It might act weirdly if you set for example index 2 skipping 0 and 1 in empty array

#

How do you initialize an array

#

Buy still it shouldn't and should contain default values inside struct

jade kraken
#

I fixed the interaction thing too

#

Authaer solved both things with one stone without even realising

maiden wadi
#

O.o How was that OoO?

#

It was on tick, or did I miss something?

jade kraken
#

I moved the interact widget initialisation to the beginPlay of the player and somehow that worked

#

I really have no idea

#

genuinely

#

PIE and Standalone was just gaslighting me into thinking it was all happening at the right time I guess

#

The OnTick update wasn't the real problem I suppose yalThinking

jade kraken
#

But thank you again, I can now carry on getting this game jam finished peepoClap

maiden wadi
#

Oo. Game jams. I should do one of those again sometime.

jade kraken
#

It's been really fun actually, I love rapid prototyping things

#

This is the one I'm doing in my downtime from Work and Uni: https://itch.io/jam/cybrpunk-jam-012

Although my deadline is tomorrow because I'm travelling away for the Christmas period

itch.io

A game jam from 2025-12-06 to 2025-12-28 hosted by Portland Horton. Welcome to the 12th CYBRPUNK JAM! The CYBRPUNK JAM is a jam dedicated to exploring the cyberpunk genre through games! We want to see the themes that m...

slim lotus
# maiden wadi Can you show what your current logic is atm?

Sorry for the late reply, I was asleep and had to do a few things this morning.

I'm very new to blueprints, but I badly want to learn to be good at this stuff. this is what i managed to throw together after doing some research from any sources i could find, but i fear that ill have to sit down and memorize every thing else before I'm able to make this work. I know they are wrong, which is why im here hoping someone can tell me whats wrong and how to fix it. if its all wrong then id like to know the proper nodes to use.

#

the left is the Settings widget variables and event dispatcher and the right is the graphics widget variables and event dispatcher focusing on the Anti-Aliasing.

faint pasture
slim lotus
white parrot
#

Isn't changing the AA just a CVar?

white parrot
#

sg.AntiAliasingQuality <num> if i recall

slim lotus
#

so this node? are there any sources you know of that i can read to tell me what to use this with? such as telling me what to inject into target or the return value?

white parrot
#

Its a CVar, you can get it's value, or set it's value

#

There are 3/4 levels of AA, excluding 0 which is off, that's all there is to it

slim lotus
white parrot
slim lotus
#

Btw is there any Udemy courses any of you would recommend i get? This is currently what i have.

rose crest
#

@slim lotus

slim lotus
rose crest
#

example

#

these hard coded values, but you can simply use it once and use your variable

slim lotus
# rose crest

Thank you thank you. i will go off and memorize this.

rose crest
#

eee

#

#nvm this select xDDD

#

i just asume if you text values

#

but you can simply just set int inside dispatcher and just pass int instead of text

slim lotus
# rose crest

How do i link this up with a combobox? do i do a switch on string? then branch off into the low, medium, high?

white parrot
#

Although it's better to broadcast all of the settings change into one place, valid yeah

rose crest
slim lotus
#

Okie, im trying to trial and error this so i can both make it work and understand this all. ill let you know if i make it work. 🤞

rose crest
#

you have 2 dispatchers there, but you really need only 1, inside widget with button

slim lotus
#

i have one in the settings widget and one in the graphics widget, the graphics is the "OnPendingAAMethodChanged", the settings is the "RecievePendingAAMethod" since the Settings widget is the parent to the graphics widget as im using a widgetswitcher in the settings panel.

rose crest
#

this receivepending.... is not necesary i think, but you might want to use it somehow later

jade kraken
# rose crest

How do you get the angular blueprint wires btw? Is it a plugin of some sort? :o

rose crest
#

electronic

jade kraken
#

Oooo thank you

#

It looks so much nicer for my brain holy moly

slim lotus
slim lotus
rose crest
#

and AGR V if you deal with animation blueprint etc, but its not necesary, its just good and speed up things if you already know how to setup certain things with blueprints

#

just dont spend too much time on tutorials, try yourself, if you want to do something just try searching for node and connect things

white parrot
#

What does the node graph assistant do

rose crest
#

auto connect pins, quic cut all links, wait, ill show you docs

white parrot
#

Sounds useful, thought it was the 5.7 AI shit

slim lotus
#

I got em all

fading raptor
#

Hello everybody ! I'm trying to make an object that reacts to light when being cast on it (a puzzle game with a moon and the moon light activates some pieces of a puzzle) and I can't quite find some ways to do it, does anyone has an idea ? Thanks in advance !

faint pasture
#

A trace from the thing to the light source to see if there's nothing in the way is much simpler.

#

You basically have no access to the actual lighting information for gameplay purposes so you'll have to effectively make your own system.

rose crest
#

Make overlap sphere that collide with light actors. If detected ray cast towards light actors with custom trace channel, use visibility as blocker

chilly root
#

Can anyone tell me why does "ai move to" give out a fail pin when i click my unit to move to the center of top side of a square mesh, but when i click anywhere else on the cube, it goes to it normaly?

distant grotto
#

Any ideas why activating physics on begin play or construct isn't working?

#

its for an item pickup, so I want it to physics interact with the environment but not the player, but still overlap with the player. Thats why ive got a physics collision with a player overlap collision as a child, I had trouble doing both with one collision

#

actually it works on construct but only for the server, afaik you dont need to replicate physics?

sick sky
#

Seems like it isnt

distant grotto
#

looks like collision enabled is overriden when I run the contruction script?

#

its enabled by defualt

dark drum
distant grotto
#

ah that probably explains why it spawns in the wrong place when i spawn it via the client

dark drum
#

Also, make sure you update collision before enabling physics. If it has no collision, enabling physics will fail. (Normally logs an error)

dark drum
distant grotto
#

thats what I did. Only issue ive got now is the actor always spawns with an offset on the client, no matter if its the client that calls the spawn rpc or the server

#

Is there a way to override the scene root in child classes?

#

if I turn off component replicates it spawns in the right place but without physics

faint pasture
#

physics replication relies on the root component being the thing

distant grotto
#

yeah i just tried that myself and it worked, problem is this is a child class so i cant set it as the root component

faint pasture
#

then change it in the parent

#

What's your goal here, why do GatherPoints have physics?

distant grotto
#

setting it as root in the construction script doesnt work right? or did i do it wrong?

faint pasture
#

What's your goal here, that the thing just starts simulating physics asap when it spawns or the map is loaded?

distant grotto
faint pasture
#

you shouldn't have to do anything in construction script and CERTAINLY not an RPC

#

begin play happens everywhere. If the goal is that it just starts simulating physics just do that

#

begin play -> set simulate physics

distant grotto
faint pasture
#

is a dropped thing a new actor spawn or the same actor but just detached and dropped?

distant grotto
#

new actor

faint pasture
#

just expose a bool or have the dropping code in the char set simulate physics.

distant grotto
faint pasture
#

why are you rpcing a spawn

#

don't

distant grotto
#

its enough to just set actor replicates?

faint pasture
#

spawning a replicated actor on server will spawn it on clients

#

Dropping an item should be like this:

Drop input -> run on server event
run on server event -> look at HeldItem or whatever -> spawn the item

#

inside your character or pawn

distant grotto
faint pasture
#

client doesn't spawn it

#

client asks server to spawn it

#

hence the RPC to server

distant grotto
#

yeah thats what i was doing

faint pasture
#

Inside Pawn:
Client:
input -> run on server event

Server:
run on server event -> ??? -> spawn thing

Inside Thing:
Begin play -> set simulate physics based on bShouldSimulate or whatever

slim lotus
#

I need a bit of help again. So i understand the AA quality, however im trying to set up the combobox(String) for the AA Method. i believe i need to use a "Execute console command" node, but im struggling to understand if i use a "switch on string" or "select string" node, or if i need to have multiple "Execute console command" nodes.

faint pasture
distant grotto
faint pasture
#

spawning is when play begins

#

begin play runs on begin play, on spawning, and on becoming relevent

distant grotto
#

oh nice

faint pasture
#

if you need to gate something by server or not just branch on HasAuthority

slim lotus
faint pasture
sturdy arch
#

Posted here a few days ago but managed to fix my combo, not the best fix though since there's a half second between attacking and dodging where i can't do neither. But it's my first time making this. Ive heard from someone I can do gameplay tags or make an array but im not sure how to implement either of this

faint pasture
#

nvm, delay might be fine for the combo reset

#

show what dodging does

sturdy arch
faint pasture
#

you could also just have a notify that represents when to reset attackcount

sturdy arch
#

Does that mean using more than 1 notify on montage?

hardy merlin
#

Any advice for profiling the performance of a particular blueprint? I've gotten as far as I can with insights in C++.

sturdy arch
#

Im using one that'll make me do another attack before that montage ends

hardy merlin
#

Short of putting scoped events on every C++ function it calls.

faint pasture
sturdy arch
past compass
#

coming from multiplayer if i change a blueprint's logic, but i have that item class maybe loaded from a past save game, and i load into the game witht hat blueprint that i just changed, will it's logic be updated to the blueprnt changes that i've made? im almost 100 percent sure that it SHOULD be changed, but im baffled at what is happening rn

dark drum
past compass
slim lotus
#

HA I DID IT. HEHEHEHEHEHE

#

The left image is TSR and the right is Off.

slim lotus
#

Now im stuck on scalability...

maiden wadi
#

Scalability is the same thing. It just has specific functions for each of them in the GameUserSettings.

slim lotus
#

is this not it?

maiden wadi
#

I would also recommend not going with a switch on string. But uh... sec

#

Do something like this. Much easier to repeat.

And when you get to localization, your stuff won't break because your strings change to Korean.

#

For your AA

slim lotus
#

okie, but i got 3 graphics quality levels (scalability), low, medium, high. hence the switch on string so i can toggle whatever i want from the combobox.

maiden wadi
#

Right but you don't need the string. It's an integer level. And there are 5 settings total. 4 if you want to leave out the overbearing Cinematic.

slim lotus
maiden wadi
#

Ah right cause..

#

Yeah. MSAA is in between them. You'd need an integer converter map to do that. You can also do a switch on int instead though.

#

Primary point is just to avoid the string switch that localization would break later.

#
  1. AAM_None UMETA(DisplayName = "None"),
  2. AAM_FXAA UMETA(DisplayName = "Fast Approximate Anti-Aliasing (FXAA)"),
  3. AAM_TemporalAA UMETA(DisplayName = "Temporal Anti-Aliasing (TAA)"),
  4. AAM_MSAA UMETA(DisplayName = "Multisample Anti-Aliasing (MSAA)"),
  5. AAM_TSR UMETA(DisplayName = "Temporal Super-Resolution (TSR)"),
  6. AAM_SMAA UMETA(DisplayName = "Subpixel Morphological Anti-Aliasing (SMAA)"),
slim lotus
# maiden wadi EG

This doesnt work. i dont see any visual change in graphics quality.

#

unless it wasnt meant to be for that...?

maiden wadi
#

I can't recall if that needs uhh.. What was the GUS thing. ApplySettings?

#

ApplyNonResolutionSettings, or something like that.

slim lotus
#

i got that.

#

unless youre thinking of something else?

maiden wadi
#

No, that should do the same thing as the scalability console command.

slim lotus
#

this requires a target, but i dont know what target should be inserted?

maiden wadi
#

GameuserSettings, same as your ApplySettings you're already calling.

#

I just checked that and it 100% applies those scalability settings.

slim lotus
#

oh... yeah i should have known that.

maiden wadi
#

ApplySettings internally calls the ApplyNonResolutionSettings though. So it shouldn't change anything.

slim lotus
#

yeah i dont see any visual change. the shadows are all still high.

narrow sentinel
#

So for some reason this code is returning false even though the hit actor does have the tag

maiden wadi
#

I have a vague memory of having problems with this in Atre a while back with scalability stuff, checking through what I'm running at the moment.

maiden wadi
narrow sentinel
#

class defaults is where I've done it

maiden wadi
narrow sentinel
#

If i have a selected actor in debug dropdown box and set the tag array with the tag would it only do it on that one instance ? Thats all i can think would be reason for my issue cause i defo set it on class defaults

maiden wadi
#

I don't believe so. That is just for debugging stuff if I'm not mistaken.

#

The only way you should be able to set one actor instance's tags is through the world outliner, playing in viewport and ejecting to select them.

#

At runtime anyhow. Or doing it in the world details panel while not playing with them selected, either way.

#

You're 100% sure you're hitting that class with the trace?

narrow sentinel
#

Pretty sure i am yeah, ill do what you suggestes tommorow though printing the tags and hit actor to make sure

fading raptor
#

Hello everyone again ! I'm trying to setup states for my Moon (via Booleans for now) but it doesn't work.. When I rotate the whole object, it stays at "no state on" despite having a Y rotation of 90 and then 180

#

does anyone has an idea ? thanks in advance !

#

the only time it really detects and tells me its state is on state 1 with 0 degrees

sand shore
#

but really you gotta investigate why your stuff isn't working

#

what have you tried, debugging wise?

slim lotus
#

@maiden wadi I figured it out.

warm hare
#

How can i achieve this? i Think I need to use geometry scripting, but I am unsure where to start. I have been trying to figure out how to make a twisting hallway for ages.

maiden wadi
fading raptor
warm hare
maiden wadi
#

Like are we talking cinematic or gameplay?

warm hare
# maiden wadi Like are we talking cinematic or gameplay?

Gameplay.

This is all they said about it, but its confusing. So I need some clarification

""Create a DynamicMeshActor blueprint (Geometry Script plug-in required);

Construct > Copy Mesh from Static Mesh (or you can create a mesh from scratch, you will need quite some vertices for smooth bend/twist);

Apply Twist Warp to Mesh. This one is tricky as you need to multiply alpha from timeline (with a sin curve here) to 1 or so deg added through transform API, and aim at the duration needed (6 seconds for a 180-degree spin in my case);

For the gravity part, it's a bit more complex to share but look at the free Directional & Planet Gravity plugin + GetDistanceAlongSplineAtLocation to change the gravity vector with a spline at runtime."

#

So I am confused if I need to create a blueprint actor for this or what?

maiden wadi
#

Yeah. you'd need a new BP from that DynamicMeshActor class. I'm assuming you need to copy that hallway mesh or meshes into a dynamic mesh. Then you can affect it with the twists.

Presumably you could put the spline in the same BP and twist it and use that to alter the character's gravity direction

warm hare
warm hare
maiden wadi
#

Spline points all have a transform that applies as a lerp between each set of points. So you'd probably want a few points that are rolled as they go down the hallway.

warm hare
maiden wadi
#

I don't think you need a spline mesh? I'm not sure on that though. If you're using the geometry stuff you can copy your meshes to that and twist that instead of morphing spline meshes with tangents. But either way might work.

charred berry
#

wth, BP in BP editor, all meshs can be selected individually, but putting BP into world from CB, and one selects all, is there a way to fix , and why is it different in BP editor ???

#

5.6

maiden wadi
charred berry
#

ok thx

white parrot
# slim lotus i got that.

FYI, changing overall scalability settings changes AA, so its a little redundant.
You could set it to 'Epic' on scalability and then off on AA, then it's no longer epic (or any of the options) or changing the AA and then scalability and then AA is overwritten.

slim lotus
hearty rain
#

Hey people, I'm using Gameplay Ability System and I would like to have a character broadcast that his tag has changed to everyone around. It's for instance when an enemy dies, its stops your character from targetting it. Any ideas on a clean way to do it ?

dark drum
hearty rain
#

I'll see into that thanks

hearty rain
#

Ok I did it kind of "backward" by binding to an event related to the enemy when the lock on ability is activated. Works but I don't really like the look of it

dark drum
# hearty rain

It's not to bad, however, I would avoid calling the 'Unbind All Events' from outside the class that holds the event dispatcher (unless its from some sort of manager class) as it will also unbind all the events other classes might have made.

I've ran into a few issues where I unbind everything. 😅 Took me a while to track it down.

hearty rain
#

Wait, this mean it can unbind the events that are being bound in other, external characters ?

#

I'm going to replace this by a "global event bus" message dispatch anyway, for even looser coupling

#

thanks for the heads-up, I wanted to avoid "floating unbound events"

dark drum
hearty rain
#

Makes sense now that you explain it this way. I'll just unbind this specific event then. Thanks !

#

I guess in the array it will be something like ThisCharacter->ThisCallback

maiden wadi
dark drum
hearty rain
#

better ?

main lake
#

Hey, 🙂
Is it possible to create a game :

  • made out of blocks like in Minecraft where you can break and place blocks but
  • the level is limited to a 256x64x256 (width,height, depth)
  • there's no procedural generation as the level will be built block by block by hand
  • in BP
  • Without it being laggy

please ? Because i received 2 different answers :

  • 1 saying it will be laggy because of the amount of blocks, so you need to go through c++ for optimization (when I tried with static meshes, indeed it lagged alot with less than that (I think I tried with 100x100x100)
  • 1 saying the 256x64x256 size isn't really that big, so it's doable in BP (this answer came from one of the creator / dev of the Voxel Plugin on their own discord)

So if that's possible to do in BP, what approach and things should I go for / know about to do my game please ?

next hollow
#

Perhaps instanced static meshes should work, at such a small scale.
You could also use the voxel plugin. 😛

dark drum
main lake
# next hollow Perhaps instanced static meshes should work, at such a small scale. You could al...
  • Are there limitations to instanced static meshes ?
  • So for instance, if I fill the whole grid of 256x64x256, it won't lag ? Even with the faces overlapping each other that shouldn't be rendered ?
  • I want to use the voxel plugin but the issue I have with it is it's doesn't support custom blocks such as stairs (I asked that 1 year ago, so I don't know if they finally added that option or not) 😬
next hollow
#

I shouldn’t lag.
Instanced meshes is what games use for trees.
And there’s a shit ton of those, with a ton more quality in comparison

dark drum
main lake
#

By how much could I increase that size and still not being laggy ?

dark drum
next hollow
#

Hard to say.
I didn’t even realize in my head, 256 would mean 16 million…

main lake
next hollow
#

Oh
Still 4 million. lol

main lake
#

Yeah

main lake
dark drum
white parrot
#

Placing 4 million blocks by hand? sounds fun

main lake
dark drum
main lake
dark drum
main lake
dark drum
# main lake Is there a prebuilt type in BP for tree data structures ?

Data is data, how you choice to store it is up to you.

You just need to make sure the manager class is able to work with what ever structure you go for. (Get and set data within it)

Personally, i'd probably go for an actor component for the manager class (placed on the game state) and then use a custom uobject for the chunks. This would store the blocks that should be in the chunk with their relative locations.

wide beacon
#

Hello, I'm trying to make 3 drones spawn in the box collision that's acting as a bounds, but I just cant seem to get it to work, I'd, appreciate any help thanks 🙂

main lake
dark drum