Skip to main content

Creating Arenas

webapp_banner.jpg

Creating arenas​

Create a uniquely named .yml file in plugins/EliteMobs/customarenas, then run /em reload after its worlds and referenced content are loaded. Arena references use the complete filename, including .yml. Define every wave from 1 through a positive waveCount, and reference only spawn points the file defines. EliteMobs checks this when the arena loads: a missing wave, a wave above waveCount, an unknown spawn point or a malformed spawnPoints or bossList entry logs a warning and the arena does not load. During a run, if any mob of a wave fails to spawn, the run ends in defeat.

Joining and running an arena​

An arena uses an existing physical region; it does not clone a world for each group. Interacting with its NPC opens a menu. Selecting the player button admits the player only while the match is waiting, space remains, the player has the configured permission, and they are not already in another match. Once the countdown starts, new players cannot join.

After admission, players enter teleportLocation, or startLocation if no lobby is configured. A participant with elitemobs.instance.start can use /em start once minimumPlayerCount is reached. The countdown checks that minimum again, then teleports participants to startLocation and prepares wave 1. Use /em quit to leave as a player or spectator.

Keep the start, lobby and boss spawn points inside the arena region, with safe ground. The boundary watchdog also runs while players wait: it brings players and spectators back when they leave the region. During combat it ejects outsiders unless they have elitemobs.*. Ordinary teleports are restricted while registered in the match; use the supported leave command.

allowSpectatorsInInstancedContent in dungeons.yml controls the spectator button and downed-player revives. When enabled, a downed player can wait in spectator mode for a teammate to hit their banner; the counter allows three revives. If no active players remain, the run ends in defeat. With the setting disabled, a downed player leaves the run immediately. Spectators receive no wave rewards, and leaving spectator mode sets the player to Survival.

The next wave begins when all tracked wave entities have died or become invalid; this does not require every disappearance to be a player kill. Completing the final wave pays its rewards and ends the run. Reset removes remaining arena mobs, clears death banners, returns participants and frees the arena for another run. The configured preparation delay uses seconds, but the current post-match reset uses the same numeric value in ticks.

arenaContainer​

Use arenaContainer: another_arena.yml when multiple run definitions should share one physical arena. The referenced, enabled arena supplies both corners, start/exit/lobby locations, spawn points, and the cylindrical shape. The current file still supplies its waves, rewards, messages, permission, and player limits. Only one run can occupy the shared arena at a time, including player or spectator admission before combat; it is released when that run is reset or its empty admission is cancelled. References can be chained, but missing references and cycles are rejected. Omit this key for an arena with its own geometry.

isEnabled​

Sets if the arena is enabled.

KeyValuesDefault
isEnabledBooleantrue
Example
isEnabled: true

arenaName​

Sets the name of the arena.

KeyValuesDefault
arenaNameStringnone — set it
There is no usable default

Always set arenaName explicitly. Omitting it leaves the arena without a display name.

Example
arenaName: Bedrock Arena

create_arena_name.jpg


corner1​

Sets the first corner of the arena.

KeyValuesDefault
corner1Locationnone
Example
corner1: my_arena_world,10,50,-10,0,0

The location format is: world_name,x,y,z,yaw,pitch where world_name is the world name, x/y/z are coordinates, yaw is horizontal rotation (0-360), and pitch is vertical rotation (-90 to 90). The short form world_name,x,y,z is also accepted and defaults both yaw and pitch to 0.

Arenas waiting for a world are retried when the world named by corner1 loads. If a separate exit world loads later, its load event does not retry the arena; run /em reload after all referenced worlds are loaded.

In this image corner1 is represented by green wool and corner2 is represented by red wool. This configuration designates the area between them as the arena, represented by yellow wool.

create_arena_corner.jpg


corner2​

Sets the opposite corner of the arena. Include its full vertical extent as well as X/Z: two corners at the same Y produce a zero-height region. Both corners and startLocation must use the same world.

KeyValuesDefault
corner2Locationnone
Example
corner2: my_arena_world,-10,80,10,0,0

In this image corner1 is represented by green wool and corner2 is represented by red wool. This configuration designates the area between them as the arena, represented by yellow wool.

create_arena_corner.jpg


startLocation​

Sets where participants begin combat and where spectators enter. Without teleportLocation, players also wait here before starting. Place it on safe ground inside the region.

