//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //:::::::::::::::::::::::: Shayan's Subrace Engine ::::::::::::::::::::::::::::: //:::::::::::::::::::::: File Name: sha_leto_sraces6 ::::::::::::::::::::::::::: //:::::::::::::::::::::::::: OnModuleLoad script ::::::::::::::::::::::::::::::: // Written By: Shayan // // Description: This script holds the pre-made "undead" subraces as well as // some Human and Halfling based sub races listed here: Imp, Pixie, Githyanki, // Githzarai, Lich, Vampire // // If you do not want to use these, simply comment the lines: // DelayCommand(3.0, ExecuteScript("sha_leto_sraces6", GetModule())); // in the script: sha_on_modload. // //////////////////////////////////////////////////////////////////////////////// #include "sha_subr_methds" void main() { //:::::::::::::::::::::::::::::::::: //:::SUBRACE: Halfing Imp ECL 0 :::: //:::::::::::::::::::::::::::::::::: CreateSubrace(RACIAL_TYPE_HALFLING, "Imp"); //can only be Wizard, Sorcerer or Rogue. CreateSubraceClassRestriction("Imp", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE); //Apearance: Imp - Permanent CreateSubraceAppearance("Imp", TIME_BOTH, APPEARANCE_TYPE_IMP, APPEARANCE_TYPE_IMP); //LETO - Change ability scores: (Str, Dex +3, Con, Int +4, Wis, Cha -4) struct SubraceBaseStatsModifier ImpStats = CustomBaseStatsModifiers(0, 3, 0, 4, 0, -4, MOVEMENT_SPEED_CURRENT); CreateBaseStatModifier("Imp", ImpStats, 1); //LETO - Skills: Search +5, Spot +5, Listen +5, Spellcraft +5, Concentration +5 //Skill Decrease: Move Silently -4 (wing flap) ModifySubraceSkill("Imp", SKILL_SEARCH, 5, 1, FALSE); ModifySubraceSkill("Imp", SKILL_SPOT, 5, 1, FALSE); ModifySubraceSkill("Imp", SKILL_LISTEN, 5, 1, FALSE); ModifySubraceSkill("Imp", SKILL_SPELLCRAFT, 5, 1, FALSE); ModifySubraceSkill("Imp", SKILL_CONCENTRATION, 5, 1, FALSE); ModifySubraceSkill("Imp", SKILL_MOVE_SILENTLY, -4, 1, FALSE); //Alignment Restriction: Can only be chaotic-evil CreateSubraceAlignmentRestriction("Imp", FALSE, FALSE, TRUE, FALSE, FALSE, TRUE); //Favored Class: Rogue AddSubraceFavoredClass("Imp", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE); //Item Restriction: No shields, tiny weapons, cloth only SubraceRestrictUseOfItems("Imp", ITEM_TYPE_WEAPON_SIZE_TINY | ITEM_TYPE_ARMOR_AC_0 | ITEM_TYPE_MISC_CLOTHING | ITEM_TYPE_JEWLERY | ITEM_TYPE_HELM | TIME_BOTH,ITEM_TYPE_REQ_ALL); //:::::::::::::::::::::::::::::::::::::::: //:::: SUBRACE: Halfling - Pixie ECL +6 :: //:::::::::::::::::::::::::::::::::::::::: //Properties from the Skin: AC +1, +1 Soak 5 Damage //Abilities from the unique item: Cast Spell Confusion (10) 1/Day, Entangle (5) 1/Day //Invisibility (3) 1/Day, Lesser Dispel (5) 1/Day, Polymorph Self (7) 1/Day CreateSubrace(RACIAL_TYPE_HALFLING, "Pixie", "sha_pcl_pixie", "sha_subrace_pixi", FALSE, 0, FALSE, 0, 6); SetupSubraceAlias("Pixie", "pixy"); SetupSubraceAlias("Pixie", "Faerie"); SetupSubraceAlias("Pixie", "Fey"); SetupSubraceAlias("Pixie", "Faery"); ModifySubraceFaction("Pixie", "FACTION_DRYAD", SUBRACE_FACTION_REPUTATION_FRIENDLY); // Can Fly AddSubraceItem("Pixie", "sha_subrace_fly"); //LETO - Change ability scores: (Str -4, Dex +8, Con -4, Int +6, Wis +4, Cha +6) Movement Speed: Fast struct SubraceBaseStatsModifier PixieStats = CustomBaseStatsModifiers(-4, 8, -4, 6, 4, 6, MOVEMENT_SPEED_FAST); CreateBaseStatModifier("Pixie", PixieStats, 1); //LETO - Bonus Feats: Darkvision, Dodge ModifySubraceFeat("Pixie", FEAT_DARKVISION, 1); ModifySubraceFeat("Pixie", FEAT_DODGE, 1); //Alignment Restriction: Neutral Only CreateSubraceAlignmentRestriction("Pixie", FALSE, TRUE, FALSE); //Class Restriction: Bard, Rogue, Sorcerer, Wizard CreateSubraceClassRestriction("Pixie", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE); //Favored Class: Sorcerer AddSubraceFavoredClass("Pixie", CLASS_TYPE_SORCERER, CLASS_TYPE_SORCERER); //Appearance Change: Permanent - Pixie CreateSubraceAppearance("Pixie", TIME_BOTH, APPEARANCE_TYPE_FAIRY, APPEARANCE_TYPE_FAIRY); //Effect: Visual Effect - Fairy Dust AddSubraceEffect("Pixie", EFFECT_TYPE_VISUALEFFECT, VFX_DUR_PIXIEDUST, FALSE, DURATION_TYPE_PERMANENT, 0.0, TIME_BOTH); //Spell Resistance: Base (at Level 1): 15, Max(at Level 40): 55. CreateSubraceSpellResistance("Pixie", 15, 55); //Item Restriction: No shields, Clothing only, Tiny Weapons SubraceRestrictUseOfItems("Pixie", ITEM_TYPE_WEAPON_SIZE_TINY | ITEM_TYPE_ARMOR_AC_0 | ITEM_TYPE_MISC_CLOTHING | ITEM_TYPE_JEWLERY | ITEM_TYPE_HELM | TIME_BOTH,ITEM_TYPE_REQ_ALL); //::::::::::::::::::::::::::::::::::::::::: //:::: SUBRACE: Human - Githyanki ECL +2 :: //::::::::::::::::::::::::::::::::::::::::: //Abilities from Unique Item: Daze 3/day CreateSubrace(RACIAL_TYPE_HUMAN, "Githyanki", "", "sha_subrace_gy", FALSE, 0, FALSE, 0, 2); //LETO - Change ability scores: (Str, Dex +2, Con +2, Int, Wis -2, Cha) struct SubraceBaseStatsModifier GithyStats = CustomBaseStatsModifiers(0, 2, 2, 0, -2, 0, MOVEMENT_SPEED_CURRENT); CreateBaseStatModifier("Githyanki", GithyStats, 1); //LETO -Bonus Feats: Darkvision ModifySubraceFeat("Githyanki", FEAT_DARKVISION, 1); //Appearance: Hair: red 5 Skin: yellow 94 ModifySubraceAppearanceColors("Githyanki",5,5,94,94); //Appearance: Heads: Male 33, Female 27 ModifySubraceHead("Githyanki", 33,27); //Spell Resistance: 5 + 1 Per Level. CreateSubraceSpellResistance("Githyanki", 5, 45); //Favored Class: Fighter AddSubraceFavoredClass("Githyanki", CLASS_TYPE_FIGHTER, CLASS_TYPE_FIGHTER); //Alignment Restriction: Evil Only CreateSubraceAlignmentRestriction("Githyanki", FALSE, FALSE, TRUE); //::::::::::::::::::::::::::::::::::::::::: //:::: SUBRACE: Human - Githzerai ECL +2 :: //::::::::::::::::::::::::::::::::::::::::: //Abilities from Unique Item: Daze 3/day CreateSubrace(RACIAL_TYPE_HUMAN, "Githzerai", "", "sha_subrace_gz", FALSE, 0, FALSE, 0, 2); //LETO - Change ability scores: (Str, Dex +6, Con, Int -2, Wis +2, Cha) struct SubraceBaseStatsModifier GithzStats = CustomBaseStatsModifiers(0, 6, 0, -2, 2, 0, MOVEMENT_SPEED_CURRENT); CreateBaseStatModifier("Githzerai", GithzStats, 1); //LETO - Bonus Feats: Darkvision ModifySubraceFeat("Githzerai", FEAT_DARKVISION, 1); //Appearance: Hair and Skin: Mottled Green 175 ModifySubraceAppearanceColors("Githzerai",175,175,175,175); //Appearance Heads: Male 34, Female 26 ModifySubraceHead("Githzerai", 34, 26); //Inertial Barrier at will AddSubraceItem("Githzerai","sha_subrace_ps_i"); //Spell Resistance: 5 + Level CreateSubraceSpellResistance("Githzerai", 5, 45); //Alignment Restriction: Neutral Only CreateSubraceAlignmentRestriction("Githzerai", FALSE, TRUE, FALSE, TRUE, TRUE, TRUE); //Favored Class: Monk AddSubraceFavoredClass("Githzerai", CLASS_TYPE_MONK, CLASS_TYPE_MONK); //:::::::::::::::::::::::::::::::::::::: //::::: SUBRACE: Undead - Lich ECL +9 :: //:::::::::::::::::::::::::::::::::::::: //Properties from the Skin: //Level 1: Damage Reduction: +1/15 Damage, Turn Resistance +4, Cold 100% Immunity, Electrical 100% Immunity //Level 5: Gains - Immunity: Miscellaneous: Disease //Level 10: Gains - Immunity: Miscellaneous: Poison //Level 15: Gains - Immunity: Miscellaneous: Paralysis //Level 20: Gains - Immunity: Miscellaneous: Level/Ability Drain //Level 25: Gains - Immunity: Miscellaneous: Mind-Affecting Spells //Level 30: Gains - Immunity: Miscellaneous: Death Magic //Level 35: Gains - Immunity: Miscellaneous: Sneak Attack //Level 40: Gains - Immunity: Miscellaneous: Critical Hits //Abilities from the unique item: Cast Spell Destruction (13) 1/Day, Cast Spell Vampiric Touch (5) 1/Day //Light Sensitive, Takes 10 Divine Damage While in Sunlight //Undead CreateSubrace(RACIAL_TYPE_HUMAN, "Lich", "sha_pcl_lich", "sha_subrace_lich", TRUE, 10, FALSE, 0, 9, TRUE, TRUE); //LETO - Change ability scores: (Str, Dex, Con, Int +2, Wis +2, Cha +2) struct SubraceBaseStatsModifier LichStats = CustomBaseStatsModifiers(0, 0, 0, 2, 2, 2, MOVEMENT_SPEED_CURRENT); CreateBaseStatModifier("Lich", LichStats, 1); //Can also be Elf AddAdditionalBaseRaceToSubrace("Lich", RACIAL_TYPE_ELF); //Can also be Half-Elf AddAdditionalBaseRaceToSubrace("Lich", RACIAL_TYPE_HALFELF); //The different skins to be equipped at different levels... AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich1", 5); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich2", 10); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich3", 15); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich4", 20); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich5", 25); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich6", 30); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich7", 35); AddAdditionalSkinsToSubrace("Lich", "sha_pcl_lich8", 40); //Alignment Restriction - Must be Evil CreateSubraceAlignmentRestriction("Lich", FALSE, FALSE, TRUE); //Class Restriction - Can only be Wizard or Sorcerer CreateSubraceClassRestriction("Lich", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE); // Prestige Class restriction - Can only be Pale Master CreateSubracePrestigiousClassRestriction("Lich", 10, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE); //Spell Resistance: 10 + 1/2 Per Level. CreateSubraceSpellResistance("Lich", 10, 30); //Appearance: Lich - Permanent CreateSubraceAppearance("Lich", TIME_BOTH, APPEARANCE_TYPE_LICH, APPEARANCE_TYPE_HEURODIS_LICH); //Favored Class: Pale Master AddSubraceFavoredClass("Lich", CLASS_TYPE_WIZARD, CLASS_TYPE_WIZARD); //:::::::::::::::::::::: //:::SUBRACE: Vampire :: //:::::::::::::::::::::: //Subrace Name: Vampire //Properties from the Skin: //Level 1: Divine 100% Damage Vulnerability, Saving Throw Divine -5, Regeneration +1 //Level 5: Gains - Immunity: Miscellaneous: Paralysis //Level 10: Gains - Immunity: Miscellaneous: Poison //Level 15: Gains - Immunity: Miscellaneous: Disease //Level 20: Gains - Immunity: Miscellaneous: Death Magic, Regeneration Increases by +1 //Level 25: Gains - Immunity: Miscellaneous: Level/Ability Drain //Level 30: Gains - Immunity: Miscellaneous: Mind-Affecting Spells //Level 35: Gains - Immunity: Miscellaneous: Sneak Attack //Level 40: Gains - Immunity: Miscellaneous: Critical Hits, Regeneration Increases by +1 //NOTE: Final Regeneration rate (At Level 40) is +3. //Light Sensitive. Takes 10 Divine Damage while in Sunlight. CreateSubrace(RACIAL_TYPE_HUMAN, "Vampire", "sha_pcl_vamp001", "sha_subrace_vamp", TRUE, 10, FALSE, 0, 9, TRUE, TRUE); // Can Fly AddSubraceItem("Vampire", "sha_subrace_fly"); //LETO - Change ability scores: (Str, Dex, Con, Int, Wis, Cha -2) struct SubraceBaseStatsModifier VampireStats = CustomBaseStatsModifiers(0, 0, 0, 0, 0, -2, MOVEMENT_SPEED_CURRENT); CreateBaseStatModifier("Vampire", VampireStats, 1); //LETO - Bonus Feats: Darkvision ModifySubraceFeat("Vampire", FEAT_DARKVISION, 1); //Can also be Elf AddAdditionalBaseRaceToSubrace("Vampire", RACIAL_TYPE_ELF); //Can also be Half-Elf AddAdditionalBaseRaceToSubrace("Vampire", RACIAL_TYPE_HALFELF); //Skins that are equipped at certain levels... AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp002", 5); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp003", 10); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp004", 15); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp005", 20); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp006", 25); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp007", 30); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp008", 35); AddAdditionalSkinsToSubrace("Vampire", "sha_pcl_vamp009", 40); //Alignment Restriction: Can only be evil CreateSubraceAlignmentRestriction("Vampire", FALSE, FALSE, TRUE); //Appearance: Change the Appearance to a Vampire during night time, and revert back to normal during day time. CreateSubraceAppearance("Vampire", TIME_NIGHT, APPEARANCE_TYPE_VAMPIRE_MALE, APPEARANCE_TYPE_VAMPIRE_FEMALE, 1); //Temporary Stats: Bonuses at Night time: (Str +6, Dex +4, Con +4, Int, Wis, Cha +2) AC +5, AB +10 struct SubraceStats VampStats1 = CreateCustomStats(SUBRACE_STAT_MODIFIER_TYPE_POINTS, 6.0, 4.0, 4.0, 0.0, 0.0, 2.0, 5.0, 10.0); CreateTemporaryStatModifier("Vampire", VampStats1, TIME_NIGHT); //Favored Class: Rogue AddSubraceFavoredClass("Vampire", CLASS_TYPE_ROGUE, CLASS_TYPE_ROGUE); //Appearance no longer changes, but the player will get a control item. CreateSubraceAppearance("Vampire", TIME_NONE, APPEARANCE_TYPE_WERECAT, APPEARANCE_TYPE_WERECAT, 20); AddSubraceItem("Vampire", "sha_vamp_cont", 20); }