...
- 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 if it'd even work!)
- 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)cannot be retrieved currently, at least on static AOEs, but mobile ones you can get it from the parent effect on the object it is following).
- The spell ID which is used when applying effects (so they - now can be accurately removed later) - however GetSpellId() fails, instead use GetEffectSpellId(EffectDazed()) as a workaroundretrieved using GetSpellId as of 8193.36 (the spell Id can be set with SetEffectSpellId as well).
- The spell save DC - should is set to the right amount same amount as the creators spell save DC when GetSpellSaveDC is called, and should in later versions of NWN:EE correctly saveas long as its created immediately in the spell script
- The caster level - should be set to the right amount when using ResistSpell
- GetCasterLevel() (any variant) does not work properly and changes as new spells are cast even in NWN:EEworks if used on OBJECT_SELF (ie the AOE object) as of 8193.36
- Effects applied by an AOE in has no now have a caster level set (making them always dispellable)as of 8193.36. Note that effects caused by an AOE usually should only be removed when the AOE itself is - if coded well this will always be the case - so could be made extraordinary instead.
- 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 if not invalid.
Moving Object Properties
...
Line 7 VFX_PER_WALLBLADE is the only persistent VFX that enables environmental mapping on the model. Sadly we can't bypass this with progfx.2da unhardcoding but there may be workarounds using TXI or MTR parameters.
It doesn't appear any other line is hardcoded.
...