[Home]

Jailbreak Developer Network: Arena


An arena is just a set of PlayerStarts held together by a JBInfoArena actor. It doesn't have to be located in a distinct zone.

Two combatants of opposing teams spawned in an arena can only inflict damage on themselves and each other, but not on other players; nor can they trigger the release switch. It's completely irrelevant where in the map they run around, but for most practical purposes it's probably advisable that an arena is an enclosed area of a map.

Selecting combatants
Normally an arena will automatically select two imprisoned players from opposing teams for combat. You can tune that selection by using the TagRequest and TagExclude properties:
  • You can let players request a place in the next arena fight by adding a trigger whose Event points to the arena's TagRequest property value. TagRequest acts as a special version of the usual Tag property: When triggered by this tag, the arena will queue the player triggering it for the next fight. (If the player leaves the trigger area before the fight starts, he or she is removed from the queue.) Players are considered in the order in which they activated the trigger.
  • You can exclude players from being drafted for arena fights; for instance those that are currently laboring to escape from jail through an alternative escape route. Players triggering the arena by its TagExclude tag will be excluded from arena fights until they leave the trigger's area. – Keep in mind that you can attach a Volume to any trigger by setting the volume's AssociatedActorTag property to the same value as the trigger's Tag property. The whole volume will then act as a trigger.
PlayerStarts
Regular PlayerStart actors mark the places where arena combatants can spawn in the arena.
  • If you leave the TagAttachStarts property set to 'Auto', all PlayerStarts that are within the same zone as the JBInfoArena actor will be considered spawn points for arena combatants. But that's just for mappers' convenience; if you'd like to have an arena without a distinct zone for it, attach PlayerStarts to the arena by setting the arena's TagAttachStarts property and the PlayerStarts' Tag property to the same value (other than 'Auto' of course).
  • Use the PlayerStarts' TeamNumber property to specify who should spawn where. If you leave the TeamNumber property set to the same value for all PlayerStarts in an arena, they're used for the arena combatants regardless of their team like in a standard deathmatch game.
Respawning pickups
You can have the arena automatically respawn pickups (weapons, health) just before a match by attaching them to the JBInfoArena actor using its TagAttachPickups property. The 'Auto' setting works like for TagAttachStarts.
Starting a match
An arena match is initiated by triggering the corresponding JBInfoArena actor. That leaves it up to you how and when an arena match is started in your map:
  • Use a JBTriggerTimed trigger to start arena matches periodically. (That's how Jailbreak III worked.)
  • Use a regular Trigger somewhere in (or outside) the jails and let the players initiate arena matches themselves when they like. (With a clever trigger system or a custom scripted trigger you could even achieve the effect of a designated area in each jail where players can step on to start a match, provided a willing opponent does the same in the other jail.)
Ending a match
The match either ends when one of the combatants dies or when the MaxCombatTime specified in the JBInfoArena actor's properties runs out. The losing player respawns in jail, the winner respawns in freedom.

Quick Guide to Making an Arena

Here's a quick guide to making an arena in a map.

  1. Place a couple of PlayerStarts.
  2. Place a JBInfoArena actor somewhere.
  3. Set the PlayerStarts' Tag property to the same arbitrary string as the JBInfoArena actor's TagAttachedStarts property.
  4. Place a JBTriggerTimed actor somewhere, set its DelaySeconds property to a suitable value and bRepeating to True. Then set its Event property to the same arbitrary string as the JBInfoArena's Tag property. (The trigger and the JBInfoArena actor should be connected by a red line then.)