Usage: add_attack_spell(50,"nameofspell",({"path/to/spell","cast_spell",0,1})); Taking the parameters in order. The first sets the chance in 100 that this spell will try to be cast in any round. "nameofspell" is a unique name for the spell. "path/to/spell" i.e. "/std/spells/wizard/acid_arrow" "cast_spell" ... usually just that, but see below. 0 this param determines whats targetted by the spell 0 = one attacker 1 = all attackers 2 = everything else in the room i.e. "all" 3 = self, i.e. heal self. 1 This param controls the level of chanting the spell does 0 = normal, full "casting" messages 1 = "inaudible", suppressed early warnings, as in giving a snake poison NOTE: This works for other attacks well, i.e. to give an NPC slice add_attack_spell(10,"slice",({"/std/commands/slice","slice",0,0})); This should be uses in setup() in the NPC.