Best way to swap between player versions?

Godot Version

4.5.1

Question

I want to have three different “player versions”, but only one of them to be active at all times. The plan is to swap between them using keys 1, 2, and 3.

If it were only a visual change, I would approach this by coding a swap of sprites at the keypress. However, in addition to the visual change, it is important that the three different player versions have unique movement and variables. (Think of it as a distant cousin to how Mario gets different upgrades, and due to them, how the game is played changes. For example, normal Mario can’t shoot fireballs, but the upgraded version can.)

What would be the best way to approach this “issue”? Thank you in advance for your time!

Additional info

Hello, I’m Lily! =) I’m very new to Godot. I have made multiple random small projects while following various tutorials. Learning bit by bit with every new little challenge.
At this point, I want to make a project of my own. And in the last couple of days, I have chosen to carefully start building a 2D platform game. However, before I can continue building the actual map(s), I need some help with figuring out how to address the player part of the game. And I’m super thankful for any help

Depends on much all three version share. If they share a lot then a super player with different states. If they are completely different you instantiate all three player versions and swap them.