Room switch - Seamless rooms


Contact Publisher | Support


Sales: 22

Short desc:

  • Sometimes you want a giant world or room. But you would like to split it up into small pieces and travel between them without notice the room change.


  • Check the video to get a step by step.


  • You can find a exCamera.gmez in the included files folder that you need to add as an extension.
  • You only need to import the obj_ex_camera

This extension:

  • This code module let you travel from one room to the next without notice the room change (GM will cause a little load next room delay):
  • The view is always in center (well you can offset it) of the player except on the edges of your big room where the view is limited like an ordinary room.
  • You can add special objects on the edges that show in all rooms, to hide edges.
  • If you want to have dynamic stuff near the edges you can set it to zoom in when travel from room to room, this will hide the other room a little.
  • Add special move coordinates that is recalculated for you.
  • All in GML

Getting started video:


Code example:

  • You only need to create a 2d array of the rooms you want and call a script.

Player object - Create event:


Edge objects:

  • Just set it to persistent and set the parent to "obj_room_switch_on_edge_parent". Add the object in the player object room.

Moveable edge objects:

  • If you use a move to click position object you only need to add x,y array variables. Call init script and add a script before you move.

Create event:


Step event:

// Ex Move script
if x>ClickedX[0] x-=5;
if x<ClickedX[0] x+=5;


You can also teleport to another room with just one script:

scr_room_switch_TELEPORT(room, x, y)

More info

End User Licence Agreement (EULA).

Changes in 2.3.6

2.3.6 Fixed bug in deactivater. 2.3.5 Got permission from @alexandervrs to Include old exCamera.gmez 1.0.4 in included files folder. He's awesome :-) 2.3.4 Added multiplayer offset calc: When you try use room switch for multiplayer you...

Version 2.3.6. Published August 22, 2017

Created with GameMaker: Studio v1.4.1567

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


jeremy b 29 June 2017

broken atm

hi the latest ex camera update breaks room switch please fix this

This review was left for a previous version of this asset.


The-any-Key (Publisher) 16 January 2018

You can now find the old exCamera in the included files folder (Got permission from @alexandervrs). Simply add the exCamera.gmez as an extension to make it work. The new version of exCamera is changed in a way that makes it impossible to adapt to room switch.

Getting started guide: https://www.youtube.com/watch?v=qXWCPZm5bNQ&feature=youtu.be

Old message:
Sorry. Will check that asap.


Vikram P 07 January 2017

Great Asset - Great support

Worth it. The asset was complex for a beginner like myself but the support really helped out alot.

Great work!

This review was left for a previous version of this asset.


Ioannis D 10 March 2016

Awesome, easy to use, well documented!

This review was left for a previous version of this asset.


The-any-Key (Publisher) 29 March 2016

Thanks. Send me a message if you want more features or another asset.

Package contents

Total size 682 KB

RoomSwitch.extension.gmx 6.73 KB RoomSwitch
yymanifest.xml 10.9 KB Assets
Backgrounds datafiles Objects Rooms Scripts
ROOM_SWITCH_STEP_BY_STEP.gml 4.58 KB scr_room_switch_ACTIVATE_UNDER_INSTANCE.gml 254 Bytes scr_room_switch_AFTER_CREATE_EXTRA.gml 299 Bytes scr_room_switch_array_2d_index_exists.gml 379 Bytes scr_room_switch_camera_bounds.gml 1001 Bytes scr_room_switch_camera_zoom.gml 1.35 KB scr_room_switch_CREATE.gml 5.1 KB scr_room_switch_deactivater_add_active_area.gml 1.36 KB scr_room_switch_deactivater_add_fog_area.gml 1.32 KB scr_room_switch_deactivater_destroy.gml 585 Bytes scr_room_switch_deactivater_init.gml 381 Bytes scr_room_switch_deactivater_room_wait.gml 261 Bytes scr_room_switch_deactivater_step.gml 9.01 KB scr_room_switch_deactivate_object_add.gml 978 Bytes scr_room_switch_deactivate_object_region.gml 3.55 KB scr_room_switch_deactivate_object_region_phy.gml 3.63 KB scr_room_switch_DEACTIVATE_UNDER_INSTANCE.gml 253 Bytes scr_room_switch_destroy.gml 345 Bytes scr_room_switch_ease_out_sine.gml 107 Bytes scr_room_switch_get_room_size.gml 1.49 KB scr_room_switch_INIT_DEACTIVATE.gml 1.14 KB scr_room_switch_IS_LOADING.gml 1.25 KB scr_room_switch_IS_ON_EDGE.gml 797 Bytes scr_room_switch_load_persisten_all_rooms.gml 6.02 KB scr_room_switch_MULTIPLAYER_OFFSET_CALC.gml 2.87 KB scr_room_switch_next_room.gml 6.8 KB scr_room_switch_ON_LOOP_ROOMS.gml 202 Bytes scr_room_switch_parse_string.gml 657 Bytes scr_room_switch_RECALC_INIT.gml 164 Bytes scr_room_switch_RECALC_POS_VARIABLE.gml 617 Bytes scr_room_switch_ROOM_GOTO.gml 851 Bytes scr_room_switch_ROOM_GOTO_ON_CHANGE.gml 134 Bytes scr_room_switch_room_start.gml 89 Bytes scr_room_switch_save_room_size.gml 1.92 KB scr_room_switch_step.gml 6.85 KB scr_room_switch_TELEPORT.gml 3.15 KB scr_room_switch_tileset_build.gml 890 Bytes scr_room_switch_tileset_edges_and_corners.gml 2.26 KB scr_room_switch_tileset_get_in_rectangle.gml 1.36 KB scr_room_switch_tileset_step.gml 5.84 KB

What is the issue?

Back to Top