KeyValuesDefault
startLocationLocationnone
Example
startLocation: my_arena_world,1,50,1,0,0

exitLocation​

Sets the destination used by normal exits, cleanup and intruder ejection. Keep it outside the arena. A player eliminated by lethal damage can instead return to their saved pre-entry location.

KeyValuesDefault
exitLocationLocationnone
Example
exitLocation: my_world,1,50,1,0,0

waveCount​

Sets the number of waves. Use a positive integer and provide at least one boss entry for every wave from 1 through this number; otherwise the arena does not load.

KeyValuesDefault
waveCountInteger0
Example
waveCount: 10

delayBetweenWaves​

Sets the preparation delay in seconds before each wave, including wave 1. Use a nonnegative integer.

KeyValuesDefault
delayBetweenWavesInteger0
Example
delayBetweenWaves: 5

rawIntermissionWaves​

Doubles the preparation delay before each listed wave begins. The delay is delayBetweenWaves * 2 for those waves. Useful if you want to give players a short breather between specific waves.

KeyValuesDefault
rawIntermissionWavesInteger Listnone
Example
rawIntermissionWaves:
- '5'
- '10'
- '15'

spawnPoints​

Sets named spawn locations for arena bosses. Every point needs a name and a valid location in the same world as startLocation, or the arena does not load. Point names are matched exactly by bossList; reuse of a name replaces its earlier location.

KeyValuesDefault
spawnPointsString List [1]none
Example
spawnPoints:
- name=north:location=my_arena_world,219.5,71,273.5
- name=south:location=my_arena_world,219.5,71,316.5
- name=west:location=my_arena_world,197.5,71,295.5
- name=east:location=my_arena_world,240.5,71,295.5
- name=center:location=my_arena_world,219.5,71,295.5

bossList​

Sets the bosses for each wave. Each list entry spawns one entity; repeat entries to spawn several. EliteMobs entries reference custom boss filenames, including .yml. MythicMobs entries use the mob's internal name and require that plugin and mob to be loaded.

KeyValuesDefault
bossListString List [2]none
Example
bossList:
- wave=1:spawnPoint=north:boss=my_boss_wave_1.yml
- wave=1:spawnPoint=south:boss=my_boss_wave_1.yml
- wave=2:spawnPoint=center:boss=my_mythicmobs_boss:mythicmob=true:level=10

In this example, wave 1 will spawn one boss at the north spawn point and one boss at the south spawn point. Then, on wave 2, a mythic boss will spawn, at level 10, in the center point.

The valid parameters are wave, spawnPoint, boss, mythicmob and level.

level is only passed on to MythicMobs entries. EliteMobs bosses ignore it - set their level in their own configuration file instead.


rawArenaReward​

Sets wave rewards. Each entry rolls independently for each active player when its numbered wave ends, before the next preparation delay, including after the final wave. Spectators and players who left are excluded. When that wave contains an EliteMobs boss with a positive level, a player is excluded if the absolute difference between their skill-based Combat Level and the strongest such boss exceeds lootLevelDifferenceLockout in ItemSettings.yml. MythicMobs levels do not supply that comparison. There is no minimum damage contribution requirement.

Use the string format shown below: wave selects the completed wave and itemlevel supplies the requested item level, defaulting to 1. The item's own fixed or limited scaling rules still apply. Rewards use direct delivery: items enter the inventory, with overflow dropped nearby, and currency credits the player's balance. The loot table's chance, amount and permission checks still apply; dungeon difficultyID filters do not restrict an ordinary arena. Arena-spawned EliteMobs bosses use normalized combat unless their file explicitly sets scaledCombat: true; their normal elite, random and vanilla loot are disabled.

KeyValuesDefault
rawArenaRewardUniversal EliteMobs loot tablenone
Example
rawArenaReward:
- filename=enchanted_book_damage_all.yml:wave=5:chance=0.25
- filename=elite_scrap_tiny.yml:wave=1:chance=0.5:amount=5
- currencyAmount=3:wave=3
- itemlevel=5:filename=summon_merchant_scroll.yml:wave=5
- filename=magmaguys_toothpick.yml:itemlevel=10:wave=10:chance=0.95

minimumPlayerCount​

Sets the minimum amount of players an arena must have before starting.

KeyValuesDefault
minimumPlayerCountInteger1
Example
minimumPlayerCount: 1

