UODiamondCodex

Bomberman Event

An automated Bomberman-style arena minigame. Players drop timed bombs that blow up destructible crates (dropping powerups) and hurt other players. Hitting an opponent three times knocks them out; the last player standing wins.

Source: server/scripts/UOD/Events/UOD - Event Bomberman.scp

How to run it

Like the FFA, this event is normally self-running: the timer stone i_stone_bomber_timer fires every 28800 seconds (8 hours) and calls f_startautobomber on the management object 04001d92a.

Command / Trigger Effect
.bomberjoin (FUNCTION bomberjoin) Player joins the current Bomberman event if open (tag.bomberon==1). Blocked while mounted or already in another event (e_goto, e_bomber, e_maze, e_britainpvp).
.nextbomber (FUNCTION nextbomber) Reports minutes until the next event (reads timer of object 04001c535).
f_startautobomber on 04001d92a (auto every 8h, or GM-invoked) Regenerates the arena, opens a 5-minute join window with countdown broadcasts, then starts.

Note: The manual stone i_stone_bomber has no active triggers in the script; scheduling is handled by i_stone_bomber_timer.

How it plays

  • f_startautobomber runs f_GENERATE_ARENA_BOMBER (scatters ~80 indestructible i_rock_2 blocks and fills the field with destructible i_crate_lg crates), then broadcasts a 5-minute join window (TIMERF=300,f_start_bomber; join closes at 280s).
  • f_bomber_join teleports the player to a random point in rand(5289,5323),rand(2002,2019),0, unequips all gear into a teal bank backpack, and equips only a Bomberman Robe (i_robe_bomber). All spells are disabled and hiding/stealth blocked.
  • On start, every player gets a bomb via f_givebomb (item i_potion_bomber) plus 25 seconds of invulnerability (tag.invulbomber) to place their first bombs.
  • Bombs (i_potion_bomber → spawns i_bomb): dclick to drop a bomb at your feet. Bombs count down (tag.delay, default 7) then explode, spawning i_fx_explosion_2 and destroying adjacent crates within tag.range (default 1). Destroyed crates leave lingering embers (i_ember) and, ~10% of the time, a random powerup.
  • Powerups (walk over them to collect): i_powerup_delay (bombs explode faster, min delay 1), i_powerup_range (larger blast radius), i_powerup_amount (place more bombs at once).
  • Damage / elimination: a player caught in a blast (not invulnerable, not GM) has their robe color step through 044 → 035 → 026; the third hit kicks them out of the event. Being hit gives i_random_loot_1 and a participation trophy (0e74).
  • Win condition: when bomber_checkwinner returns 2 at the moment of a knockout, the remaining player wins via bomber_win. If only one player joins, the event cancels.
  • On logout/knockout/win, ENDEVENT_BMAN restores the player's gear from layer 21 and returns them to tag.bomberfrom.

Rewards (winner, via bomber_win)

  • A bank check worth players * 1000 gold.
  • A colored winner trophy (0e74, color 0807).
  • Random loot by participant count: i_random_loot_1 (<5), i_random_loot_2 (<10), else i_random_loot_3.

Key definitions

Type Name Purpose
EVENTS e_bomber Per-player event: blocks combat/spells, handles logout, click label.
FUNCTION bomberjoin, f_bomber_join Join entry point and setup routine.
FUNCTION bomber_checkwinner, bomber_win, ENDEVENT_BMAN Winner counting, award, and restore.
FUNCTION f_startautobomber, f_start_bomber, f_givebomb Scheduling, fight start, and bomb handout.
FUNCTION f_GENERATE_ARENA_BOMBER, f_bomber_remove, f_bomber_respawn_crate, togglefencebomber Arena build/teardown and crate respawn.
ITEMDEF i_robe_bomber The move-locked robe worn by players (color tracks hit count).
ITEMDEF i_potion_bomber (Bomb!), i_bomb Bomb dispenser and the ticking bomb entity.
ITEMDEF i_powerup_delay / _range / _amount Walk-over powerups.
ITEMDEF i_stone_bomber_timer (i_gravestone_4) 8h auto-scheduler.
Object UID 04001d92a Bomberman management object (tag.bomberon, tag.players).
Object UID 04001c535 Timer object read by nextbomber.
Region approx. 5289-5323 x 2002-2019 Bomberman arena.