How to make specific player drop item

So I am trying to create a medallion system for my game, which has worked, and there are six bosses which each drop their medallions on death. These are in the form of different colored seeds, and every second a repeater checks who has the seed, and grants them a specific power if they do. This system works fine, but I want the player with the seed to drop it on death. I am aware that there is currently no way to drop items on death, but I want the player who knocked them out to get granted the item. I could use a knockout manager, which I has a system working with a lifecycle to a checker, when player knocked out, run check. The checker checks if the knocked out player has the seed. if so, it activates through a wire a knockout manager which says to drop the seed upon death. If somebody dies and does not have the seed, it will deactivate this manager. I’ve tried multiple variations of deactivating and reactivating knockout managers but each has respective problems. I know there is a way to do this with item granters granting it to the killer. How do I make it so that when the player with the seed dies, it grants the killer the seed? I can make it so that when the player with the seed dies, they get a seed, or when someone kills someone, they get a seed, but I’m not sure how to check if the killed player had it, and then have the granter grant the killer the seed?

2 Likes

Since this is such a long block of words, let me try to summarize it:
You just want the killer to get the seed?

Welcome to the community though @bob6000, this is a very in depth help post for a new user, so thank you.

1 Like

activate a knockout manager with a player scope whenever they have the item and remove it when they don’t

welcome though thank you for having details and it not taking 40 posts to figure out what you need

2 Likes

yes, I would like the killer to be granted the seed, which is something easily doable, but I want it ONLY if the other player had the seed
If there is a way to do this with only a knockout manager this would be better.

1 Like

so I have changed the system to do this:
lifecycle device: on player knocked out > run check for green seed > if check passes > run on channel “deactivatemanager” + wire to activate knockout manager
manager settings, deactivate when channel “deactivatemanager”
on the manager I have set scope to “player”
this does not seem to work, because after this every player drops the seed

I’ve tried your suggestions, nothing has worked yet. Any more detail?

Use a player scoped triggerloop activated by a lifecycle → relay. The triggerloop runs a checker that checks to see if the amount of the seed is greater than one. If check passes activate a knockout manager. If check fails have it deactivate.

I’m not sure how to do this or what this means. Could you elaborate on the process?

Are you confused on the word triggerloop?

Its a more memory efficient version of a repeater.

Check it out

Welcome to the community forums @bob6000!

Do you want the seed on the ground?
or is it okay for it to be deducted from one’s inventory and added to someone else’s

so I have tried this, but it means that it will only deactivate the second time after somebody has died, meaning that the person who has it will drop it, then the next person who dies, and then nobody will drop it until somebody picks it up and the process repeats again.

so with deactivating and reactivating knockout managers I could get it to drop, but Ive tried this numerous times each with problems. At this point I’d be fine with the other player being granted it.

I’ve looked at this guide as well, but I’m not sure I understand it fully. It looks to me like there is a step missing, or it is an incomplete guide. But i’m not trying to do that anyway, I want just the seed to drop.

1 Like

My current setup is a lifecycle device which has a wire “if player knocked out” > “run check” which checks for a green seed. “check passes” > “activate knockout manager” and the manager is set to drop a green seed on the players death spot. The lifecycle device is also hooked up to an identical checker with a wire to the knockout manager which says “check fails” > “deactivate knockout manager”
this is because you cannot have two wires between the same two objects, so I could not have two wires from the same checker to the same manager, one for activating and one for deactivating.
Currently, If I open up multiple test tabs and kill the boss on one, I gain the seed. Then when somebody kills me, I drop it. Then when that person picks it up and somebody kills them, they do not drop it.

I see your error and will elaborate but it might take awhile to type so i will just edit this post

Your knockout manager only activates after the a player is knocked out not after they gain the seed. If they knockout the player with the seed it will be dropped and then they will run a check for the seed immediately before the player can in game pick it up. This check will see that they do not have the seed and won’t activate the manager.

To fix this you are going to want to run a check whenever the amount of the seed changes. To do this get an inventory item manager. Have it manage your desired seed. Now get a property. In its settings make it a number property with player scope. Name it whatever you want, something like Green Seed Medallion. Go back to the inventory item manager and link it to that property you just made. Once you do this wire the property to the checkers. Now this will work regardless

you said that the check will return false because the player doesn’t have a chance to pick it up before the check is run. The check is run for whether or not the player who died had the seed, not the killer. I’m not sure that you understand the problem, but your proposed solution I do not believe would fix the problem. Lifecycle devices, if person dies, wire to a checker to check if the person who died had a green seed. If true, activate manager. If false, deactivate manager.

I do understand just its a little hard to put in words. Just try it for me cause i think it will work.

This checks to see if you have the medallion and then activates it, not to see if the player you killed has it and then have them activate it.

so I have a property that updates when the green seed amount changes. What do I wire this to and what do I configure the wire to do?