It sounds like the problem with it being automatic is entirely based on if the user deletes a mapping, and then you don't know if that is a new mapping or the user deleted the mapping. It seems like you could just store an invalid action in player prefs if the player deletes it, such as -1. Then you'd know if it has been deleted, or if it's a new action that should be given the default value. I think it boils down to: Determine all new actions that were not here when the game previously loaded. That could mean storing a list of known actions, and compare it against all actions defined to determine which are new. Get the default value of the action, check if that value is in use for any actions, and if not then assign it as the value for this new action. It seems relatively simple, and like it would work for everyone.