maximumPlayerCount​

Sets the maximum amount of players an arena can have. Players trying to join a full arena are told the arena is full and are not let in.

Set this explicitly. The default is 0, and any value below 1 is treated as 1, so an arena without this key admits a single player. A minimumPlayerCount above this value is lowered to match it.

KeyValuesDefault
maximumPlayerCountInteger0
Example
maximumPlayerCount: 100

arenaMessages​

Sets messages sent to players and spectators when the numbered wave enters preparation, before its delay. A later entry for the same wave replaces the earlier message.

KeyValuesDefault
arenaMessagesSpecial [3]none
Example
arenaMessages:
- 'wave=1:message=&a[Arena Announcer] &fTime for wave one!'
- 'wave=2:message=&a[Arena Announcer] &fWow, wave two already.'

create_arena_messages.jpg


cylindricalArena​

Sets whether the arena uses a cylinder instead of a cuboid. The cylinder is centered between the corners in X/Z, starts at their lower Y, has their Y difference as its height, and uses half their X difference as its radius. The Z span does not determine the radius. Its outer circular boundary and upper Y are excluded; keep playable locations inside those limits. Cuboid bounds include both corners.

KeyValuesDefault
cylindricalArenaBooleanfalse
Example
cylindricalArena: false

permission​

Sets the permission required to join as a combat participant. Omit the field for an unrestricted arena. The spectator button currently does not check this permission, so it is not a spectator access restriction.

KeyValuesDefault
permissionStringnone
Example
permission: mypermission.arena

teleportLocation​

Sets the optional waiting location used after successful player admission from the arena menu. Merely interacting with the NPC does not teleport the player. Keep the lobby inside the arena region; otherwise the boundary watchdog moves waiting players back. If omitted, players wait at startLocation. This does not let another group queue inside an occupied shared arena.

KeyValuesDefault
teleportLocationLocationnone
Example
teleportLocation: my_arena_world,10,50,10,0,0

Special [1]​

Spawn points: Uses the following format: name=pointName:location=world_name,x,y,z.

Special [2]​

Boss list: Uses the following format: wave=X:spawnPoint=Y:boss=bossfilename.yml.

Two optional keys can be added to any entry:

KeyDescriptionValuesDefault
levelOnly overrides the level of a mythicmob=true entry. EliteMobs bosses use their own configuration.Integer-1 is passed to MythicMobs when omitted; set an explicit positive level
mythicmobTreats boss= as a MythicMobs mob name instead of an EliteMobs boss filename. Requires MythicMobs to be installed.true / falsefalse

Example: wave=3:spawnPoint=center:boss=my_mythic_boss:mythicmob=true:level=40

Entries are split on : and then on the first =. Keys are not case-sensitive. An unknown or repeated key, a key without a value, a missing wave, spawnPoint or boss, a wave below 1, a level below 1, or a mythicmob value other than true or false makes the arena fail to load with a warning. Spawn-point names and boss identifiers must match their references exactly.

Special [3]​

Arena messages: Uses the following format: wave=X:message=your message here.

The message text can contain colons: it runs from message= to the end of the entry, or up to a following :wave= field. Only waves numbered 1 or higher are accepted. Quote the whole YAML entry when needed; quotes placed only after message= become part of the displayed text.

