#blueprint
402296 messages Β· Page 879 of 403
Roll back in version control and see what it was
or just roll back and merge back in
[Help] hey everyone, I'm havin trouble with a physics handle.. i can confirm it has a grabbed component and its simulating physics and stuff and i can confirm that my physics handle's SetTargetLocation is going to the right spot.. but i just CANNOT get the cube im trying to pick up to budge.. its simulating physics, obviously.. and it has the collision profile of PhysicsBody
Woah time out, now it does open without crashing, but my options for reparenting are super limited. The original class was a ACustomCharacter, I can't reparent it to my custom character class or a regular character.
It's just in my project. I can make new blueprints inheriting from that class but I can't reparent this blueprint which I am 100% certain was a child of that class
Are you compiling the C++ class whilst the editor is still open?
Nope, I rebuilt from VS then reopened the project.
Even tried deleting intermediate folders, no luck.
Hot Reload could be sussed out then.
Using Live Coding
Then more likely your BP asset somehow defect/corrupted
If you have source control rollback/autosave of that file, try reverting to it.
Are you deleting the Saved folder?
I can try that
there ain't one π¦
It's not the end of the world, it's mostly the c++ class with some assets assigned. I just didn't want to have to replace references to it.
serves me right for not committing in the past three weeks π π π
How do i add collision to my instanced static mesh in the construction script?
Click on the node itself
And look in the details
This is assuming that the static mesh file has collision set up within that file, of course
I'm building a procedural character system and I have a tail spawning on a character (based on % chance), but I can't figure out how to allow it to have physics. Any ideas? It is rigged and has simulation set on the physics asset. (that's the tail sticking out of his head)
So that means i cant add collision at run time or in the construction script? This instanced static mesh is called StaticMesht10, so thats the file i need to edit and add in collision before run time?
Iβm not sure what you mean by add collision. Are you trying to set collision settings, or define the shape of simple collision
my instanced static mesh has no collision. Its a sprite. In the game im moving it using vinterp to, but it always goes through other static meshes
so im trying to make it have a volume, so that it cant overlap others. i just dont know yet if vinterp to will allow that. but i read somewhere that its possible by checking Sweep x
You should be able to go to the static mesh file right now and add a simple box collision around it
and that will work in vinterp to?
ok i will try it. thank u
I suppose but that raises all sorts of other questions. Do you want them to run into each other and stop? Are you really sure you want to be using instant static measures that are moving around, This is not usually advised
How many of these are going to be rendering at once
yes i want them to not be able to overlap each other. but stop, maybe not stopping, but like going around each other. because as it is now they are overlapping and they sometimes go all in the same place, and looks really bad
thousands. why is it not advised? isnt it better for performance?
Maybe, the advantage with instant static meshes Is rendering them. Everything else is a quagmire. Moving them, colliding them, all messy
You might want to fully explain what youβre trying to do, it sounds like this whole system would be better as a Niagara system
Have you tried giving the tail the master of the body?
Anytime we're doing "thousands" of anything, we'll need to be pretty specific about getting the setup just right
but I'm not familiar with any efficient method for an ISM to "hit" another instance of that same ISM and interrupt movement logic
This worked, but I'm having the issue of the physics spazzing out and flying off into space now lol
You're outside my wheelhouse now, sorry. There is an animation channel maybe they know
I assume you're using the BatchUpdate node to move them all at once
Is there a way to actually spawn a static mesh? not adding static mesh component or things like that
Spawn Actor?
an actual static mesh
not linked to an actor in anyway
like the way you drag and drop the mesh in the world
Hey, I've had this problem recently where I attach a weapon to the player. The weapon has a collider capsule connected to it, when the weapon is dropped I simply set the physics of the weapon to simulate but somehow the child of the weapon which is a capsule collider stays connected to the player?
Anyone has an idea on why this could be happening? Does simulating physics do something specific thing to its children?
You're a bit confused, there is no such thing as a static mesh in the world without an actor.
When you drag a static mesh into the world, it automatically creates an actor called "static mesh actor" which is just a default engine actor
Yes the origin is actor, i meant the actor we create in blueprints
When i "add" static mesh components they stay rendered even if not in view when i do freezerendering
Im using Update Instance Transform and vinterp to. I can make them detect other objects by comparing distance on a tick. But something tells me thats not very good in terms of performance.
comparing distance to every single other instance?
so if it's 1000 instances, that would be 1 million comparisons right?
or maybe 500,000 if you write it well
How is the VInterp looking? Did you do something to get high resolution paths, or do you have issues with clipoing in the terrain? Or did you circumvent this somehow
Isnt the On Begin Overlap node also checking on a tick?
Ye but thousands of ism with collision would be relatively expensive wouldnt it?
maybe i should abandon my silly idea of trying to make it with instances. and just make normal static mesh actors π¦
They will be crazy expensive aswell i suspect
But youncannsurely ease down on the ones far away, simplifying their collisions , movement, animation and so on
I'm trying to use SetActorLocation on a timeline to animate an actor going from one location to another over a period of time. It works just fine with static meshes and simple actors like that, but if I use it on a pawn with a collision capsule it breaks if the pawn touches the ground. It's like the second the actor touches something they stop movement instead of sliding along towards the target location.
Is there something related to the collision capsule that would stop movement? I tried disabling friction, but that didn't seem to affect it.
Hmm, that was a good idea. It doesn't seem to affect anything though.
Is it a pawn or a character ?
I imagine the cmc doing lots of trickery when hitting the ground
It's a character.
Im not sure if one can simply disable the cmc for a moment ?
Nor if its advicable, never tried it tbh
Worth a shot tho !
Worth a try. Thanks!
@faint pasture @maiden wadi It's a node in the Control Rig graph which is used by this official guide: https://www.youtube.com/watch?v=Z8eqaFG7lZQ
The Full Body Inverse Kinematic (FBIK) feature in Unreal Engine 5 allows you to construct IK in Control Rig with a high degree of control and flexibility. In this feature video, we show you how to create a 100% procedural animated character with a highly modular setup.
Im not sure official is any quality mark at this point
Walking through the Content Examples
Quite weird setups imho
@gentle fogIt's basically a math equation to calculate trajectories of something. Given the context in that video. I assume that it gives that slight bouncy effect to the bones on the Z axis
What does the input target mean / do?
Yeah verlet is an integration technique that uses 2 positions instead of a position and velocity
Just google verlet integration
whats the difference between placing your character model in the world vs placing it inside a blueprint?
Yes thanks, I did already Google it π
But normally it does not work like this. Normally you have a particle and the Verlet algorithm changes its position.
But in here I have a target and it seems the verlet is somehow following that target with an internal particle? At least that's how it looks like
Show the node and its tooltips, nobody here knows what you're talking about more than you right now proobably
ok, here:
It tells you what it does right there
Yeah so then what does the target do?
Target is the position target
this is for a spring/damper interpolation
also use the other one like the tooltip says
The other one has the same level of documentation π¦
I mean there's nothing to it, it tells you what it does
picture a spring with a weight on it, and you're holding the other end of the spring and moving it around
your hand is the target
I used the other sping/damper system for camera movement inside a car. So if you got in a crash it would be like a whiplash simulator.
whats the difference between placing your character model in the world vs placing it inside a blueprint?
@gentle fogOld and crappy but you'll see how the head bobs around and follows inside the car and has momentum.
Everything
Model in world = just a skeletal mesh in the world, no logic to it
a blueprint can have a skeletal mesh and any other component plus logic
Ah that's so cool! And it gives me some more ideas on how I can use this effect π
LEVEL BP
I have a question regarding level blueprints and how much can it handle to add all stuff.
Currently my game is using it all for all the events like when a door is open or close or someone passes by, it has an event dispatcher this then communicates with other events via the level bp, or when a puzzle is solved it informs the lvel bp, same with objectives and all. So is this alright?
I imagine that all that is happening in my game as it is a horror fps will be written down in the level bp as if it is a story book of all events. So it will be a large collection that i need to organize well.
Is this ok or are there better ways? Thanks
Well it makes for a single location for all things atleast
And its unique per level, and has a requried sequence of events
you could've gone for some overall manager instead, but im not sure you'd benefit much from it really
each level must be set up manually anyways, so reusability isnt very high on the list
doors and such could ofc handle their own logic,
where the level (or another manager) just informs it if it can be opened (assuming it was locked)
or accepting the correct key
personally i'd prob do it that way
So keys have a signature that only fits to that single door
level bp would mostly just trigger events
You mean a sort of actor bp to hold the information? I was also looking at how game instance/mode also fits some logic in multiplayer games but in my case its only single player.
Most probably i will only have one level for the game area using level streaming.
doors doing their own logic and animations, and key signatures using tags is prob a cleaner way to go tho
personally i dont like using level bp at all
Yup it is setup to use a sort of guid compatible between doors and keys, but once it is open it will have a dispatcher then on the level bp, i call that event to trigger or update some stuff or connect to the obj or some other eventd
Sounds like a suitable place for setting up a global event bus with a dispatcher
Thank you for the information, its a simple fps horror game with quests, puzzles, interactive stuff, so i hope my current setup will suffice π
sounds interesting enough (Y)
Can anyone see why this doesn't function as intended
After setting the variable to 55 , it doesn't reset back to 10
it is a pick up item, so it needs to get destroyed when interacted with ( not after 10 sec)
You could do the rest of the code in another BP which gets called. Probably in the gamemode though not sure how feasible it is. Or you could make it invisible with no collision to make it seem like its destroyed when in reality it's still there for 10 seconds
yeah that will not work since the spawned floor + everything on it will be destroyed after 5 sec
I mean that you would cast to the gamemode first in the sequence, then it will call an event within the gamemode which sets the point multiplier which goes down after 10 seconds. Then after that is called, the actor is destroyed second in the sequence
You do the destroy actor in the blueprint you sent a screenshot of
but the other code is done somewhere else, that way it can be destroyed and still do the rest since it exists somewhere else
lemme try it π
genius π
it works
does anyone know the earliest point (or event that fires) at when a widget can be added to a viewport?
... after the widget has been constructed?
sorry, bad phrasing, earliest point of creating a widget then? there appears to be some game state calls that fire too early to properly add widgets as a slight delay will allow for the widget to spawn and be added correctly
I can help you learn to take a screenshot if you want!
when I add the ocean it comes out red
after a player controller has been spawned in
Strongly advise you don't use gameplay classes for widget stuff. Best place to handle it is in your AHUD class. Most of the core framework is available by the time HUD's beginplay calls.
Hey, is there a way to get total GPU memory usage?
possibly with the profilegpu console command
yeah I fully get that, makes sense, was just interested in the execution order of the various Unreal components on game start. have been looking for a graph but not found one yet. thanks for your help! π
there is one
but basically game instance is at the top of the hierarchy for games
actors don't spawn until there is a world
The issue is that it varies based on networking or not. For most UI stuff, the only real things that matter is that GameState is available, and that the local controller is ready. AHUD is spawned by controller, and Beginplay never runs until GameState exists and starts the call to run it.
and beginplay doesn't trigger before the game mode calls it on every other actor
Hello, I'm trying to dynamically change the lyra character's opacity, I'm doing this...
First picture is the blueprint that's run on game's start after team change color (inside B_Hero_ShooterMannequin)
Second pic is the M_Mannequin material
And I've enabled Opacity in all of M_Mannequin's material instances(third picture)
Idk what I need to do to make this work, i'm pretty confused...
The character has the opacity I set on the material asset beforehand, but I can't change it dynamically...
you have to set it on the node if you're creating a dynamic instance material
What do you mean on the node,
on the node itself, not in the details panel of your material instance
a dynamic instance means you're spawning an instance at runtime
it's not the same as having an instance asset
Yes, how do I create the instance at runtime tho, (The first picture is what I'm trying, but it doesn't work)
Anyone have experience with LineTraceByChannel and using Spawn System Attached instead of Spawn Emitter at Location?
you're using a source material from the mesh itself instead of picking a material you want an instance of
this still doesn't work
What is the goal?
the it's probably something to do with the material itself. ask in #graphics
I was interested in seeing if I could use Niagara Effects (NE) with line tracing but NE wont work with the Spawn Emitter At Location node since it takes particles and not NE. So I came across Spawn System Attached which does take NE.
I've come across a few issues with location spawning and it isn't behaving in the way I want. Either if the line trace hits the world the effect spawns as it should but when I get a line on an actor the effect spawns else where or the other way around.
It's a bit funky atm so I'm just wondering if it isn't a convoluted system to work with.
Not as familiar with Niagara Effects? Is that a new UE5 thing, or?
@grand valve Movie Render Queue worked!! Thank you so much for your help!!
Yeah it came with UE5 and we've been able to use it for a while. Just a new way to create effects instead of using cascade.
Still not sure what effects means in this context. What is the difference between an effect and an emitter?
Mmm. Maybe I'm misunderstanding it myself here.
But from what I understand about NE it's a "system" that contains emitters and a few other things. So we are unable to use NE with the Spawn Emitter at Location node because it houses more than an emitter.
So that's where the Spawn System Attached node comes in as it uses a "system" or Niagara Effect.
I am silly and figured it out. Sometimes typing things out gives you the lightbulb you need. Spawn System at Location is what I was looking for. And then you would use NE as the System Template to get the result you want. Tyty.
instead of doing this (first image) is it possible to put all the actors I want to spawn in an array?
What are you trying to do?
I have various obstacles that I want to spawn but they should spawn at random at the same location
so currently I only have 1 obstacle (pumpkin) I want to have other obstacles to be spawned at those lcoations as well
So which obstacles are random, but they occupy the spawn points one by one?
I have created 2 other obstacles but they should occupy the spawn point but only one can be spawned at any given time
hence why I thought an array would make sense but I am unable to make an array of actors to spawn
Yeah, it seems like it would work. A strange way of doing it to me, but if it works it works
how would you do it ? since my method is not working
Where are you doing this? Because you're adding a child component when I'd assume that wouldnt be necessary
And how often do you call that ?
inside a function in the BP that spawns the floor/ spawn points. It gets called every time the "pawn" passes a check point.
so this would be the logic for the single obstacle
I'd have one actor called "obstacle" which then has its mesh be an instance editable variable which is set in the construction script. Then that actor is created and the variable is set randomly from an array of static meshes in whatever BP you have there
Depending on if you want the randomness to change or not, that would be changed however. If it never changes and is always perfectly random then I'd just have the actor randomly set its mesh on begin play inside "obstacle".
If you want the randomness to be dynamic, then that wouldn't be viable
ok I will see if that works or is even viable for my game
Oh, btw you are going to want to change the "min" value to be 0. Otherwise it will always skip the first spawn point
to be fair adding an extra pin to the switch on int would work just fine.. don't know why I want to do fancy π
yeah I know I had deliberately done that so it doesn't spawn anything in the middle lane while testing π
see second image
Well it would be slightly more efficient to do it this way. If you ever wanted to add more objects, then you'd need to go through and add it manually, rather than just being able to add the new mesh into the array and the BP doing it for you automatically
yeah I guess so
would be like 4 obstacles max so it is not that big of a deal I think
Whatever makes more sense to you is probably the best way to go
I'm having an issue working out the best logic for this function, if anyone could help that'd be very appreciated. Squares are static meshes and circles are the materials. The numbers are how many should be in each row. All I'm trying to do is create a function that can generate this without me physically going through and creating a database or something with all the variations then to randomly choose one on begin play.
Hello, Is there any way I can reference the material of the body in blueprints?
hello i was helping a friend that was having a weird problem in blueprints where each node was way higher that it needed to be, i don't have a screenshot so i did a paint edit to give a reference of how the nodes looked like. do you know what could cause this? An Editor Preferences option?
i think they were even higher than this
Create array, shuffle it
Hero! Great shout
generated a grid, tell me how can I draw lines between points?
Please dont crosspost for no reason
Hi guys! im just trying to do a simple thing in a blueprint to control a niagara system. Everything compiles and all variables are linked up in niagara, but it doesnt work and i cant figure out why. Any help would be appreciated β€οΈ
Clearly there was reason, this is a bp issue so I posted it here after getting no response in general just makes sense
You waited 5 minutes, be more patient
have you read the #rules ?
awh guess ill keep on crying then π¦ π
Try without the dot?
And how do you know it isnβt working
Possible to assign the bytes of an Enum manually in BP like it is in C++?
enum class Enum_Character_Action_Type : uint8
{
// Zero placeholder...
Null = 0 UMETA(DisplayName = "Null"),
Jump = 246 UMETA(DisplayName = "Jump"),
Sprint = 247 UMETA(DisplayName = "Sprint"),
Deactivate = 248 UMETA(DisplayName = "Deactivate"),
Activate = 249 UMETA(DisplayName = "Activate"),
};```
happens automatically, you already have 256 options by default
Yes, is there a way to do it manually?
Anyone know of a good way to scale a blueprint actor to the size of another actor ?
Would somebody help me troubleshoot why this Set Timer by Function name isn't working? The function is RandomSkybox, and it seems to me that the skybox would be resetting based on the timer, yet it isn't.
do what manually?
Assign values explicitly, rather than having them automatically assigned to 0,1,2,3 etc.
I mean you can't do that in blueprint
what you can do in move options up and down
So that's the answer to @cyan surge's question π
Yep shame really should be possible :')
but I suppose most people wouldn't have a need for it
Whats the use in having specific enum values rather than 0,1,2,3,4?
Not tryina sound snarky, genuinely curious
Because the number actually means something :)
and I have other Enum's with specific values taken you could call it Enum Inheritance haha
UENUM(BlueprintType)
enum class Enum_Action_Type : uint8
{
// Zero placeholder...
Null = 0 UMETA(DisplayName = "Null"),
// 0 - 249 Custom actions, specific to the entity type.
// See,
// [Enum_Character_Action_Type]
// [Enum_Titan_Action_Type]
// [On Entity] There is no action active on this entity,
// [As Input] Request no change to action, don't apply action input,
No_Action = 250 UMETA(DisplayName = "No_Action"),
// [On Entity] DONT set on an entity,
// [As Input] Attempt to stop the current action,
Cancel_Action = 251 UMETA(DisplayName = "Cancel_Action"),
// [On Entity] DONT set on an entity,
// [As Input] Attempt to continue the current action,
Continue_Action = 252 UMETA(DisplayName = "Continue_Action"),
};
// Different types of actions prescribed for all characters,
// Effectivly inherits from [Enum_Action_Type] and expands on it...
UENUM(BlueprintType)
enum class Enum_Character_Action_Type : uint8
{
// Zero placeholder...
Null = 0 UMETA(DisplayName = "Null"),
Jump = 246 UMETA(DisplayName = "Jump"),
Sprint = 247 UMETA(DisplayName = "Sprint"),
Deactivate = 248 UMETA(DisplayName = "Deactivate"),
Activate = 249 UMETA(DisplayName = "Activate"),
};```
Ah fair enough, that makes sense
There's an example of what I'm talking about :D
Ohhhh i get it, thanks :)
So much activity here, my question is going to disappear quickly.
Because your not using it :)
Its hard to tell whats wrong without seeing the RandomSkybox function
that gives you a refrence to the timer, it's the blue "return value"
By using the data you used to create the grid in the first place
being that there is no numbering for BP enums, I don't really see how you would make that work. add to that you're showing different enums I fail to see how this is anything but an elaborate hack. seems to me that maybe enums aren't really what you're looking for to use
If you don't understand you don't need to make a big deal about it bud
definitely a good way to get help
good luck
π€£
Thank you, I'm not totally following what you are saying though. Is that the blue pin off the set function by timer?
How do I check if all booleans in an array are false?
This works as intended.
Then whats the issue
is there a way to pass different values based on conditons to the FABRIK
Probably but it depends what your goal is :)
Oh nvm got it
I just want that function to reset on a timer ... it's resetting the skybox.
You want the timeline to reset each time the timer ticks?
Its doing exactly what youve told it to
Set the timer, rotate the skybox, then every second change the materials of the skybox
It isn't changing the materials, thats the problem. π
Try that :)
Pull it into, "Play From Start"
but honestly seems like your timeline is already looped haha
I dint think you understand the issue
Is that randomskybox function inside ofnthe sky sphere bp?
Okay so you wish to call "Random Sky Box" on the timer?
Then call it from Reset me on it's own
Thank you Lucian! That works like a charm!
The classic 5% victory haha
That's true, its why I was asking for insight. π Thank you! Problem solved. π
Roll d100 to understand Unreal Engine ... thanks for helping me make that skill roll.
Well then lol
hey, if I create an actor class in blueprint or c++ that has some component , can I make child classes of that class that replace that component with another component that inherit from it?
ie I wanna make a "humanoid" actor with an inventory component that does nothing, and then 2 inheriting classes, one with an inventory component made for player characters and another made for AI characters, that replace the original class's inventory component
if not, what would be the proper way to do something like that?
This sounds like a strange design choise
Would the player vs ai inventory be different? In what way if so
Yeaj that sounds weird. Why different?
Can someone explain to me the process to take a web app designed in unreal engine and be able to use it with a website and application from playstore or Appstore
I just 30 mins ago saw a tweet showing that this is now doable with the CharacterMovementComponent in UE5, via a drop down in the blueprint defaults. Might be worth looking there
somebody in another discord ended up suggesting having a reference to the inventory component in the base class rather than the component itself
then the child classes would have their versions of the component added, and the reference set to that
the player inventory would be part of the save data and would generally be more complex than the AI inventory
think players vs NPCs in dark souls
both human characters with the same base character controller & logic but their inventory work mostly differently
Then make player inventory a subclass of ai/chest inventory
I prefer just one component though.
Does anyone know how you can have a construction script show up in the details panel when its inside a component on a blueprint?
Not sure you can
how would you have it show up?
Ah dang...
normally if you check the call in editor box it shows up as a button in the details panel.
... yes?
the construction script already runs everytime you move an actor or change a value
issue is if you make it a component instead of a blueprint and added it into another blueprint the property doesnt show up unless you make another construction script that casts to the component.
that is the case for most but it seems like the editor apply spline action im using doesns't work like that.
it should
It doesn't automatically paint the terrain as I move the object around
oh interesting. hmmm.
I don't know what you're making but it sounds like you're trying to do something that's not allowed
with splines though?
I can understand making a landscape brush
I just don't know where splines fit into that
yeah in my case I'm trying to make a component that lets me paint dirt on the terrain around builds using splines.
I have the spline in the building blueprint so I dont have to make the spline every time.
So you only need the building extents, and follow along that^^
But same idea anyways it sounds like
Paint along a given path
Be it a spline, a line or something else
is there a way to predefine the datatype for arguments in the Format Text node?
hook in a literal
e.g. i want ${FOO} to always be an integer node
well thats one way.... i hoped for a solution like in the math expression node where you can force data types
yea i guess datatypes are not the idea of that node π
as it seems to be a exposed feature of FText rather than a standalone node
it's an analogue of how you do text in code
first time I hear someone not liking generics though
i use it to generate an SQL query, so it would have been nice to define the correct data types :>
why not use build string then?
text is for formatted text
string is the type you want to use for cultural invariants
build string seems like a mess, with the format text node i have the whole query in one line which makes it more readable
well, i'm not too much of a fan of any of the solutions in BP either
but also not motivated enough to port it to c++ for now
as i don't even know if i want to keep it SQL related
I mean really if you're doing something like calling SQL queries I'm not sure why you aren't working in cpp
sorry for the lkate reply! ive put a breakpoint, it hits it but it isnt affecting what im trying to control
that's some old relict of my project, which was before we had rider on linux π
and therefor no suitable IDE
sounds like you're hellbent on shooting yourself in the foot π I have no answers to that
hi, does anyone know of a way to make a sphere collision able to pick up multiple instances of an actor? I got a character with a working function that reveals hidden objects inside a huge sphere collision. I want it to reveal all the hidden object inside the circle at the same time, but it seems it only picks up one at a time.
show code
it works, but it only picks up one object at a time
all of those actors have the same function w/the particles
How can i make to always check branches?
okay so. I'd delete everything after the cast
is this inside the player character?
no, this is inside the actor blueprint
explains why you're having issues
the sixth sense is just a bp with a sphere collision that attaches itself to the player character
how could i fix that
well you're enabling input on each of them, but realistically it would have to either fire on either all of them, or just the last one. and I think in this case it will only fire on the last one.
you kind of have to think about it differently
instead of having a separate actor for the collision, I'd just have a collision component directly on the player character
any time that collision would overlap with one of your objects, I'd add it to an array
inside your character you already have free access to input events. you could then use the array that you have to consider what you want to do with the bulk of the objects
do you want to do something for all of them? for just one of them? for a specific subset?
I want them all to show the particles whenever the player is pressing F/Y/Triangle to indicate that he can interact with it
how does the player know which one they are interacting with?
there's another collision box for Interaction, he stands beside it and a widget pops up to show what he needs to press and how (press, hold, mash, etc.)
okay so all you want to do is some activation
how does the second interaction work?
I'm asking because right now the code that you showed enabled interaction too
The activation for the interaction works when the player collides with the interaction collision, a gate opens that enables him to press X, then he presses and the function is called
i got two events, top one with the Sixth Sense collision activates the particles when pressing Y. The bottom one with the Interact Collision activates the actor function when pressing X.
the problem lies with the top one
like I said, your approach is flawed
I would avoid using enable input
and handle input in the player character instead
then you also only need one event
and none of this spaghetti gating
okay, sorry about that, I got confused. So remove the enable disable inputs, and every time the character collision overlaps with the object's collision, add it to an array?
Sorry for the spaghetti codes, im kinda new to this
yes, an array inside your player character
then you have your input actions, hint and interact
also in your player character
now you have an array of elements you know are nearby (inside of your sphere), so you can do things with them
let's say you want to interact with the one the camera is facing
you can now do that for cheap
meanwhile, if the hint action is affecting all of them, you loop over the array and activate the hint on each of the objects
I've got a bit of AddForce on a weapon fire and of course most of what I hit isn't movable, because it's just level geometry. What's the cleanest way to check if a hit actor or component is "Movable"? I can't find a method that supports it
another thing: I notice you have some delay functionality. I'd advise for you to make a hint event inside of your objects that handles any delay activation and deactivation
much simpler
then from the player character blueprint, all you do is call that function, and the object itself knows what to do
will do, thanks for the help
yeah, i think learning through youtube might've caused me to adopt a complicated way of doing much simpler things :C
you're a lifesaver
youtube tutorials are a very easy way to paint yourself into a corner
it's people who don't understand programming who are the first to put videos out
so it's the blind leading the blind
Any ideas on how to implement an item system that leverages GUIDs?
That is, an item system where every item is unique, that would enable a lot of gameplay regarding insurance, registration, investigation, linked items (phone contacts) etc.
GUID in the item struct at creation is a given, I'm more wondering about how to implement an ItemActor or Item lookup given GUID, for gameplay purposes (tracking an item, messaging from one phone to another, etc)
Also what's the difference between "is simulating physics" and "Is any simulating physics"?
isn't there a GUID system available in cpp? otherwise it would probably not be difficult to make one based off the asset name
There's GUIDs built into UE4. But if you wanna do it between different devices, things get considerably more complicated
Yeah you can just generate GUIDs all you want. I'm talking more of the registry or backend or whatever you'd call it. Some sort of global master data serverside that knows where every item is (what inventory it is inside or where it is in the world) etc.
Oh man you've asked the right guy lol but it's not Blueprints at all
What you need is like a REST API with a backing datastore of some sort
Global as in per server instance, not global as in the entire game across servers.
Could just be a map of GUID to.... what? I'd think InventoryComponent or InventoryID but that doesn't cover the "in the world" case
I don't think that's a question for #blueprint. if you want it to sit deep in the core, there is no way but use #cpp
So if I'm getting this right you've got a central registry that can say "this item is on the ground, coords XYZ" or "this item is in the inventory of Player 3" or whatever?
What happens when that disagrees with your world state?
crash to desktop
no trial
Yes exactly. I moved to #c++ but "This item is in X inventorycomponent or is instantiated as X Actor" is the basis.
someone gets the reference π
I mean blueprints have full GUID support as far as I can tell. But I'm still curious, you want to make a secondary tracking registry for things which are (in theory) already tracked.
Like if an item is in a level, the game knows that. If a character interacts with it, and it's removed from the level and added to some inventory list, the game knows that. But you want it to know it twice, in two different locations.
Why? What happens when they disagree?
Moved to #cpp since its kinda in that purview.
Oh interesting. You can defs do that all in BPs. You just need to define a top-level abstract object all your items are going to inherit from. And probably a "Activate in world" and "Activate in inventory" function
The cellphone use-case is a great example actually. In theory "activating" a cell phone in my pocket and one lying on my desk does the same thing, it rings and I can answer it right? But in practice, the "hows" of that interaction, how do you display that it's ringing other than the sound, how does the player interact with it, how do you message that interaction potential to the player, those are all completely different on an in-world item and an in-inventory item.
How could I make it so variables stay the same when switching maps?
You have to store them somewhere between level changes
GameInstance is usually the only thing which doesn't get destroyed during that
If they need to persist between level loads yeah
Level streaming is another option, in which case some actors may not always be destroyed between streamed levels, but it has its own complexities
The variable im using is to show the cash the player has, would I need to save this to a file somehow?
Well if it's just one variable it's pretty easy to store it into the game instance temporarily during level loading
Could I make it with a save file?
You could save it in a save file indeed if you want it to persist after closing the game and coming back
Indeed
Is there an easy way to do this
how would i make a projectile type for a shotgun in which there are multiple meshes that spawn out in a cone shape?
You're looking for SaveGame Objects. You should make your own class for it and then you can CreateSaveGame, LoadGameFromSlot, and SaveGameToSlot
How do I use the Save Game Object in Unreal Engine 4?
Source Files: https://github.com/MWadstein/wtf-hdi-files
Why can I set default variables for a child actor in the BP editor, but not in a scene?
Use your normal projectile system, just spawn 9 of them instead of 1
For loop
ok thnx
make sure you give them a slight variance each loop or else you'll spawn 9 projectiles in the same place with the exact same direction. Not really what you're going for I think
is this blueprint node the some as this option in the details panel?
@faint pasture i managed to get multiple projectiles spawning but now what nodes do i use to tell it to orient them to angles after they spawn from the muzzle ?
I'm at my wit's end here, I'm rebuilding a project, and I can't seem to get the same usage of interfaces working in the new project. First picture is an example from the old project, just a reference to a generic Game Instance, and using an interface message from that. The second picture is what I am currently struggling to figure out why it doesn't work, it's the same type of setup, generic Game Instance and an interface message, but the second one isn't going through. Anyone have an idea of what the issue could be?
Does your game instance implement the interface and know what to do when it receives a save data message?
Spawn them pointing in slightly different directions
yes, a transform is made up of location, rotation, scale
ah
so combine the rotation of the muzzle with a rotation with small random pitch and yaw values and it'll be MuzzleRotation + SomeSmallOffset.
ok thank u
It does, this is what I have setup in the Game Instance
i know this is a somewhat dumb question but... how do you open level blueprint in ue5?
Pretty much the same way you did in 4.
?
@faint pasture i have this one transform pin i think orange do i add a node in between that and the socket transform to specify the angle ?
ooooh that's what that is. mine just has the icon. thanks
Can someone kindly tell to a beginner, what is this blue icon here in the blueprint node?
(I'm trying to re-do my schoolwork but I don't remember what I did for this to appear and I did not find any in documentation or by clicking on it)
Ah, of course, I had forgotten to specify which Game Instance class to use for my game mode π€¦ββοΈ
It's showing you that you're watching that value, if you breakpoint in the blueprint, that should show the value of the input directly in the graph
Thank you for this fast help. I totally remember now!
if you break the transform connection (alt + left click) you can right click and split the value into smaller parts. That will give you rotation specifically. Then you feed everything else in normally but specify what you want
@brazen pike i got to that part , how do i randomize a rotation? im running a for loop i want to set it to spawn at a random rotation evey iteration
this stuff is after the loop
i just want to know how to tansform the random node to rotation
What do you want rotated, just the Z axis?
like i want it in a cone
so it is looking left/right a random amount
like a spread
and up down
Okay well you can use the "make rotator" or you can split the rotator again. Then you can feed in a random float in range to the values you want randomised
So you'd want the Z and Y axis randomised but not the X axis otherwise it will spin
you probably want to feed the X axis from the get socket transform into the new X axis
Why would you use integers
use "random float in range" rather than "random integer in range"
You could use integers, but only if you wanted them to be whole numbers or specifically within 90 degree variations or something
And then connect it to both the Y and Z but have the X be taken from the get socket transform
did i do it right
No because the muzzle rotation never factors in to this
oh
combine your random rotation with the muzzle rotation to get muzzle + variance
The value is added to your watch list, which you can then inspect without having to step through all the nodes in a bp π
Oh this is a gun
how do i combine ?
Have you tried? Just drag off a rotation and type combine, you'll find it
oh ok
I use blenders. Much quicker.
huh
@faint pasture @brazen pike am i missing anything here. its working but just in case im making any mistake
Logic is very literal. It's unlikely you have a mistake if it's working as intended.
You don't need to split the pins on combine rotators, just combine the rotators as purple pins
o i thot i had to do it because i was gonna leave out x
if its 0 then it will leave it out regardless right
is there any painless way to keep a bunch of variables queued with a delay?
all I want is to say call an event 3 times, which has different parameters every time and then keep the parameters while it's going through delays
you can always add it to an array
and iterate that manually, in whatever delayed sequence you want
I want each to have different delays though
right so thats a parameter
I thought delays were linked to the event instance calling them
except this gets overriden every time it's called with a new value
Yeah you'd need more sophisticated logic than that π
how does that Delay work when it's called multiple times btw?
Ignored while "active"
so keep them in a list,
first entry is read directly,
next entry is read after a variable delay from the first entry
something that says something about the first entry's duration i suppose
im trying to blend this bone depending on the bool but when i do the animation my character just stays still. is there a way i can get it to stop blending for the duration of that bool being true?
is there a way to make programmatic curves in BP? I'm basically trying to make a curve where my keys are variables
ah yes
blueprint
I have a FString var on my character, and I set it to some text in my BP, but when I try to use it I always get an empty string. I don't know how to fix this.
Anyone know of a way to trigger a construction script on any actor in the current level that has a specific tag ? Tried this but its giving a warning and isn't working
According to your warning, your spline comp is not an actor, so the cast will always fail. You probably have to do GetAllActorsWithTag->GetComponent->CastComponent
My data seems to be disappearing between getting and using it. Anyone have any ideas?
When that print is hit it'll get again
I think I am doing something wrong, but I am not sure what. I tried setting the value right before calling this print string, it still comes up as empty.
That worked, thanks @bold shard !
how are you trying to use it
π
guys how do i create an ai i have been strugling to figure it out
Theres an ai quick start guide on the docs
But it all depends what ai youre tryina male
Make*
just one that walks around for now
Then look on the docs for the ai quick start guide
and i dont wanna use a tut bc i wont learn from it
tutoirals = for morons who want to copy ppl
ok ty
whweere do i find the docs?
Just google ue documentation
ok
Does UE5 still have a level BP? Google is garbage lately, and I can't seem to find it. As well it's probably right in front of my face and I'm just blind, stupid, or both. lol
NM
brother-1 is it under ---- Samples and Tutorials
Links to various example scenes, sample games, and tutorials.
I am both blind and stupid. It's the new BP icon
im blind
Just google ai quick start guide and youll find it
ok
I am spawning my character then trying to use it as a key to a data table.
i think i found
could you screenshot the flow of events
are you sure the return value from the spawn function is going to the set name function? it looks like its passing through under to something else
The value of PortraitName is set on the BP, the Name I am setting there is just for the UI in my gym.
also you could set the "name" function in your character class to "expose on spawn" that way you will have an input node on the spawn actor function
also it looks like there should only be an a and b node
(should have crossed out c)
I was just using that " | " as a way to separate a couple of inputs
And sure, I will try exposing it on spawn, but doesn't that defeat the purpose of configuring my blueprint?
its the same thing no?
Not really.
Configuring my BP lets me use the same data package everywhere I have my spawners.
If I need to give my var the ExposeOnSpawn tag, then I will need to configure my spawners to handle my different character types, and pass different PortraitName vars in each case.
does the logic on the pawn have functions for that?
understand
what class are you spawning the character from?
My spawner class
wait a sec guys i have a question
how do i make a better aiming then my current one?
let me load it up rq
ill send a ss
ok, i see you set the playerchar as a variable omn the TEMP_addchar event, could you set that variable straight after spawning it instead
Its like none of my character's data is persisting after spawn
thats a very open ended question
define better
i can explain better when i get the screen shot
wait just a sec ok
breh my map makin skills are just π π
I could, but this leaves me with the same problem of "How do I define which portrait to use?" If my blueprint data is being reset after spawning it, then how am I supposed to know which portrait name to use? Any data I set on the BP to set my PN will be reset as well
by magik
The data is being defaulted when I spawn the character, so that won't work
Any data I try to access off the return is whatever the default value for the variable's type is. String and names are empty, data tables are null, etc etc
instead of just set fov to - interger like how do i get it so it aims down sight?
can either be done with animations or an ik setup
You probably want to set that bool to true on press
ads either requires you to make an animation that brings the gun and arms to the center of the screen
or you ccan use an ik setup and do it programatically
ik?
inverse kinematics
Inverse Kinematics
well ye
thats what im workin with lol
but youd have to set it up
bc ik how to do that π
you need to either animate it, or set it up for the ik process
if you wanna make games you better get used to em π
well
not when i am have 3 brain sells
also one last thing
oh no 2
1: when i shoot the front of the guns goes to the left slightly
do ya know why?
ye
with to arms
ye
and no body?
ye
f*ck me
most fps tutorials do
true
but anyway
better aiming is either gonna require you to learn how to animate, or do some not-so-easy math with ik
uncheck bounce in the projectile
how can I make it so the fps template uses my own mesh instead of the default one?
ez
and the animation still works
click on the thingy
ther will be something in projectile movement for bounce amount
then the otherone
bc when i change the mesh the animations stop working
Your mesh probably has a different skeleton than what the anims target
so do i need to add the default mesh skeleton on my mesh?
That idk, I don't work with animations. I've just had the same problem before, so I know what a potential cause is
holy i just made my reload so much beter
Uh so is there no BP function to filter an array by any condition OTHER than class?
Well yeah, if it's a different mesh with a different skeleton you need your own AnimBP or if it's a similar skeleton type you can retarget the animations
wait
so guys
iv added a grenade to my game
tbut could i
use the same code kinda to make a max grenade?
and just chanhe the interger
or no?
You can iterate over the array, and filter out the elements you want in the loop body
"Max Grenade" is my new gritty action OC
lmao i pressed control z too much and ue crashed
e?
What do you mean by "max grenade"
like
so you can only throw like 3
and you cant use anymore
bc rn u can just spam c and crash my laptop
hello can i ask something about blueprint in here?
Yes
It's #blueprint so, yeah.
I mean... that's probably its own separate set of problems
ah thank you! i wonder why event dispatcher Custom Event binding node has Execution pin?
yh but if i put a max cap on it
i know that when it called it fire custom event but why node itself has pin?
You could also just put a cooldown on the grenade ability
Show screenshot of what pin you're talking about
Cause it will execute the code when the listener is called?
If you mean the one coming from the red square
Easy way is make a variable and do a check before the rest of the code to check if the variable is above 0 and then -1 each time a grenade is used
Easy Way
here!
Oh no no
That's to continue the flow of the code
Imagine if you wanna have 3 listeners for example
That just binds the event to the dispatcher then goes on to do something else.
In your case, you're binding the event then setting percent. If that's what you want to do, then great.
so, in your case, Set Percent will fire when the widget is constructed and whenever the UpdateHealth dispatcher is fired.
Here's an example of when I'm using ONLY that pin
Thank you for your kind explanation. So the order doesn't matter?
Well, it can, but to answer a slightly different question the order of binding does not influence the order in which the bound functions are executed.
how do i make explosion bigger?
ok i understand
I think it's a blocking thread when setting the bind, so should be fine in any order
Scale stuff up.
e
That SetupInputBinding function I linked is called on BeginPlay and happens instantly, and then the actual code is executed whenever the player presses the associated keys
why do you just keep saying e
What do you mean "placed anywhere"? The only real structure to the order of events and nodes is the execution flow.
Usually binds are set on beginplay / construct / init unless you doing something special
bc my brain hert
Really depends on what the bind does
sorry for my bad english, I mean anywhere in execution flow?
Hi, just a bit stuck, how can i get the location of an object i just spawned? i don't know how to reference it
I would personally place the binds at the start if you need them to listen asap
When you spawn an actor there should be an out pin that has a ref to the actor spawned
ah ok thank you guys
I mean sure but things will happen in order from the entry point of the chain (whatever event is triggering it)
all of you have nice day!
i think that event dispatcher binding event only fire when it called?
Yeah creating a binding is kind of like you're making a road from one thing to another. And then later on, someone can drive down that road, one or multiple times.
The idea is to mentally separate building the road from driving down it. They happen at different times
ahh i need help
with what
The questions you're asking so far have been a little too general for what people can contribute to, without like teaching you how all of UE works. It'll help if you can link some specific code you're having trouble making work
^
and being specific about what problems you're running into
your issues so far come with a lack of understanding of the engine, and the tools that go with it
i highly suggest picking up a beginner course
nah i got this trust
has anyone run into issues with UE5 not using your PlayerState class?
i think i got this now
I'm using a subclass of PlayerState but it isn't being used, even though it's set in GameMode
I'm not sure what teh deal is
Who knows with UE5
But how do you know it's not actually being used?
ok, so it's the game mode not being used
which means the rest isn't either
maybe the level is overriding it
Did you override the GM in the World Settings or set in the Project Settings?
project settings
ok, that did it
geez
don't nkow why I didn't think to check that
I thought my PS was messed up
We've all been there, dw
haha, thanks
i sleep now gnihgt
OK can someone tell me why I'd choose using DataAssets over DataTables?
I'm pretty firmly in the DataTable camp but I'm sure theres something im missing about data assets.
People are worried about memory
You basically never want to have hard references in any data tables
Because if you reference any part of the data table you have to load all of it
So what would the equivelent of AllItemsInTheGameDataTable be in DataAsset terms?
Can it just cruise to a folder?
So people like to use data assets instead so they Can load up some hard references that they want
Not totally sure, Iβm also a table guy
I've seen a lot of stuff about data assets having functions but ew, OOP is gross.
Iβll take a look when I get back to my computer
Any idea how I could get Trace 2 to Begin trace at the Impact Point from Trace 1 + x units With respect to the Walls Orientation instead of the player?
Hit Normal
thanks, issue is it seems to give me the location right after it spawns, but doesn't update on tick
would this be how I get Hit Normal + 20 units away from normal?
Yeah, normal is away from surface tho so you'll want -20
draw a debug point there and look
whats the difference there between impact normal and normal
Mouse over and it'll tell you.
I think they're equal for line traces
ah fair enough, just not in ue right now
but ones the normal away from the surface, and the other is in relation to the shape that was swept
hey i have a problem
I'm trying to make a system where you can select a perk to use in-game using this gui.
However, when I try to save this specific perk, it sets the "has perk" value back to false.
It only happens for this 1 button. It doesn't happen for the first one even though the blueprint is the same, only the values are different.
is this a bug or something cuz i can't figure out why.
The issue happens after pressing the green button.
number 1: the value in the player blueprint before pressing the button
number 2: the value in the save game before pressing the button
number 1: the value in the player blueprint after pressing the button
number 2: the value in the save game after pressing the button
the blueprint for pressing the blue and green button (blue on top, green on bottom)
any ideas?
try promoting the created save to variable
so i wouldn't have to create a new save game object?
Seems like a lot could be wrong, be sure the values out of Player Data are correct in the first place
they are, in the first picture, the value for player data is true, when i press the button, it sets it to false for some reason
Show that logic of true and false
Ah I got it now! Location + ( Normal * x )
Thank you!
the save is loaded at the beginning of the level. it's perfectly fine except pressing the button somehow sets the variable to false and i have no idea why
and it's only that button even though the blueprint is the exact same for the blue button also
Cause PlayerData is false
but is shows true in the first picture before i press the button
But if you press the button and in text 1 it says false, means it's false from Player Data in the first place
So it's gonna store in the save false too
from player data, it says true
when i press the button, it changes player data to false even though i didn't tell it to
You might be getting the CDO of the class, not your instance, where the value is false
Why is player data an actor?
So it's something in Player Data then if it returns false in the first place
Doing "Get All Actors of Class" is very bad. You really shouldn't do it.
how many playerdata actors do you have
I hope only 1 lol
I mean its not all that bad if you need to do it but this is not a need to do thing he's doing right here.
i didn't want to store it in the player blueprint because I use different character blueprints and i want the same values for each of them
using for each loop is causing your problem maybe
There's Get Actor of Class too for just 1 Actor in case
just 1
Why is PlayerData not stored on PlayerState?
The proper use cases for it are so small though!
It's not my code :D
It's good enough for GameMode, it's good enough for me.
Heh.
Then store it on a game instance or osmething.
if the thing you need is all actors of a class in the world for some setup, it's fine. If they're from the level loaded from disk, it's like, the only way to do it.
another interesting thing is why only this one button is broken. why does the other one work fine? it's an exact copy
the other one is probably 1st in the loop, before you exit it
in the function i screenshotted
theres alot that could be causing this lol
Is there a way to change variables of Character movement component through another actor component?
Yes.
Just get the component, change the variables.
@willow cedar yes
yes, "get character movement"
Is too slow today
i'll try saving it a game instance and see what happens
Indeed, would make no sense to have more than 1 in the first place, and it's kinda bad that's it's an actual Actor
Thank you!
And you!
And you
π
I had the idea right, I just didn't have the name to look up correct
You have an axe? Cool!
could be the event your firing it from
yes
can you trigger the entire thing from a different event
Make it Event Driven instead
Like a Overlap to trigger it
if i remove the do once it gets screwed up
il show you
^
Use OnComponentBeginOverlap
that part is in c++, i did use Onbegin overlap and called it using an event in bp
even before i had the same problem
i sent here it
Check if it overlaps the Pawn only
what pawn, im using a charecter
That works too, lol
A Character is a Pawn.
after one hit
Are you still on tick?
yes, thats what i have it on, thats the only way i can do it in c++ or generaly, how else will i do it
Overlap
yes
Indeedo
so whats the problem
That you're using a tick
does anyone know how i could find the "physics" node when i right click and search?
(image was sent to me by a colleague, i'm trying to copy the code but i can't find the physics node π¦)
I always used the dispatcher button for it :D
wheres that lol
Details
try get mesh
then search physics
I think what's happening there is just a class that was saved named as Physics that contains a Skeletal Mesh Component that gets accessed from it and the Physics set on the Component
thanks you two, that actually makes sense. i'm creating a cinematic and one of my characters gets shot. i don't have any "death" animations to work with so i'm just trying to make the character ragdoll and add some impulse from the bullet.
yeah
i've never worked with physics before so i'm crossing my fingers this works.
yeah, someone has made it confusing for you lol
π
i'll probably find a way to call the event using sequencer's event track
π€
Bro I have this already but in c++ only different Iβm calling it bu event which the event is on component begin overlap
anyone know if theres a way to convert text to static mesh? im trying to make it so that when the text box is committed a mesh will be set to whatever object is referenced.
text and static meshes are 2 completely different things
you could maybe set the text attribute in a 3d text actor
but you cannot linearly ocmapre the two
one is words, the other is a group of vertices and a material
i just wish there was a way, if the written text was the name of a valid static mesh
can you not just make a list of valid actors to change it to instead
DataTable / Map
Would work
Add a switch on string. Then you can make pins that say βcubeβ βsphereβ etc, then on each pin, you tell it βset static mesh nameβ to the mesh you want, then connect all to that last node you have
Pretty messy if you need to expand on it, Imagine adding a pin for every addition
Automate with a DT where Row Name is the Static Mesh name and have the Row hold the reference to the SM to spawn
alr alr ill try that
Text = Cube
Row Name = Cube
Row holds returning SM to Set
So you can make entries and in it and never touch the code for every addition
Thanks to everyone who helped with my issue. I have concluded that it was in fact a bug because it worked as soon as I remade the entire blueprint. And thanks for the suggestion to use a game instance it is a lot better than storing the variables in a "dummy" actor
maybe soft reference?
wdym?
dw thats not how soft refs work
a soft ref is like a normal ref, but instead of being a pointer, its a location on disk where the asset is, so to use them you have to manually load them, which reduces a bit of overhead sometimes
nvm
all you need to do is use that text to get a row name
and then get the static mesh from the row
and use that in the add static mesh
never really used them, i thought thats what it was
you could just use a structure too
nah basically it's a way to prevent loading lots of things
say if i have a data table, with 100 static meshes,
if i use hard refs, it loads all of them when i access the table which is big memory chunk.
soft refs mean you can just load the specific one you need and use it
yup im using structures to make a data table
soft refs would actually be really good in the case of what you are doing
how could i do that
?
When you decide the class of the SM there's gonna be Soft Ref
Cyan color
Object is Hard ref
if you make all of the data table refs soft refs, and then when you get the soft ref in the bp, plug it into a load asset node
then that gives you a hard ref to plug into add static mesh
basically prevents you loading every single mesh in that table into memory when you just want 1 row
first time ive seen someone here that can benefit from soft refs ngl
Be sure to use the Completed exec pin tho when you Set
Node is called Async Load Asset
It's Async so doesn't block the game thread
this is all very confusing to me but ill search on how to do it more... i think i under stand what youre saying
It's really the normal workflow, but you put the Async Load in between Getting and Setting
okay
yeah its 1 extra node really
and it will help you a ton
say if you decide to expand that to 200 possible meshes
the without soft refs, whenever you access the data table, all of those meshes, materials and textures get loaded into memory
which could be hundreds of megabytes of ram
instead soft refs just store the location on disk, which you manually load, meaning you only ever use 1 at a time
which would be only kilobytes
Just don't use if it something is already always loaded no matter what
yeah
How can I create items which players can have but without using many variables
its mainly useful for data tables
Is there a list of some sort?
that is a really vague question
why dont you want to use many variables
early optimisation is a no no
you gotta remember that most of these variables are like 32 bits, so its no biggie
32 bits is like double of 16, that's a lot!
obviously if your item needs 200 texture 2ds then there is a problem
but you need to be specific, what items, do they go in an inventory, do they not, what do you mean by the player can have them, why are you avoiding variables
cause spoiler without variables you cant make things
I already see the 100 variables manually added to an Array with Make Array...
I am, cause I don't have that level of patience :c