[Weapon pickup old-school style] The best way to do it.

Hi there,

I’d like to thanks the community for all your works and advices. I can’t do it anywhere else, so…

My question is simple, as always, my apologies for all the mistakes I will do, english is not my native langage.

Context : I’m trying to do a basic weapon system.
Have you ever played Ghouls’n ghosts serie ? That’s the kind of system I want to do. If not, you can check it out by following this link : Ghouls 'n Ghosts Arcade Longplay [HD 60FPS] - YouTube

Basically, you run, you shoot, you kill some dudes and… Here you go !
For the weapons, it works like that : You began with a weapon (Spear or Whatever) and when you destroy some chests, there is, sometime, an another one… A knife, for example.
You can’t store any of these, instead, each time you step your foot on the new weapon, it switch automatically and you can’t have the old back. (Except if you found it in an another chest maybe later)

It’s like a simple “pick-up” system. You overlap it, you have it, you can use it…

BUT.

What’s the best way to do it ?

I’m trying to improve my skills with blueprints, but it’s a bit hard since there is many and many way to do multiple tasks.

Since now, I have two idea of how it can works but I have no idea which one is the best :

Number one :

If you follow this tutorial :https://www.youtube.com/watch?v=peUPE4q6pMM
The concept is simple : All the weapons are stored in your character blueprint. Each time you pick up a new weapon, it should replace it. (But if you follow this tutorial it not really work like that… In fact, it works like one time for each but if you step on the first weapon, both disappeared…)
In fact, you don’t really pick up weapons. You just make them visible. It’s just not a bad idea at all, but I don’t really know if it’s a complicate way to do it or not.

Number two :

A more classic way : You have one weapon… For example, a knife. Stored, linked on your character blueprint. Each time you take a new weapon, it should destroy the actor, and attach the new one to your character blueprint.

Since I’m not a programmer or anything else, I have no idea how the old games were doing that. Ghouls’n ghosts, Metal slug for example, or a lot of shooters, shoot’em up etc… They all work with a similar system, you step on a pickup, it swap your current weapon to another and once you have no more ammo in it, you go back to the first one…
Except that I want to have unlimited ammo on all the weapons, and the pickup being a choice. (Not a powerup)

For you, what is the best way to do it ? The less expansive in memorie, the more easy to deal with, the clearer way to do it with blueprints.

Many thanks in advance.

That’s what makes Unreal Engine so nice! The huge variety of ways to get things done. Like this one, for example…

Actor blueprint, name it MasterPickupItem. Give it a Static Mesh (root it) and collision area that’s small, on overlap cast to player and call function to Swap Weapon with input variables of Self and Socket Location then Destroy Actor (Self). Include any variables that are common to all your items to be picked up, damage, range, etc.

Player blueprint, make function Swap Weapon. Destroy current weapon actor, spawn overlapped actor (the new weapon) into its slot. Make CurrentWeapon = overlapped actor.

Make some Child Blueprints of the MasterPickupItem for your weapon types. Change all the bells and whistles for them (damage type, amount of damage, range, socket location, etc). Don’t forget to change the meshes.

Make some sockets on your skeleton in the appropriate locations for the weapons.