Arena Config Example
isEnabled: true
arenaName: Example Arena
corner1: my_arena_world,0,0,0,0,0
corner2: my_arena_world,50,50,50,0,0
startLocation: my_arena_world,25,0,25,0,0
exitLocation: my_minecraft_world,234,44,245,0,0
waveCount: 5
delayBetweenWaves: 5
spawnPoints:
- name=north:location=my_arena_world,40.5,0,0
- name=south:location=my_arena_world,10.5,0,0
- name=west:location=my_arena_world,0,0,40.5
- name=east:location=my_arena_world,0,0,10.5
- name=center:location=my_arena_world,25.5,0,25.5
bossList:
- wave=1:spawnPoint=north:boss=example_arena_wave_1_mob.yml
- wave=1:spawnPoint=center:boss=example_arena_wave_1_mob.yml
- wave=1:spawnPoint=south:boss=example_arena_wave_1_mob.yml
- wave=2:spawnPoint=center:boss=example_arena_wave_2_mob.yml
- wave=3:spawnPoint=east:boss=example_arena_wave_3_mob.yml
- wave=3:spawnPoint=west:boss=example_arena_wave_3_mob.yml
- wave=4:spawnPoint=center:boss=example_arena_wave_4_mob.yml
- wave=4:spawnPoint=center:boss=example_arena_wave_4_mob.yml
- wave=5:spawnPoint=center:boss=example_arena_wave_5_mob.yml
- wave=5:spawnPoint=south:boss=example_arena_wave_5_mob.yml
- wave=5:spawnPoint=west:boss=example_arena_wave_5_mob.yml
rawArenaReward:
- currencyAmount=5:wave=1
- currencyAmount=10:wave=2
- currencyAmount=15:wave=3
- currencyAmount=20:wave=4
- currencyAmount=25:wave=5
- filename=magmaguys_toothpick.yml:itemlevel=5:wave=5:chance=0.5
minimumPlayerCount: 1
maximumPlayerCount: 3
arenaMessages:
- wave=1:message=&d[Arena NPC] &fWow! Wave 1!
- wave=2:message=&d[Arena NPC] &fAmazing it is wave 2!
- wave=3:message=&d[Arena NPC] &fWave 3 is now on!
- wave=4:message=&d[Arena NPC] &fWave 4 already!
- wave=5:message=&d[Arena NPC] &fWell it is all over after this one.
cylindricalArena: false
permission: arena.mypermission
Breakdown of the example

Let us go over this example from the top and explain what this arena configuration does.

First the arena is enabled with isEnabled, and we can see that it is called Example Arena using the arenaName setting. The name will be shown when you interact with the arena NPC (we talk about how to make an arena NPC further down) that will allow players to join the arena. corner1 and corner2 define the arena size. These corners should be at the opposite sides of each other in the area that you plan to use for the arena.

startLocation is where players begin combat. This example has no separate lobby, so they also wait there after joining. exitLocation is the normal exit in my_minecraft_world; lethal elimination can instead use the player's saved pre-entry location. Replace the example coordinates with safe locations in your own loaded worlds.

waveCount simply sets the amount of waves that the arena will last for. In this case that would be 5 waves. If they players manage to survive all 5 waves they have managed to survive the arena. delayBetweenWaves will set the amount of seconds before the next wave starts. In our example players would have 5 seconds to prepare before the next wave starts.

spawnPoints set the locations where we can have our mobs spawn. We can make as many as we want and name them as we want. In the example we have decided to make 5 spawn points and name them north, south, center, east and west.

bossList is where we define which boss should spawn at what wave and at which location. In the example wave 1 will have 3 bosses spawning from the spawn locations that we named north, center and south. All three are set to use the same boss file but we could have used different boss files for each one.

rawArenaReward gives eligible active players 5 elite coins after wave 1. Wave 5 gives 25 coins and an independent 50% chance at the authored level-5 MagmaGuy's Toothpick reward. The Combat Level lockout and loot-entry conditions described above still apply.

minimumPlayerCount sets the minimum required amount of players needed before the arena will start. In our example this setting is set to 1, so only one player is needed for the arena to starts. maximumPlayerCount sets the maximum amount of players that can participate in the arena. In our example this setting is set to 3, meaning that once 3 players have joined, any further player trying to join is turned away with the "arena is full" message.

arenaMessages lets you add some flavor text that will be displayed in the chat at the start of the defined waves. In our example we have decided to display a short message at the start of each wave. We have also decided to include the NPC name at the start of each message giving the illusion that the text is spoken dialogue by the announcer (arena master).

cylindricalArena this setting will let us toggle if the defined area that we have set with corner1 and corner2 should be a cylindrical shape instead of a cuboid one. In our example we have set this to false meaning that the example arena is a cuboid shape.

permission requires arena.mypermission for player admission. Starting also requires the command permission elitemobs.instance.start; spectator admission does not check the arena permission.

Creating the Arena NPC​

Save a uniquely named NPC .yml file in plugins/EliteMobs/npcs/ with interactionType: ARENA_MASTER and arena: your_arena.yml. Reload after editing, then use /em place npc <npcfilename.yml> with elitemobs.place.npc to place it, or configure spawnLocations. The NPC reference covers placement, removal and additional features such as scripts, patrol, classRoot, and transportRoutes.

isEnabled​

Sets if the NPC is enabled.

KeyValuesDefault
isEnabledBooleantrue
Example
isEnabled: true

