You already have a thread here, and Empyre answered you:
Make a custom Powerup and use a PowerupGiver to give it to the player. In either of those, you can set a Powerup,Color, including None, if you want.

You just give the player the power up:
GiveInventory("yourpowerup", 1)
Which you can do via a keybind. Check to see if the player has at least 1 of this item, and if so, AND the player presses the key bind, take that item away. Otherwise, give the item. The only way AFAIK to modify damage factors and other player properties is to use a custom powerup.
That is what the INVENTORY.PERSISTENTPOWER flag is for.

What I imagine:
Create an invisible inventory actor with a max amount of say, 10, and have the player start with none of this item. This will track your experience. Every time a monster is killed, give 1 of the inventory item to the player. Check for when the player reaches the max amount, then take all of the items away, raise the max capacity, and give the player a custom powerup that never runs out and modifies damage output by a certain amount.
From there, you could experiment and make tougher monsters give you more experience. You could even make experience into drops the player has to pickup.

"Im trying to create a sprite based, mp arena shooter."
"Before I start looking for a programmer though"
In short, who's really making what here? Dragonfly is right. If you're going to find people to do things for you, you need to come back with a wider magnitude of information.