#blueprint

1 messages ยท Page 158 of 1

dawn gazelle
#

It's part of the init code you do in C++.

main lake
#

what's the method to get the character in the init in c++ ?

dawn gazelle
# main lake what's the method to get the character in the init in c++ ?

You get a reference to your ASC, call the InitAbilityActorInfo, and feed in the reference to the actors you want to use for the actor info.
InitAbilityActorInfo(OwnerActor, AvatarActor) where OwnerActor = the actual actor that holds the ASC and AvatarActor = the actor in the world you want to use as the avatar actor for this ASC.

#

Where and when you call it depends on your needs.

#

In the previous screenshots you have, you were setting it on Begin Play of the playerstate. As you were passing it the value "this" for both of the values, then you were basically telling it that the playerstate itself is the OwnerActor and the AvatarActor.

#

Now, the "OwnerActor" is likely fine as your PlayerState holds your ASC. The AvatarActor is the incorrect one here, but still as I mentioned before, Begin Play on PlayerState is not the right place to do this as you may not necessarily have a pawn assigned to your controller by the time Begin Play of PlayerState fires.

main lake
dawn gazelle
#

Yes, you need to use something that you know will have an association of the avatar actor to your player controller.
Here's an example of using PossessedBy in a Pawn which will work at least for setting the value on the server.

void AYourCharacter::PossessedBy(AController* NewController)
{
    Super::PossessedBy(NewController);
    if (NewController)
        if (AWerewolfPlayerState* WolfPlayerState = Cast<AWerewolfPlayerState>(NewController->PlayerState))
        {             
              if (WolfPlayerState->AbilitySystemComponent)
                  WolfPlayerState->AbilitySystemComponent->InitAbilityActorInfo(WolfPlayerState, this);
        }
}

The above again only does the server side, so if you want an appropriate reference on the client, then you need something for them too... You can use the OnRep of playerstate as this should be the right place where you first can get a valid reference on the client to the PlayerState in your Character.

void AYourCharacter::OnRep_PlayerState()
{
    Super::OnRep_PlayerState();

       if (AWerewolfPlayerState* WolfPlayerState = Cast<AWerewolfPlayerState>(PlayerState))
        {             
              if (WolfPlayerState->AbilitySystemComponent)
                  WolfPlayerState->AbilitySystemComponent->InitAbilityActorInfo(WolfPlayerState, this);
        }
}

These are both functions that you'd need to override.

#

So now, the first bit of code will trigger when the pawn gets possessed, verifies that the controller is valid, and attempts to get the PlayerState and cast it to your WereWolfPlayerstate.
Once it has the correct PlayerState, it checks if the ASC is valid, and if so, attempts to init the ability actor info with the WolfPlayerState in question (the owner of the ASC for the OwnerActor) and "this" being the character this code would be in as the AvatarActor.

The second bit of code will trigger whenever the PlayerState assigned to the pawn changes on clients, in case you handle multiple possessions of characters. So this one attempts to get the PlayerState and cast to your WerewolfPlayerState and once it has it, verifies if the ASC is valid, and then again, init the ability actor info with the WolfPlayerState in question (the owner of the ASC for the OwnerActor) and "this" being the character this code would be in as the AvatarActor.

#

If done correctly then using GetAvatarActorFromActorInfo when running on the server or the client executing the ability, you should have the appropriate avatar actor, namely, your character.

main lake
dawn gazelle
main lake
dawn gazelle
#

You'll need to include the .h file for your playerstate.

#

Also it's -> not a . not sure if that's something that your IDE would catch.

main lake
dawn gazelle
#

That's a your IDE problem. ๐Ÿ˜‰

main lake
dawn gazelle
#

Is your AbilitySystemComponent property under a public: declaration?

dawn gazelle
#

That could be why.

main lake
main lake
# dawn gazelle That could be why.

it does complain about "PlayerState" argument for some reason ๐Ÿค” Should I access the one through the PlayerController ? As it says "Member is inacessible" ๐Ÿ˜ฌ

dawn gazelle
#

Use GetPlayerState() instead.

main lake
hoary junco
#

are there any tutorials you guys can recommend about how to set up an equipment system? I'm not sure which ones to look into because the inventory one I followed turned out to be a complete mess... like none of it remains anymore every piece of it had to be stripped out and replaced because it was just entirely inefficient...

spark violet
#

Yo! hope yall are well, i was hoping someone could help me with a blueprint to make the door open away from the player? ive watched tons of tutorials but none have worked๐Ÿ˜…

hoary junco
spark violet
#

its only opening from one direction

hoary junco
# spark violet its only opening from one direction

so, there's a couple of ways you could do this... The simplest would be set up collision boxes on each side of the door, and depending on which one the player is standing in when they open the door, set the rotation of it that way

or you could get the player's rotation when they open the door and if it's between certain values on activation then that controls the direction the door opens

main lake
# spark violet Yo! hope yall are well, i was hoping someone could help me with a blueprint to m...

[This tutorial is filmed in Unreal Engine 5, but will work for later versions of Unreal Engine 4]

In this tutorial we will be making the door we created in a previous video open away from the player. We will be using a dot product to power this. We also make sure the door closes correctly instead of jumping around.

