Multiplayer. No plugins. No server. All GUI. This is Xmulti — a raw, real-time, role-based Scratch engine running on cloud vars and hacker-style logic.
Make sure all of these variables are set to cloud:
I_am
Player1_joined
Player2_joined
Player1_x
Player1_y
Player2_x
Player2_y
build
x-des-varcnt
x-design-utils
Use a costume/GUI button that checks if a role is taken:
if <(Player1_joined) = [0]>
set [Player1_joined v] to [1]
set [I_am v] to [Player1]
broadcast [game start v]
Same for Player 2 using Player2_joined.
Each player syncs their position through cloud vars:
if <(I_am) = [Player1]>
set [Player1_x v] to (x position)
set [Player1_y v] to (y position)
Also draw the other player using Player2_x/Player2_y.
Tap to leave the game and free your slot:
when this sprite clicked
if <(I_am) = [Player1]>
set [Player1_joined v] to 0
if <(I_am) = [Player2]>
set [Player2_joined v] to 0
set [I_am v] to [none]
broadcast [go to role select v]
The build variable can be used to trigger mass actions like nuking both players back to the title screen or resetting all slots. Example:
when [build] = [RESET_ALL]
set [Player1_joined v] to [0]
set [Player2_joined v] to [0]
broadcast [go to intro v]
Can also store version IDs if not being used as an override.
x-design-utils is like your GUI command center. Use it to toggle modes, switch themes, or send soft logic triggers like:
x-design-utils = 1: Show dev overlayx-design-utils = 2: Enable movement debugx-design-utils = 3: Lock GUIThis variable helps track how many utility elements are active or triggered. Perfect for menus, overlays, or cosmetic toggles.
when green flag clicked
set [x-des-varcnt v] to [0]
when I receive [add skin option v]
change [x-des-varcnt v] by (1)
When a player hits LEAVE, reset local vars and optionally re-show selection screen or broadcast a reset:
when I receive [go to role select v]
set [I_am v] to [none]
switch costume to [Select Role]
Use this to let others claim freed spots in real time.
No server. No wait. No problem. You built a multiplayer core in Scratch — now push it further.