Changing Scenes

by Jon (Updated on 2014-01-26)

As we described in the Scene Basics section, scenes control a game’s flow and can be thought of as various states in a game that you transition between, like a story.



  • How To: Changing Scenes
  • Gotchas
  • Transitions
  • Example: Enter Door, Switch Scene
  • Example: Level Selector

How To: Changing Scenes

Changing a scene involves 3 parts.

  • What scene you want to go to next (or reload the same scene)
  • The exit transition
  • The entry transition

Use the following blocks (Scene > Game Flow) to perform a scene change.


(If it isn't apparent, a reload will "switch" to the current scene)



1) Resist the temptation to perform 0 second transitions. Instead, go with a low number such as 0.01, for stability.

2) You cannot perform multiple scene changes at the same time. Once a scene change is in progress, it must reach completion before another scene change is initiated. Any new requests for scene changes will be ignored.


Stencyl supports 7 different kinds of transitions for scene changes. Transitions are the visual effects applied

  • Fade
  • Blinds
  • Bubbles
  • Spotlight
  • Blur
  • Box
  • Crossfade

You can preview all of these transitions in the following demo.



Example: Enter Door, Switch Scene

In this simple example, we’ll make the hero enter the cave once he steps into the cave’s door, represented by a Region.

I opted to use a “Actor Type Enters Region” event and placed a Region over the door to detect entry.


Example: Level Selector

Building a Level Select screen is common to many games. Here’s a simple and elegant way to make one in just a couple blocks.


Download the Project

- Unzip and stick the project into your Games directory as "Level Selector Demo"

- Don't know where your Games directory is? Click the "View Games Directory" button at the bottom of the Welcome Center (the first screen you see after opening Stencyl)


The Concepts

To pull this off, I’ll use the “get scene with name” block (Scene > World). This block returns a scene, given a name.


Now, I can drag this block into our regular scene switch block. You knew you could do that, didn’t you?


Our goal is to make a simple behavior that we can reuse. To pull off a clean Level Select, our scenes have to have a predictable naming scheme. How about we just give each level a number as a name, starting from 1?


If we do that, we can then pass a Number Attribute into the “get scene with name” block, and it will magically switch to the scene with that “name”



The Implementation: Creating the Buttons

Putting this all together, here’s a behavior that creates 5 Level Select buttons in a row, spaced apart by 100 pixels.

Mini-Challenge: You should extend this, so that it wraps over and starts a new line upon hitting the 6th button)


Note: The "for Last Created Actor, set ..." block is a special block that sets the value of a different Behavior's attribute.

In this case, we're effectively telling the block what Scene it's associated with, otherwise it wouldn't know which Scene to switch to and what to draw.

To learn about setting (and getting) Attribute values from outside their own behavior, we've got an article on that


The Implementation: The Buttons' Logic

Each Level Select button contains 2 Events and a single Number Attribute (called “SceneNumber” that tells the button what scene it should represent in the Level Select.

1) One event that draws the button.


2) One event that switches the scene when the button is pressed.


That's it! If you’d like to play further this with example, download it above.



  • Scenes are the states in a game.
  • Changing scenes involves an exit transition and entry transition.
  • You can only perform one scene change at a time.

Challenge: Actor’s Position in “Next” Scene

In Zelda, when Link walks off the edge of a room, he naturally appears at the “right” spot in the next room.

For example, if he steps off the right side of a room, he will usually appear at the left side of the next room.

This turns out to be a challenge because you need to reposition your hero, based on where he came from before.
Fortunately, there’s a block that can help you out (Scene > Game Flow).


Use this block to implement a generic, reliable system for placing an actor at the “right” spot, much like the Zelda game does.

Disclaimer: All articles are geared towards Stencyl 3.0 and above. Use comments to provide feedback and point out issues with the article (typo, wrong info, etc.). If you're seeking help for your game, please ask a question on the forums. Thanks!


How do you download the level selecter... or at lease "get" it?
0 2 weeks, 2 days ago
Im making a game and i have a main menu and i want to make two buttons "start" and "credits" so if the player clicks in that region it will go to a sceen. I need help PLEASE!!! Thank you!
0 2 weeks, 2 days ago
I am working on a RPG style game. My problem is, if the player leaves a building, I need him to be standing outside the proper door when the town scene loads. Any ideas?
-2 11 months, 1 week ago
Has anyone completed the Mini-Challenge for 'The Implementation: Creating the buttons' - Slightly stuck on this...
-1 11 months, 2 weeks ago
How do I make it so when there are no actors of a group alive, it goes to another scene?
-1 1 year, 1 week ago
How to make it go to the 'next' scene????
-1 1 year, 3 months ago
now I realize that I should have read the challenge more carefully
0 1 year, 5 months ago
I solved the zelda challenge by:
creating a number attribute,
in the first scene I added an event to set the attribute to the y of self, also in the first scene, I added an event to switch to the second level when the left side of the scene was reached.
In the second scene I added an event to create an actor at x:1 and y:the attribute I first created, that woud be the y of self when the actor left the last scene.
I didn't use the "get scene with name" block.

-1 1 year, 5 months ago
I really like the transitions :)
-1 1 year, 5 months ago
Hey guys, I need to do exactly the same "Actor’s Position in `Next` Scene" as in Zelda. Please, anyone knows how to do that?
-1 1 year, 10 months ago

Sign In to Comment