#blueprint
1 messages · Page 152 of 1
one guy in NL got private investigated and etc.. other one is facing millions in fines, nintendo aint playin
there's a guy called craftyboss that's making mods for super mario odyssey and he hasn't gotten shit from nintendo
he's made new game modes, new maps, overhauled entire game mechanics, even added a rewind time function and nobody has stopped him
i meant in modding the switches, nintendo doesnt really care much about poeple modding games, as much as people who makes switch be able to play those mods
but if you notice too with nintendo. they can't stop you modding anything, console or game, all they can do is attempt to suppress you through the legal system, there's nothing they can put into their hardware or software to actually prevent it
yeah i know, its tokens... if its android, user clicks buy, goes through android pay, gets token, that token is sent to your api, you can check that token in your server-side with google api, then you verify he actually bought it, and then you can update your DB that he gets donut skin or some sht
Yeah but I’m saying you don’t need an API for that. Android pay is the API. You just update the skin for the player and sure add it to the DB
for “currently equipped skin”
ok, but you need api and back-end server with your databas...
If your keep tracking of what skins they are using sure
im not sure how else youre gonna keep user data without having some sort of API and DB on your server? You need to verify that token on your side too, and then update your database and players record according with what he bought etc...
I'm just happy that I figured out how to have a system where when you look at an object it brings up a prompt to press a button to use the object, and the prompt changes based on what key is bound to that action...
right you would want a DB and API to track player stats
You don’t necessarily need a server but you can
how will you use DB and API without server? Where will you deploy it?
that could be easily tampered with though no?
Serverless?
yeah
No cause it’s still hosted
the actually way you access it would be the same of a dedicated server
well it would still have to be hosted somewhere... there's no such thing as data that isn't stored on hardware somewhere
Well sure at some level it’s running on a server
yeah, its hosted anyways, theres nothing local...
But for you on the top level it’s serverless in the way you aren’t running a dedicated server you login too
who hosts the serverless stuff?
ah so you'd still need to pay a provider
i didnt got the " and the prompt changes based on what key is bound to that action..." part? its like, an item picking up system right?
but it’s cheaper than getting a virtual server
cheaper, but need to look after the "call" numbers and how customisable they are...
so you know how in skyrim if you look at a door, it says "E open door" E being the use key? and if you look at an item the prompt will say "E pick up item"
well I figured out a way of doing that, but if the player rebinds the use key, say from E to F, instead of saying "E pick up item" it would say "F pick up item"
ah
Very customizable and you can choose how responsive it is. Your paying for access to it, the more you access and the faster you want it the more you pay
"Use pick up item binded key" and dont make yourself work harder
but you aren’t paying for it if no calls are being made
With a server your still paying for downtime
but I already figured out the system so I'm gonna use it 😛
and tbh it wasn't that hard to implement at all
even went a step further and made it show an icon based on the key by using a data table
so how do you store it?
i guess it game wide, and also if you restart game it should be still E
or F
nope, because whenever you stop looking at an item the prompt goes away,
so every time you look at something the prompt gets rebuilt and every time its built it reads the input list and finds the key associated with the interact action then shows that
ah nice
I am gonna add a branch between the query keys and the get function though because I want each action to have 2 potential inputs
one for keyboard/mouse
one for gamepad
so if gamepad mode is enabled then it would get index 1 instead of index 0
i didnt reall used enchanced, so you have options menu where player can change keybinding?
I haven't made the UI for it but allowing someone to change their keybinds is built into enhanced input
like the use key is just an action as far as the code is concerned, then every time you press a key while in game it checks the input mapping context to see if that key is bound to an input action, then if it is it runs that input action
I'm really close to finishing the core inventory then I get to work on the equipment system
Can I not add a timeline in a function?
there's an addon that lets you do that in the UE marketplace but by default no
Is there a reason why?
actually correcting myself on that, not quite correct, the addon lets you add timelines to COMPONENTS not to functions
functions are dedicated to things that are completed instantly, so you can't add delays or timelines into them. Best you can do is create functions for what happens before and after the timeline then slap the timeline in the middle
Ahh I see, very helpful* and concise. Thank you.
Timelines have multiple and latent outputs. Functions are meant to be executed immediately and have a single return.
latent?
Execute Later
Whoops
While you're here, what does Delta Location mean? specifically delta
delta usually means change
so because you're adding an offset delta means how much offset you are adding in that direction
so add world offset delta location X of 50 means you're adding 50 to the X value of the target according to the world's axes
Delta = Amount of Difference
because you're not setting a location, you're changing the location by the delta value
Add Relative Location is effectively the same thing as "Add World Offset".
if your player starts with an X of 50 and you set location to X=50, the player goes nowhere
but if you add an offset of X=50 then the player goes to X=100 because you're not setting the value you're adding to it
except the axes used are based on the direction the character is facing right?
because it's based on a location relative to the character and not based on the world
Oh, that I'm not sure of.
pretty sure it is
like if you're moving objects around in the UE viewport, there's this button in the top right, this mean sit's being used based on the world's grid
Well that much is true I believe, I understand the purpose of each just not the naming convention
but if you click it it changes to this meaning it's based on a grid focused around the object.. so the object's front face becomes the X axis
It doesnt seem consistent idk
wait till you find out there's an add local offset 😛
oh no
that one is useful tho
because "add world location" wouldn't make sense since "set world location" already exists
how does it not make sense if the add and set changes the meaning of each?
in my case I use add actor local offset to move something in the same relative direction regardless of it being mirrored in one instance
Set = Make it this value. Add = Add to the existing value.
Also I believe if you used a Set node after a timeline it will teleport a component, while Add will actually show the animation
because the world grid is static, it never moves, so if you add a location to the world grid it will always be the same place so in order to change you have to offset, aka shift the location from one place to the next
but the relative grid is always changing based on the location your character is and the direction they are facing so adding a relative location would actually do something different
It depends on the math used to determine the location that you're either setting or adding.
a relative grid is one generated relative to an object
I can make it so a timeline looks like crap in either scenario 😄
I'm just going to work with add world offset for now
see if that works
and it does beautifully 👍
generally with add vs set, setting something is supposed to be an absolute where as adding is done in increments so can be repeated easier
hey there, just outta curiosity, has anyone had any performance issues with switching a child actor class multiple times?
I'm working on a weapon system and I'm trying to choose between having weapons as a child actor (swapping classes) vs detach and attach sockets to the mesh without child actor
so is it safe to say, that i can use gameinstance as a global variable bank, to load player data from API/save, and use GET on gameinstance everywhere i need some sort of global var data?
I think I would probably use a custom subsystem, but I could be wrong
hm interesting, is subsystem game-wide lifecycle? i can swap gamemodes and levels and still parse it?
GameInstance subsystems, yes.
which is more efficient, and what is trade-ofs of each one?
like which one to use basically, pros and cons
I am a little stuck again. Picture One shows an Event that gets triggered and returns the Name of the "PlayedCard". The print statement does print the Name of the "PlayedCard" and the "Row Found" print statement also is successful after finding the Card in the Data Table "DT_CardDeck". It does not create this widget and/or add it to the viewport though as a child.
If I force it to do something, like I did in Picture 2, where I force selected "3ofHearts" in the Data Table Row to create a Card Widget then it works. I used Event Construct just for this example as Event Construct will always happen and eliminates the possibility of error from Event Dispatcher Logic. This method works and adds the "3ofHearts" to my viewport as I would expect.
I do not understand why when I pass the information through my Event why it does not behave the same. Can anyone give me insight of what I am doing wrong? Any help is appreciated! Thanks!
TIL you can right click copy all properties in group for Collision Settings 🤦♂️
If I remember right GameInstance subsystems need to be defined within C++ to be usable, so all your variables and functions of it can only be created in C++, so that could be a big con, but you can at least expose what you make to be used in blueprints. Apart from that, they are a means of separating your logic into more manageable bits. Like, GameInstance could become quite crowded depending on the needs of your game.
i kinda prefer c++ more 😄 not for everything but
so main difference, is gameinstance can only be one, and subsystems many so better segreg?
Coming from Unity, I'm looking for a way to decouple my blueprints from my player character without going to c++
Any tutorials / courses that address this ?
There is a way, but when i decouple I do it in C++ as thats more readable and managable
some functions and stuff can be reused easily and c++ can expose to blueprints easily
I've been avoiding c++ since it's been many years since I last used it 🥲
Hi good day guys!
We need an expert developer to help upgrade our unreal engine game web3 login flow using blueprint, you must have experience about cronos plugin
pay?
Yea
Welcome to the server. Read #instructions as it has details on how to properly post a job posting.
@versed crypt kindly dm if you can an do this let's discuss please
it's fake btw, bro was asking to do it in c++ 5 seconds ago....
he changed ' login flow using c++' to ' login flow using blueprint'
just be aware
they cant decide 
or they are scammers
Web3 and scammers. Name a more iconic duo lol
Why cant I see or change the name of paramters on events / functions?
you either resized it too much left or the engine broke, try restarting it
Ive tried resizing and restarting, even made a new project
try loading default editor layout from Window
did that too
I can make it disappear and reappear by resizing from the left of the type field, may want to try again. Otherwise, you might need to verify engine
so yea ive just realized that I had to move my mouse 1 pixel to the right to resize just that portion instead of the whole details pane. So thanks for your help im gonna contemplate my life now
I'm trying to do a shop like pick up system where i can only pick up an item when i have enough coins, but when i try to erase the item from the ground after picking it up i somehow need twice the amount of money for it to disappear, in this case I've set the axe price to 2 but i need 4 coins in order for it to disappear, can someone tell me what's wrong?
Is there any way to always render a static mesh in front of a material billboard within the same BP? I want to avoid the billboard clipping like this
I used a height map to make a landscape but I can’t sculpt above the size of the height map. Does anyone know how to fix that
Hey everyone, quick question. Im getting around to setting up sound in my game, so i just made an audio menu, and when i went to set sound mix class override, Im getting no options for sound class. It looks like all my sound classes in general are missing. Do i have to create new ones, or does anyone have anywhere to look online for help creating them?
Also just created a second project to steal the sound class from, but it also didnt have it.
sent my question their way too, had a feeling but wanted to check here anyway. Thank you
Hey, I have two questions.
Firstly, how would you recommend implementation of a rolling array, that is an array after X amount of time starts clearing the first indices?
Seccond, I am trying to convert some code I have written to a component, and am wondering how I could best access the current static mesh mesh or character movement component within that component?(see photos for reference if needed)
Thank you!
what blue prints node can help me loop in an OnEventPlayed?
Doesn't really have much to do with this code. All this is doing is checking if your character has the coins available against the "axe price" and if so destroying. It's more likely to do with how you end up calling this particular event.
Is it timers that are usually used?
If you’re trying to loop an event, then yeah timer by event would work
If you’re trying to listen for an event bind using a dispatcher
Yeah what I'm doing is when the custom event for my actor is triggered by my boss, it will start spawning a bullet per 2 seconds constantly until the boss dies
Create a new event SpawnBullet. On your other event, set timer by event, then plug the delegate pin into SpawnBullet’s pin
Set looping
Promote the timer handle to a variable
When the boss dies, clear and invalidate the handle
Oh that's very simple
I have a ship landing as an intro to drop off the player and struggling to regain control. All my input is handled in the controller but not sure how to use the ViewTarget node to get me back to it.
Does BPPlayer have to be a character? currently it is a pawn.
I think possessing automatically adjusts the camera to use the pawn as the view target. I think you need to do the view target with blend, then delay 2 seconds then possess if you want to show the camera moving.
So right now when the ViewTarget is finished blending, I dont have any wasd controls for example.
If all your movement is handled in your controller, how are you passing the movement to the pawn?
so I am spawning the BP_Player here and the trying to blend to it... but not sure if I need to do something different considering my moveing inputs ar ein the controller.
Before this, I was using gamemode override with BP_Player as the default pawn
then using playerstart to spawn at location
Now I have cleared overrides default pawn to make sure player cant just wasd pan away from the ship.
but adding pawn default to BP_Player in the gamemode override causes it to spawn BP_player at the player start... then another BP_Player is spawned because of the logic in the screenshot, when the ship lands
So just need to know how to get control back to the new BP_player after it is spawned.
All your movement is handled in your controller, right?
yea
So no inputs in your pawn?
right
So how are you passing inputs from your controller to your pawn? What's the code look like?
I was using the gamemode override to connect the BP_Player pawn to the GamePlayerController
I do not see where I can set the pawns controller inside of the BP_Player
was like this
That's not answering my question.... Possessing normally passes inputs to your pawn, but if you're not using inputs on your pawn, then possessing won't do much for you in terms of handing over control to the pawn.
There is likely something that is attempting to utilize a reference to the player pawn within the PlayerController that you might have been setting on Begin Play for example. If you're setting that pawn reference on begin play, then that reference isn't valid any more if you're spawning the player's pawn later so the controller won't be able to communicate to the pawn.
Input on Player Controller > ????? > Pawn Does Thing
I need to know what is the ???? there
I honestly didnt know there was anything in that ??? spot lol
always thought controller handled input for pawn.
If you have the input defined on the player controller, it doesn't automatically pass anything to the pawn.
It's only if you define an input on the pawn that the player controller would pass the input to the pawn at all.... or rather that the pawn could potentially utilize the input
Literally the only thing ive changed for the drop off sequence is clearing the default pawn in the gamemode override.
Can you show me what one of your input events looks like on your player controller?
So it's exactly as I said... You have an "As Player" refernece there.
AsPlayer variable is the the BP_Player ref
But when are you setting that reference?
ooooooh
If ya set it here after spawning, then it should work.
I think there's also an event in the player controller that can do that too.
OnPossess
That'd be useful for setting the reference when the player controller possess it.
how do i save the state of a level when i open a new one in game
the idea is that you go into buildings and come back out to your elavator
but it just resets the level when you come back out from the building
thanks alot. other things broke but I do have movement back. Probably just a matter of taking things off begin play or somehting...
be back later!
good luck!
One option but not the only is to save whatever things you want to save in the GameInstance or a save game object and then load the data back and re-setup the level to as it should be as you saved it after moving back.
Would it maybe be smarter to just have it spawn a door and generate the "level" in another area of the main map?
Possibly.
ill give a little more context as to what it is, you are in an elavator sinking down into the ground and you have to make occasional stops at certain doors in the walls which are GOING to lead to various buildings (proceedurally generated hopefully), then you go back to the elavator and continue with whatever supplies you got
Can I ask what you mean by other event? I'm assuming you mean the event that is triggered by the boss?
Correct
so dumb question, how do I set my OnCollision to look for specific charcaters to hit ? IE my boss and player?
"Other Actor" is the actor that initiated the event detected by this actor.
If you want specific actors, then you need to find specific references to them, but for a projectile like this (assuming based on the name "bullet collider") you shouldn't necessarily care about finding a specific actor. You'd have either an instigator or owner set on this projectile which tells you basically who "shot" it.
That means using a single event and actor class, I could have a bullet either shot by me or the boss, I can have it ignore if the "Component Hit" event triggers if "Other Actor" == "Instigator" or "Owner", otherwise, do something like call "Apply Damage" on "Other Actor" then destroy the actor.
Assuming I've implemented the "Any Damage" interface on the character class of my player and on the boss class, they can receive the damage event and do what they need to do like adjust their health.
so on the hit component event, I set a (set owner) on it, and apply damage at the end of it?
Nope, you'd set the owner when you spawn the projectile. You apply damage before destroying it.
why when it spawns? the bullets will be floating in the air like bubbles waiting to be hit
Because when you spawn the actor and set an owner, then you can know who it was that spawned them, and therefore, know if they should interact with the owner or not - you wouldn't necessarily want the boss to hit itself for example.
Or you being able to shoot yourself.
when you run a for each loop on an array, is there a way to skip the 0 entry and start from 1?
Easiest way is probably to check if the array index != 0 and plug that into a branch.
Another way would be to use a for loop starting at 1 (hopefully you've verified that you should be running the loop first, ie. ensuring index 1 is always there) and then set the last index to the "Last Index" (it's a node) of the Array. You can then use the index to access the array using a "Get"
Well I already have 2 bullet types actually, one from my player, and the other my boss
I see... the thing that I'm running into as an issue is using a save/load system, essentially when the save button is hit, it adds the list of items in a level to a soft class reference map so on load I can grab each level object and their locations, and then spawn them in, the only issue is when I load from a save, the first instance of each unique item in a level is spawning a "0 duplicate"
like say there's a BP_Sword in the level
I save
I load back in
and there's a second sword on top of the first called BP_Sword0
Which is possibly completely unnecessary. They probably could share a base class that has most of the logic of how a bullet works. Some variables could be exposed on spawn to then differentiate certain aspects. If there is very different logic involved with them, then you may consider creating separate child classes, but still based on that base class.
Sorry to butt in, but I can't find a way to reference child actors as default values from the inspector or am I doing it wrong ?
Actually I had to for aesthetics, since the enemy estate creates them from metal while the player bullets are like plasma
Ok, that's fine, but then they should still probably share a same base class as all "Bullets" likely need to behave mostly similarly, namely, they need to ignore the owner, and hit whatever other targets.
Bullet
- exposed variable: Initial Speed
- exposed variable: Direction Vector
Begin Play: Set projectile movement to utilize speed & vector
OnComponentHit > OtherActor != Owner > Apply Damage > Destroy Actor
You can make a variety of bullets using this one class.
If the logic needs to change, then you'd probably want to create a child class and override existing functionality.
You could probably even expose the visuals as a variable too if that's all that is actually changing.
Because those aren't actors. The circled top bit are components.
To add to what Authaer said, you also could not specify actors or actor component reference's default values as they technically do not exist until run time.
What you'd need to do is on Begin Play use "make array" plugged into a set of your array, get a reference to each of your components, then do a "Get Child Actor" from each of the components.
Also, as someone who uses child actors in some things. I would avoid using it in anything that gets placed in a map unless you can find some confirmation that their serialization stuff has been fixed up.
If you have beginplay on an actor, does that beginplay event trigger when that actor is spawned into the world?
because if so I might know what's going on with this weird save/load issue but... idk how to fix it
Pretty much, yep.
is there an event that can trigger when an actor is spawned in but not when the blueprint itself initialises?
It's fine if they're not "default values", I just want to reference them from the scene editor
There is the construction script and there is Begin Play in blueprints.
Construction script can happen whenever a change is made to the actor in the editor if it is placed, but also occurs during the spawning process.
If you have C++ access...
so... I think I have the issue here then...
I think what's happening with the item duplication for save/load, is I spawn in, there's a sword in the world, I hit save, I exit, and when I load back because a sword is in that location in the viewport and the level design it stays there and it spawns in a second sword from the save file....
If I set the sword in the viewport to "hidden in game" would that fix this whole issue?
actually thinking about it, it wouldn't...
because then where would the initial sword come from before the save file is created
You're dealing with something else that is also easy to fix in C++.
I don't want to touch C++ I despise it please tell me there's a solution in blueprints
GUIDs and storing states about actors.
how would I use this?
C++ makes it easy. Can even save pointers to things. Because it's all resolved via their name and outer chain.
Basically, you add a GUID field to your actor classes.
You spawn or place them, you give them a GUID.
If you manipulate their state, you then save their data in a Map variable of GUID > StructureOfData.
When you load, it reads the save and looks up the GUID assigned to it, then manipulates itself so it matches whatever data you saved.
yeah.. but it's C++.. the whole reason I even use UE5 over unity is because it has blueprints.. I've tried both C# and C++ so many god damn times and it just caused brain melt
So a pickable item, may have a simple bool set for its data structure.
If it gets "destroyed" you'd add the GUID to the map with that checkmark checked.
On load on that particular actor for your pickups, you'd look at the Map for its GUID, if it finds it, and sees that it's checked, then it destroys itself.
If no value for the GUID, or no checkmark, then it does nothing to itself.
and would this apply to items spawned in later like when they are dropped from a player's inventory?
You can.
well I have all the items in the game coming from a test item parent class, so as long as I apply it to the parent it should work on all of them right?
You could have a separate map for "Spawned" items. You'd generate the GUID when you spawn them, marking that they are a "dynamic" item that was added at runtime, then when saving it can save to the appropriate Map, including data such as its transform.
ok so actually in blueprints what nodes etc am I looking for?
because I haven't done anything related to GUIDs before
The more I try to make stuff dynamic with blueprint the more I'm motivated to just put everything in player character =_=
how do I get my child actors
GetChildActor off of the array element.
Hi guys please I need an expert who now about unreal engine cronos plugin I want to upgrade our existing game web3 login flow, this Is paying job kindly dm if you are in
Thank you
But I still can't get references from editor
post paid jobs there
I'm unable to post there brother I don't know why
As I mentioned to you earlier, read #instructions
Even when the array is of type child actor component
Please will you help me to post there on my behalf and include my telegram to so they'll message me @elliotemark1 🙏
What are you trying to do exactly? What is your use case for this whole thing?
no, do it yourself
Ok thanks
When player interacts with the door, the player's keys are used to open each lock. So I need to ref the locks inside the door, make an array and make it publicly available.
I'm doing it like I'd do it in Unity with nested prefabs if you're familiar with it
each Lock has its own functions and a Door has many locks, that's why they're child actors
What all goes in a lock? Like what all components are in the actor?
To start. I would be very iffy about using ChildActorComponents with anything that gets saved in a level. They have some quirky serialization issues where they get stuck and sometimes stop spawning, etc. They're perfectly fine for runtime spawned stuff, but I would very very strongly recommend avoiding them at all cost when placing an actor with them on a map.
I'm not spanwing anything for now so it should be fine. I'll keep that in mind
I'll look into that, might be easier but that's not the issue here
You interact with the lock
The lock doesnt interact with you
Let the lock handle the key consumption?
if (Player->ConsumeKey(MyKeyType))
{
Unlock();
}
Atleast that would be my i approach to this
Otherwise you end up will all sorts of logic in the player class
Yep I get it but I'm learning blueprints and trying to do it how I'm used to with Unity, which is bringing me so many headaches
the logic itself is fine, I'm just having a hard time referencing actors / child actors (in editor)
I assume locks are on something unlockable
So that thing would have refs to its locks
Either runtime spawned or editor spawned
Yep
it would work as a separate actor, but why isn't it possible as a child actor ?
Unlockable would be bound to this
It is possible with child actors, i just avoid them like the plague
Had some initial issues with them when i was fresh in the game. Ditched them and never looked back
I created a character as NPC AI and set "move to" logic, it turned out that NPC couldn't walk to the location but really "move" to the location. The problem will be solved if I duplicate playercharacter as NPC AI. Anyone know why?
@dawn gazelle so the whole GUID thing isn't working
the problem here isn't destroyed items sticking around, destroyed items go away just fine, it's that if there's 1 of an item in the level when the level spawns, I save, it saves that there is one of that item in the level, like the save command doesn't run twice I used printstring to test that, yet when I load the level back in, there's 2 of them there now.
Cause you need to destroy the other with the same Squid at load.
Or just not make the one with the same and use the original.
idk where the hell to implement it though is the problem
Where you're loading. The loading code needs to gather all actors of that type, and check if any of them have that guid. If they do, just put the data on them and don't spawn anything. If there is none, spawn one and put the data on it.
Heya, can I get some general advice on blueprinting?
Shoot
I´ve been trying to develop some blueprint actors and utilities for my company, but I´m an artist and only do this because there is noone else to do it for me.
So, I´m trying to squeeze this in and don´t really have a chance to properly learn it, I´m cobbling together stuff I find mostly and then just brute force my way through it, seeing which nodes could do what I need etc...
I´m pretty far in with my most ambitious blueprint (a modular human anatomy model), but I keep getting crashes on all ends and I don´t know where to begin trouble shooting....
Is there a specific log for these?
All I can find in the crashlog is something about the GPUSkinCache.cpp
Also, I don´t know how to optimize it in general and I don´t know how to set the visibility of the actors in a way that I can override it through sequencer...
Do you have any crash logs at all?
Is this on 5.4? I think I've seen this error in another channel too
Which is bugging me, as I constantly have to go into game mode (not PIE, just pressing G) so I can see whats actually visible.
Yeah.
For example I get a crash if I just duplicate a level with the BP in it.
I was wondering if some of that is just 5.4 related.
That definitely might be yeah
Dang,.
I really need the nanite tesselation for the next season of the TV show we´re working on...
You can convert an actor track to "spawnable", then sequencer manages the lifetime of the actor, that what you mean?
Now. I have hundreds of skeletal meshes in that blueprint, so I can only convert the blueprint itself to spawnable.
I need to be able to control visibility of every single one of them. I grouped them into layers but I also need more granular control.
Hmm
I only figured out how to set the "hidden in game" tag that I can override in sequencer, but I can´t override the "visibility" tag in sequencer.
So, thats what I´m doing rn, overriding hidden in game through sequencer, but then of course while working in editor the objects are still visible and distracting.
I can deal with it rn, but I´m also thinking about my team mates of course...:)
And I can´t believe there isn´t a simple solution to that somehow.
At least from what I see in 5.3 you can't set the "visibility" directly, but can't you implement a custom event to do it for you?
Yeah
You'd just have to specify which component you're trying to hide as an input
I´ve been trying to figure out the best way to update certain things without having the whole blueprint tick every frame in editor.
And without having to set it up every time the bp is used, like through a sequencer event.
Oh, hmm
I mean, eventually I might just come up with an editor utility bp to handle a few of the issues I´m having, there were some good updates on what you can do I´ve heard in the newer versions.
Anyways, I don´t actually have time to discuss this in detail, the GPUskincache crash is the most urgent right now.
Gotta figure out if its still workable or if I have to bite the bullet and revert to 5.3...:(
Yeah sorry, can't really help, sounds like a complex use case
Yeah.
Troubleshooting 1 o 1: Reproduce with simplified stuff...:)
Its not like I don´t know how to troubleshoot at all, just looking for shortcuts because I´m pressed on time.
Using a level actor is out of the question? You'll have to set it up once per level only, not once per sequence
Instead of spawnable I mean
I´ve considered a few things when building the blueprint, afair the reason why I went with blueprint actor was, that the biggest issue with the previous setup (just using sublevels for all anatomy layers and controlling them in sequencer) was the handling of animation.
With this blueprint its very easy to use the lead actor pose to have one component control animation of all 300plus skeletal meshes inside the actor.
The biggest downside now is, that in order to override ANYTHING on any of the skeletal meshes, I have to add them from the list of the blueprint in the sequencer instead of just dragging/dropping them directly from the viewport into the sequencer, like I could before.
I hope I can still find a way to do it through a blutility maybe.
Oh, also for the sublevel setup to work I had to always duplicate it, as I couldn´t just reference the original sublevels, because then they would be changed for all scene using them, if I updated anything in them.
Which would create a lot of issues and overall was just very prone to artists effing things up.
But yeah.
Back to troubleshooting the gpuskincache issue.
Already checked and it doesn´t seem to be an officially reported bug
If I want to make a global reference to my UI widget, do I need to make a game instance bp ?
If you search for "GPUSkinCache.cpp" here you'll find a few recent posts, maybe something there
@maiden wadi so.. I've tried so many different ways and this shit just won't work. The closest I got it to working is in the construction script where it deletes itself.. the only problem with that is, if I drop an item from my inventory, that gets deleted too.
Yeah, just did the search here on discord as well, but no solution.
Might not be a 5.4 issue though, I think some posts were older.
the loading script is something I have on the gamemode so I had the idea of having a branch in there of if this item has a GUID that's already on the list, don't spawn the item.. but the problem is with that is I can't check if the item already exists if it hasn't been spawned in yet...
Where are you spawning the item at load?
so the way it functions is, when an item's begin play triggers it gets added to a map of soft class references to transforms, then on the gamemode blueprint, when the gamemode loads it runs a for each loop on the key array from that map of soft class references, then it does spawn actor from class, for each of those keys, and the spawn location of each actor that gets spawned is the transform associated with that key
would a setup like this tangle the execution if both destination and target actor are valid?
why is it trying to target 2 different things at the same time?
I imagine this wouldn't work because it's trying to perform the same action on both
you need to insert conditions that would make it move to the vector and conditions that would make it move to the target actor
hmm
like in your plan for this AI, what makes it move to the vector and what makes it move to the actor?
because it can't do both at once
GPUskincache.cpp crash
It does work, it just takes the actor instead of the location vector @queen heron
hi, i have a character pawn with fpp camera controlled by player, i want this pawn to use a vehicle but with everything handled by character - input, camera etc - i just attach the actor to the car and do not possess the vehicle itself. My issue is that i want the camera to move with the car and also be able to rotate it (just how it works for veh template itself i think) - but now i am able to move the camera as usual but it does not take the movement of the car into consideration - i need to manually move the camera while driving all the time to stick it to the same place, also it bugs out as with enough manipluation the camera moves around - looks like everything is badly set up - i will be glad for help how to setup everything to work as intended
@maiden wadi I FIXED IT! I moved all the stuff that comes off the item's beginplay to its construction script and it's working fine
it looks like when controller controls the rotation of camera, everything else is ignored - like snap to target parameter on attachactortocomponent
Nice. 😄 Yeah basically the way that works normally is that actors are named and their names append their outers. EG an actor placed in a level might be named L_MyWorldThing.B_MySuperCoolActor32. There's a static lookup function for getting any object of a type. So you can get all actors and get that specifically named one similar to your GUID.
the thing is no matter where I put the call to the GUID it just REFUSED to work, like either it would come back that no GUID existed when it did, or it would also delete things dropped from the inventory....
It's just a management thing. GUID would replace my example above with the name. Skyrim uses the same type of system for things. Everything that exists in the world has a unique GUID. How you assign them and manage them on your objects is very personal style. IMO I'm not a fan of GUIDs, but they are an okay BP Only solution to that.
is there a way to get a reference to access level blueprint's variables from other bp?
I think you can get the current level from any actor, no?
Yes but I can't get any of its variables and functions
or I'm doing it wrong
You can get the level script actor. I think.
The issue with that is that will put stuff on every level, you can't get an individual level's specific variables.
To do that you'd need to keep the level loaded at all times. And levels are very large.
Right, you can't cast
What exactly are you trying to achieve?
Bury the thought of using level blueprint maybe. The communication is one way in bp land which is why the most common advice in this server is to not use level blueprint
You can just make a new actor and drop it to the level. Call it a day
You can use the LevelSciptActor. But it's for very generic stuff that you'd use in most any level.
I want to make some variables globally accessible in the level
If you're sure your variable doesn't have a better place than that, you can make a custom actor to hold your variable for you
But I am pretty sure there is a better place for your variable
I'll try something else then, thanks
Global in what sense? Probably can use game instance to store the variable or savegame object .
Or subsystem if you don't mind going outside bp
U should make a data driven game, can always have data table depending on your use case
i.e the inventory that could be accessible from any other actor without having to get its reference for each of them
and not puting it in bp_thirpersoncharacter
What inventory? If static data you can store it in data table
Or structs inside game instance with a bit of save and load data
Is your inventory tied to the level?
If you switch levels your inventory will be gone
Didn't think of that, thank you both
Sounds more like a game instance thing yeah
It's worth noting that it's better to just have the inventory largely be a component on whatever it needs to be on. Character, box, crafting table. Shouldn't put game's state in the GameInstance. You put global application data in the game instance. Otherwise you're making a headache for yourself to clear it out every single time you need to start a new game or load a different save, etc.
True
Makes sense
This shouldn't actually matter if you're saving the inventory data to disc, (Which you should be doing) and then loading it on level start or level change.
The inventory should definitely be an actor component though so every inventory works the same whether it's the players inventory or some random container like a chest or barrel.
How do you get the options from a combobox string?
What do you need them for? Generally you don't usually care about them as alist after you've put them there.
I wanted to set an option i had in them
but I found this:
https://youtu.be/xlFDOlMj964?si=VXyYPMjA1aESUz5k
What are the Combo Box - Get and Set Selected Option Nodes in Unreal Engine 4
Source Files: https://github.com/MWadstein/UnrealEngineProjects/tree/WTF-Examples
Note: You will need to be logged into your Epic approved GitHub account to access these examples files. https://github.com/EpicGames/Signup
Can someone help me with this weird bug ?
When ever I open the main menu level through a blueprint in game (when the player presses the Exit button) The level gets this weird effect, What is the fix to this problem ?
Note : the exit button code is just OnClick > OpenLevel (in blueprint)
This is how it looks like when i open the level directly
@fierce ferry I think thats motion blur you disable that in the project setting
It Disables the blur but the screen still twitches
It looks like the sky is moving up and down (I don't know how to send an image of that)
Hey guys, im in unreal 4.25 and i have a map<int, {wins: int, losses: int}>
is there an "easy" way to sort this map on wins?
Is there a way to transfer instances from level to level?
There is MyMap.ValueSort(PREDICATE), but keep in mind that this order is only guaranteed until the next change to the map.
As soon as you add/remove to/from the map again, the order can be different again
is that cpp?
im working in a modkit for a game
i dont have cpp access to anything sadly
has to be all blueprint
sucks
but it is what it is
Yeah looks like CPP only
i cant connect to an external db either
Like if I want to transfer my main character from one level to another. Is there a way to just transfer the player? Or I need to store my players states save it on hard drive spawn a new character in the new level and paste those states?
so im keeping track of arena wins/losses in a savegame
all a bit scuffed, but i dont see another way
i guess il have to do some ugly ass logic to somehow sort it
You can copy all entries into an array and then sort the array instead
yeah
Pretty common workaround
il have to like, get the keys, then values, then add those to a new array by index
il see how far i get
thanks 👍
Hey guys 🙂 Probably a super simple case of overlooking something.
I got a simple blueprint that activates chaos destruction on a geometry collection, but it only activates on the first object. Can't figure out why.
Both of the thinner slabs of grass are BP's, right is copy pasted from the left. The left will break and crumble as expected, but the right just drops (from Set Simulate Physics I assume). What's weird is the right side BP never fires.
Any ideas?
Okay update, I think? It will sometimes trigger on the second block, but not predictably. It still only shows being called once in the blueprint.
Maybe its the camera object?, try to look for a motion blur option.
looks like you are only Apply Radial Impulse to the point at 0,0,0
left grass happens to be in range so it breaks
get the location of the Character and apply the damage there
Same behavior
My radial impulse is not saying it's targeting "primitive component". Could that factor?
Hey guys from this dash forward setup how do you make it so the player dash backwards? Tq
Think it has to do with the forward vector need to change but not sure what node and multiply -1
Not in engine currently but try multiplying the forward vector by -1 before it enters the × math node
Like this?, I've tried but the player just quickly turn left right, I think its how the character rotation work (this is a 2D game)
Heres how the character rotate
I'll get back to you on it
Any idea why my event tick stuff only fires when I simulate , can I have it while not PIE'ing or simulating??
Take your time appreciate the help
Basically I want to move the controller to update the variable within a BP (ie, not the controller rigs own BP).
does anyone have a blueprint for quicksort that i can yoink
Help Im not smart enought to figure this out, although I think im somewhat close. Im trying to set the rotation of the hand so the up vector lines up with the forwards vector of the spline, The spline is in the crowbar shaft
Hey folks i have a 5.4 project and im blocking out with supergrid... interestingly updating the spline component is not triggering the construction script on the wall blueprint. Any ideas?
hmm is it possible to like save temporary variables across multiple frames? I'm tryina save a deltatime for a sort of interpolation function, but I need the variable to stay after the function is called, without using a normal variable thing
sounds stupid idk
(Spline forward vector - hand up vector) normalized, then rotation from vector X:
difference between two vectors always creates a new vector pointing towards the vector being subtracted from
Thank You , I will give👍 this a try
lmk if it works
Unfortuanly It is not :(I keep getting different rotations
why are you using two different hands?
secondary hand and secondary game hand
Im a ctually just looking at that now
I sorted that out , but it was not realy an issues as the game hand was a child of the other all zeroed out transfroms. , if I grab the crowbar with a different hand rotation I seem to get diffirent results . What im after is a consistent rotation everytime,
Did you try the cross ?
what do you mean a different hand rotation?
like with the hand rotated differently?
Yep Its VR, SO each time I grab with my hand , if my hand rotation is different I get mixed results. first pic is the most commmon. Im not sure whay Its not consistent
so.. is this crowbar made up from a spline ?
it kinda looks like the crowbar's vectors aren't pointing in the same direction all the time
I think you need to find the spline's forward vector at the point that you're grabbing it at maybe?
cause right now you're getting it's overall forward vector so it might not be pointing the same way as it would be if it was just the crowbar's forward vector
It should be , Im also trying it on another world actor and getting similar results
I never trust the direction returned by a spline 😅
Should normally be fine but theres some conditions where it twists
tHIS SEEM TO BE 100% consistent. I just have to correct it for the up axis now and account for the inverted direction on the other hand
No It static. Im just trying to align the scene component that the hand position will follow to the spline, so the grip looks correct. . for Now I will just settle for setting the upvector of the hand to match the forwards direction of the spline at the nearest point
Not entirely sure if this would be the right place to ask, but does anyone know any good ways to create documentation for blueprints?
In what way?
how the heck can I do "While mouse button is down". (in hud)
I guess just listing the functions with a description and the inputs/outputs.
Fuck me they need to delete the while loop from the engine.
😂
The point being lol
It's supposed to be for quick animation thing without using button lmao
What are you trying to do though?
While players mouse is down -> perform A then on release -> perform B
Funny enough some people actually ban it in C++ codebases too. Writing the for loop to be a while loop is more prefered.
What is being performed though. initially I want to say set some state on mouse down. Do something in the widget's tick, reset state on mosue up.
Weird thing is
Well it is easy to get trapped in there
For loops naturally avoid that
Cause that is from the player controller. If you're in Menu or UIOnly mode, player controller never recieves input.
Why aren't you using the same check you did before?
It was just a test just now
ChatGPT has come to the rescue haha. I can copy the header preview and get GPT to reformat in a table lol.
😄 Good AI minion.
Not done a bad job to be fair haha.
Im Attaching this gun to the hand and have a relative transfrom for this gun to the hand , How could I use that same transfrom to get the transfrom of the hand to the gun? instead, because I might need a function to attatch the hand to the gun and I would like to use the same relative position
my brain said to do this , but it sounds too easy
didn't test, not sure about rotation
GetSocketLocation is world space.
aye
i changed it to this
but still not working :/
cant i get get socket relative transform or :/ ?
In the "Get Socket Transform" node change the "Transform Space" to "Relative"
Actually it is set to "RTS World"
"RTS Component"
hm ok
and how show i set it ? set world transform or set location or ?
i cant get it correctly -.,-
What do you want exactly ? You want to set it Relative too ?
You can use "Set Relative Transform" node
so basicly the "red arrow" is my fire location
and when i equip a new weapon i want that location to be moved to the weapons socket "Muzzle"*
So "Set Relative Transform" could help I guess
wewll its not working .. or its moving it but its being placed wrong
I also recommend not having this extra component. You already have what you need from the sockets to do anything that arrow component will do.
you know what...
thats acctualy makes way more sense
altho how would i use a socket in this case
when i need to attach to component
socket ant a component
Attach it to the weapon
Can't you use "Attach Component to Component" node ?
erhm
You attach it to the same thing you're trying to attach to arrow to right now.
nah i dont get it
so in this case the pistol weapon has the socket
and i should attach it to the fire loc ?
should be the other way around
Any ideas why my control rig goes to multiple values instead of staying on proper x y z numbers (only one controller selected)
As such (sorry for camera, no discord on this pc!)
No. I mean delete and ditch the fire location thing. It's a useless component. You have an emitter and you have a weapon with a socket. Attach the emitter to the weapon with the socket instead of attaching a thing to the weapon with the socket to attach the emitter to the thing.
does anyone in here have any experience with using IPFS in Unreal?
I only really deal with stuff on one planet, sorry. :/
lmao
As such (sorry for camera, no discord on this pc!)
hello, I copied code from a youtube video exactly as it is, but when I put print string to "anydamage" when I shoot a bullet at an enemy, it wont print anything, is this a collision issue?
both bullet and enemy has collision spheres, so how did I mess this up?
Could be a collision issue, but without fail everyone that has claimed they had an issue but "copied the code exactly", did not in fact copy the code exactly
tryna make a inventory system but cant add more then 1 item
Does anyone have a suggestion what I should name a function that does this? I can't come up with a concise name. It does the following:
- I get the socket transform of a static mesh socket in component space
- This transform does not take into account the transform of a socket the static mesh is attached to, so we need to get the transform of the socket it is attached to and apply that, too.
Of course I would also be glad if someone has a better way of doing this... I use the resulting transform as an offset from a target bone where my hands are IK'd to
GetSocket seems good enough
Then you fill the function with comments
Hello, how could I get the data only view for a specific blueprint? (no nodes added) sometimes is automatically - sometimes is not working at all
Right now the only way to get this is to make a child blueprint - but for most of my blueprints it doesn't make any sense to have inheritance only to get that view

Yo guys quick question, whats the best solution when i want to move an actor that is a child actor of my player? as example i have a weapon actor attatched to my player wich moves depends on what i put into the class, now the problem is it allways seems to move it allong the world and not locally, the scale and rotate works fine but the location variable allways moves it completly wrong
I moved it how its supposed to be and then took the coords on the right
then on spawn i tried multiple things, as i saied the scale and rotation works but the rest doesnt
I keep getting super many problems when i try to move an actor inside an actor like this
Use sockets to attach the bow to your character
Then move the socket instead of the bow
Yea but the thing is, the static mesh gets picked by the weapon i equip (in a class) and i just allinged it for the guns
I have a variable in my class that tells me how much i want to move the weapon when holsterd
but somehow the add location nodes are all useless
I think that view pops up when you do not have any BP behavior defined in that BP
If you inherit from another BP that does use nodes, then it's not a data-only blueprint I think?
So you have multiple weapons that each require different offsets?
Yea thats what i at least planed
Then add more sockets 😛
Same with a door actor, i have a door actor in an room actor, when the door opens in the room, the door allways starts flying off the screen
could you give me some ideas or things to troubleshoot what to try next? I'm new to unreal and idk much about collision other than adding collisions in viewport
Is there a node that works well with moving actors that are children of other actors?
this is my dash,the issue is that i can press it how much times i want and it inreases players speed like a lighting ,how can i make it so there is a delay?for me to be able to dash if i just already dashed
If you inherit from another BP that does use nodes, then it's not a data-only blueprint I think?
Yeah, if you inherit from a blueprint that doesn't have any nodes the data-only view will be shown (for the child). I searched this a bit more and couldn't find anything else, anyway, it was just a small thing. But for the parent there is no way to get it working - I guess.
make sure the thing you're damaging is applying damage, make sure the recipient has event any damage, make sure the method you're using to apply damage is actually calling. Stick a print string in before the damage is applied, or a breakpoint, and make sure it's actually applying the damage.
For instance if both spheres block each other, and you're using event beginoverlap to apply the damage, it will never call, as there's no overlap
How do I make the Datatables in a plugin show up in this function?, I have multiple data tables but non show up there
Check the lil cog wheel
can someone help me ?
my pan works and disables edge scroll but after that edge scroll is not enable back
my edge scroll also
Probably better off using a chorded action instead
Any idea what could cause UI widgit button to stop function is packaged game?, it works fine in PIE and standalone mode. just not lunched or packaged. (it does not change shadeing when hovered nor can be clicked)
it still displays but does not interact with mouse curser. Already checked input state (game ad ui), show mouse curser visibility, and made all other ui not hit testable (self). IS there any setting for editor only input/editer only button that could cause this?
but why I need chorded action ? I checked its about priority and I disable all consume lower priority input thing inside all IA_actions I have
I think my problem is trigger problem what do you think? I tested now I pan it disables scroll when I press pan again it enables scroll hahahaha
Cleaner than that mess of nested branches, but if you got it to work, good on you
Probably in the future I will suffer but now can you help me with my last comment
this
I did not understand the question
What’s not working now
when i press pan middle mouse button it disables scroll and then if I press pan again it is enabling scroll
but it should be when I release button automaticallyt enable it again
instead I am pressing middle mouse button again to activate edge scroll
Yeah because you’re only using the Triggered pin. You need to change the behaviour back on Completed
hmm let me try hold on
this is not disabling while I am panning
this also not working
so wierd
I would like to check whether the light from the flashlight falls on the actor, how can I do this?
I need to create some Radial Trace or can it be done faster?
what do you think?
Where is disable camera pan being set?
I am disabling camera pan on different event but is it effecting? cause my cam pan is working in both scenerios
my cam pan disabling when I make a rectangle selection on unit
Ok, at this point you need to debug the code step by step. Breakpoints are prly less optimal here so use print strings after each step to see where your code is failing.
alright let me do it for a sec
What have you done to debug ? Where is this function called? Why are you showing unconnected nodes?
You'll need some sort of collision or trace that matches the flashlight cone
Sphere + dot product angle check will do it
knowing if it hits ANY part of an actor is hard
knowing if you're pointing at the origin of an actor is easy
i print string on level blueprint on tick it shows true
but i need to save this,like i have all the settings in the game instance
but there is a binding on the v sync and also an event ,i cant link this information in my head
Not sure what the game instance has to do with game user settings.
@lunar sleet
I... need some serious help on how the hell to do save files....
So I have an inventory component that I attach to any actor with an inventory
That inventory component has an array of structs in it, the structs contain the item ID (which then refers back to a data table) and a quantity, and the array is of the various items in the inventory
If I want to save the game and load the game, how could I save that array of structs? like what could I possibly do to store that info via blueprints?
Seems to work as intended, why are you showing this?
did you setup source control yet @hoary junco ?
yeah I did, but do you have any way of helping me on this issue?
Edit: Just noticed the multiplayer channel sorry!
idk a whole lot about it but the docs on save game object are fairly helpful. careful with bp structs though, they tend to break when editing them
I've looked through the docs and they haven't been particularly helpful :/
it's the whole "how do I create an array of arrays" problem..
because each inventory in a level has its own inventory contents array, I want to be able to store all of those and then add them back to the game when loaded
if u noticed 2 times its not enabling and when i press pan button again while moving it is enabling again
@random pulsarYou need to call Save
I didn't notice, it's hard to tell what you're doing from here, all that's evident is that when panning is enabled it works and when it's disabled it does not work. If this is happening when you don't want it to, you need to figure out why that is
One struct has an array of something. A Second struct has an array of the first struct.
yeah its hard to tell. I am really confused about why its like this. All I think about is maybe Triggered and Event tick have some kind of problem together working or Triggered event is basically not functioning as I am expecting.
can you explain that in more detail please?
If you need an array of arrays. You can't directly make a 2D array. So you make StructA have a single array of something. Then you make StructB have an array of StructA. Then you make an array of StructB and you have an array of arrays.
the thing is I was following a tutorial on how to do something like this, and the way the guy did it in the video was by creating this:
the left part of the map refers to the inventory system and is a soft object reference on the right is a struct containing an array of structs essentialy listing each container's inventory in the level
the only problem I found with maps is that if I add more than 2-3 entries to it, it starts overwriting itself
like add line 1, add line 2, add line 3, line 3 ovewrites line 1
Sounds bonkers to me
Eh. Could work. SoftObjectPtrs are essentially a path. But it's a fucky system.
I know it's a fucky system I've had no end of problems with it but I can't find any other tutorials that go this in depth or give you any idea of how to create a save for something like this :/
The Map will overwrite if it thinks the key is the same.
Why not make an inventory component instead?
I do have an inventory component that's not the issue, the issue is when that inventory component is on the player character, any NPCs in the level, and all the containers that have items in them, I want to create a save file for the level that contains a list of all of those containers and their contents
IMO, I feel for you. I never cared to solve the BP savegame thing. The general idea that you need to basically create structs for every single thing you want to save and then write copying functions for it all to and from the gameplay classes. Just.. 🤮
Saving the actors is out of the question? Why would you need to put them into a map?
It's much easier just to gather up all of the actors and their saveable components and call serialize on them in order. And then reverse that at load. No extra.
would saving the actors also save the instance of the inventory that they have as well as their contents?
For reference the way an actor's inventory contents is determined is they have an array in their inventory component and each index of the array references a struct that gives the ID of the item in that index and the quantity of items, I want to save all of that
Serialization works recursively, otherwise it'd be a nightmare
ok, how would I go about doing that? Because I think I'm living that nightmare but nobody has taught me what serialization is or how to use it
Sorry, serialization = save game in this context
point stands how would I do what you and Authaer have been suggesting?
like saving an actor and its position I know how to do that's relatively easy, but how do I save all the actors in a level, as well as their components, as well as all the arrays and other stuff attached to them?
TMap of actor name to actor data?
what if an actor gets spawned in later and it has the same name?
also what do you mean actor data?
Doesn't happen
Actor data is a struct of all the variables of an actor you want to save
Thing is, with a very small amount of C++, you don't even need that struct. Keeping a struct of shit you want to save on each actor type is a nightmare and so much work. :/
True, but this is the blueprint channel
I did see a video of someone using an object blueprint to save a bunch of variables, would that work here?
I think like 3-5 lines of C++ gets you the ability to pass any object, actor, actor component, uobject etc to a function and get a byte array out of it. A second function gets you the ability to pass any existing actor/actor component/object instance and a byte array, and write all the data back. And all you have to do after that is checkbox the Savegame thing on the properties you want saved.
I mean there are ways of passing variables into byte arrays using blueprints, that's what the SaveGame advanced option is for I'm pretty sure
You can't call Serialize in BP. Which is the key function you need for that.
You said you messed with C++ and C# before so you might be able to follow this. Note that I'm calling the same function Serialize here. The difference is the archive being passed in. One Reads from the object. One Writes to the objects.
void UAuthaerSaveGame::SaveData(UObject* Object, TArray<uint8>& Data)
{
if (Object == nullptr) return;
FMemoryWriter MemoryWriter = FMemoryWriter(Data, true);
FAuthaerSaveGameArchive SaveArchive = FAuthaerSaveGameArchive(MemoryWriter);
Object->Serialize(SaveArchive);
}
void UAuthaerSaveGame::LoadData(UObject* Object, const TArray<uint8>& Data)
{
if (Object == nullptr) return;
FMemoryReader MemoryReader(Data, true);
FAuthaerSaveGameArchive Ar(MemoryReader);
Object->Serialize(Ar);
}```
FAuthaerSaveGameArchive inherits from a lower level engine archive but sets this Savegame part true. Which means it'll only read SaveGame properties. Which is what that checkbox you asked about is for.
it's only been like 3-4 months since I last did C++ but... I don't recognise like 99% of what you posted... that's how little it sticks with me
and I was hammering away at courses for C++ for the better part of a year too
😄 Fair. The TLDR is that you need that Serialize function called at the end of both functions to utilize the SaveGame checkbox.
Honestly I still can't easily read most C++ examples outside of UE's general style guide. C++ in UE's environment is much nicer to read.
Curious if any of the basic engine BP plugins have something like this. I feel like they should.
Can i ask for help here?
if it's for blueprints, yes
ok so im trying to make a gun pickup system and i thought i did everthing right i compared it to the first person template using third person but i cant seem to get it to work
ok so.. to go over this... I have made a struct, called it ActorData, I've included some basic data for the time being like Inventory Contents, Transform and Quantity
I have a save game object called LevelSave where I have the variable for it being an array of ActorData structs.
How would I get all the actors in the level?
show code?
Its alot would you be down to call i am 14
ok so I should be more specific what exactly is not working?
like when you play and try to pick up the gun, what happens?
Hard to say. That's a per game implementation mostly. Some people just get all actors via GetAllActorsOfClass and iterate through them with an interface. Alternatively if you know specifically which classes you need saved you can get all of those specifically to save.
if I do get all actors of class and select a parent class, will it also run the code on all the children of that class?
Yep.
You can think of that class filter like a cast in a way. If you could cast the actor to that class type, it'll be returned through GetAllActorsOfClass
Nothing and it doesnt show failed to cast error
i set a debug print up
you said you basically copied this from the first person template right?
yesir
Should F9, or print on the success part too to make sure that overlap is running.
i changed everthing to use third person
so when you walk over the gun, does it get destroyed?
no
it just does nothing
it might be the sphere colision
thats what i thougt
i did something now i re put it in the scene and now it allways disapears
what did you do exactly?
eh he i may have accidently dragged the projectile forget all this but the pickup doesnt work still
does the player character already have a weapon component on them?
i made the weapon component but i dont understand your question
have a print string come out of "is valid" on this and have it print
ok
walk over the gun and let me know if it prints out
its a reference the the weapon component
wait hold up let's take this all the way back for a minute put a print string right here
just after on begin overlap
let's see if it's even detecting the overlap
I see why
that concompoinentbeginoverlap is a custom event
nothing's triggering it
yes there is, if you look on the left at the component list click on the sphere collision
then on the details panel on the right scroll down
so you replaced the event with an actual on collision event right?
it destroys now
ok so that part's done
yeah now i got to make the weapon work
see what I'm wondering here is, will it actually load properly
like does the third person character have the functions within them to move their arms up and grab the gun
I mean, try just equipping a weapon component to the third person character and loading the game to test that
like equip it in blueprints so it spawns with the weapon
ok it plays the gun sound so half is working
idk how
in your third person character blueprint you see at the top it says "components" and then a green "add" button? Click that and search for the name of your weapon component then add it
ok
it works with the sound the animation doesnt play the projectile doesnt spawn or giun mesh
do the character's arms come up?
the fuck?
does your player character have collision behaviour on it?
when i walk ito walls while shooting it does that
yes but not for that
let me see the player character's collision behaviour
does your character have anything coming off it's "onbeginoverlap"?
can you show me the blueprint for your character please
Thought you meant dose it have a colider
yes
ok
its alot
tho
like everthing?
walking jumoping looking
no just anything to do with what it does to the weapon
ok so I've found one problem in the code
ok
in the weapoin component when it shoots it gets socket location.. but doesn't get it from anywhere, it tries to get it from self but weapon component is just a component
in the first person version it gets the socket from a skeletal mesh
the socket is the location where it would shoot the projectile from
ohhhhhhhhhh
do i need to have a skeletal mesh instead of a static and put it to one of those bones
i was using a place holder
I mean yeah you're going to need that for the gun at least.... because it needs a bone to attach the gun to
hold on let me open up a fresh version of the first person template to see if I can figure out how they've done it.. an equipment system was going to be my next task anyway after I figured out how to save/load my inventory so...
so it seems in the default version yes the rifle has a skeletal mesh
yeah so clearly it's not pulling the projectile mesh from where its supposed to be, it's pulling it from the parent of the weapon component aka the character mesh that's why that is happening
are you able to call to help me
not at the moment no
yeah if you look this is the default rifle
How do y'all go about unbinding events in BPs? I am binding Event Foo to a delegate in Collapsed Graph A. I need to unbind Event Foo from inside of Collapsed Graph B. How in the world do I get a reference to Event Foo from Collapsed Graph B if it's inside Collapsed Graph A?
thing is, if I were you, I'd look into some tutorials on how to build a pickup and equip system from scratch because taking the first person content and just slapping it on third person isn't really how it works
build your understanding from the ground up
Uncollapse the graph :D
sounds good

Apart from that I don't know, you could always roll your own version of the cpp RemoveAll with no difficulty.
idk squat about making new K2 Nodes but it beats uncollapsing these graphs
Oh wait, maybe it would be a bit tricky now that I think about it.
Yeah, you're right -- no clue how delegates are handled in BP.
Why can't you just unbind from it? CreateEvent should work?
What do you mean? I can't plug the event into the Unbind Event from.. node because the event is in a collapsed graph.
@maiden wadi sorry to keep pestering but when doing the whole save/load system is it better to use soft references or just general references? Like I was thinking of keeping an array of classes inside the levelsave for a list of classes that the gameinstance could pull from to commit data to the actordata struct when it's told to save the game, do I use soft object and class references or regular?
😄 Happy it solves it. Create Event is awesome. Less red lines.
Thanks. Hopefully this does work and I can get away from this cursed BP 
For some reason BP and delegates just mess with my brain :D
That approach to me looks like it would create a new "instance" of the delegate and not unbind the desired one, but I suppose that doesn't make sense when translated to C++
Or does it? Maybe it's just delegates in general that mess with my brain...
That's how I interpretted it too but if Authaer says it'll probably work, then I'ma roll with it. If it does, cool I can push off learning about k2 nodes still. If it doesn't then back to k2 node anyways 
You can also connect that red delegate pin to the event pin directly! I think that's a bit nicer
Theirs is in a collapsed node graph, so they were unable to do that in this case.
That.. is a really complex question. The main problem is that hard refs to instances will not save well, not without the serialize function I mentioned above. And SoftRefs will create a path to the object based on it's outers.
EG a softref to an actor instance would path it as like L_MyWorldName.B_MyActorName17. Cause that actor belongs to a world.
A component would be softpathed as like... L_MyWorldName.B_MyActorName17.B_MyComponentName
This is important to know because if you're spawning actors, the softref likely won't work for BP but they will work for anything that was loaded with the level. But spawned actors cannot have a promised name unless using C++.
Realistically I'd go back to the GUIDs thing Datura mentioned because it's the best option of linking instances you're going to get in BP.
Oh, gotcha, should read the whole conversation
I refer CreateEvent personally. I like straight line BPs.
Haha there's a limit to how far you can be expected to scroll up anyway
I wish the AI would stop rotating
but the problem is Datura's GUID system used a map and the map can only store 2 things at a time...
how can i do it?
@maiden wadi also when I'm trying to add the contents of an inventory to the contents section of the save array I get this
MyAI->StopRotating(ERotationOption::Immediately);
oh wait nvm I'm just an idiot
ignore this
@shrewd mural To clarify the CreateEvent. It works same as it would in C++. The CreateEvent is the &ThisClass::SomeFunctionName part of the equation mostly. It's just one more shitty named BP thing.
I don't like working in BP graphs. This is shit 
You don't need a map specifically, it's just a better way to handle it. But if the map stops at two, then your guids are not unique and it's overwriting it. How familiar are you with guids in general?
Is it possible to add this animation sequence to main player Pawn?
I'm currently trying to figure out how (or if) I could trigger sequence animations that would affect the player's position/rotation/etc
all I managed to figure out was how to trigger an animation sequence to a blueprint that is not the main character. could you guys give me a bit of input on whether or not this workflow would be possible/viable and how to do it?
I've spent like 4 hours researching and experiment but could only go this far
Thank you!
not in the fucking slightest XD all I know is that they are long codes generated at random and asigned to things as a unique ID because that's how I used it on a web project I did once.. apart from that, how to properly use them in UE and especially in this system, I know absolutely 0
I doubt you can apply a transform track to a player
What you could do is animate the root bone instead and then use root motion to make the player move their transform with the animation
There might be other ways though
Wait, let me correct that before someone else does it
Of course you can apply a transform track to a player 😄
But I don't know how 😄
it looks like an absolute mess but this is what I have going atm for the save function....
in the class list are all objects, all containers, and all characters, it checks if they have an inventory component, if it does, get the contents, add unique entry which would apply for containers and characters
if it's an item, get its item data, find out how many there are (because I have items that can stack in-world) and records that data, and regardless, it gets the transform of the actor
More or less yeah. I'd try to find a way to compress your data to a byte array though because it'll be much easier to iterate a list of things with an interface or something to pull data from things differently. I mean you can keep a massive function that goes through everything too, but it gets harder to maintain.
For GUIDs, you're pretty spot on. Basically they're a complex integer. They act as a key to data. It's no different than using a GameplayTag, an Enum or an Integer really to key to data. Just that GUIDs are a managed system of unique numbers that you don't have to track to keep unique.
So if the saved data and the actor both have the same GUID, that data is meant for that actor.
ok so
1: how would I compress the data into a byte array
2: how would GUIDs be implemented here? like I don't know the nodes or methods to use them and that one Datura showed me just... didn't really do anything, I'm guessing I used it wrong but IDK how, IDK why, IDK what the proper way is...
I'm not sure how to manage that. I've only done this via the archives. There may be plugins that allow this.
I'm not the best person to ask about GUIDs. I understand the idea, but I don't use them. 😄 Unreal works better IMO with outer name paths.
T_T trust me to pick a project that hardly anyone knows how to put together
that could work as well, can you please point me on the right direction on how to do that?
Animation in general or root motion?
The former you can find in the #animation channel in the pinned posts
The latter you can find in the docs here: https://dev.epicgames.com/documentation/en-us/unreal-engine/root-motion-in-unreal-engine?application_version=5.0
😄 It's less your project as much as the tools required. A Skyrim like game is very easy to engineer. But you really shoot yourself in the foot as a solo dev with no C++. There's no so many tiny critical things you need some access to in the engine that isn't available in BP without getting lucky with plugins.
GUIDs are "Globally Unique Identifiers".
Essentially, for every object that you place or spawn, you'd want it to create a new GUID for.
Doing so allows you to identify each particular object by that ID.
I get the concept, it's the implementation I'm struggling with
So when utilizing a Map you use the GUID as a key to look up the ID, and then you can get the value from that Map.
The actual maps themselves would need to be saved, like in a save game object that you load, and then the objects read from that save game object.
When changing values, you'd change the save game object, and then save it to disk.
how can i change my interact interface to only set input mode to game and everything else when clicking somewhere other than my widget
The implementation of it can be on "Begin Play" of that actor, you read the Map from the save game object and if it finds the GUID in the Map, then it manipulates itself based on the data in the map for that particular GUID. If there is no data present, then that item can behave as it was just placed in the level. You would likely need some way to indicate whether or not the actor should be destroyed in this case, so that the actor can remove itself from the level if it was destroyed at runtime.
Saving then is just adding a value to the Map with the desired data.
Dynamic items spawned at runtime would need their own map which would need to contain data about each of the objects, like what their class is that should be spawned, their location, and any other properties - you'd probably want a custom structure. You'd use begin play of say your game mode or game state to then read this separate map, loop through the keys, spawn the objects assigning their GUID to them based on the map key, and then reading their value from the value of the Map and applying it to the actor that was spawned. Upon destroying one of these dynamic actors, you would want to remove the GUID from the Map in your save game so that it would no longer be loaded.
I'm trying to implement this interface in a character BP. However, it's nowhere to be seen when trying to add it...
am I ok to PM you? Because I think I'm starting to envision it in my head but, being the idiot I am it's probably going to take several attempts and refinements for me to learn this properly...
Get Self and try dragging off of that to call it. But you should already have access to whatever this is passing if it's in the same class.
I mean I cannot get the gameplay tags off the interface.
Because I cannot implement it
Sorry, don't do dm support. If ya need to, just ask here, you can ping me as ya need to.
Ah. Not BP friendly. 🤷♂️
Sometimes I just don't understand Epic
I have no idea why that's the case...
Gameplay Tag Asset Interface
Cannot use in assets
Woo!
Like... Afaik, anim BPs are all within BPs
Well then, how can I access the gameplay tags then?
Whose gameplay tags?
The player
It's a platformer with a few different gameplay states like jumping, falling, stun, knocked away, etc.
Two things. It wasn't required for Fortnite. A Studio can just make their programmer change it if they care. Epic™️
I wouldn't use that interface to get the current "state" as a gameplay tag
What's a basic way instead to make the player specifically transition to jumping when pressing jump specifically
wat?
Do you want the basic-basic way or the this-is-very-basics-but-not-so-much-that-I-want-to-jump-out-the-window way?
Most of these are animgraph things that you can poll or bind things in the CMC for. KnockedAway is more of an anim montage with root motion.
Basically I want the jump state to not be "is falling with positive Z velocity" but "player pressed the jump key"
Do you?
How about when you're in a cutscene?
Or getting damaged?
Why would the player jump when damged?
"HOT LAVA, OW TOES, HOOOOT LAVA"
Can you control what the player does with their controller? 😄
Sorry though I don't exactly understand the problem.
use montages for one shot animations
Ah, that's a fair point too...
I could also just forget it and get the standard transition to jump of isfalling
Guess it should be fine for a conecept demo.
When using CMC that would be better
Yeah I'm using that
Not smart enough to makemy own character actor...
I couldn't even get the most basic pawn to move or get custom gravity.
That's fine, why not make use of what's there already
Hmh. Besides, it's a 3D platformer.
While their movement is the most important part, they do not have as many particular things that demand a fully custom made set of BPs.
It was pretty easy for me to recreate Mario 64 movement using the basic character movement (But I changed it after seeing that slow turn made a lot of fine movement next to impossible, and instead kept it for a specific movement mode thatis meant to feel like it turns slowly)
As for your state machine problem:
The minimum you need is the animBP state machine and AnimMontages to play your animations
If you need to know about state anywhere else:
- Some custom solution if you feel like it
- Fancy solution: Use StateTrees
Hello i wanted to ask , i started yesterday and there is my Blueprint for movement is it any good or not ?
Enhanced input is more flexible and feature-rich, but sure why not if it works, good for a start
Thanks !
Okay then
For some reason the jump transition doesn't work.
What could be wrong here?
Where do you set the vector?
It's set on update animation from the cmc
I use the same for ground speed, and it works, so I know it does have data.
Assuming this is a character bp, go to the Character Movement component, search for speed.
ok
You can input your max walk speed there
Also acceleration. If you want to instantly move at your max speed, you need to input a massive acceleration value.
I want for low speed to stop the game
That's also simple to do. You can cast to the player, and access their character movement speed.
This should return their velocity V3
No problem
Keep in mind this tracks all axis.
If you want to get lateral velocity remember to split it
I know
Following up on this: Set Relative Location doesn't move the object at all
It definitely does, but of course you'll need to change the values you're using.
And you might want to move the train relative to some offset (such as an empty scene component).
im
im wondering why i cant seem to get the player profile struct when it seems like it should be working
I got a small problem. You know in subway surfers you can launch yourself to the ground from air, well in my game when I do that and I touch the ground, for some reason it decreases the speed. the average speed is 1400, it reaches 999
I mignt know the problem, it might be trying to reach default speed when walking, but in the air the speed is increased
I will send
is it possible to select a matching function if i already have one?
the add movement ... I got an idea
Is there a setting somewhere that will keep the camera of an FPS rig a fixed distance from the top of the collision capsule? I am having an issue where my camera is above my capsule when crouching, thus it can clip through low-hanging things I am moving under
what is the camera attached to?
The capsule component of the stock FPS rig which I am working off of
That's the BP for the crouch action, inputs are just a few true-false branches for behaviors that block crouch
IF it matches , it should be on the list( Compile/save yadda yadda)
You want to parent the FPS Camera to the First Person Mesh and attach it to either the head bone or a socket attached to the head. Parenting the Camera to the Capsule will have its movement be dictated by the Capsule. Attaching it to the mesh within the capsule will have all the same results but attaching it to the head bone of the rig will allow it to move with the head of the rig.
hello in this tutorial I want to make my other NPC BP to be actor to be chased. I cast it and get owner/character/player however it didnt work. how can i implement my other npc char to get reacted by enemy npc?
If anyone know it please help me 🙂
this is what i have tried
didn't shown up in the list
Assuming your code set-up is identical to what's in the screenshot, you'll want to swap out the GetPlayerCharacter for a different Input that's based on a similar type of CharacterBP but is chosen based on certain criteria. So if it's based on distance, for example, you'll want to do a scan for which of the two is closer, and then have it chase whichever of the 2 is closer. Or if it's based on the specific character class, you'll want to have them chase the character class instead. Choosing to Chase GetPlayerCharacter(Index 0) is fine if you're planning on having the AI chase Player 1. However, if you're planning on having the Enemy chase other players or other characters, you need to be a bit more flexible.
Looking at your screenshot you just posted, the CastToTopDownCharacter is fine to gathering functions from a Parent Class but it's still suffering from the same problem. You're locking onto only the Player 1 character and not onto any other character. The thing I circled in Red is the one you want to change:
Thank you, gave that a shot but it seems the head itself is above the capsule still (this is what it looks like when crouched)
I suppose I could write a hacky solution that subtracts from the Z pos of the camera when crouch is hit and undoes it when standing back up but that won't be very modular
The order and type of variable Inputs matter, the Name dosn't
make sure you dont have Outputs on function
i don't have outputs
Why aren't you using a Crouch Animation? I just looked at your code and it looks like you're trying to change the height of the camera itself rather than crouching the character's mesh. Even if only because the character actually will crouch in the final game, you may just want to do that. Attaching the camera to the head works as a solution specifically because the character rig is crouching. If it's not, then of course it won't work.
I would just create New Function from dropdown , and paste code you already have in it
hmm let me tell you more in detail. This BP of my SS is NPC_BaseBP and I want this to chase my TopDownBP. However my player controller and pawn is RTS_Camera so basically I am playing with camera in game. I was trying to cast Topdown into NPC_baseBP. I think my player 1 is camera? So where do you think my problem could be?
I created a new matching event out of this, and called the function by this event
Got it, that makes sense, thanks. I'm still really early in doing the movement and haven't done any animations yet so will get that sorted later.
i think this will also work?
So let me ask for a clarification. Are you asking how to allow the AI to dynamically change targets, or are you just trying to have the AI target a Player that's not specifically Player 1?
huge thanks for the amazing resources! 🙏
hmmm, if it works then its fine, odd that you cant see "Update Show Acc" in the Create Event's dropdown
yeah i also have this question 😄
Yo I neede help
wondering if a root motion system would work well to animate a vehicle aka a cube with wheels instead of an humanoid character?
I am not asking for Ai dynamic change targets. I am asking how to have Ai target other than Player 1. My project goal is player 1 is camera and 2 npcs fighting each other, basically battle sim xD.
use the dot product

