NWNWiki
Register
Advertisement
NWNWiki
3,718
pages
This article is about the creature; for the shifter form, see Greater wildshape II.
Gargoyle portrait

Gargoyles are vicious predators that enjoy torturing weaker creatures. Their ability to perch indefinitely without moving causes adventurers to frequently mistake them for statues.

Statistics[]

Race: magical beast
Size: medium
Alignment: chaotic evil
Armor class: 16
Hit points: 38
Attack bonus: +4
Damage: d4 / d4 / d6 (claw / claw / bite creature weapons)

Hit dice (level): 4
Challenge rating: 3

Saves
  fortitude 8
reflex 6
will 1
Damage reduction: 15/+1

Trained skills:(‡) hide (11), listen (4), spot (4)
Feats: darkvision, weapon proficiency (creature)

Blueprint:(‡) nw_gargoyle
Standard loot: gargoyle skull

Special abilities[]

If there are no living player characters within ten meters of a gargoyle, it will turn into a undamageable (plot) statue until this situation changes.

Notes[]

  • There is an unused blueprint for a summoned gargoyle that is identical to the standard creature, other than not dropping any items upon death and not turning into a statue. The ResRef of this unused creature is nw_s_gargoyle.

Builder notes[]

  • A gargoyle can be placed in its statue form. The statue form (ResRef: nw_stat_garg) is the first "Statue" in the "Miscellaneous" part of the standard placeable palette. The script that turns this statue into a creature is nw_o2_gargoyle.
  • The source code available in the Toolset for the gargoyle's OnHeartbeat event handler (nw_c2_gargoyle) is incorrect and should not be used for modifications. Fortunately, this incorrect script was not compiled by BioWare, so the game still uses the compiled version of the following script.
void main()
{
    object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
    if ( !GetIsObjectValid(oPC)  ||  GetIsDead(oPC)  ||  GetDistanceToObject(oPC) >= 10.0 )
    {
        location lHere = GetLocation(OBJECT_SELF);
        location lNew = Location(GetAreaFromLocation(lHere),
                                 GetPositionFromLocation(lHere),
                                 GetFacingFromLocation(lHere) + 180.0);

        CreateObject(OBJECT_TYPE_PLACEABLE, "nw_stat_garg", lNew);
        DestroyObject(OBJECT_SELF, 0.5);
    }
}
Advertisement