BGE: Move character from Scene1 to Scene2 and keeping the character to Scene2
You wont be able to actually "transfer" the player object in-game.  But you can create an instance of the player in each scene beforehand.


Move the player to (0, 0, 0) on a non-visible layer
Add it to a new group.  I named mine "Player"
Do Shift+A -> Group Instance -> Player in each scene that needs to contain the player.




This method will not copy properties that have changed since the scene started.  You'll likely need a Python script for that.

EDIT - Quick example of transferring specific properties between scenes

1. Run this on your player right before changing scenes

import bge

def saveProps(cont):
    own = cont.owner

    props = {}
    props['name_of_property'] = own['name_of_property']
    props['another_property'] = own['another_property']
    # ... etc

    bge.logic.player_props = props

if __name__ == '__main__':
    cont = bge.logic.getCurrentController()
    saveProps(cont)


2. And run this when a scene first loads, basically the first script in reverse.

import bge

def getProps(cont):
    own = cont.owner

    try:
        props = bge.logic.player_props
    except:
        # Props dict not defined.  This was likely the first scene.
        return

    own['name_of_property'] = props['name_of_property']
    own['another_property'] = props['another_property']

if __name__ == '__main__':
    cont = bge.logic.getCurrentController()
    getProps(cont)