Shadow Simulacrum | |
Spell Information | |
Spell level : | Innate level: 9, Sorcerer/Wizard: 9 |
---|---|
School : | Illusion |
Components : | Verbal and Somatic |
Range : | Touch |
Duration : | 6 sec. * cLevel 1 Round (cLevel) |
Save : | None |
Spell resistance : | No |
Description[]
Shadow Simulacrum reaches into the Plane of Shadow and creates a shadow duplicate of the creature touched by the caster. This shadow creature retains all the abilities of the original, but is created with only 3/4th the current hit points of the original and all memorized spells are lost. The simulacrum has 20% concealment and immunity to negative energy damage. Creatures with more than double the caster's level in hit dice are immune to this spell.
Notes[]
- As of v1.12, this will now copy creatures up to twice the caster level, not half the caster level
- The Shadow Simulacrum occupies a summoned creature slot. Meaning that if you already have a Summon Monster (I-IX) creature out, creating a Shadow Simulacrum will unsummon your previously summoned creature. You also cannot cast this on yourself.
- The Shadow Simulacrum is not affected by Augment Summoning.
- Since Shadow Simulacrum is a Touch spell, it is possible to cast from a familiar. Familiars are seemingly seen as a separate casting entity, thus allowing the caster to summon TWO Simulacrums of a creature. Caster level checks still apply; the actual familiar level is of no relevance.
- This spell does not break invisibility.
- One can examine a simulacrum, and thereby see all the duplicated creature's exact statistics, including class levels, saving throws, feats, status effects from equipment, etc. One cannot see their inventory, however. Presumably this applies to glass simulacrum as well.
- Dragons cannot be duplicated due to an error in appearance.2da. This error also breaks the epic spell Dragon Knight, which is supposed to summon a Red Dragon (cut, yet can be restored through the toolset). To fix, open appearance.2da in the toolset and order the rows by the CREPERSPACE column. This column contains numbers, any number above 2 will break all creatures with this appearance type. Change any numbers higher than 2 to two and save the fixed 2da to the Override folder. This will allow you for example to duplicate Tholapsyx in the original campaign (she is lvl 34, so you must be lvl 17 min to copy her).
- The shadow copy has 100% immunity to negative damage, but if the copied target has a native neg energy immunity of their own, this immunity actually turns into a negative damage vulnerability (this is the same bug that occurs if you cast both Mass Death Ward and Shadow Shield on yourself, which gives you 200% immunity to negative damage, which the game erroneously interprets as a vulnerability, because anything above 100% is turned into a vulnerability). So if you copy Akachi in MoB, the shadow copy has 150% immuniy to negative energy (since Akachi has 50% immunity to negative damage, so 100% + 50%=150% immunity, which is actually interpreted by the game as a ~500% vulnerability to negative damage! So if Akachi deals 7 points negative damage to its shadow copy, it actually takes over 30 points damage instead of 0. To fix, the shadow simulacrum buff script needs to make sure the overall immunity does not exceed 100% by checking all items on the target character for negative energy immunity and then applying a buff equal to 100% immunity:
nx_s0_shadow_sim_buff.nss
int GetCreatureHasNegProtection (object oCreature=OBJECT_SELF) { int i; itemproperty ip; string Percentage; for (i = 0; i < NUM_INVENTORY_SLOTS; i++) { object oItem = GetItemInSlot(i, oCreature) if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE)) { ip = GetFirstItemProperty(oItem); while (GetIsItemPropertyValid(ip)) { if(GetItemPropertyType(ip)==ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE && GetItemPropertySubType(ip)==11) { Percentage=Get2DAString( "iprp_immuncost","Value", GetItemPropertyCostTableValue(ip)) return StringToInt(Percentage); } ip = GetNextItemProperty(oItem); } } return 0; } void main() { effect eImmunity = EffectDamageImmunityIncrease(DAMAGE_TYPE_NEGATIVE, 100-GetCreatureHasNegProtection()) ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectLinkEffects(EffectConcealment(20), eImmunity), OBJECT_SELF) }