...
- Exist as an OBJECT_TYPE_AREA_OF_EFFECT and searchable specifically with GetFirstObjectInShape and GetNearestObject (yes both movable and non-movable ones)
- Has a tag matching the "LABEL" column and findable using GetObjectByTag and GetNearestObjectByTag
- This is also - without further interaction - the only way to get the bounding sizes and other properties
- Has special properties set on it regarding:
- The creator (the object the script applying the effect was called from) returned by GetAreaOfEffectCreator(OBJECT_SELF)
- The event scripts: On Enter, On Exit and Heartbeat - done from the script command or the 2da line - there is also a User Defined Event apparently available, but cannot be set at inception but later can with SetEventScript (needs testing!)
- The size and shape of it from the 2da entry
- The duration remaining (not sure this can be retrieved unless it's a mobile one)
- The spell ID which is used when applying effects (so they can be accurately removed later) - however GetSpellId() fails, instead use GetEffectSpellId(EffectDazed()) as a workaround
- The spell save DC - should set to the right amount when GetSpellSaveDC is called, we hope, although it could still change after later castings. To test in EE.and should in later versions of NWN:EE correctly save
- The caster level - should be set to the right amount when using ResistSpell,
- GetCasterLevel() (
- any variant) does not work properly and changesa s new spells are cast even in NWN:EE
- Need to test the effect caster level assigned by an effect.
- If the AOE calls EventSpellCastAt it will use the creator, not itself, as the caster
- If the AOE applies an effect apparently (needs fully testing - in the case of now-invalid casters also!) it gets created with the correct spell ID and that the creator is GetAreaOfEffectCreator.
...