Im looking for a tutorial on how to properly equip items. A lot of what Ive seen is just changing a static mesh on a character, but that doesn’t exactly work for what I need. In my game I have item blueprints that can be picked up from the ground and I want these blueprints to be the actual items the player is holding, all logic inside of them.
For example, if they pick up a flashlight and turn it on, the beam will come from the flashlight that is stored inside the flashlight blueprint, when they drop the flashlight and its still on I want the flashlight to show this on the ground.
Im not sure if this is the industry standard way of going about this, please let me know.
What you’ve described is the actual way to do it. A flashlight is an actor you attach / detach from a socket.
To effortlessly communicate with a wide variaty of unrelated objects (Press E to Use Flashlight will be quite different than Press E to Use Car), look into tutorials addressing BP Interface Communication.
Only thing I’d add to what @Everynone stated is with large multiplayer games you don’t want to have heavy logic items spawned across the world. You’ll want simple pickup items, that when interacted with (picked up) they are replaced with the working version.
This is a client/server performance consideration.
I’ve noticed a trend with Op’s approach lately. New devs not realizing servers load the entire world and its assets. While clients only load a portion.
Having 20,000 interactive replicated actors in an open world has an impact. You can gain significant memory performance by having those actors be simple static meshes w/interactive collision vs skeletal meshes, interactive collision, interactive BPI, usage logic, animations etc.
Not to mention the FPS hits on the client and the games min specs.
I didn’t think about this, So it would be wise to have a separate actor for “pick up” and another actor that is actually spawned in the players hand that contains all the logic of that item?