Did you just move the code from start() to create()? Then I would expect it to do what you are seeing… you are declaring a new variable each time the scene is shown.
You are most likely not understanding variable scope. You declare these variables one time, and assign values to them when the scene is displayed.
My suggestions:
Declare the background and gameoverscore variables at the top of the scene… outside any functions. This will make the variables have scene scope.
In start() create your background. This runs once. Also, create your score text with an empty value.
In show(), add code to get the score and place into the text string.
Something like this (code not tested)
local background local gameoverscore function scene:start(event) background = display.newImageRect(sceneGroup, 750, 900) gameoverscore = display.newText(sceneGroup, "", 100, 340) end function scene:show(event) if event.phase == "will" then gameoverscore.text = "SCORE: "..event.params.score end end