name​

Sets the display name of the NPC.

KeyValuesDefault
nameStringempty
Example
name: "&aGladius"

create_arena_npc_name.jpg


role​

Sets role display under the NPC name.

KeyValuesDefault
roleStringempty
Example
role: "&c<Arena Master>"

create_arena_npc_role.jpg


profession​

Sets the MineCraft profession of the NPC.

KeyValuesDefault
professionProfessionNITWIT
Example
profession: ARMORER

Will be overridden if a disguise is used.

create_arena_npc_profession.jpg


spawnLocation​

Legacy single placement, used only when spawnLocations is empty or absent. Prefer the list for new files, and remove this legacy key when migrating to avoid restoring the old placement if the list becomes empty.

KeyValuesDefault
spawnLocationLocationnone
Example
spawnLocation: my_world,1.5,50,1.5,-108,0

spawnLocations​

Sets the NPC's saved placements. A nonempty list takes precedence over spawnLocation; it does not append to it. The referenced worlds must be loaded. Each location creates a separate NPC using this configuration.

KeyValuesDefault
spawnLocationsString Listnone
Example
spawnLocations:
- my_world,1.5,50,1.5,-108,0
- my_world,100.5,50,50.5,0,0

greetings​

Sets random greeting lines on detected entry into the activation radius. Proximity is checked every 100 ticks; brief visits can be missed. Speech uses a shared three-second cooldown per NPC, so another player's greeting can suppress yours.

KeyValuesDefault
greetingsString Listnone
Example
greetings:
- Welcome to the Arena!
- The Arena welcomes you!

create_arena_npc_greetings.jpg


dialog​

For ARENA_MASTER, sets random proximity dialogue on later checks while a player remains nearby. Clicking opens the arena menu. Only CHAT uses this list as its built-in click action.

KeyValuesDefault
dialogString Listnone
Example
dialog:
- Ready for a challenge?
- Face the Arena?

create_arena_npc_dialog.jpg


farewell​

Sets the farewell lines. One is selected randomly when a player closes any inventory with a nonempty title within a box extending 5 blocks from the NPC along each axis, subject to the speech cooldown. It need not be this NPC's menu, and walking away alone does not trigger farewell.

KeyValuesDefault
farewellString Listnone
Example
farewell:
- Bye.
- Return with your shield, or on it!

create_arena_npc_farewell.jpg

Use literal \n in a plain or single-quoted YAML string to split a chat bubble into lines.

farewell:
- Bye.
- Return with your\nshield, or on it!

create_arena_npc_lines.jpg


canTalk​

Enables ordinary greeting, dialogue and farewell bubbles. Disabling it does not disable the arena menu, quest dialogue, scripts or quest markers.

KeyValuesDefault
canTalkBooleantrue
Example
canTalk: true

activationRadius​

Sets the three-dimensional proximity radius in blocks. Values at or below zero disable proximity scanning; quest markers have their own range. Patrol movement and editing suppress ordinary proximity speech while active.

KeyValuesDefault
activationRadiusDouble3.0
Example
activationRadius: 3.0

timeout​

Sets the NPC lifetime in minutes. Values at or below 0 disable it. Timeout removes the live NPC but retains its saved placement, so it can return after reload or chunk restoration. Use the NPC removal workflow to remove a placement permanently.

KeyValuesDefault
timeoutDouble0
Example
timeout: 60

interactionType​

Sets the type of interaction the NPC will do.

KeyValuesDefault
interactionTypeSpecial [4]NONE
Example
interactionType: ARENA_MASTER

disguise​

Sets the custom NPC disguise.

KeyValuesDefault
disguiseDisguisenone
Example
disguise: ZOMBIE

create_arena_npc_disguise.jpg


customDisguiseData​

Supplies data for a named LibsDisguises custom disguise. Pair it with disguise: custom:your_disguise_name; this field alone does not activate a disguise.

KeyValuesDefault
customDisguiseDataStringnone
Example
disguise: custom:arena_guide
customDisguiseData: player MHF_Pig

customModel​

Sets a loaded custom model. FreeMinecraftModels takes priority when available; a missing model there does not retry through ModelEngine. A working model takes visual priority over a disguise. Players also need the corresponding resource-pack assets.

KeyValuesDefault
customModelStringnone
Example
customModel: my_model

arena​

