Old School Ops

Boss Encounters

Attaching a scripted boss fight to a monster code in the server's scripts/encounters folder. Phases, abilities, adds, shields, enrage timers, rewards by contribution and lockouts.

Applies to RF Online 4.55RF Online 4.15RF Online 1.5RF Online 2.2.3.2 · updated 2026-11-06
On this page

Every file in scripts/encounters attaches a boss fight to one monster code: phases at health thresholds, timed abilities, adds, a shield, an enrage timer, and rewards paid by contribution.

Copy _template.lua to a new name to start one. A file whose name begins with _ is never loaded.

An encounter runs wherever its monster is alive: its normal world placement, a dungeon wave, or the encounter's own field spawn.

The Parts

keywhat it does
bossthe monster code the script attaches to (required; one script per code)
fieldoptional open-world spawn: map, at = dummy("x") or at(x, y, z), respawn = { min =, max = } seconds, announce_spawn, announce_kill ({killer} is the killer's name). Both notices go to every player
leashhow far the boss may be dragged from where the fight began before it resets (0 = never)
enrageafter after seconds the boss hits damage times and moves speed times harder
lootmode contribution (the top top damage dealers with at least min_share of the damage), last_hit or party (the killer's party)
lockoutperiod daily, weekly (reset_day, default Monday) or none; reset_hour is server-local
phaseslisted from full health down; phase 1 is hp = 100, and each later one starts when the boss's health percent falls to its hp
rewardpaid when the boss dies: exp, dalant, gold, items = { { code, count, chance, to = top/all/one } }

A character who took this boss's reward in a lockout period is locked out: they can neither hurt the boss nor be hurt by it, its abilities pass them by, and they are told once when the lockout resets.

Phases

A phase may carry abilities, adds (spawned as it begins), shield = { absorb, until_adds_dead }, message, and reward (paid when the phase ends; chest = true drops its items on the ground for their owner instead of into the bag).

Abilities

An ability does exactly one thing, every every seconds, the first time after first:

  • skill = "<skill or force code>" on a target (top, random, nearest, farthest, self, all)
  • pulse = { radius, damage, effect }
  • buff = { attack, defense, speed, seconds }
  • summon = { monster, count, radius }
  • heal = <fraction of max HP>
  • teleport = "random_player" or "spawn"

Hooks

on_start(fight), on_phase(fight, n), on_win(fight) and on_wipe(fight) go on the encounter, and on_enter(fight) on a phase. The fight handle offers hp(), phase(), elapsed(), message(text), cast(code, target), spawn{monster=, count=, radius=}, heal(fraction), enrage(), players(), set(k, v) and get(k).

Checking and Reloading

A broken script is skipped with a message naming the file and what to fix, and the server carries on. Scripts reload with reload-content from GoMMO Manager, which resets any fight in progress.

Where the Versions Differ

versiona boss's guardswhat the client draws
DragonbornA pit boss keeps its guards; the script layers on top.A skill from the boss's own special list draws as the monster's own attack does. Any other code is sent the same way and may not draw. A pulse reaching more than 32 players is sent as several hit messages.
Age of PatronThis server does not spawn a monster's own guards, so a boss's company comes from adds and summon.A pulse reaching more than 32 players is sent as several hit messages.
RF Online 1.5, Golden AgeA pit boss keeps its guards; the script layers on top.
Something here wrong?

Out of date, incomplete, or assuming something it should not. Documentation errors are bugs, and this one arrives tagged and pointed at this page.

Top xp sources

How xp works
Loading…

Open the full search page