Skip to content

Weapon special moves

The AOS weapon special moves: each weapon carries a first and a second move, the player selects one with the icon of the client, and the next blow that lands does it. They are off by default, as the classic ruleset has none: turn them on with special_moves = true in [ultima.combat].

  1. The client shows the icons of the held weapon by itself; pressing one sends the number of the move (packet 0xD7, subcommand 0x19). Pressing the lit icon again, or changing weapon, sends 0 to clear.
  2. The server checks the selection: the weapon carries the move, the weapon skill reaches 70 points for its first move and 90 for its second (“You need 70 weapon skill to perform that attack” otherwise), and the mana covers the cost (“You need 30 mana to perform that attack” otherwise). A move that no script does yet is refused with “That special move is not available.” A refusal puts the client’s icon back. The checks are made again at each blow.
  3. Nothing is spent when a move is selected. The next blow that lands spends the mana, does the move, and clears the selection (and the client’s icon, 0xBF 0x21). A blow that misses keeps the move and costs nothing.
  4. Another move within 3 seconds of the last one costs double.
  5. The selection has no timer. It is cleared by the move itself, by a failed check (including, at the next blow, a change of weapon that does not carry it), by death and by logout.

NPCs never use the moves.

Move Number Mana Effect
Armor Ignore 1 30 90 percent of the damage, and the armor does not reduce it (a shield can still parry it)
Bleed Attack 2 30 the blow, and the one struck bleeds for ten seconds: five ticks of two seconds, a pool of blood each, and a bandage binds it
Concussion Blow 3 25 the blow, and 10 more damage plus a fourth of the gap between the hits (before the blow) and the mana of the one struck, in percent, at most 20 more, whatever its armor
Crushing Blow 4 25 150 percent of the damage
Disarm 5 20 the weapon in the hands of the one struck goes into its backpack, and it cannot take up another weapon (a shield or a spellbook is no weapon) for 5 seconds; only a player is disarmed, an NPC fights with the dice of its template; not on one with empty hands
Dismount 6 20 a mounted target is knocked off its mount and hurt for 15 to 25; it and the fighter cannot ride for 10 seconds; not on one on foot, and not by a fighter who is mounted
Double Strike 7 30 90 percent of the damage, and a second blow at once, also at 90 percent, with its own chance to hit (melee only, at arm’s reach and in sight)
Mortal Strike 9 30 the one struck cannot be healed for 6 seconds, 12 for an NPC: a bandage, a heal potion and the healing spells refuse it
Paralyzing Blow 11 30 the one struck is paralyzed for 3 seconds, 6 for an NPC, and resists the move for 8 seconds after; not on one already frozen

A move that cannot be done on the target (Disarm on one with empty hands, Dismount on one on foot or by a fighter who is mounted, Paralyzing Blow on one already frozen) tells the client’s line, keeps the selection and costs nothing.

The other moves (Infectious Strike, Moving Shot, Shadow Strike, Whirlwind Attack) are in the table of weapon_abilities.toml but not done yet: they are refused with a line.

  • Which move a weapon carries, and the cost, the scalar and the lines of each move, are in data/weapon_abilities.toml. The icons are the client’s: the table follows ModernUO’s, which follows the client’s.
  • What a move does besides its numbers is the script scripts/abilities/<key>.lua, with on_hit(attacker, defender, damage, info) once the blow has landed, and optionally can_hit(attacker, defender, damage, info) that refuses the move on this target without spending it. A move with no script is done by its data alone.
  • Lua can strike a second blow with combat.swing_again(attacker, target, scalar).

The moves above that are not done; the blows of bare hands (Disarm and Paralyzing Blow of the fists); the Bushido, Ninjitsu and Spellweaving moves; ModernUO’s discount of the mana for a high total of skills and the 35-damage cap of Armor Ignore against players; the sounds and the particles of Paralyzing Blow, Mortal Strike and Dismount, the yellow health bar of a mortal wound, the immunity of the lich and wraith forms to Bleed Attack, the lance that lets a mounted fighter dismount, and the buff icon of Disarm. A refused move stays armed, and tells its line again at each blow, where ModernUO clears it.

Made with ❤️ by Tom

Buy me a coffee