this is some information about the meanig of the path_attuned, path_repelled, path_denied fields. up to date information from the historic documentation (updated a bit): ================================================================================ 3. SPELL PATHS DOCUMENTATION Long ago a number of archmages discovered patterns in the web that spells weave in the aether. They found that some spells had structural similarities to others and some of the mages took to studying particular groups of spells. These mages found that by molding their thought patterns to match the patterns of the spells they could better utilise all the spells of the group. Because of their disciplined approach, the mages were described as following spell Paths. As they attuned themselves to particular spell Paths they found that they would become repelled from others, and in some cases found they were denied any access to some paths. The legacy of these mages remains in some of the magical items to be found around the world. Technical details: In the same way that players and objects can be protected, immune, and vulnerable to the different types of attacks, they can now be attuned, repelled, or denied access to the different spell Paths. An object that is attuned to a Path cast spells from that Path at 80% of the spell point cost and receives duration/damage bonuses as if the caster were five levels higher. An object that is repelled from a Path casts spells from that Path at 125% of the spell point cost and receives duration/damage bonuses as if· the caster were five levels lower (minimum of first level). An object that is denied access to a Path cannot cast any spells from it. The casting· time is also modified by 80% and 125% respectively. These values are defined in PATH_SP_MULT (from spells.h), PATH_TIME_MULT (from spells.h), and path_level_mod (from spells.c, now called min_casting_level) · The Paths themselves are the following: "Nothing", "Protection", "Fire", "Frost", "Electricity", "Missiles", "Self", "Summoning", "Abjuration", "Restoration", "Detonation", "Mind", "Creation", "Teleportation", "Information", "Transmutation", "Transferrence". See spells.h for the number values corresponding to the Path. Some more will be added in the near future. Some spells do not currently· belong to a Path, this is probably appropriate for some spells. Paths are inherited just like protection/immunity/vulnerability, ie if a ring contains "path_attuned 1", the wearer becomes attuned to the Path of Protection. Paths are quite powerful and shouldn't be given away cheaply. Ideally, most objects with path_attuned attributes should have path_repelled and path_denied attributes as well, to balance out (eg attuned to Fire, repelled from· Protection, and denied from Restoration) ================================================================================ This is the information i got from the source: generally the server code does few things with the constants defined by include/spells.h PATH_*. The main behavoir is decided by the items the player is wearing and other things that alters his pathes. generally: - the spell can't be spoken or written in a rune if player->path_denied & spell->path_attuned - if player->path_repelled & spell->path_attuned then the spell's level is raised by 2 in the calculation of the minimal skill level - if player->path_attuned & spell->path_attuned then the spell's level is lowered by 2 in the calculation of the minimal skill level - if player->path_repelled & spell->path_attuned then the players skill level is decreased by 2 - if player->path_attuned & spell->path_attuned then the players skill level is increased by 2 (this split of the calculation is done because the adjustment of the minimal skill level is also used to calculate the damage/duration/range adjustment of the spell) - dragons have a skin which has path_attuned - if player->path_denied & PATH_LIGHT: can't make objects glow for SP_MOVING_BALL: if the spell->path_repelled is not 0 and the player isn't attuned to all paths in the bitmask of spell->path_repelled he can't cast this.