Practical script - Hide & Seek
Finally making an event using Scripted Events Reloaded!
Aim of the script
When the script is ran, we want the following to happen:
Lock the round
Start the round
Turn off decontamination in LCZ
Lock checkpoints so people can't leave
Clear items generated so hiders don't try to abuse anything
Get a random person to be a SCP-939 seeker
Change every other person into a ClassD hider
Have the seeker wait for 1 minute for hiders
Once that minute passes, release him in LCZ
Execution
Setting up the round
First 5 points are done using very basic methods:
# lock the round so the admin can end it whenever he wants to
RoundLock true
# start the round
# it's assumed that an admin will run this command before the round starts
StartRound
# turn off decontamination so people don't die
Decontamination disable
# lock LCZ checkpoints so people don't try to escape
LockDoor LczCheckpointA
LockDoor LczCheckpointB
# remove items from the map
CleanupPickupsYou may be confused about the LockDoor's arguments. We use LczCheckpointA and LczCheckpointB, but where did they come from? Let's see its documentation (as of 29.10.2025):
=== LockDoor ===
> Locks doors.
This method expects the following arguments:
(1) 'doors' argument
- Expected value: DoorName enum, FacilityZone enum, RoomName enum, reference to Door, reference to Room or * for every door
(2) optional 'lock' argument
- Expected value: DoorLockReason enum value.
- Default value: AdminCommandThe Expected value of the doors argument may be a little long, but we are interested in the DoorName enum.
About enums
Imagine enums as a set of options. In this case DoorName enum has a set of door names used in the map.
The serhelp command provides you with more information about the used enums. Use serhelp enums to learn more, or use serhelp EnumName to learn about a given enum.
In this case, you can use serhelp DoorName to access all door names.
Defining the seeker
In order to have 1 random player be the seeker, we can use the LimitPlayers method like so:
# select a 1 random player and make him a seeker
@seeker = LimitPlayers * 1
SetRole @seeker Scp939This method simply limits the amount of returned players with its last argument, because * means "every player."
Defining the hiders
In order to have the rest be hiders, we can use the RemovePlayers method. Here is its documentation (as of 28.10.2025):
=== RemovePlayers ===
> Returns players from the original variable that were not present in other variables.
This method returns players, which can be saved or used directly.
This method expects the following arguments:
(1) 'original players' argument
- Expected value: Player variable e.g. @players or * for every player
(2) 'players to remove' argument
- Expected value: Player variable e.g. @players or * for every player
- This argument consumes all remaining values; this means that every value provided AFTER this one will ALSO count towards this argument's values.This method may look intimidating, but it's a kind of "subtraction" that's performed on player values.
# select every player APART FROM the seeker
@hiders = RemovePlayers * @seeker
SetRole @hiders ClassDHere we do an operation like all players - seeker player, which in turn leaves us with players that are not seekers.
Finishing touches
Lastly, we need to add a countdown and teleport the seeker to LCZ.
# create a countdown until the release of the seeker
Countdown * 1m "<b>The seeker will be released in:<br><color=red>%seconds%"
Wait 1m
# by releasing we just mean teleporting him to LCZ
TPRoom @seeker LczClassDSpawnFinal result
# lock the round so the admin can end it whenever he wants to
RoundLock true
# start the round
# it's assumed that an admin will run this command before the round starts
StartRound
# turn off decontamination so people don't die
Decontamination disable
# lock LCZ checkpoints so people don't try to escape
LockDoor LczCheckpointA
LockDoor LczCheckpointB
# remove items from the map
CleanupPickups
# select a 1 random player and make him a seeker
@seeker = LimitPlayers * 1
SetRole @seeker Scp939
# select every player APART FROM the seeker
@hiders = RemovePlayers * @seeker
SetRole @hiders ClassD
# create a countdown until the release of the seeker
Countdown * 1m "<b>The seeker will be released in:<br><color=red>%seconds%"
Wait 1m
# by releasing we just mean teleporting him to LCZ
TPRoom @seeker LczClassDSpawnNow you have a very simple way to run a hide and seek event!
Last updated