Fixed models (sorry about th...

โ–ถ Play video
spark violet
#

thank you for the quick response ill get started right now!

fallen glade
#

I have a folder full of a type of mesh, is it possible to randmly select one from blueprint without creating an array manually?

hoary junco
fallen glade
jaunty solstice
#

Need sone high level tips and suggestions for creating the blueprint architecture of a single standalone application.
There would be 3 main components.
1 The view which would contain all the actors lights and camera that would be displayed#
2 The core logic that would drive the display either a Niagara system or using the new Motion Design tools#
3 Logic to handle input from the outside world whether itโ€™s ambient light sound or motion.

Additionally the display should have a Debug mode that would display performance metrics.

Any tips or suggestions in creating the architecture?
Are there any projects or demos I could reference in the Marketplace?

agile pond
#

Best tutorials/courses/youtuber to look into the learn blueprints? I have followed a couple of tutorials already from Unreal Sensei but I get the feeling I am learning cookie cutter info, which is fine as I am so fresh but it would be handy to have more options

#

Any info much appreciated!

lunar sleet
#

Look up โ€œyour first hour in Unrealโ€ on the Epic portal, then the bp comms live training at the bottom of the pins here. From there you want to get out of tutorial hell, by building a game and only looking up specific answers to specific problems

agile pond
lunar sleet
agile pond
#

Well I have followed about 4 hours of tutorials now which is obviously more like 6-8 hours in engine so I might skip to the BP comms live training in here

lunar sleet
#

That is one of the few videos that are worth every minute

#

Itโ€™s a tad long, but youโ€™ll prly want to rewatch some of it several times

agile pond
lunar sleet
#

It helps you understand things that many rookies have a hard time with, like casting

agile pond
lunar sleet
agile pond
#

I should say "how and why" haha

#

I will start there then

#

that sounds like a great step

lunar sleet
#

It is a very crucial building block

scarlet urchin
#

How can i get the host player to always start in a specific player start and let the rest of the players randomly fill the others? I know about choose player start override but i cant figure out how to code it!

maiden wadi
abstract pine
#

suppose I want to search for PickUpItemEvent and see where it is being referenced like in a normal code editor, how can I do that but in blueprint editor

#

nothing show up in here

tawdry walrus
stray axle
#

can anyone help me with this? Im trying to get it so the force only reads the speed of the vehicle and not the rotation, howver adding a normalize makes it focus on one aspect but it only focuses on the rotation. How could I get it to focus on the speed only?

#

I can take another screenshot to show the entire thing if needed

dark drum
trim matrix
#

Hey guys, I'm understanding what is event dispatcher with my test code but it doesn't work at all what is event disaptcher exactly? and how can I use it?

dark drum
trim matrix
dark drum
trim matrix
dark drum
trim matrix
dark drum
trim matrix
drowsy kestrel
#

Hi when i went go open my third person blueprint this happened nothing is showing and when i went to window tab everything is selected. Is this bug? and how do i fix it?

dark drum
dull glade
#

Hey, I want to make a list, but only with diffent stuff and no clones, how do i do that?

dull glade
#

Thanks, but now it adds very random amounts of stuff to the list inside of the amount I set, I want it to be consistent

lapis oracle
#

Why there is not alot of vidoes about GMCv2 ?

barren tangle
#

Hi, I use the Set Actor Transform to move my actor. But it's not supposed to check if there is a collision before trying to move?

#

i put a block into the road and can go through it ๐Ÿ˜’

#

what is the purpose of Sweep and Teleport?

#

it was the sweep to activate

#

๐Ÿ™‚

jade junco
#

Hey guys, I am trying to mix and match a bit with blueprints and C++. I am trying to pass a blueprint player controller in to a C++ gamemode. I went to the Game Mode settings in the world settings, but all those selectors below Selected Gamemode are grayed out and unselectable. I have also tried exposing a UProperty but the selector there only allows me to select the first person map. I believe this is due to the player controller being an actor, rather than something like the input actions or mapping contexts which I have otherwise gotten working in this way, can anyone help?

#

the image is not from the gamemode class, but a camera pawn class I built from a tutorial, but I exposed the UPROPERTY there just to test if I could do it that way

waxen mason
wise ravine
#

Is there a way I can slow down the animation at when the train starts and stops. So it doesnt just come to an abrupt stop

jade junco
#

that worked, tysm

waxen mason
#

Yes, I believe you are trying to select the GameMode you made in C++, to be the gamemode used in world right?
If so, the logic is in the C++, but it needs a BP to be selected

waxen mason
wise ravine
#

Is there anyway to hold this logic in a variable?

odd kiln
wise ravine
#

because the world location of the root is changing everytime the code is run

#

so I wouldn't be able to just set it once

odd kiln
#

You could collapse this logic into a "Macro" or create an custom Event to set the variable, then call this Event every time you need to "update" the variable

spark steppe
wise ravine
spark steppe
#

it removes the execute pin

#

and should only be used for functions which don't modify any data

#

so calculations etc. where you just want to get the result, those are fine

wise ravine
#

when does the function get executed then?

spark steppe
#

whenever it's output is used

#

but beware... if you connect the output to two other functions, it will be executed twice

dusty monolith
#

Anyone?

scarlet urchin
#

When I spawn my characters in the main gamemode level, only the server gets a controller assigned, im not sure what i did wrong. Here is the code i am using.

steel shadow
#

๐Ÿ˜ฆ

#

i am insane?

sonic quartz
#

how to change this through blueprints in chaos vehicles

dusty monolith
#

Hey guys i am new to Unreal Engine 5 and i would like to recreate LittleBigPlanets Movement in unreal but i have no idea where and how to start. This is roughly what i want to recreate right now

https://www.youtube.com/watch?v=0UoqjBCvQAE

Get moving! Learn how to walk, run and jump your way through LittleBigPlanet.

www.LittleBigPlanet.com

LittleBigPlanet ยฉ2007 Sony Computer Entertainment Europe. Developed by Media Molecule. LittleBigPlanet is a trademark of Sony Computer Entertainment Europe.

โ–ถ Play video
maiden wadi
maiden wadi
# barren tangle what is the purpose of Sweep and Teleport?

To answer this directly, sweep will sweep the actor to the new location in a move. Possibly stopping it with collisions. Teleport is for physics like actors where you want to set the actor's location and not stop it's physics movements. Such as jumping through a portal.

maiden wadi
dusty monolith
maiden wadi
# dusty monolith what does that mean?

In the character class, there are settings to make that character stay on a plane. Imagine an giant invisible wall that the character runs along. It can't run towards or away from the wall.

dusty monolith
maiden wadi
#

I don't know the term layer switching?

dusty monolith
#

basically

#

the going backward and forward

#

in that video

dull glade
maiden wadi
#

@dusty monolith I'm not following what that has to do with layers. But the video is basically moving the character along a wall to the left and right. For example in the above settings I pasted if you put the PlaneConstraintOrigin at 0x0y0z and the PlaneConstaintNormal at 0x1y0z, this means that the flat part of the wall is facing the Y axis. This means that you can only move along the X and Z axis in the game. So you put a camera also facing the 0x1y0z or the 0x-1y0z direction and you have the same style of movement if you set up the controls to AddMovementInput to the right and left along the X axis of the world.

dusty monolith
#

I watched a tutorial and basically made the cam 2d (which im not satisfied with yet im gonna change that myself)

#

and then i removed the ability to move the cam and to move like in any 3d game

maiden wadi
#

This is one reason you don't use hard coded types in attributes. If you want to edit the list, you have to edit the list.

#

Once you hardcode, you just keep on going. :/

#

Then iterate the simple array of tagged attributes you have.

dusty monolith
#

Some things sound so complicated to me rn

#

i need to learn more

maiden wadi
#

@dusty monolithWhat you're trying to accomplish is pretty common movement. I'd check out some tutorials on any sidescrollers. Doesn't matter if they're 2D or 3D with Unreal as even Unreal's 2D stuff uses 3D movement constrained to a plane.

dusty monolith
#

in the real game you have 3 layers and you can only switch between those 3 layers

#

you cant go 4 layers forward or behind you can only move on those

maiden wadi
#

That's my bad I assumed this was for passing attributes between containers. You mean you have equipment that adds stats but to pass those to the setter you have to make a bunch of like MakeArray style nodes?

sonic quartz
#

how to change this through blueprints in chaos vehicles

granite elk
#

I was attempting to use open but unfilled array indexes
to return nothing on check, but the check seems to merely see
if the index exists not if something is in it. Is there a way
to check if an array index contains an actual variable or is merely
an unfilled index?

maiden wadi
dusty monolith
#

do you maybe have some video or something to read through about this topic or something similar to it

#

so i can get the hang of it

maiden wadi
dusty monolith
#

that looks very simple

maiden wadi
granite elk
#

thank you my brain was partially assuming that was the answer.

maiden wadi
#

@remote spire This is what I mean about the hard coded levels though. Rather than passing these as loose properties, your attributes can be a key to float. Key is up to you, GameplayTags are usually best but you can use GameplayTags, FNames, Enums, etc. Then you have an array of attributes.

Attribute.Health
Attribute.Mana
Attribute.Willpower

Then an equipment thing is just an array of structs that are one of these tags and a float.

Ring of Power
Attribute.Health
200.0
Attribute.Mana
500.0
Attribute.Willpower
10

For each attribute, get current attribute value and add the equipment value to your active stats.

#

Obligatory note that if you have even the vaguest of C++ ability to define Attributes with in C++, GAS would allow you to do this much easier by simply having each item have a GameplayEffect that gets applied on equip and removed on unequip.

stray axle
willow plover
#

My inventory slots on the left are not appearing for some reason...

#

This is the code that builds the inventory on a working version

#

and this is mine they are identical to what I see

maiden wadi
willow plover
#

you gotta be freaking kidding me I was on this issue for an hour

maiden wadi
#

๐Ÿ˜„ Happens.

willow plover
#

it's the smallest things that are the hardest to notice

#

it worked

stray axle
dark drum
stray axle
#

its sort of working but the values dont go into the negative, which means the vehicle cant reverse because it thinks its going forward

maiden wadi
#

Speed being negative is technically false.

#

Speed is a direction with a length that has to be zero or above. But you can convert that to your own by comparing it with the vehicle's forward direction.

stray axle
#

but I need it to get negative when reverse otherwise it'll just stutter whilst reversing super slow

#

how do I compare it? I saw a compare node but I dont know how to fit it into the bool of the branch

lunar sleet
maiden wadi
#

Do you only care about how fast the vehicle is moving forward or backward? EG it's local X axis?

lunar sleet
#

If itโ€™s floats you may want to use near equals

stray axle
#

I'll try near equals. Thanks

#

I'll let you know if I get anymore problems

maiden wadi
#

@stray axle You should consider something like this.

stray axle
maiden wadi
stray axle
#

all sorted. Tysm ^^

idle vessel
#

I need to make a system where the camera of my first-person character slowly zooms in/out based on the character's current velocity. My system so far works fine, but it can't reset back to normal when the character stops running. I would use timelines, but the character is going to have three different states of speed (basically walking, running and sprinting) and I feel it'll be too complex to make. Is there any way to make this work? Thanks!

This is how the system works so far:

stray axle
# stray axle all sorted. Tysm ^^

actually there's still a small problem. I think I need the vector length because at certain angles the negative goes positive and locks the brakes until im no longer at said certain angle

dark drum
drowsy kestrel
#

Hi im following this tutorial https://www.youtube.com/watch?v=hbWaFSnUq2w&t=941s for my inventory system but it doesnt work im guessing the interface isnt being called because when ever i put a break point in the interface nothing happens but when i put a break point in the pickup action input it immediately stops.

Welcome to 'The Ultimate Guide to Pickup and Drop System in UE5'. This video is designed to be your one-stop resource for mastering the 'pickup and drop system UE5'.

We'll start from the ground up, explaining the basics of the 'pickup and drop system UE5' and gradually move on to more advanced topics. By the end of this video, you'll have a sol...

โ–ถ Play video
steel shadow
#

Question, I have three separate overlap volumes attached to my pawns, they are one of the biggest performance costs in the game, do you think it would be more efficient to combine them all into one skeletal mesh (in blender) with three bones and just do onoverlap -> find closest bone and perform appropriate logic from there?

#

or even just a big static mesh and do some simple maths to figure out which part of the big mesh (corresponding to one of the original zones) was hit

maiden wadi
#

What isn't working exactly? The firing or the inputs?

trim matrix
#

getting the location from the scene seems wrong, I've never used these stuff

rotund barn
# maiden wadi What isn't working exactly? The firing or the inputs?

im so stupid, im sorry. i tested it with print string and realized i plugged it into the triggered and not the started pin, so it was firing continously which doesnt let the timer begin. do you know if there is a way to default all the nodes as expanded? as this isnt the first time a node automatically collapsed while reconnecting things which caused me to use the wrong pin.

stray axle
maiden wadi
maiden wadi
stray axle
rotund barn
stray axle
#

its very weird. Problem is the only way to fix it is with a vector length

sage heron
#

does anybody else's actor blueprint viewport get... chaotic and stuff vanish when you try to move things? (in 5.4)

rose gull
#

hey im trying to make a boat and attach the player to it and stuff, can someone help me w this part where i add torque to the boat and the boat sorta rotates in its own place but the players orientation isnt affected by the boats, like id want the forward axis of the player to be rotated in relative to that of boats so i can later limit players look at rotation. any idea on how this should be done?
the only thing i could think of was getting the actual difference and applying it manually to the player

oak gust
#

Ok I find it my node to convert the enum to string was wrong

#

I override the findplayerStart, to have custom spawner location, the problem is a player is on spawn spot the new player will never be spawned, how can I avoid this ?

carmine drum
#

i am trying to make a game and in this part you have to put boxes on top of eachother to climb, but the psychics of those boxes is really weird is there any way to improve it ?

#

do i have to change things here besides the tich to simulate it

#

the boxes fly all over the place, making them havier didnt seem to work either

ocean gate
#

Hi! So I'm trying to make a ricocheting laser in my 2D game using line traces, and I'm having an issue where it ricochets just fine from all surfaces except for when the laser is hitting a wall on the LEFT side of the wall, in which case the trace seems to set the end point to the completely opposite direction it should be setting it to (mirror vector by normal node seems to not work in this particular case?) Any idea what might be the problem? ๐Ÿค”

#

A bit messy, but this is my blueprint

#

This is how it should work, and does work from the right side;

#

this is what happens when the laser is fired towards a wall to the right of it;

#

this is the beginning part of the blueprints as well;

maiden wadi
#

So.. What you're trying to do is to take the hit surface's normal. And then take the hit direction inverted and rotate it around to the other side. It's doable with a small bit of axis math.

ocean gate
ocean gate
#

Ah! I fixed it, got the unit direction vector using trace start and trace end instead to plug into mirror vector by normal ๐Ÿ˜…

maiden wadi
torn inlet
#

I'm coding a system so when you press E it sends you into the closet to hide from a monster and when i hold E it gives me a bunch of buffering, thanks in advance

#

i think its firing every frame

trim matrix
#

how to put a random value inside of it (must be unique identifier)?

maiden wadi
torn inlet
#

where do i change that

dawn gazelle
trim matrix
maiden wadi
trim matrix
torn inlet
#

this?

edit:i fixed it thanks

maiden wadi
#

Yep. Add a trigger to that and do Pressed

dawn gazelle
trim matrix
#
// Initializing our Global Unique Identifier
UPROPERTY(EditAnywhere)
FGuid globalUniqueIdentifier = FGuid::NewGuid();
```Is that the way to initialize it? it sems to still be 00000000
maiden wadi
#

You wouldn't want to initialize it like that. That would set the same guid for every instance to the same thing. You'd probably need something like in PostInitComponents to check if the guid is valid and if not, generate a new one.

#

That said, if you're in C++ and trying to identify a UObject, Squids are kind of eehh. You already have an object's pathname which is entirely unique.

maiden wadi
#

What class is your Guid in?

trim matrix
#

in the character

paper galleon
#

What do you need the guid for?

trim matrix
# paper galleon What do you need the guid for?

For test purposes right now, but example:

I'm in an actor and I want it to have a unique Guid attached to it so that I can find which player are associated to this actor with the same Guid

maiden wadi
#

So, in Unreal all UObjects have a unique name pathed by their outers. Map.Actor.Subobject.Subobject. This name is entirely unique to that object because you cannot have two of the same named object outered to the same other object. This serves as a unique identifier for that object when a pointer won't suffice or even if you need to save a pointer as data like a save file.

#

That said what you're doing is better done by just setting the Owner of the actor to something like the player's PlayerState.

trim matrix
maiden wadi
#

They're great if you're insane and like using struct based inventory systems. ๐Ÿ˜‚

dawn gazelle
#

In terms of a player the GUID is kind of useless. There is already ways to uniquely identify players.

maiden wadi
#

Realistically though. No they're not useless. But in this context they are.

trim matrix
#

I thought that by putting the player has the owner of the actor, they would move along or smt weird like that

dawn gazelle
#

GUID is alright for identifying something that doesn't have some kind of unique identification to begin with.... What Authaer describes with using the path sounds like it would be fine to use for the majority of cases. If I understand right though, the only advantage that the GUID has in this case is that if you use GUID it doesn't matter what the thing is named.

dawn gazelle
#

I thought I did pretty well with "My First Inventory" using structs considering it was holding proc gen items.

paper galleon
#

Why wouldn't you use struct based inventory? UObjects just seem like a nightmare to replicate and clean up.

junior quest
#

I moved these bones a little and cant edit the location value for some reason. I want to move them back to 0

paper galleon
#

First off. How is your editor blue!!!

#

I wanttt

junior quest
paper galleon
#

Ohh nice.

junior quest
#

i think both that and electronic nodes make the editor easier to read

paper galleon
#

Did you click the little reset to defaults arrow?

junior quest
#

yeah

paper galleon
paper galleon
junior quest
paper galleon
#

Try closing and opening the asset editor again

maiden wadi
# paper galleon Why wouldn't you use struct based inventory? UObjects just seem like a nightmare...

On the contrary. They're fairly simple to do so. I have an add and remove function here that puts the item into an array and sets it for replication. You set using the replicated subobject list on the component, and in the item you return true for IsSupportedForNetworking. Then the component just has an OnRep array of the object pointers.

And yes UObjects are heavier than a struct in most cases. But as your UI Engineer I'm gonna wrap that shit in a UObject to pass to a ListView or Tileview anyhow, so there's going to be a UObject regardless and I'm also not going to manage that shit so every time you refresh the inventory I'm just going to spam a new bunch of objects. With the items already being uobjects I just pass them directly to the LV/TV widget.

Plus I get inheritance and such for specialized items if I really need it.

paper galleon
#

Nooo. Not inheritance again ๐Ÿ˜…

junior quest
#

They are still just barely off

#

I can reimport it but im worried about this for animations later on

paper galleon
#

This is the main reason I switched from UObjects. That, and I wanted a container within container system.

paper galleon
modest monolith
#

Why My bad boy is not spawning decals?

paper galleon
# junior quest

Off a tangent, I feel like the dials could be better implemented with morph targets or materials.

Bones and a full animation blueprint seems overkill for something like this

maiden wadi
junior quest
#

i know it can be animated without bones

paper galleon
paper galleon
junior quest
#

ye CryThumbsUp I just dont want to do anything complicated yet but I know that transforms being off will mess up character anims I make later

#

reimporting didnt work but i'll just work through it

#

maybe ill figure it out later

paper galleon
#

Yeah, shouldn't be that big a deal

paper galleon
#

Your rotations could also be off.

hallow garden
#

Hello Guys
i have a question if you don't mind .
i have multiple meshes that act like buttons ( whenever i click on one of them i added a timeline so they act exactly like buttons)
i added also a text render ( i wanted that every time i press one of the previous buttons i add a string to the text that's empty until i get to 5 max )
the problem i am facing is that when i use the append and attach multiple variable to each button and than set them to the text render after checking the len it doesn't work
and also its a bit heavy i guess since i am using on click event for every static mesh
is there a better optimized way to do it
Thank you

paper galleon
modest monolith
paper galleon
paper galleon
#

I'm actually serious ๐Ÿ˜†. Anybody thats been in here long enough will tell you the same thing

#

Tom Looman is also decent, but I personally wouldn't recommend it

modest monolith
modest monolith
#

he teaches you one thing, he creates 50 bugs

paper galleon
#

Lmao

hoary junco
#

anyone know any decent tutorials for making an equipment system? Doesn't have to be perfect but I'd rather it not end up like my inventory system where I had to completely rebuild it because none of it worked

paper galleon
#

Ain't heard of him

modest monolith
#

lol

paper galleon
#

Tweak values until you get the desired rotation. I think the forward vector isn't matching

#

Maybe add a few degrees to the final yaw value

modest monolith
paper galleon
paper galleon
hoary junco
#

like trying to figure stuff out on my own in this engine is like someone from 400 years ago being sat in front of a bunch of parts and being given a brief explanation of what a car is, then being told to build one... I'm going to need some kind of schematic to work off before I can do that....

paper galleon
#

Hmm... search for unreal engine inventory system on YouTube and pick any one. Roll with it for a while, then completely scrap it and make yours from scratch.

It'll give you some inspiration and ideas on how to do stuff. But I don't recommend following it to the letter.

hoary junco
#

well you said you know a few tutorials, which one would you say causes the fewest bad programming habits? like what's the least bad?

paper galleon
#

If you want a grid based inventory like tarkov, that's a bit more difficult. But still doable

hoary junco
#

oh I already have my inventory system done I managed to replicate the SkyUI skyrim style of inventory

#

I'm more getting into actually equipping items and that kind of thing

paper galleon
modest monolith
#

@paper galleon

paper galleon
#

Yay, it's facing the right way

paper galleon
#

You can try Ryan Laley

#

Again, not recommended

hoary junco
paper galleon
#

Exactly. Lmaoooo

hoary junco
#

I was in here for days talking to people trying to get it all fixed until basically this chat ended up being the actual tutorial...

#

granted my blueprints look like an absolute fucking mess but... they work I guess...

modest monolith
#

Now I have to find out how to reduce the size vertically... no mattet which size I tweak, the decal gets screwed everytime

paper galleon
modest monolith
#

Okay it was the X.. found it

paper galleon
modest monolith
paper galleon
#

Store all the materials in an array, then do random int in range

#

Min => 0
Max => ArrayLength - 1

Use that to get a material from the array and pass that to your decal creation node

ancient siren
#

how would i get the wish direction of my player? (ex. hold w = 0 degrees, w & d = 45 degrees, ect.)

#

i need the dot of velocity and the wish direction to achieve what i am looking for

#

and i have the velocity, but im not sure how to get the wish direction

dawn gazelle
# hoary junco but I don't know where to start... that's why I'm looking for a tutorial...

I doubt you'll find a tutorial that matches exactly what you're looking for. Instead, break down your problems into smaller bits and work from them.

If you have an inventory system, then an equipment system shouldn't be much more than an inventory with slots that only accepts specific types of items. So you'd need some additional logic to check that the incoming item is of the appropriate item type for the desired slot its trying to be put into.

The big difference is that you'd probably need to override what happens when something is moved into or out of the slot in that inventory, namely, that's where you'd have to provide the effects from equipping or removing any item present, setting any values on your player etc.

So moving something into the inventory:
Check if the thing coming in is the correct item for the slot or find an appropriate slot > If so, check if something is in the slot > there is something > remove its current effects > in either case swap the items from one inventory to the other to the appropriate slots (in the case of an empty equipment slot, set the source inventory slot to empty) > have equipment inventory then read the item data, and apply its effects.

#

How you handle this VIA UI is a whole additional level, but what I've described above is the logical system of equipping something.

#

If you're trying to emulate skyrim's equipment, then when you click on a specific item to equip it, it knows the item type, it can reach out to the player's equipment component, find the appropriate slot for the item, and start the process I mention above.

hoary junco
# dawn gazelle I doubt you'll find a tutorial that matches exactly what you're looking for. In...

well I already have some of that functionality in there. Like when I select an item in my inventory it can either drop the item, or you can use it and if you use it, it doesn't create an actor in the world, instead it's removed from the inventory and it calls a blueprint class that I can specify for each item as its item effect.

Also I have as a part of item data its item type, which means my menu that has "use, drop" as options, "use" gets rewritten depending on the item type so the word changes to "equip" if the item is a weapon or armour item type (also while I don't have items of these types yet, edibles will say "eat" drinkables will say "drink" books will say "read" spell scrolls will say "cast" other stuff just says "use" and items that can't be used won't have the button appear at all)

the more specific part I'm looking for is the actual equipping part, like I have an asset pack with some premade weapons and shields, and I have a sword item that has a sword mesh on it, I want to tell the game when I hit "equip" to put it in my hand and switch my animation set to another asset pack I downloaded which has animations for walking/idling etc when you have a weapon in hand

dawn gazelle
#

Ok, so again, that would be handled by the equipment component you'd probably build. When you've moved something into that "equippped" slot, that component can then do the logic for handling what happens when that particular type of item is equipped, such as setting the chest or pants mesh to what that item is supposed to display, or remove the old one.

#

"The Actual Equipping Part" isn't what you're looking for - you're describing the visual representation of the "Actual Equipping Part" which is the logic underneath that determines whether or not something is actually equipped. Once you're able to determine when and if something is equipped, then you can have it do whatever you need to when it is equipped based on the values of the equipped thing.

#

Equipping a sword > Hand slot is Empty > Declare this particular sword is in the slot > Inventory reads values for this particular sword > Applies mesh, sets stance, etc based on the values associated to this particular sword

hoary junco
#

fair enough.. is there a way of capping the size of a map? I know you can with an array but I'm wondering for a map because what I have in mind is

have a map of item subtypes to items

when I hit the equip button it looks through the map to find the relevant item subtype
if something is written to that entry, replace it with the thing that was just equipped but don't remove it from the inventory array
write something to the inventory system that checks the equipped items and marks every item in the inventory that is found on the equipment map

does this work?

carmine drum
dawn gazelle
# hoary junco fair enough.. is there a way of capping the size of a map? I know you can with a...

I don't think you can limit a map, but you're limited by whatever the Key is....
Excuse this... but this is just me rambling about what I think... It may not even be coherent XD
Let's say you did use a Map of GameplayTag (Subtype) > Item (Whatever your item reference is)...

Your items would be declared with a GameplayTagContainer that contains the appropriate slots the item can go in. Why a container? So you can have items that can go in multiple places like in left or right hand.

So this could work well for "Equipped.Chest" and "Equipped.Legs". Easy to find what is equipped currently using a find in the map, and add something to the map to overwrite what is currently equipped in the particular slot. Your chest and leg items would only have the single entry of "Equipped.Chest" and "Equipped.Legs".

If you wanted to be able to hold different things in both hands, then you can have tags like Equipped.Hand.Left and Equipped.Hand.Right.
So this could allow you to have dual-wielded swords as they could be just tagged as "Equipped.Hand" and can be valid for either slot, so long as one of them is free.

Trouble is now you're having to think about two-handed items as well, so then you'd probably need another GameplayTagContainer that could reference multiple tags that would need to be removed to properly equip the item - so this two handed sword would need to remove anything in Equipped.Hand.Right and Equipped.Hand.Left. This also means you probably want another tag that distinguishes that the item is taking up both hand slots, let's call this Equipped.Hand.Both. So then this 2HSword would also need to remove anything in Equipped.Hand.Both. Any single handed weapons when equipped would also need to remove Equipped.Hand.Both as well.

Yea... It could work ๐Ÿ˜›

#

it's been a while since I modded skyrim, but I do recall they used a similar system for their items.

hoary junco
# carmine drum

where is the camera positioned in relation to the spring arm?

hoary junco
carmine drum
#

please dont tell me it should be connected

#

and im a dumbass

hoary junco
carmine drum
#

fuci

hoary junco
#

XD the hitbox of the camera is the end of the spring arm

dawn gazelle
#

Can do fun stuff with them as well, like switch on gameplaytag

paper galleon
#

GTs are God's answer to enums and bools

carmine drum
paper galleon
#

A thousand blessings on whoever thought of tbem

hoary junco
#

also I did have a plan in the UI when it comes to dual wielding and even weapon/shield combos to have it more accessible to those who are left handed or, even those who just want to mess with different combos, like in skyrim you can only equip a shield in you left hand, I kinda wanted to make it so if you want to.. you can equip a shield in the right hand and your weapon in your left, but if you have 1 shield equipped in 1 hand and you try to equip a shield in the other hand, then it won't let you so you can't do double shield

hoary junco
carmine drum
ancient siren
paper galleon
hoary junco
# carmine drum yeps

if you want to move the camera into a different position use this option in the spring arm

carmine drum
hoary junco
hoary junco
carmine drum
hoary junco
carmine drum
#

so, did i fucked up something or no ?

hoary junco
# carmine drum

instead of worldstatic try changing the collision of the walls to block all? I'm trying to find the issue here because I just did the same process as what I told you and it's working fine

carmine drum
hoary junco
carmine drum
#

thats how i see

hoary junco
hoary junco
carmine drum
hoary junco
# carmine drum yeps

so when you have the "instance" thing selected try searching in the search box below for "collision" and you should see something that says "collision presets" as one of the results

hoary junco
#

see it second from the bottom there

carmine drum
#

mb

hoary junco
#

yeah set it to block all and see if the camera reacts to it

carmine drum
#

nope ๐Ÿ˜ญ

hoary junco
carmine drum
ancient siren
#

how do i find the rotation of the keys i pressed without velocity? like if i press S and D i get -45 degrees, but if i only press W i get 0 degrees (ect.)

hoary junco
obtuse kraken
#

Can anyone help me with my collision overlap detection. the collision true or false booleon gets inverted when my collision box collides with 2 actors at once, saying its true when collision overlap ends and false when currently overlapping. Resets itself when the collision box isn't overlapping anything. Will post code in a few seconds

#

Few mins actually

carmine drum
#

the thing is the vent its really thing, and the camera i think is higher then the height of the vent, it doesnt automatically fixes itself right?

#

like it doesnt resize itself

#

ah doesnt matter, i even lowerd it more

hoary junco
# carmine drum

do you still have the default 3rd person map somewhere? If so can you test the camera in there to see if it will go through walls on that map or not?

dawn gazelle
#

C++ ๐Ÿ˜›

hoary junco
obtuse kraken
#

Can anyone help me with my collision overlap detection. the collision true or false booleon gets inverted when my collision box collides with 2 actors at once, saying its true when collision overlap ends and false when currently overlapping. Resets itself when the collision box isn't overlapping anything. Thanks.

hoary junco
#

you can separate segments of it into functions

#

that does clean it up a bit

trim matrix
#

don't learn c++ just for that, it's not even usefull for that

hoary junco
#

especialy if you have bits of code that are repeated a bunch of times

carmine drum
#

but its basically the same cam as the default third person one

lunar sleet
#

Learning C++ will be useful no matter what, in this engine

carmine drum
#

as i said the vent is pretty small idk if it metters

lunar sleet
#

Epic just needs to add the ability to <insert numerous things here>

carmine drum
#

epic still better then unity tho

hoary junco
carmine drum
hoary junco
ancient siren
#

so W would be zero degrees because its facing forward

#

A would be -90

#

D would be 90

#

W and D would be 45

#

yk?

hoary junco
dawn gazelle
#

I think it really depends on how you're retrieving the values and getting them in the first place... Take this as an example if you were able to sort them out by an enumerator...

hoary junco
#

@dawn gazelle hey, how do you make your own custom gameplay tags?

dawn gazelle
#

Ideally would probably be native tags in C++ ๐Ÿ˜›

hoary junco
dawn gazelle
# hoary junco what do you mean by this?

It's a means of declaring your tags in C++ instead of the editor as these are effectively defined in an ini instead. This also then allows you to potentially use those tags in any C++ code you may have.

#

.h

#include "NativeGameplayTags.h"

UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_Some_Tag)

.cpp

#include "YourGameplayTagHFile.h"

UE_DEFINE_GAMEPLAY_TAG(TAG_Some_Tag, "Some.Tag");
carmine drum
#

@hoary junco yea...

#

now i have this problem

#

wait

#

wait wait

hoary junco
# carmine drum <@178201472796721152> yea...

I mean what I meant by setting it to first person is making the character mesh invisible and changing the position of the camera to something more akin to a first person position...

obtuse kraken
carmine drum
obtuse kraken
#

Im getting desperate

carmine drum
hoary junco
dawn gazelle
hoary junco
dawn gazelle
hoary junco
dawn gazelle
#

Anywhere you like.

hoary junco
#

how does the engine know how to load them then?

dawn gazelle
#

It's not about loading the files specifically.

#

They get compiled into your project.

#

They get added to the "project files". You compile. Engine now knows that they exist.

#

You can't just create some files with those names without compiling and hoping Unreal knows what they do.

willow plover
#

so I'm trying to add the selected item's image to a button background(The one darkened) I'm not sure why my code isn't working

hoary junco
thin panther
hoary junco
thin panther
#

A gameplay tag container is just essentially an array of gameplay tags

hoary junco
#

like how "cancel" is nested in "action" which is nested in "UI" like am I able to do my own structure like that?

thin panther
#

That's just the nature of a gameplay tag

#

when you define a tag it's like "MyTag.MySubTag.MySubSubTag.MySubSubSubTag.MyLeafTag.JkAnotherSubTag"

#

Each one of those things between a . is one of those drop downs

#

So in this case you would be able to define UI.Action.MyAction, and MyAction would appear under that Action tab

#

it's just a heirarchy

dawn gazelle
# hoary junco and I'm guessing these dropdowns are gameplay tag containers? Do I need to defin...

This the hierarchy of your tags. This would look like this in C++:
.h

#include "NativeGameplayTags.h"

UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_UI);
UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_UI_Action);
UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_UI_Action_Cancel);
UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_UI_Action_Confirm);
//etc...

.cpp

#include "YourGameplayTagHFile.h"

UE_DEFINE_GAMEPLAY_TAG(TAG_UI, "UI");
UE_DEFINE_GAMEPLAY_TAG(TAG_UI_Action, "UI.Action");
UE_DEFINE_GAMEPLAY_TAG(TAG_UI_Action_Cancel, "UI.Action.Cancel");
UE_DEFINE_GAMEPLAY_TAG(TAG_UI_Action_Confirm, "UI.Action.Confirm");
//etc...
thin panther
#

The hierarchy also gets nice, because you can say respond to tags that are UI.Action, and not care about what action it is, for example

#

They're also pretty fast, as internally they are just essentially numbers, making their comparisons quicker than say, using strings.
Enums are also good, but they lose the benefit of global accessibility, scalability and hierarchy

hoary junco
#

ah ok... so in this case, if on the sword I have the gameplay tags of
Equipped.weapon.onehanded
then when I hit equip on an item, I check its gameplay tags, if it's equip.weapon I put it in the weapon slots, if it's .onehanded it brings up a UI element that asks if I want it in the left or right hand, and depending on the answer it can either equip it to LeftHandSlot or RightHandSlot key on the equipment map based on the selection, and check if the twohandslot key is filled, and if it is, empty it

am I on the right track with this?

thin panther
#

Yeah, something like that

hoary junco
#

would I make the gameplay tags C++ class public or private?

#

or do I not bother with it?

#

@dawn gazelle where in these 2 files do I put the declaration and the definition of each of the tags?

stoic ledge
#

those functions are both declared and defined, although they do nothing

ancient siren
#

i have a wonkey system to get degrees of rotation without moving, but when it gets to the one where A and W are held (so it would be -45 degrees), it just defaults to 0 degrees... anyone know whats happening?

hoary junco
paper galleon
#

You don't need the class. The tags are declared and defined using macros

hoary junco
paper galleon
hoary junco
paper galleon
#

Yep.

ancient siren
#

and its not a problem with that line because i tried rearanging it too- it seems to only be the second to last one

ancient siren
#

like.. ever......

stoic ledge
ancient siren
#

and no matter the order, this segment gets skipped

#

it never returns

#

but theres also something wrong with it going -45 degrees as well

stoic ledge
#

so it goes to -90?

ancient siren
#

yeah

#

even when im holding w and a

stoic ledge
#

just never -45

ancient siren
#

yep

#

and everything is right with the inputs

#

i tested all of the "moving" bools in a print string

hoary junco
ancient siren
#

@stoic ledge any ideas?

stoic ledge
ancient siren
pastel apex
#

unsure if it goes here but will ask. How do I go about casting a hitbox that can return the hit result of all objects within the hitbox?

stoic ledge
#

what owns the hit box and who needs to see the results?

pastel apex
#

basically player does an attack

#

casts a hitbox

#

and the results of who got hit will receive damage based on player stat

thin panther
#

so a box trace?

pastel apex
#

right

#

but can it hit multiple targets?

thin panther
#

Multi Box Trace

dawn gazelle
thin panther
#

Make sure the things you want are overlapping the trace channel though

#

Multi trace still returns on a blocking hit

pastel apex
#

right i was doing that with sphere

#

and my issue was (i did it with object)

#

it would consider its individual components as hit targets

#

so it considered the skeletal mesh and the capsule collider as hit targets

hoary junco
#

GameplayTags wasn't there before

dawn gazelle
#

Oh yea

trim matrix
dawn gazelle
#

No, I didn't mention that ๐Ÿ˜›

trim matrix
hoary junco
dawn gazelle
#

OHhhh

#

ok

hoary junco
#

@trim matrix also yeah it's what they told me to do, that's what "I found out" means, aka I found out what to do because someone told me

trim matrix
#

oops, true

pastel apex
hoary junco
#

god this whole file is such spaghetti... I hate it...

stoic ledge
pastel apex
#

well albeit as a separate BP that can be spawned for a moment of the animation

#

the issue is i'm trying to make it work with GAS so i thought i can avoid that and try and use the integrated trace

#

though i guess that's just meant for continous collision like say sword swings

trim matrix
#

I've seen worst lol

#

๐Ÿฅฒ

hoary junco
#

it's the most messy blueprint I have in my game at current XD

#

doesn't help I programmed most of it when exhausted so I was just at the "fuck it I don't care about putting everything in functions anymore"

stoic ledge
hoary junco
#

@dawn gazelle if I add a gameplay tags variable to a blueprint, and I set its default value to a tag.. does that mean I don't have to do anything with it in the actual blueprint? It just always has that tag now?

dawn gazelle
#

So if you make a child of that blueprint, it too would have the same default gameplaytag value until you change it.

hoary junco
#

ok cool. So the fact I have the 1 handed weapon tag on sword means I could make a bunch of children from that of mace, dagger, hatchet, etc and they would all get that tag

#

obviously I'd probably rename sword to weapondefault or something and make a new child class as sword for sword specific data

#

wait what happens if you make a child of a child? like can you just keep splitting the tree like that?
so weapondefault is a child of item
sword, mace, dagger etc are children of weapondefault
bronze sword, iron sword, steel sword etc are children of sword

and then just continue that down?

dawn gazelle
#

Yep, but I hope you're using DataAssets instead of Actors.

hoary junco
#

unfortunately no.... that said, most of the "Item" parent actor's data is done through a component.. so could I put the component on the dataasset and reparent to it?

#

or would the dataasset be the child in this case?

#

idk I've not run into data assets before

dawn gazelle
#

A PrimaryDataAsset would be the parent which contains all the functions and variables that you may want to use from any single definition of an item.
You can create Data Assets off of it which then utilize those variables to create the definition of an asset. You can now use that asset everywhere to reference that particular object without having to spawn it or use a class reference.
You can also make a child of the PrimaryDataAssets class itself, allowing you to create further definitions of a certain type of Assets, which can have overridden functions, additional functions and more variables.

hoary junco
#

and are there any other ways that changing this would mess up the code?

dawn gazelle
#

Maybe just continue doing what you're doing then ๐Ÿ˜›

hoary junco
dawn gazelle
#

More difficult to manage, less flexibility, requiring you to spawn instances of actors to utilize their functionality.

hoary junco
#

I'd probably need help to reconfigure stuff to use the new system :/

lunar sleet
#

Refactoring is life

hoary junco
#

also... how do I create a map for the equipment slots? Like for the variable to create the map to begin with what goes in the key side?

dawn gazelle
#

GameplayTag

#

The tag would be the identifier of the slot as you want, so like Equip.Chest or Equip.Legs

#

the key then is the definition of whatever your item is, which hopefully agian, isn't an actor object.

#

Otherwise, you're spawning a ton of actors that don't need to exist as actors if they're being carried in your inventory.

hoary junco
#

well that's the thing.. at current while the items themselves are actors, when being used in the inventory all I do is get the name of the actor, run it through a data table, get the item data for an item by that name, then use that data to populate the inventory

#

like when an item exists in the world it's an actor, but when I pick the item up the actor is destroyed and instead the actor's data is fed into the system.. the only thing the inventory pulls from the actor itself is quantity since I have it so items can be dropped in stacks

dawn gazelle
#

So then you're going to end up with an actor definition and a separate data table definition for each item?

hoary junco
#

pretty much... Like each actor really doesn't do anything in the world when it's dropped.. it's just an item, it only does anything when you use it from the inventory which is where it consults the data table and asks what the effects and whatnot of that item are and then it just spawns in the effect when the item is used

#

and then when the item gets picked up the inventory is an array of structs, and those structs have the item's ID and its quantity so if you want to get any data from an item when you use it in the inventory it grabs that index in the array, gets its struct, gets its ID, uses that ID to get the info from the data table and there you go

#

what's an ASC?

dawn gazelle
#

Float iD? that sounds horrible.

#

ASC is an ability system component part of the Gameplay Ability System.

#

A "plugin" that does all kinds of fun stuff.

trim matrix
dawn gazelle
#

Without much knowledge of UE at the same time ๐Ÿ™ƒ

#

I'd agree with that.

hoary junco
# dawn gazelle GameplayTag

so, something I'm concerned about is, doesn't a replicated key get replaced in a map? like if I have a 1 handed weapon, how do I tell the map that an item with a tag of equipment.weapon.onehanded can go in 2 different entries?

trim matrix
thin panther
#

It's decent, but theres tranek's gas bible that's decent. Laura also has a minimal GAS guide pinned in #gameplay-ability-system

trim matrix
#

mh

thin panther
#

Stephen is a great resource if you like courses and the free stuff ain't doing it for you.

Make sure you use a coupon though

trim matrix
#

I should prob understand GAS with BP first

thin panther
#

Good luck

#

Because it requires cpp setup

trim matrix
#

ex: I've never used Gameplay Tags..

dawn gazelle
paper galleon
#

@balmy viper looks like that's an actor component

trim matrix
#

dw about that, I know I'm better than everybody else :3

balmy viper
#

if I start with an actor component, can I not reparent it to a TriggerVolume?

trim matrix
#

just variables

#

okk

hoary junco
paper galleon
balmy viper
paper galleon
#

It'll be strange if Trigger Volume isn't blueprintable. But I doubt that

balmy viper
#

There's TriggerBase, TriggerBox (which is what I think a TriggerVolume is) ... and that suits my purposes, so will use that

#

lol I think I was wrong, but I'm on the right track now at least

paper galleon
#

Ohh yeah. It's the box you want

#

Funny thing is that you can choose not to use the Trigger classes at all and just roll your own

#

Probably better too, but use what works for now

dawn gazelle
# hoary junco so would I have both Equipment.Hand.Left and Equipment.Hand.Right as tags on the...

Here's maybe a better way to think about it...
You can have a gameplay tag container that gives some properties about the item which you can easily look up by checking if the container has any particular tag you want

Equipment.Weapon.2HSword
ItemClass.Legendary
Material.ElvishSteel

Then you may have another gameplay tag that defines where the item can be equipped.

Equipped.Hand.Both

Then you may have another tag container that defines what other slots would need to be forcefully unequipped if this particular item gets equipped. This can be useful if you have say, a "Robe" type of item and it needs to remove a whole bunch of slots to properly be equipped, or in this case, if a player has their hands equipped, then they should be emptied.

Equipped.Hand.Right
Equipped.Hand.Left

Now let's create a mockup definition for a one handed gathering tool like a sickle...

Equipment.GatheringTool.Sickle
ItemClass.Common
Material.Iron
Can be equipped in:
Equipped.Hand.Left
Equipped.Hand.Right
Force Unequips:
Equipped.Hand.Both

This way you're defining that it removes any two-handed item held in the Equipped.Hand.Both, but it can go in either the right or left hand, and it is made of iron and is considered a common item.

hoary junco
#

one thing I do have a question about with C++ stuff though, is there a way to have UE5 load in the C++ files automatically? Because I added one of my custom tags, saved, UE crashed at some point, I loaded it back up, and unless I ran live coding then the custom tags stopped working

dawn gazelle
#

Here's what skyrim's mod kit thingy looked like as an example... They ahve all those slots listed, and then you'd basically select which slot(s) that it takes up, but some slots overrode other slots it just wasn't exposed to modders to change that behavior

dawn gazelle
hoary junco
#

I've been googling how to compile in visual studio 2022 for unreal engine 5 and literally every answer is saying "just live code"

stoic ledge
#

right click your project, and select build. (not the Engine)

hoary junco
stoic ledge
#

in visual studio

hoary junco
#

ok I think it worked, thanks

stoic ledge
#

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

hoary junco
#

I mean all mine says is build succeeded and now the custom tags are showing up in the editor when I launch it

hoary junco
#

@dawn gazelle is there a way I can set it up so I only pull certain tags from a tag container when adding them to the map? like if I have a chestplate that has tags of equipment.armour.chest and material.iron in its container, I don't want to add both of those to the map, all I want is the equipment one, how would I do that?

dawn gazelle
#

Have a tag defined specifically for what slot it goes into

#

Create separate tag containers for different types of definitions.

inland crystal
#

There's a 'switch on gameplay tag' node

hoary junco
#

thing is, I already have an item data table right, so I already have all of these categories for a single item, I was hoping to reduce some of these a bit by the use if gameplay tags but, if you're making separate containers for everything, which is going to add yet more pins to this item data struct, then why bother

dawn gazelle
#

Because you'll run into problems trying to figure out what a single gameplaytag container is meant to do, and you'll probably end up with thousands of gameplay tags trying to cover all the conditions that you could potentially have so that you can properly sort things out.

#

Then it just becomes a nightmare to manage the tags @_@

hoary junco
#

I mean I was hoping that since a hierarchy already exists within the tag system I could pull from the tags and say "anything under this tag in the hierarchy, get those"

dawn gazelle
#

Can be equipped in:
Equipped.Hand.Left
Equipped.Hand.Right
Force Unequips:
Equipped.Hand.Both

#

How do you know which is meant to be equipped or unequipped if it was just a listing of:
Equipped.Hand.Left
Equipped.Hand.Right
Equipped.Hand.Both

The only way around would be to have even more tags...
Equipped.Hand.Left
Equipped.Hand.Right
Unequips.Hand.Both

carmine drum
#

I have this blueprint that should just be pull a lever, a door opens, like slides to the right, but for some reason i get millions of errors saying access none trying to read Open the door

#

anybody can help?

hoary junco
#

well that would require its own system but for stuff like armour... all you're doing is overwriting the entry on the map... like if something with a tag of equipment.armour exists, just feed that tag straight into the map because it will just update the equipment, but if it has anything under the equipment.hand hierarchy, then find out what the tag is that it has under that hierarchy and put it in that slot then run a find on equipment.bothhands and empty that slot simple...

then you do the inverse if it has equipment.bothhands, empty anything under the hierarchy of equipment.hand

lunar sleet
lunar sleet
# carmine drum

that BP Sliding Door is null when being accessed. Means you probably never set it/didn't set it properly, or did something silly like creating a var of that class and leaving it empty

carmine drum
lunar sleet
carmine drum
#

???????

lunar sleet
#

you took a tupperware box and labeled it sandwich

#

now you're trying to eat the fricken sandwich

carmine drum
#

how do i solve it ๐Ÿ˜ญ

#

i've been doing this for 2 hours

#

im so stupid ๐Ÿ˜ญ

lunar sleet
#

you need to reference it properly. Are you interacting with the door with an overlap/line trace at all/

carmine drum
#

no

#

it should just open when the lever is pulled

#

thats the condition

lunar sleet
#

are you going to have more than one of these doors in your level at any point?

carmine drum
#

dont think so

lunar sleet
#

then you can use get actor of class BP_Sliding Door and set the return value to that sliding door variable you created. It's a bit of a crutch but it'll work for your current use case (this will break as soon as you have more than one door so don't abuse it). I would recommend watching the bp comms live training at the bottom of pins here though, when you get a chance

flat coral
#

Ok I swear to god there was a function to get a random point inside an area but I can't remember what it was called! Am I crazy? does this exist?

#

Litearlly found it

#

The dark magic of asking for help

lunar sleet
flat coral
#

Nah just this

carmine drum
#

cuz if that's what you meant it doesnt work

flat coral
#

I can't use AI nav anyways

lunar sleet
carmine drum
#

no more errors but doesnt do anything

lunar sleet
lunar sleet
carmine drum
#

no function

lunar sleet
#

*event

#

is it firing?

#

you usually need a lerp after that timeline

carmine drum
#

i gues it is firing yea

carmine drum
#

its shy

#

idk

lunar sleet
#

but it fires when you pull the lever?

carmine drum
lunar sleet
#

then wdym by works with collision boxes

carmine drum
carmine drum
#

and i just added this code to the sliding door, sometimes it works sometimes it doesnt

#

and it works when i pull the lever but im not even in the box

lunar sleet
#

well for starters, you told it to Open the Door on tick while the first timeline is firing

hoary junco
#

ok so.. idea... in the equip UI add a thing of,
switch on tag
equipment.weapon
eqipment.armour

from equipment.weapon
has tag equipment.weapon.onehanded
if false, go to the equipment system, find equipment.hand.left and equipment.hand.right, empty both of them
if true bring up another UI element asking the player if they want to equip in the left or right hand
depending on the solution add a gameplay tag to the container that's either equipment.hand.left or equipment.hand.right
depending on what comes out the other side one of three things will happen

if it was equipment.armour than whatever that item's equipment.armour tag was, gets added to the map
if it was equipment.weapon and equipment.weapon.onehanded was false, we've already wiped those 2 blocks so add the item in question to equipment.weapon.twohanded
if it was true then you round out by adding whatever the equipment.hand tag was that corresponds to the item that came through...

lunar sleet
# carmine drum

move the Open Door event call to the Finished pin of the first timeline

carmine drum
lunar sleet
carmine drum
#

so like this?

#

if thats what you meant, then it doesnt work

lunar sleet
#

because before it was spamming it

carmine drum
lunar sleet
#

so you need to be inside a box while pulling the lever or what's the goal here

carmine drum
#

no, i just did that to check something, but that seems to make it works sometimes, but it works when im not in the box

#

idk XD

lunar sleet
#

ok

#

remove the overlap

#

we need to sort this out and you're having 2 things do it, which can have an overriding effect

dawn gazelle
carmine drum
#

thats all left in the door

#

and thats the lever

lunar sleet
#

change the pin to Play From Start

#

on both timelines really

carmine drum
#

and thats the interact interface in the lever

lunar sleet
carmine drum
carmine drum
lunar sleet
#

eh...cast would've been so much cleaner but w/e as long as you have it working as intended

flat coral
lunar sleet
#

realistically this should've been a line trace/overlap and a cast but whatevs ๐Ÿ˜„

#

actually, let's do that instead

hoary junco
flat coral
flat coral
#

Though every time I think about an object interaction system I get THIS close to writing my own cone trace function to find them

carmine drum
#

so? do you guys have any solutions ?

#

its been 2 and a half hours ๐Ÿ˜ญ

lunar sleet
carmine drum
lunar sleet
carmine drum
hoary junco
# dawn gazelle

you're switching on tag container though not on tag.... the container itself isn't test.smartobject.tag1, the tag inside it is thus the for each loop and switch on gameplay tag

carmine drum
#

those 2

hoary junco
#

the for each loop gets the tags out of the container and checks through them

dawn gazelle
lunar sleet
carmine drum
lunar sleet
#

sweet mother ๐Ÿ˜„

carmine drum
lunar sleet
#

bit difficult to read it but long as it calls Pull consistently

maiden wadi
carmine drum
lunar sleet
carmine drum
junior quest
#

The alpha value is .5 and the dial rotation is 0.0 by default. The dial is just a disk that has 10 evenly spaced numbers (0-9) so i think B on the lerp should be 36. Im having trouble understanding why 144 is what works when in the game

lunar sleet
carmine drum
#

the lever it goes up and down as it should

lunar sleet
carmine drum
lunar sleet
dawn gazelle
lunar sleet
carmine drum
#

i know its weird, im going crazy

lunar sleet
hoary junco
# dawn gazelle

so can you do nested containers then? What's the point of using gameplay tags if it's just going to add a hundred more output pins on my itemdata node regardless?

lunar sleet
#

equipment.armor.legs.knee.kneecap

junior quest
hoary junco
lunar sleet
#

that's one of them

#

you can have each tag have its own subtag

lunar sleet
# carmine drum ye it gets moved

then your timeline is the issue. Maybe try changing it to include a lerp from one fixed location to another, with the timeline only changing the alpha from 0 to 1

hoary junco
#

but I could just add node on my item data that says "armor location" and in that I can type "kneecap" and I have the same thing... what I'm looking for is ways of storing details about an item so that the data table doesn't have 100 different parts to fill in... ways of reading the tags to make putting them in the right place easier for minimal output pins

carmine drum
dawn gazelle
# hoary junco so can you do nested containers then? What's the point of using gameplay tags if...

Because it allows you to create a definition of something that is easily referenceable, will prevent typos and can be easily compared (computationally at least).
Using GameplayTags is the best way to define abstract attributes of an object. The trouble comes in when you're trying to make something like a container contain all possible attributes and somehow use some logic to filter out what you mean by what is contained within that container. Like, by all means, go ahead, you absolutely can do it, you have to figure out how that will work and if it'll work well for what you're doing. I'm also just trying to warn you that you may end up with many duplicated tags if it isn't well thought out.

carmine drum
#

i swear i will find oasfnasfgjsmanasdgasjfnasfgaspfgaskl;nfbasng

#

now it works

lunar sleet
carmine drum
#

and its the same fucking code

#

now it works

lunar sleet
hoary junco
maiden wadi
#

Data assets save lives.

dawn gazelle
#

Right, and that's the logic you'll have to figure out.

hoary junco
#

I was hoping that since tags seemed to have a hierarchy system built in that there may be ways of referencing parts of the hierarchy of that tag...

dawn gazelle
#

There are, but it's not the switch on tag system.

hoary junco
#

then how do you do it?

dawn gazelle
#

HasTag (Allows for partial or complete match)

#

But then you could end up building a massive branching system as that only gives you a bool.

lunar sleet
#

1 million booleans! ๐Ÿ˜„

#

computationally cheap ๐Ÿ™ƒ

maiden wadi
#

What is the check anyhow?

hoary junco
# maiden wadi What is the check anyhow?

when I equip a piece of equipment isolate the tag that determines if it's equipment rather than its other tags, then split that to see if it's armor or a weapon, if it's armor, add it to the map straight away, if it's a weapon, find out if it's 1 or 2 handed, if 2 handed, empty the 1 handed slots and add it to the 2 handed slot, if it's 1 handed, ask the player if they want to put it in the right or left hand, see if a 2 handed weapon is equipped, if so empty the 2 handed weapon and equip the 1 handed weapon in the chosen slot

#

the hangup is like datura said I'm trying to create a logic map to get a single tag container has all the gameplay tags I want to give it, that way I don't have to have each gameplay tag asigned as a node on the item's entry of a data table.. a way of trimming it down to something more manageable

#

my main disappointment here seems to be that there's no way of saying
"go through the tags in this item's container, and any tags that are part of the equipment.armour group, including equipment.armour.chest or equipment.armour.hands then do something with them, otherwise ignore them"

#

and it's clear the system knows how to do partial matches because of "has tag", so why can't I have partial matches on "switch on tag"

gentle urchin
#

Isnt that a tag query?

dawn gazelle
#

Yep, that could work better.

hoary junco
#

@gentle urchin thanks a lot that, pretty much exactly what I was looking for

hoary junco
#

I have it set up properly

dawn gazelle
#

Dunno. I'm using 5.2.1

#

That looks like you're probably in a newer ver

hoary junco
#

I'm on 5.3.2 yeah

#

I was wondering if it was one of your addons that was doing it

#

in a tag query is there a way of returning the tag that matched the query? or would I just need to go through a for each loop and query each tag?

trim matrix
#

Hey guys, How can I manage FirstPersonCharacter variables?
I know the cast node, but is it the best way to do it?

maiden wadi
#

I'd question why your character needs to care about a widget or not?

trim matrix
#

like this

lethal pollen
#

Hi! 'm newbie in Game Development. When you start to develop a game, first you create a prototype only with Blueprints, and then, migrates some parts of the code to C++. Is that correct? Thank you.

glass nacelle
# lethal pollen Hi! 'm newbie in Game Development. When you start to develop a game, first you c...

It's not an either/or decision. Learn what makes C++ and Blueprints different, what they have in common, and how to use them together effectively. We'll also learn a thing or two about performance optimization and some basic software design concepts.

Read the article version: http://awforsythe.com/unreal/blueprints_vs_cpp/

00:00 - Introduction...

โ–ถ Play video
lethal pollen
gilded jewel
#

is there a more efficient way to make this cam follow the drone, i currently have this on the tick, but I feel like there could be a better method

maiden wadi
lethal pollen
#

Thanks.

gilded jewel
#

I solved my first issue so removed just to de-clutter.

lethal pollen
#

If I have this timer:

#

And a method to stop it:

#

How do I restart it?

#

Thanks.

dawn gazelle
# lethal pollen If I have this timer:

You'd have to call the set timer by event node again. Instead of calling it directly on begin play, give it its own event. Call that event on begin play. When you want to restart it, then you just call that same event.

obtuse kraken
#

Just curious is it possible to make an entire game without writing code? I assume it is possible but what are some of the major drawbacks?

dawn gazelle
#

Sure. It's completely possible to make a game where the point is to click a button 100 times. Clicking the button 100 times means you win the game.
There would be no problems with making a game like this other than it's probably not that engaging nor fun, but it does work and fits the criteria of your question of making an entire game without writing code.

If you don't use C++, you lose access to many things that aren't exposed to blueprints, and some things just aren't possible in blueprints alone. You can lose performance depending on what the needs are of your game simply by using loops and doing heavy math itself is generally slower in blueprints as well. Otherwise, there are lots of games you can make entirely in blueprints.

maiden wadi
#

The general TLDR on that is plan for no multiplayer, and don't do anything complex. And it's entirely possible.

dawn gazelle
#

Funny thing is, once you realize what you're doing is replacing code for pictures, it's basically the same thing as coding, you're just not typing out letters to get the program to do what you want. In other words, it's almost exactly the same thing, just with a visual flowchart of how things are connected, with code requiring a bit more knowledge of what some of the symbols mean (damn you pointers!)

lunar sleet
#

The possibilities are endless limited

lunar sleet
#

Itโ€™s a good way to understand OOP more easily, I find

#

Had a hard time wrapping my head around pointers when I was learning native

dawn gazelle
#

I just hate the fact that the position and context of an asterix or ampersand can change everything.

lunar sleet
#

Or a ++

#

That to me was even more baffling lol

spring steeple
#

Hello, i need to store some custom data per item for an inventory system. Would having a "mega struct" with all variables that are storable such as durability, health recovered, damage etc. be bad? I would essentially end up with a bunch of empty variables, so im wondering if there's any significant downside to doing it this way.

maiden wadi
# spring steeple Hello, i need to store some custom data per item for an inventory system. Would ...

You're mixing two systems into one when they definitely should remain as two.

Attributes are their own thing. I highly recommend sticking with a simple model of Key/Float where Key can be a GameplayTag or Name. EG Attribute.Health.Max or Attribute.Health.Current. This lets you make generic arrays of attributes that can contain health, mana, strength, resistances, etc all in a single array of data and dynamically sized to avoid blank and unused data.

The inventory item is a separate idea. The inventory item should have two parts. You need your runtime data and static data. This is important because you don't want to copy static data. If the balancing person says an item is capped to stack at 50, user plays the game and saves. And then balancing patch comes through setting that to 25, then the user still has a slot of that item at 50 if you save it as a runtime stat. So anything that can be altered should be a struct(Or in my opinion a UObject) housing the changable runtime data. And then you need a second struct or a DataAsset that houses an item's general static definition with descriptions, default stats, limits, etc.

spring steeple
#

Thanks for your reply, it definitely cleared it up a bit. However i still find it difficult to visualize how exactly it should be set up, you shouldn't happen to know any good learning resources on this matter?

maiden wadi
spring steeple
#

fair enough๐Ÿ˜„ thanks anyways

hoary junco
#

@dawn gazelle I did it, I can now equip items to every slot in the inventory the print strings here are a printout of every item in the equipment map and what slot they are equipped to

#

but now the question is, how do I do the visual side of this? I don't have any armor models to make that stuff with but, how do I put sword in hand when sword is equipped?

dark drum
# spring steeple Hello, i need to store some custom data per item for an inventory system. Would ...

I personally use uObjects for my items (in inventory, just data) as you can use hierarchy. It means you don't have a single structure with 50 different stats were most of the items only ever use half the data.

Create a base item uobject, add just the core variables that all items should have. Then create children of this for the different types of items and add the vars specific to those items. Rinse and repeat. You're inventory system would just be a place that can create, store and manipulate these uobject items.

young meteor
#

Anyone have a rule of thumb for when I should use Interfaces to communicate between BP's vs. Bind and listen for an Event Dispatcher?

Or if not, which is cheaper?
Feel like casting and binding to a dispatcher is too much if it is just for a single event.

I don't really see any drawbacks to interfaces at the moment, but have heard they are abused often?

bleak wraith
#

Can someone help me that inside editor play this function works, but when i standalone play, it selects unit but moving is not working

dark drum
# young meteor Anyone have a rule of thumb for when I should use Interfaces to communicate betw...

If you have multiple classes (blueprints) that need the same function but don't share a common parent, use an interface. This allows you to give each of the classes the same functions.

However, when casting, you need to make sure you using good hierachy where you cast to base class that don't contain heavy assests such as meshes, materials, sounds etc... To help prevent them from being loaded when not actually being used.

If you're creating something that would function more like a plugin that you would copy/migrate to other projects, you might in this instance want to use an interface as well to decouple the system from any specific class references that generally wouldn't be migrated.

maiden wadi
cosmic hill
#

funny, everyone around youtube just says that its really costly

maiden wadi
#

Like I said. Noobtube.

young meteor
maiden wadi
#

I would wager at least 85% of them can't even explain why they think casting is bad. And at least half of that 85% will fuck it up and say it's a CPU cost.

bleak wraith
#

as a newbie and watched ton of videos I can confirm that everyone saying casting so bad but never heard from them an actual explanation xD

cosmic hill
#

ok, so... im going to go my way and actually ask if anyone knows what casting does internally

#

so i can explain to the world why they are dumb and im so great

dark drum
maiden wadi
#

The thing is. Casting itself is nothing but a pointer conversion. Casting an AActor pointer to an ACharacter type. It's basically free. You're just telling that you want to try to access this pointer like it's a character so you can access character's details like it's movement component which an actor level poitner to the same object can't access.

In blueprint the Cast node also functions as an IsValid node. So when you cast you're doing Cast and then IsValid. The IsValid part itself is the CPU cost. This has nothing to do with the casting. You would get the same cost simply checking if any pointer IsValid.

The thing people actually fuck up on are linkers. Linkers are what you need to be careful with. When you cast to Boss3 when in Level1 in the character BP, you keep Boss3 loaded. But this is not the cast node. This is the output type on the cast node. You get the same issue when you have a blank pointer to the type as a class variable or return that type from an interface.

People get lucky with linkers and interfaces because if you're careful and you interface everything, you avoid the linkers. But this is not a valid solution. Much like in the case with needing to subscribe to a dispatcher. You have to know the class it's on. You have to have a linker to that class to bind the dispatcher because that's where it exists.

So how do you have a dispatcher on the boss that things can bind to without keeping the boss loaded? You make MyBossBase and put it in there. You cast to the boss base class that has no materials, sounds, meshes loaded. You still keep this base class loaded but it's basically free due to being a code only class.

Also obligatory note that interfaces are CPU wise slower than a cast node. You can test this yourself with Stat Raw and a 50k loop doing the same thing in an interface as a cast node.

young meteor
hoary junco
#

well you got your answer just look at what Authaer put ๐Ÿ˜›

#

@cosmic hill

maiden wadi
#

The main take away from above is that casting and interfaces are largely identical in use. Interfaces patch holes in cases where you can't easily connect classes via a base class, or cannot use composition by putting a component on all the actors you need the function on. But they both allow you to call a function on a target.

You core focus for performance should be on making sure you have base classes or use composition to avoid linking asset related classes to code classes, and then you softobjectptr the asset classes and load those before spawning them.

cosmic hill
#

yup, hehe, i was waiting for it

dark drum
# young meteor Hmm, but I feel like I've heard people using soft reference to avoid loading the...

Soft references are used to prevent things from loading but lets say you have a 3 classes

A, B and C. (each a child respectively)

If you have a soft ref of type C, it would still force load C, B and A. However, if you have a soft ref of Type B and set it it's default value to C. It would force load B and A but not C.

You can take it a step further and instead set the soft ref to a type of A. You can then set it's default value to either B or C and it'll only force load A.

This is why hierarchy is important which most people who say to use interfaces for everything completely miss.

young meteor
maiden wadi
#

Yep. I generally refer to them as code classes.

dark drum
young meteor
# maiden wadi Yep. I generally refer to them as code classes.

Even if I do this, I have to make sure any casts made in the BP I just cast to (the empty parent boss), are also casting to other empty parent classes?
So in the end, can I practically solve most of this issue by simply building a habit of always having an "empty" parent class for all the blueprints I make/use?

maiden wadi
#

Yes. This is how a lot of studios do things. They enforce casting to C++ classes for instance. C++ classes are always loaded and casting to them is largely the same as casting to an empty blueprint. They're not linked to assets so it's safe. And you can do the same thing in BP by just not having assets specified in the blueprint, the component's it uses or it's parent classes.

hoary junco
#

as I asked earlier though, can anyone give me a hand when it comes to the visual aspect of equipping stuff? I have the logic sorted, I can now equip items to equipment slots, but idk how to make the model appear on the body, like how do I put the sword in the character's hand?

cosmic hill
#

i do belive you are looking for sockets

#

and bones

hoary junco
#

yeah idk how any of that works...

cosmic hill
#

let me try to refresh my memory on that, but i think someone around here must have the answer already fresh

bleak wraith
cosmic hill
hoary junco
#

probably... I think I have a good idea as to how armour works, like you exchange out pieces of the body with ready made armoured versions... but I don't have an actual armour pieces to test that with..and there's no way in hell I could afford the blueprints, so I'm going to have to try with just weapons for now

young meteor
maiden wadi
hoary junco
# cosmic hill

I think attach component to component works better here, like I'd rather not add more actors than is necessary

bleak wraith
hoary junco
#

they just end up being reference points that you replace on the children with the actual model or mesh you want for that actor

young meteor
#

Avoid linking I mean

young meteor
hoary junco
maiden wadi
#

The idea is that the parent class is always loaded. Pretty much from the start of the game. Doesn't really matter cause it's such a small class.

hoary junco
#

I have maybe 2 or 3 interfaces in my project at the moment and A LOT of casting and it doesn't really do shit to my memory... it does to my processor but that's because my processor is 8 years old and dying because I can't afford a new one...

young meteor
young meteor
#

Thank you to all of you.

hoary junco
dark drum
hoary junco
dark drum
hoary junco
dark drum
hoary junco
young meteor
dark drum
young meteor
#

I can for example cast to my parent "enemy", without knowing what child it would be at runtime.

dark drum
young meteor
#

So I don't load it until at runtime when whatever child I need will then be loaded.

#

Feel like it makes sense. I'm a newbie though ๐Ÿ˜„

hoary junco
#

parent classes still can have code on them though and the impact will still be a lot smaller

dark drum
#

Doors are a good example as chances are you would have a few different doors. You would have a base door with no actual meshes in it but core functions and vars that would be needed by it's children.

When you create a child, that's when you then add you're static meshes, sounds etc...

This way, when ever something needs to interact with a door it can do so just by using the base class. This can reduce the likelihood of class loading specific door types (and its meshes, audio etc) that might not actually be in the current level.

The screenshot is the size map comparison of my base and then a child of the class. If I happen to have a level with no doors in it. The size of the base class is pretty negligible in context so it doesn't matter if it's loaded.

My doors currently only use a cube and a solid (basic) material so actually adding in a proper door mesh with material could easily see the child size increase to 10-15mb at a minimum.

The bulk of the base door is actually an intractable component which is used by all my things that are intractables so would be loaded anyway.

young meteor
#

So you are basically saying you confirmed it is good to cast to an "empty" parent class right?

maiden wadi
# young meteor Right. You say some though. How do you avoid it in cases where it is possible/pr...

Stepped away for a bit. Tacos > WarOnAntiCasting. Mostly just softptrs though. Consider a randomized dungeon level. You need to spawn 3 of 20 classes. Each with very different particles, abilities, effects, sounds etc. You load into the level with none of these spawned or loaded. You pick three of the list, load them and spawn them. Meanwhile to spawn them and initialize them or setup the class, you can cast to their parent class to affect them.

Composition is another tool for this too. GAS for example houses all abilities and attributes on the AbilityComponent. So to affect an actor, I don't even have to cast it. I get it by like a line trace or hit event or whatever and try to get it's ability component and apply an effect to it without ever caring about any other classes than Actor and AbilitySystemComponent.

sonic garnet
#

hi guys anyone have this
Where Drag and drop doesnt work only in IOS device? Android works properly
but in IOS, drag is not detecting

maiden wadi
#

O.o That's an odd platform difference.

#

We are talking the widget DragDopOperation stuff?

sonic garnet
#

UI is added to viewport using widget component , using screen space

sonic garnet
#

but problem is ios is not able to detect it

basically marked part of code is not able to run ig

#

tried using this detect drag node in Touch Moved, touch started
none works

#

my heads gonna blast
not able to fix this from one week

#

i still dont understand why only in iOS mobile device its not working

maiden wadi
#

This print doesn't run on Ios either?

sonic garnet
#

yes

#

sometimes it runs
but still drag doesnt work

maiden wadi
sonic garnet
#

I mainly spend around an hour or more in taking an iOS build, mainly because my Mac device is quite slow.

#

what do u mean by weird touch key?

#

anything additional to setup for iOS ?

maiden wadi
#

Mainly I'm wondering if touch on the iOS is passing something other than Touch1 through this event or if something is somehow interfering after you register the detect. Cause you said this event can run. So either the input is wrong, or something is breaking it after like a KeyUp somewhere releasing the drag detect

sonic garnet
#

Please let me know some debugging tips for this if you know any

trim matrix
hoary junco
#

so something I've noticed about the default UE5 first person arm movement animation when you're running is it doesn't loop properly.. like it gets to the end then just stops there... I have the animation set to loop both in the animation blueprint and on the actual animation itself, anyone know how to fix this?

#

wait nvm I fixed it...

hoary junco
# trim matrix Is it ACTUALLY 10x slower?

blueprints are SAID to be 10x slower than pure C++, but also for most projects that's the difference between 0.001 seconds and 0.01 seconds.. in other words it's not really noticed too much

vale stump
#

hello, I am an artist so forgive me if I'm about to ask something stupid, but i am trying to make a simple space shooter game and wouldn't you know it I'm stuck right at the beginning.

I'm learning how to make a airplane like vehicle move and have watched a bunch of tutorials around that theme, however I have questions on the best way to do things.
I see that most tutorials are using "Add Actor World Offset" to make their craft move forward
However I also read that its better to use the "Floating Pawn Movement" component similarly to how the character movement component is used
My question is, is there any actual difference or should the floating pawn movement component definitely be used?

sonic quartz
#

how do i change cornering stiffness through blueprints in chaos vehicles?

hoary junco
#

if I attach a mesh component to another component but the mesh component's origin is not where I want it to be attached, how do I fix that?

#

like for some reason I have a sword mesh whose origin is the tip of the blade....

hoary junco
# supple dome sockets

so there's a problem with that, I want to equip multiple weapon types, and they all have their origins in a different location, if I change the location of the socket, every other weapon will be borked

supple dome
#

so you can choose per weapon where it gets attached to

hoary junco
supple dome
#

you get the socket location, AttachTo, then offset by that vector

hoary junco
supple dome
#

hmm no i dont see why, it will be attached and will move correctly with the animations,
it will behave just the same as using an origin, just in another location

hoary junco
supple dome
#

You probably want to EattachmentRules::snaptotarget, then just component->addlocaloffset

hoary junco
# supple dome You probably want to EattachmentRules::snaptotarget, then just component->addloc...

ok now I'm really confused.. in the node "Attach Component To Component" the target is the thing being attached and the parent is the thing you're attaching to yeah? Well only the paren't socket name is available in that node, so if I add the sword mesh to the character, then attach the character's mesh to the sword at its socket, my character mesh goes away... but if I attach the sword to the character mesh then try to use the sword's socket as an offset, the sword just doesn't appear at all

agile pond
#

TY

supple dome
hoary junco
supple dome
#

That gets the world space location, you need local space

#

dunno how its called in blueprints, maybe GetSocketTransform with Local instead of World

#

and, possibly multiply that vector by -1, maybe

supple dome
#

yyea

hoary junco
# supple dome yyea

oh hey it worked.. sorta... now I have to set up animations for holding weapons but... that can be done later

#

thanks

#

and I'm assuming I can get collision from that actor being attached right? like if I swing the sword I can get events for anything it overlaps with

supple dome
dark drum
hoary junco
carmine drum
#

https://www.youtube.com/watch?v=_Hk-qO5aowA I am creating this tutorial to create this explosion and destruction of a mesh, does anybody know how i can play this destruction only when set conditions are met?

Hello guys, in this quick and simple tutorial we are going to learn how to make a simple explosion using Chaos in Unreal Engine 5
โ†ช๏ธCheck out awesome Unreal Engine courses: https://bit.ly/GorkaGamesWingfoxCombat

Free Explosions Pack: https://www.unrealengine.com/marketplace/en-US/product/infinity-blade-effects

Check out my Steam Game! https://...

โ–ถ Play video
#

thats what i have for now

#

it just auto destroys in the beginning and thats not what i want

eager garden
#

ive started working on a really ambituous project in Unreal, creating a sorta city-builder on a spherical planet.... Similar to that game Cities XXL, but in my own way.

ive done a pretty good job already at creating the planet with clouds and atmospherics, but now im working on the blueprints and getting the functionality to work, and im having difficulty.

to start, i just want to implement a very simple idea, NPCs on my planet. I wanna see how many NPCs my computer/this engine can handle. So i am trying to spawn actor entities on my Planet that are represented by blue sprite for male NPCs and pink sprite for female NPCs.
and i just wanna spawn X amount of these on the surface of my planet, and then take it further by givng them Navigation and tasks to accomplish like moving around the planet looking for a mate.

im very new to node-based development. hopefullly im doing this right...

1st, i noticed that if i spawn in 1000 sprite NPC entities, the game crashes. Why? Theyre just sprites, what is taking up so many resources?

Second issue Im having is, when the sprites spawn in, i cant make it so that they spawn facing the camera.

third i need to spawn them on the surface of the planet. I found the node, Get Random Point on Sphere, to use to find a location on the sphere to spawn the NPC, but its not working very well. Whenever I increase the radius, it for some reason moves the origin of the sphere to somewhere else or something. Regardless, it gets very difficult finding where they're spawning, because as far as i understand, they're supposed to spawn either inside my sphere or on the outside of it. But they spawn very far away.

odd kiln
carmine drum
#

do you have any sollutions

odd kiln
carmine drum
odd kiln
carmine drum
odd kiln
#

What is the code of the "break"

carmine drum
#

thats all i have

#

the rest is just from the fracture mode

odd kiln
carmine drum
#

i tried to do it again but now it doesnt happen at all

lofty rapids
#

your sound says select asset

carmine drum
lofty rapids
carmine drum
lofty rapids
#

right but you can start taking things out

odd kiln
#

It cracks not crashes

lofty rapids
#

to figure out what makes it crash

carmine drum
#

cracks

#

not crash

#

mb

lofty rapids
#

wdym it "cracks" ?

carmine drum
#

i have shit english

odd kiln
#

You mean the "fracture" firing instantly

carmine drum
carmine drum
lofty rapids
#

i'm guessing your trying to crack it with the impulse ?

carmine drum
#

i want it to explode only after i place a explosible near it

lofty rapids
#

the explosive ?

carmine drum
lofty rapids
carmine drum
#

it doesnt respect the delay

lofty rapids
#

see if cracks as well

#

maybe something else is causing it ?

carmine drum
#

still does

odd kiln
#

I never used "Fracture" but I guess there are some settings on the "Fracture" blueprint

lofty rapids
#

if it's not running and still doing it

carmine drum
odd kiln
#

I think this is what you want