Sets the arena definition opened by ARENA_MASTER, including .yml. The definition must be enabled and successfully initialized. Opening the menu does not itself admit or teleport a player.

KeyValuesDefault
arenaFilenamenone
Example
arena: my_arena.yml

command​

Sets the command run as the interacting player, using that player's permissions. Requires interactionType: COMMAND. Omit the leading slash; no $player substitution is performed.

KeyValuesDefault
commandStringnone
Example
command: say Hello

questFileName​

Sets the quest filenames for the NPC. Requires interactionType to be set to CUSTOM_QUEST_GIVER.

KeyValuesDefault
questFileNameString Listnone
Example
questFileName:
- my_quest_1.yml
- my_quest_2.yml

noPreviousLocationMessage​

For TELEPORT_BACK, sets the message when no EliteMobs return location is saved. That location is recorded by an EliteMobs teleport originating outside an EliteMobs world; it is not simply the last place the player walked or died.

KeyValuesDefault
noPreviousLocationMessageStringempty
Example
noPreviousLocationMessage: '&cCouldn''t find a previous location!'

instanced​

Marks an NPC as an instanced-dungeon template rather than spawning it in the blueprint world. Ordinary arena NPCs use false; this key does not turn a physical arena into a cloned dungeon.

KeyValuesDefault
instancedBooleanfalse
Example
instanced: false

scale​

Sets the underlying villager's scale. A disguise or custom model may have its own visual scaling; this field does not guarantee the same displayed size for every provider.

KeyValuesDefault
scaleDouble1.0
Example
scale: 1.0

syncMovement​

Controls custom-model movement synchronization with the NPC. A valid configured patrol forces synchronization even when this field is false, including while that patrol is paused.

KeyValuesDefault
syncMovementBooleantrue
Example
syncMovement: true

Arena Config Example
isEnabled: true
name: Example NPC
role: <Arena Master>
profession: ARMORER
spawnLocations:
- my_minecraft_world,233,44,245,0,0
greetings:
- Welcome to the Arena!
dialog:
- Ready to enter the Arena?
farewell:
- Bye!
canTalk: true
activationRadius: 3.0
interactionType: ARENA_MASTER
disguise: ZOMBIE
arena: example_arena.yml

This example shows a basic Arena NPC that will spawn in my_minecraft_world with a zombie disguise. Players can interact with this NPC to challenge the Example Arena.

Special [4]​

The following is the list of valid NPC interaction types:

TypeDescription
GUILD_GREETEROpens skill bonus selection; requires elitemobs.skill.npc.
CLASS_TRAINEROpens training for classRoot when the [Alpha] Advanced Combat System is enabled; requires elitemobs.command.
TRANSPORTOpens destination selection from the transportRoutes list; see Transport.
CHATRight-clicking selects a random line from dialog.
CUSTOM_SHOPOpens the custom shop menu
PROCEDURALLY_GENERATED_SHOPOpens the procedurally generated shop
BARDisplays the feature-coming-soon message.
ARENADoes nothing. Use ARENA_MASTER instead.
QUEST_GIVEROpens the procedurally generated quests menu
CUSTOM_QUEST_GIVEROpens the quest menu for a specific quest set in questFileName
NONENo built-in action; scripts, proximity and quest dialogue can still run.
SELLOpens the sell menu
TELEPORT_BACKUses the saved EliteMobs return location; requires elitemobs.back.npc.
SCRAPPEROpens the scrap menu
SMELTERDEPRECATED - Feature removed, do not use
REPAIRMANOpens the repair menu
ENHANCERDEPRECATED - Feature removed, do not use
REFINERDEPRECATED - Feature removed, do not use
UNBINDEROpens the unbind menu
ARENA_MASTEROpens the arena menu for the arena set in arena
COMMANDRuns the command set in command
ENCHANTEROpens the enchant menu
SCROLL_APPLIEROpens the scroll application menu
ARROW_SHOPOpens the arrow shop menu
GAMBLING_BLACKJACKOpens the blackjack gambling game
GAMBLING_COINFLIPOpens the coin flip gambling game
GAMBLING_SLOTSOpens the slots gambling game
GAMBLING_HIGHERLOWEROpens the higher/lower gambling game

Other interaction types have their own permission and configuration requirements. See the full NPC interaction reference before using them; an arena entrance needs ARENA_MASTER.