Operand Posted May 11, 2021 Posted May 11, 2021 Fallout⁴ Fantasy View File This mod just does too much to try explaining it in a single paragraph. So I will update the documentation as it goes (if it goes). No screenshots yet, but feel free to upload yours in case you don't mind me using it. I didn't find a good reason to upload mine here. PRE-? VERSION WARNING DO NOT install: Mid-game. A new game is ABSOLUTELY required. IMPORTANT: As per reports: It is highly recommended to start the game with alternate start mods, such as Start Me Up. Otherwise there's a chance that the controller item added by this mod will be removed by the game during the main quest init sequence. With any serious playthrough in mind. It WILL have bugs, critical glitches and most likely will even cause you to CTD! This version is only released as I don't see any other way for it to see the light of day and my hope is that I get some interest and support from the community. The mod is just too large in functionality for me to ever hope to address everything on my own. YOU GET: A massive extension to the Fallout4 gameplay experience. Fallout Fantasy is an addition to the game world that seeks to enhance character building and role-playing aspects of the game. You will get systems like races and classes as well as ways to immerse into some RP elements. The information on existing systems is updated in the main thread, but due to sheer amount of things it takes some time to cover it. Here's the list of the documented things so far: Races Classes Feats & Spells Alignment & Profile Sexuality & Mods (Still some to document) But there are likely more systems in FF4 that I didn't yet mention in the main thread. With this in mind, I will update this post when I add new information. REQUIREMENTS It does integrate with a lot of item mods (racial appearance) and some LL mods (Adult stuff), but none of any mods is required. You can install it on a game without any DLC and it should work (erm.. it theory. I never tested that scenario) PERMISSIONS "Be nice". You can take assets from this mod, but I'd like if you asked me first stating why you would want them. All of the content here is wither CC3 or commercial license which I bought for myself (like sounds on steam), so yes - I spent some $$$ on it. Anyhow, I did some solid research - or so I believe - to ensure my content is either fully original or is derived from the works where it's explicitly allowed by the license. Nothing in FF4 is taken without consent, license or permission. Thus I expect anyone who'd want to take stuff to abide by same principles. YOU CAN HELP In fact, I'm hoping you will. Especially if you're a modder (because I for sure am not). Here's where I need support if this mod is ever to advance: Testing, obviously. There's just too much stuff I won't be able to get on my own Direct contribution: Adding spells (FF4 has it's whole spells system which can be extended with new spells), but I just didn't have time to wok on that a lot. Adding feats (same reason as spells) Animations - I'm willing to pay you some $$$ if you can help me with some of the stuff I have in mind Quests - to be honest, this whole mod is done entirely in FO4Edit, I never used CC properly in my life. But that has its limits. Namely, dialogues and quests are mostly out of my reach. I'd like to introduce some story line and racial / class quest lines - but.. alas, I have no knowledge to do so UI - if you can guide me to create my own UI widgets / plugins, this is also some stuff I'm willing to pay for. Submitter Operand Submitted 05/11/2021 Category WIP / Beta Requires Base game 6
Operand Posted May 11, 2021 Author Posted May 11, 2021 RACES There are 10 races in total in the mod. All the races are implemented as an extension to the actor record and not as a proper "race" entries. Reason for doing this is to keep as much compatibility with other mods as possible. Unfortunately, there are certain engine bugs and hardcoded stuff that makes it very hard or impossible to keep compatibility with custom races for stuff like PA mods, LMCC and its company and so on. Racial Properties All races come with: Racial Feat: a special trait that is given to the race Racial Proficiency: types of items that the race can use "out of the box" Racial Stats: A stats change (SPECIAL) gained by the individuals of this race. Alignment Restrictions: which alignment is allowed for the race Allowed Mixins: Which bloodlines are allowed for the race. Racial Ranks: Special ranks that are unique to each race. Bloodlines All races can have some of the other races as "mixins" aka "bloodline". That is effectively a "family tree" indicator to RP the ancestry. Not all races can be mixed together and the limit is usually 3 races which can be mixed to the main one. When the race is mixed, only racial trait is applied, as well as racial appearance - if you happened to have mods that FF4 recognizes (or you've defined the appearance items yourselves). Racial stats are not applied for mixins (we wouldn't want things like +12 to SPECIAL, right?) Another thing is that since the bloodline is the ancestry, none of the racial restrictions are applied when mixing the race - after all, your parents/grandparents have nothing to do with your actions. Appearance Fallout⁴ Fantasy does not alter any appearances. You are left on your own to design your changes. For example, choosing elves will not grow you pointy ears. That being said, there is still a way to customize races without involving the slm. These are appearance items. By default FF4 comes with some definitions for racial appearance items - almost every race has a defined list of armor forms which will be attempted to equip when the race is added (either a main one or a mixin). If the corresponding mod is installed - the racial appearance armor item will be equipped. You can, however, control this behavior: For starters, you can disable it completely. That is in case you don't want armor-based appearance changes Or you can set it to "custom" and define your own items as appearance. Be warned though, the mod does no checks here - so if you mess up it's on you. And there are a lot of ways to mess up, to name a few: Try to define items from different races on the same slot(s) and then mixing those races. This will hurt badly Try to define the same item on the appearance for different races Or who knows, maybe the mod just glitches - I only barely tested this corner of appearance changes Races List The 10 races of Fallout⁴ Fantasy are (alphabetical order): Angels The name speaks for itself. This race is for all the "want to be good, bring the light" minds. Racial Feat: Flight. Yep, you'll be able to fly around, no strings attached. You will not take fall damage and there's generally no restrictions on the ability. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Dark Elves, Light Elves, Nymphs, Vampires Racial Stats: +4 Charisma Racial Ranks: None Special notes: Winged: Angels cannot use Power Armor Indomitable Bloodline: Angelic bloodline is too strong and cannot be mixed to anything else. As such, angels can't be a mixin race to anything else (i.e. the only way to obtain the angelic traits is to chose angels as the main race, there's no way to have it as a bloodline). Angels can also have up to 4 bloodline races as compared to normal 3 (same in-lore reason, balance reason - no racial ranks) Selfless: No racial ranks. Angels is the only race that does not have racial ranks. In-lore reason: angels are selfless and do not care about power, ranks or hierarchies. Therefore they do not have the concept of racial ranks Beastfolk All you "foxgirls" and "catgirls" lot. Though no tails or ears are bundled unless you have some appearance mods that FF4 recognizes.. Racial Feat: Uncanny Reflexes: Immune to fall damage and can jump a lot higher. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Demons, Orcs, Devils Racial Stats: +2 Strength, +2 Perception, -2 Intelligence, +2 Agility Racial Ranks: Soonᵀᴹ Special notes: Independent: Beastfolk cannot be a mixin race (just as for instance, humans or angels) Dark Elves These are elves. Dark elves - the classic tanned long-eared long-lived beings. With one difference from the classic - dark elves are not "evil" in FF4, and on the contrary they are an esteemed race that hold same respect as their lighter-skinned cousins. Racial Feat: Dark Elvish Grace: Do more damage at night, but receive more damage during the day. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Light Elves, Nymphs, Vampires Racial Stats: +2 Perception, +2 Charisma Racial Ranks: Soonᵀᴹ Demons The "baddies". Specifically - "I will destroy everything and everyone just because it's fun" type. The villains that enjoy to be villains for the pure sake of being a villain. Well, you've been warned.. Racial Feat: Sight: Demons recognize enemies from far away (highlight over hostile actors) Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Orcs, Devils, Vampires Racial Stats: +2 Strength, +2 Agility Racial Ranks: Soonᵀᴹ Devils Also "baddies", but these are organized. The methodical dominance and intentional, planned harm is their way. They are honoring a good contract and don't back down on the bargain that's made. Still, they want to get the souls, as you can imagine. So join them if that floats your boat. One caveat though - devils can only be male. Racial Feat: Luck of the devils: When performing an unarmed melee attack there's 1/6 chance to deal 666 times the normal damage (aye, absurd and needs a lot of balancing, but the numbers look funny) Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Orcs, Demons, Vampires Racial Stats: -2 Perception, +2 Charisma, +2 Luck Racial Ranks: Soonᵀᴹ Special notes: Dominance: Devils can only be male Humans Well, it wouldn't be a fantasy without the human race, right? At least to have a way to show how much different all the others are. But humans still have their trait nonetheless. Racial Feat: Survival: get +1 feat point for every class that you have. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Devils, Demons, Vampires Racial Stats: +1 Strength, +1 Endurance, +1 Intelligence, +1 Luck Racial Ranks: Soonᵀᴹ Special notes: Independent: Humans cannot be a mixin race (just as for instance, beastfolk or angels) Light Elves These are also elves. But these are classic "noble, graceful and light-skinned". They are getting their power from the light of day, so naturally, they prefer the day activities. They also are considered the "good" race just as the dark elves. Racial Feat: Dark Elvish Grace: Do more damage during the day, but receive more damage at night Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Dark Elves, Nymphs, Vampires. Racial Stats: +2 Charisma, +2 Intelligence Racial Ranks: Soonᵀᴹ Nymphs Forest dwellers, close to spiritual parts of the world. They do not like civilization of humans, but get along well with elves. The inspiration here is the "beautiful, pure and wild" depiction. And of course, nymphs can only be female. Racial Feat: Boon Of Nature: Completely immune to radiation, poison and unarmed attacks. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Dark Elves, Light Elves, Vampires Racial Stats: -2 Strength, +4 Charisma, +2 Agility Racial Ranks: Soonᵀᴹ Special notes: Child Of Nature: Nymphs hate the tools of war and cannot use Power Armor. Diva: Nymphs can only be female. Orcs The green men, I suppose? Well, up to you. In FF4 they are not green anyways (unless you customize it like that). These are the glorified warriors, the tribal folks. You know, the usual cliches. Racial Feat: Trained warrior: Drastically increases damage output as more damage was received. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Devils, Demons, Vampires Racial Stats: +4 Strength, +2 Endurance, -2 Charisma Racial Ranks: Soonᵀᴹ Vampires Last but not least, another stamp, the blood-dependent vampires. They are not (yet) really dependent on the blood, but they benefit from it somewhat. Racial Feat: Bloodlust: Melee and unarmed attacks restore health. Racial Proficiency: See the Terminal entry (documented in-mod) Alignment Restrictions: See the Terminal entry (documented in-mod) Allowed Mixins: Dark Elves, Light Elves, Nymphs Racial Stats: -2 Perception, +4 Intelligence, +2 Agility Racial Ranks: Soonᵀᴹ Fallen Races Now, the list of 10 races happens to be not everything that FF4 has to offer races-wise. You see - there are restrictions on almost all races. And you have to stick to those restrictions. Otherwise you will fall from the racial grace and become a "fallen" variant of the main race you were before. Important thing to note is that it only concerns main race, mixins do not play any role here (and why would they - your parents / grandparents races have nothing to do with it). Still, with this in mind there are additional 9 races - the "fallen" versions of each race apart from Humans. Yes, another one of the Human race's special traits is that you can't "fall" from the racial grace there: humans are so diverse in culture, values and all around it that there's simply nothing to "fall from". So in the end, FF4 has 19 races and you can mix at least 3 of them to the main one meaning you get C(19, 4) = 3876 possible combinations to play with. Or so does the math say. 2
Operand Posted May 11, 2021 Author Posted May 11, 2021 CLASSES FF4 also has the fully functional concept of a class. It basically defines what the character is "doing" and specializes in. With the classes, the leveling model also changes - you gain levels not "just of a character", but "of a class". This means that you progress in your class and you need to chose your class for progressing when leveling up. There are five classes in FF4: Warrior Mage Cleric Rogue Ranger Every class comes with its abilities and traits. Each class also allows class proficiency - the ability to use certain items "out of the box". Example of unique trait is rogue - only them and their derivatives can use sneaking (you will be denied from crouching if you aren't a rogue class). When you level up in the class, you will also get random amount of HP according to the hit dice roll of the class you've chosen to level up. Warrior These are your classic "run-n-gun" guys. They are the most diverse with their proficiency and can use almost every weapon / armor out of the box. Class traits: Hit Dice: 1d10 Trait: Soonᵀᴹ Class Proficiency: See the Terminal entry (documented in-mod) Elite Classes: Knight, Paladin Mage Spell-casters and "the most genius of them all" types. Get spells when leveling up, but they don't have items affinity, so their choice of weapons is fairly limited. Hit Dice: 1d6 Trait: 10% spell cooldown reduction Class Proficiency: See the Terminal entry (documented in-mod) Elite Classes: Wizard, Sorcerer Cleric Ah, the saviors of them all, the pure and naive clerics. The healers, in other words. Also have spells, but those are mostly for self-sustain and alike. Hit Dice: 1d8 Trait: +2 to the Divine Spell School spell power Class Proficiency: See the Terminal entry (documented in-mod) Elite Classes: Blackguard, Guardian Rogue The sneaky-tricky guys. The only one that can use sneak in-game (yep, you will not be able to sneak at all if you aren't a rogue). They also like mines. Hit Dice: 1d8 Trait: Can use sneak attacks (and sneak, obviously) Class Proficiency: See the Terminal entry (documented in-mod) Elite Classes: Assassin, Ninja Ranger Sharpshooters and masters of the ranged combat. One would guess they'd be the most OP in the world of ranged guns, but I think rogues can give them a tough time. Hit Dice: 1d8 Trait: Soonᵀᴹ Class Proficiency: See the Terminal entry (documented in-mod) Elite Classes: Sniper, Druid Elite Classes Every class can be evolved to its "elite" version. And each class has two different elite variants. At the moment not all the elite variants are implemented with their traits, i.e. some are just there and you can evolve your class into it, but it will do nothing (i.e. no trait or feats will be granted). You may not want to evolve your base class to an elite variant at all - reason being that while elite classes have these unique abilities, they gain regular feats slower: base classes gain feats every 3 levels while elite classes only every 4 levels Warrior > Knight Hit Dice: 1d12 Trait: Weapon Of Choice. Knights focus on one specific weapon (by Form) and then they get improvements based on the chosen weapons. These improvements are the feats which are unlocked as the knight class level progresses. Weapon Of Choice provides with different feats for melee and ranged weapons, but only one weapon can be marked as the chosen. Warrior > Paladin Hit Dice: 1d10 Trait: Divine Shield: a buffer passive shield measured in points. While the shield points are above zero, paladins receive less damage. There's a whole lot of feats to improve this feat (such as expending less point based on damage type or enemy race). Mage > Wizard Hit Dice: 1d6 Trait: Spell Prodigy: 10% longer Spells Duration Mage > Sorcerer Hit Dice: 1d6 Trait: Spell Prodigy: +2 to the Arcane Spell School and elemental Spell School spell power Cleric > Blackguard Hit Dice: 1d8 Trait: Cursed Teachings: +4 to the Necromantic Spell School spell power (alas, there are no spells of this school yet added, but the intent is "raising the dead") Cleric > Guardian Hit Dice: 1d8 Trait: Divine Vessel: -1 second to all Duration Spells Recast (I.e. if the spell has a duration of 60 seconds and cycles every 6 seconds, Guardians will have it cycled every 5 seconds effectively getting 12 applications instead of 10 in this case) Rogue > Assassin Hit Dice: 1d8 Trait: Soonᵀᴹ Rogue > Ninja Hit Dice: 1d8 Trait: Soonᵀᴹ Ranger > Sniper Hit Dice: 1d8 Trait: Soonᵀᴹ Ranger > Druid Hit Dice: 1d6 Trait: Soonᵀᴹ As you can see, not all the elite classes are properly implemented. However, just because the class doesn't have the trait, it doesn't make it invalid at all - some of the stats change and available feats will still be applicable, so the uniqueness is certainly there. Spell Casters There are also spell-casting classes. These gain spells in addition to regular leveling. The higher in-class level you have, the stronger spells you will unlock. You will then need to chose your spells during the level up and those spells will be available for usage. Important thing is that spells are bound to the class, i.e. to the class level, not character overall level. At the moment, some of the mage and cleric spells are implemented and only of the lower tiers. Multi-Classing You can have up to two classes taken. During the level up you can: Progress in your current base class Evolve your base class into its elite variant (if conditions are met) Add new base class to your class list (if you have less than 2 base classes) When leveling up next time you will need to choose which class are you taking the level in and then you gain the benefits of the level in that class accordingly - i.e. available feats, spells and whatnot. As a grand total, you have 5 base + 10 elite classes and you can have a combination of 2 of them (aside from 2 elite classes of the same base class). So you end up with C(15, 2) - 5 = 100 possible class combinations available in-mod. Good luck experimenting. 1
Operand Posted May 11, 2021 Author Posted May 11, 2021 FEATS & SPELLS Instead of the standard "Perk" concept, FF4 relies on "feats" and "spells" to customize the character. Not everything is (even close to) implemented and, for instance - spells are done only partially for lower spell level, just as a "proof of concept". In the current state, there are also only spells which target the caster. Feats Feats are generally some passive abilities that enhance existing mechanics, abilities or attributes. Some feats are granted automatically when selecting the class or race, also known as racial/class traits. Other feats need to be selected when leveling up. Feats are normally granted every 3 levels for all base classes and every 4 levels for all elite classes. Do note that some feats will overlap with the mechanics that vanilla perks have. The original idea was to disable vanilla perks and leveling altogether, but there are engine complications in-game which make it impossible without some sort of F4SE programming which is far beyond my reach. Currently, you will still be able to take perks normally in the pip-boy section and the mod does not prevent it in any way, but in addition you will be able to take feats. It is not how it was originally envisioned and can easily make your character overpowered because of this. I recommend some difficulty-increasing overhaul mods to compensate for this. Proficiency There's also a special category of feats - proficiency - which allows to use certain items. For instance, if you can't use some category of the items, you still can take the corresponding proficiency feat when leveling up. If you don't have necessary proficiency - you will not be able to use items of that category. The category of items is decided by keywords and not forms. This means that almost any armor item / weapon from some mod will work just fine and recognize its category on the proficiency so long as it follows vanilla game keyword labeling. This also means that when you mod a weapon, you can end up with an item you cannot use whereas before you could (an example is changing stock on a weapon turning if from a pistol to a rifle or vice versa) Spells Spells are - well, spells that do something and require usage. Spells are available for spellcasting classes and different classes have access to different spells. Spells do not consume any resource, but are limited in usage by cooldown timer. Different spells have different cooldowns. By default, there are also severe limitations on using spells - you can't spellcast with your weapon out, when running etc etc. Most of those limitations can be removed if you have necessary feats that are available for spellcasting classes. When the spell is returned from the cooldown, you get the sound alert and a notification. You can set the spell on the quick button and it will work just fine. Do keep in mind that for compatibility and safety reason, spells check the actor "in scene" / "talking" state and do not trigger when that is on. This means that in some cases the spell may fail to trigger even if it seems there's no reason for it to fail. A known offender here is "Player Comments" mod - it puts PC "in scene" even if there's no one around, for instance - when PC is looking at something (head tracking). If you insist on using this mod - the easiest workaround is to set up a hotkey on disabling the comments and then pressing that key before spellcasting. All spells are divided by spell levels and spell schools. Spell levels are related to character levels, but aren't exactly the same. You can think of it as a progression - i.e. the higher is the character level in the spellcasting class, the higher level spells will be available for the character in that class. There are also 5 spell schools: Arcane. Purpose: enchanting, transmutation and other special spells. Mage class domain. Divine. Purpose: support, healing and strengthening. Cleric class domain, though Paladins should get some access too. Elemental. Purpose: combat magic, offensive spells. Mage class domain. Necromantic. Purpose: raise dead, life manipulation etc. Blackguards class domain. Spiritual. Purpose: nature based spells, special spells. Druid class domain. Most of the spells schools are yet just a name and have no spells defined. But the mechanics around the spells schools (such as conditional spell power increase) should be working already. Here's the spells list that is added currently: Bear Might Caster increases their own strength by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Bull Endurance Caster increases their own endurance by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Cure Wounds Caster restores own health by 1d6 x Charisma modifier. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 120 seconds (minimum 60) Duration: N/A Diamond Shield Caster increases their own physical damage resistance by Charisma modifier for the duration of the spell. Spell School: Elemental Spell Level: 1 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 36 seconds (minimum 6) Duration: 12 seconds (maximum 18) Eagle Splendor Caster increases their own charisma by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Fox Cunning Caster increases their own intelligence by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) High Spirit Caster increases their own maximum health by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 6) Duration: 18 seconds (maximum 48) Mirror Shield Caster increases their own energy damage resistance by Charisma modifier for the duration of the spell. Spell School: Elemental Spell Level: 1 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 36 seconds (minimum 6) Duration: 12 seconds (maximum 18) Owl Wisdom Caster increases their own perception by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Panter Grace Caster increases their own agility by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Regeneration Caster gains the healing over time for the duration of this spell. Healing per spell application is equal to 1d6 x Charisma modifier. Spell School: Divine Spell Level: 3 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 600 seconds (minimum 360) Duration: 60 seconds (maximum 120) Spell Delay: 6 seconds Bear Might Caster increases their own strength by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Swift Step Caster increases their own movement speed by Charisma modifier for the duration of the spell. Spell School: Spiritual Spell Level: 1 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 6) Duration: 18 seconds (maximum 30) Time Stop Caster stops the flow of time for everyone but themselves. In this state caster is unable to move (unlike chems / other effects, this is a full time stop, i.e. nothing outside of caster's perspective really happens). Not recommended to use in places with godrays / misty places as the particles will freeze in space making it difficult to see anything. This spell is likely to cause glitches and bugs. Spell School: Arcane Spell Level: 9 Target: Caster Only Primary Attribute: Intelligence Saving Throw: N/A Cooldown: 60 seconds (minimum 30) Duration: 10 seconds Weasel Luck Caster increases their own luck by Charisma modifier for the duration of the spell. Spell School: Divine Spell Level: 2 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 40) Duration: 30 seconds (maximum 40) Wind Ladder Caster increases their own jump height by Charisma modifier for the duration of the spell. Spell School: Spiritual Spell Level: 1 Target: Caster Only Primary Attribute: Charisma Saving Throw: N/A Cooldown: 60 seconds (minimum 6) Duration: 18 seconds (maximum 30) 1
Operand Posted May 11, 2021 Author Posted May 11, 2021 ROLE-PLAYING To fulfill the purposes of role-playing, FF4 implements the concept of Alignment and Profile. Both serve as a way to immerse to the character role to some degree and are used in certain systems within the game. Races generally have restrictions on alignment and will transform to their fallen versions if you break the racial alignment aspect. Profile is meant to show your current status, such as stats, classes, titles, feats and many more. Alignment Scores Alignment is measured in two dimensions - the "order" alignment and the "karma" alignment. These two are tracked mostly independently and are bound by the -100..+100 score of the character. You can see that in the first profile page. Order is the world view of the character that is responsible for things like obeying laws, upholding the given promise and otherwise "playing by the rules". Do note that Order does not have anything to do with "good/evil" character choices. A slaver that methodically enslaves his victims and organizes the crime into an intricate web of agents is very aligned towards the "order" of the things, it's just that those things aren't nice in the least. Karma, on the other hand - is the trail of evil (or good) that the character walked thus far. This is exactly the thing that measures the difference between evil and good deeds. However, just as with order, karma doesn't differentiate the actions which break the law, unless those lead to the consequences that are evil/good for the involved parties. On the far left side of the -100..100 spectrum and on the far right side of it lie the "strong" versions of the alignment. You can think of it as the following table: ╔═════════════════╦═════════════════╦═════════════════╦═════════════════╗ ║ Karma\Order ║ -100..-50 ║ -50..+50 ║ +50..+100 ║ ╠═════════════════╬═════════════════╬═════════════════╬═════════════════║ ║ -100..-50 ║ Chaotic-Evil ║ Neutral-Evil ║ Lawful-Evil ║ ╠═════════════════╬═════════════════╬═════════════════╬═════════════════║ ║ -50..+50 ║ Chaotic-Neutral ║ True Neutral ║ Lawful-Neutral ║ ╠═════════════════╬═════════════════╬═════════════════╬═════════════════║ ║ +50..+100 ║ Chaotic-Good ║ Neutral-Good ║ Lawful-Good ║ ╚═════════════════╩═════════════════╩═════════════════╩═════════════════╝ The titles are yet just for knowledge and aren't doing anything nor are even displayed, but the racial alignment restrictions system is already in-place and certain races will require to stay within the bounds of their alignment in order to not transform to the fallen version of that race. Conformance. There's also a third and a bit hidden alignment dimension. This is not exactly the "alignment" per say but it acts like one in the sense that your racial worldview is expressed by it. It is your adherence to your racial ideals. For example, if racial culture is set to have some traditions and maybe even demands - failure to do it does not necessarily count as evil/good/chaotic/lawful deed. However you stray away from your racial path and lose connection to your race when you lose conformance. At the moment, conformance is not included into racial requirements for staying in good grace, but when it gets developed enough, it certainly will be. Conformance is one of the conditions to gain racial ranks and should play a major role in the plot, provided that I will add any quests to reflect that. So far there are none. Alignment Changes Your actions will result in change of alignment. Many of in-game statistics are tracked and then for every point of changed stats you will get the change in alignment. Note, that such changes are not synchronous and it could take a bit of time for alignment to catch up. All 4 main factions in-game are separated by their stance into these classifications: Brotherhood: Lawful-Evil - BoS brings order to the Commonwealth and does so a lot (they fight gangs, super-mutants and whatnot), but their ultimate goal is evil as it was shown during the WW2. Institute: Chaotic-Evil - these guys don't even have any agenda, they just experiment and "see what happens" as it was with super-mutants. They bring chaos for little to no gain and they do evil deeds with no doubt about that Railroad: Chaotic-Good - they have a noble goal and they save synth, but they ignore the organization to which those synth belong, therefore making their actions chaotic. They also wipe out the mind of those synth, destroying the order of their previous lives Minutemen: Lawful-Good - not much to be added here. Ultimate goal of this faction in-game is save people and establish communities and maybe bring in central government at some point. as such, helping these factions will shift your alignment accordingly. Some actions will cause heavy changes in alignment, such as murder. This is intentional and it goes to show that even 1 murder will throw you off the racial grace of, say, angels (one absolutely cannot be an angel and kill innocents). Here's what is added so far: Trespassing Murders Eating Corpses Picking Pockets Addictions Cheating on your partner (only if sexuality module is active and the conditions are right) Being faithful to your partner (only if sexuality module is active and the conditions are right) It is generally far easier to gain chaotic and evil directions in your alignment. It might make no sense from the game balance point of view, but it does make a lot of sense from the immersion point of view, so I stuck with the latter. Profile Page The profile page is available from the chems pip-boy menu and therefore can be put on the hotkey. It displays up to date information as a "note" with several pages. Those pages will change their content according to your character status. Depending on the performance of your PC it can take several seconds before the profile will be displayed - simply because there's a lot of stuff to calculate and format (it uses the Fallout's pseudo-html mark-up). Profile page consists of several sections and I tried to make them cached as much as I could so that you won't need to wait for all of them to be generated again and again, but not everything can be cached so performance could still be an issue. The sections are: Dossier: all the general information - Photo, Name, Gender, Racial Title, Lineage, Bloodline, Classes and SPECIAL stats Feats: the least of all known feats to the character, including racial / class traits and proficiency Sexuality: a special adult-themed section that will be updated according to the LL mods you have installed in case FF4 recognized them (details later) It's worth mentioning that you can have your character profile picture displayed instead of the dummy that is bundles with the mod. You will need to replace Data\Textures\interface\FF4\character\Profile.dds with your own picture and then it will be displayed in-game. Please note, that the picture must be 16-aligned (i.e. be a power of 16) in resolution in order to work properly. If you will try to add a picture of something like 343x221 - your game might crash. Appearance Mods FF4 recognizes some of the appearance mods by default. But you can always change the appearance to the "custom" mode in case you don't want / don't like the default appearance. Still, for completeness, I will list the mods which FF4 will make use of. None of this is required in any case. No assets from these mods were used in any ways in FF4. Here's the list: Ero Selene Armor: Wings for angels and fallen angels. You will probably want to build it for your body and use some conversion mods to make it fit perfectly. Otherwise you might find the wings being not properly attached to the character. CROSS Halo: Halo for angels and horns for demons and devils. Castanic Horns Pack: Horns for fallen demons and devils. Animal Ears: Ears for beasfolk and fallen beastfolk. As with other resources, despite using the same mod for both, the ears will be different for original and fallen races. French Nails: The nails for dark elves. You most certainly will need to build it for your character, especially if not using CBBE. I assume that if you have the mod installed, you have it also properly configured. Otherwise you will have glitches such as gaps in the hands area. Chain Bikini: Stockings for nymphs (black for original nymphs and red for fallen nymphs). As usual, make sure you have it properly built and/or converted to your body. Apart from that I have compiled a list of mods that I would recommend to try with the appearance for your races. These are not the mods which FF4 will recognize - and now that I added the customization options for the equippable appearance items I will stop expanding the default mods list as it will serve not much purpose. Some of these mods are pure appearance and you will need to use looks menu to apply them: Spoiler Race Class Category Summary Male? Female? Link1 Link2 Comment Angels --- Armor Armor, Wings --- Yes Go Males: wings only Angels --- Visuals Eyes Yes Yes Go Angels --- Accessory Halo Yes Yes Go Angels --- Accessory Halo Yes Yes Go Has both halo and horns Angels --- Overhauls Pacification --- --- Go Potentially for all "good races" Angels --- Overhauls Pacification --- --- Go Potentially for all "good races" Beasts --- Accessory Whiskers --- Yes Go Male needs to be checked Beasts --- Accessory Ears, Tails Yes Yes Go Beasts --- Accessory Tails Yes Yes Go Beasts --- Race Face, Body Yes Yes Go Race, therefore low compatibility Beasts --- Accessory Claws No Yes Go Beasts --- Visuals Eyes Yes Yes Go Beasts --- Visuals Ears Yes Yes Go Dark Elves --- Visuals Face, Ears Yes Yes Go Demons --- Armor Armor, Wings No Yes Go Demons --- Visuals Face, Ears Yes Yes Go Demons --- Visuals Tatoo --- Yes Go Male needs to be checked Demons --- Accessory Claws No Yes Go Demons --- Visuals Eyes Yes Yes Go Demons --- Armor Armor, Horns No Yes Go Modern interpretation Demons --- Accessory Horns Yes Yes Go Has both halo and horns Demons --- Armor Armor, Skull Yes --- Go Female needs to be checked Demons --- Armor Armor, Horns, Wings Yes Yes Go Go Male is homo-oriented Demons --- Accessory Horns --- Yes Go Male needs to be checked Devils --- Visuals Face, Ears Yes Yes Go Devils --- Accessory Horns Yes Yes Go Has both halo and horns Devils --- Visuals Body Yes No Go Male only body Devils --- Armor Armor, Skull Yes --- Go Female needs to be checked Devils --- Accessory Horns --- Yes Go Male needs to be checked Light Elves --- Visuals Face, Ears Yes Yes Go Nymphs --- Visuals Face, Ears Yes Yes Go Nymphs --- Armor Armor No Yes Go Orcs --- Accessory Claws No Yes Go Orcs --- Armor Armor, Helmet Yes Yes Go Orcs --- Animations Idle Yes No Go Orcs --- Visuals Body Yes No Go Male only body Vampires --- Armor Armor No Yes Go Vampires --- Armor Armor Yes Yes Go Go Male is homo-oriented Vampires --- Armor Armor Yes Yes Go Go Replacer Vampires --- Visuals Eyes Yes Yes Go Vampires --- Armor Armor No Yes Go --- Assassin Weapon Katana Yes Yes Go --- Ranger Armor Armor Yes Yes Go --- Druid Armor Armor Yes Yes Go --- Guardian Power Armor Armor Yes Yes Go Modern interpretation --- Ninja Weapon Dagger Yes Yes Go Modern interpretation --- Ninja Armor Masks --- Yes Go Male needs to be checked --- Ranger Armor Armor Yes Yes Go --- Ranger Weapon Bow Yes Yes Go --- Sniper Weapon Crossbow Yes Yes Go --- --- Animations 1H Melee Weapons Yes Yes Go --- --- Animations 3rd Person All Yes Yes Go --- --- Animations 2H Melee Weapons Yes Yes Go --- --- Armor Armor No Yes Go --- --- Armor Armor Yes Yes Go Go Male is homo-oriented --- --- Armor Armor Yes Yes Go Go Male is homo-oriented --- --- Armor Armor No Yes Go --- --- Armor Armor No Yes Go --- --- Armor Armor Yes --- Go Female needs to be checked --- --- Clothing Dress No Yes Go HDT physics on clothing --- --- Clothing Dress, Suit Yes Yes Go --- --- Clothing Dress, Suit, Hat Yes Yes Go --- --- Weapon 1H Sword Yes Yes Go --- --- Weapon Basic weapons Yes Yes Go --- --- Clothing Dress, Costume No Yes Go --- --- ENB Visuals --- --- Go --- --- ENB Visuals --- --- Go --- --- Environment Grass --- --- Go Performance killer --- --- Environment Water --- --- Go --- --- Environment Water --- --- Go --- --- Environment Trees --- --- Go --- --- Environment Trees --- --- Go --- --- Environment Visuals --- --- Go --- --- Environment Moon --- --- Go --- --- Environment Sky --- --- Go --- --- Environment Sky --- --- Go --- --- Environment Visuals --- --- Go --- --- Visuals Tatoo --- Yes Go Male needs to be checked --- --- Settlement Castle Building Set --- --- Go --- --- Settlement Castle Elements --- --- Go Of course, much of the race/class division is purely subjective. But - that will provide you with a good start for making your character look unique and according to the race / class you like. I will not add my own visuals / armor / weapon items into the mod - at least not at this stage. There are plenty of dedicated mods which will do a much better job, so you can use the links above. 2
Operand Posted May 11, 2021 Author Posted May 11, 2021 SEXUALITY & MODS As this mod is hosted on LL, you bet it also brings in some .. naughty gameplay elements. However, by itself it doesn't do much and it requires certain mods to be installed and enabled for this to work. The basic idea is that different races have different cultures and their sexual preferences change accordingly. Some might be traditions, some derived from society and others are just for fun or testing purposes with not much in-lore reasoning because the mod is not even in alpha-version. Extensions FF4 utilizes the internal racial plugins system. It allows to expand the racial properties and definitions with anything, really - so long as it follows the specific protocol and defines the necessary methods. You can find all the documentation about that in the code. Unlike the user-oriented info, the modder-oriented documentation is in the code and I'd say it is well-written. Every extension implemented so far is connected to the mod that it tries to integrate with FF4. Extensions also use internal message broker to exchange information between plugins while still remaining unaware of each other. This architecture is necessary to avoid any dependencies of one extension to another and make it possible to have one but not another or vice versa. You can also read about the message bus in the code documentation lines. Multiple Inheritance All of the extensions which are implemented so far support the concept of "racial records merge". This means that whenever the character has multiple races defined via bloodlines, their racial rules which are set in the extension, will be merged together to form a new racial record. Simplest case is adding some rules on top of each other, more complex merging rules might involve taking maximum / minimum values for certain restrictions. I will not describe everything here because - first - it's subject to change, and - second - it is done automatically in the scripts and translating it back into words for each race would make it a dozens page long text. Advanced Animation Framework (AAF) Requires: AAF This would be the prerequisite for the LL mods to work, but this also has an integration into FF4 as a mod. This extension brings in the following record fields for the races: Virginity Protection: the race (females and males) don't lose virginity after the sexual act. In itself this is not doing anything, if there are no mods that react to that. The idea also is that virginity has certain penalties and benefits when doing the sexual act. This is only recognized by the AAF History mod - that mod will request FF4 if the actor can lose their virginity during the act - and if they can't, then the sexual history will be recorded quite differently for them. So it's mostly RP element so far, but it works fine between FF4 and AAF History. Sex Dependency: whether or not the race is dependent on sex. If it is, then sex activities must be done regularly. Sex Hours: if the race is sex dependent, this indicates how often the character must engage into sexual activities Last Sex Hour: last hour when the sexual activity occurred. Punishment Level: the current level of punishment that the character suffers due to failing to satisfy the sexual desires. It grows the more you ignore it. Maximum Punishment: the maximum level which will be incurred. Punishment will not accumulate beyond that. Now, punishment is not your regular "lost SPECIAL stat here and there". Nope, this mod extension will make you do your bidding. Not all the punishment levels are properly implemented and some are buggy, but here's the rundown: Level 0: Arousal - complete AP drain Level 1: Desire - cannot sprint / run Level 2: Lust - periodic damage Level 3: Sadness - carry weight is reduced to 0 Level 4: Loneliness - damage output is 0 Level 5: Despair - periodic stagger Level 6: Dereliction - any incoming damage causes death Level 7: Disavowal - death So.. yep. Ignore too much and you end up dead. D.E.A.D - as one certain doctor likes to say. For this reason I would not recommend to enable "Adult content" in the MCM menu - once enabled, it cannot be disabled and then you end up with the recurring necessity to do sexual activities which may be annoying, especially given the fact that for testing purposes the Sex Hours value for all races is set quite low. Now, as far as the values for specific races go, it would be a long table to put here and even more difficult to maintain up to date, so I just quote the relevant code fragment which hopefully illustrates the situation (scroll right to see the racial comment): Spoiler AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceOrigin, VirginForever, SexDependent, 16, 7, callerId) ; Angel AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceFallen, VirginOneTime, SexDependent, 20, 5, callerId) ; Fallen Angel AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceOrigin, VirginOneTime, SexUnreliant, 0, -1, callerId) ; Beast AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceFallen, VirginOneTime, SexDependent, 0, 3, callerId) ; Fallen Beast AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceOrigin, VirginOneTime, SexDependent, 16, 5, callerId) ; Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceFallen, VirginOneTime, SexDependent, 16, 3, callerId) ; Fallen Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceOrigin, VirginOneTime, SexDependent, 24, 3, callerId) ; Demon AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceFallen, VirginOneTime, SexDependent, 24, 5, callerId) ; Fallen Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceOrigin, VirginOneTime, SexDependent, 24, 1, callerId) ; Devil AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceFallen, VirginOneTime, SexDependent, 24, 3, callerId) ; Fallen Devil AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceOrigin, VirginOneTime, SexUnreliant, 0, -1, callerId) ; Human AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceFallen, VirginOneTime, SexUnreliant, 0, -1, callerId) ; Fallen Human AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceOrigin, VirginOneTime, SexDependent, 16, 5, callerId) ; Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceFallen, VirginOneTime, SexDependent, 16, 3, callerId) ; Fallen Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceOrigin, VirginOneTime, SexDependent, 16, 5, callerId) ; Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceFallen, VirginOneTime, SexDependent, 16, 5, callerId) ; Fallen Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceOrigin, VirginOneTime, SexUnreliant, 0, -1, callerId) ; Orc AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceFallen, VirginOneTime, SexDependent, 0, 3, callerId) ; Fallen Orc AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceOrigin, VirginOneTime, SexDependent, 20, 5, callerId) ; Vampire AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceFallen, VirginOneTime, SexDependent, 20, 5, callerId) ; Fallen Vampire AAF History Requires: AAF History v1.17+ Now this one has much more intricate rule set. It is similar to default "AAF" extension, but it differentiates the sex activities by "type" and "position". "Type" is indicating if the act was aggressive-active, aggressive-passive or usual (i.e. none of the former two). "Position" indicates which kind of activity it was - you know - well, which.. eeh.. hole was used. It goes to say that this extension relies completely on AAF History to evaluate the scene so whichever settings were set in AAF History will be propagated back to this extension. This mod extension brings in the following racial records: Monogamous: signifies if the race is bound to a single partner. The "imprint" happens during the first act, so be mindful of what you're doing! And yep, non-consensual acts.. do the imprint as well! This is to bring in a bit.. spiciness to the whole thing. After your character got imprinted, any activity with a different actor involved will be counted as cheating and some punishment will follow. Different races react differently on cheating and so far there are these types of punishment: Falling - immediate fall from racial grace (transformation to a fallen version of the main race). So far applies to Angels only. Infidelity - alignment change (towards chaotic and evil). Applies to everyone else. So be mindful - if your race tracks alignment, cheating enough time will also cause you to fall from racial grace. It's just it won't be as unconditional and immediate as it is for angels. Apart from punishment for cheating, there's also a reward for being loyal. If your character engages into the activity with their partner, then you will get a slight alignment shift towards lawful/good direction. Be mindful, however - this only happens if your character did not ever cheat on your partner! If you cheated even once, this bonus won't be applied from that moment on. This is to prevent going "willy-nilly" on the side and then retracting the alignment damage by "being loyal" again (ah.. I wish real life worked this way) Sex Type Dependent: signifies dependency on the type of the sexual act. If true, then the character will need to engage into certain type of sexual activity regularly. Sex Position Dependent: signifies dependency on the position of the sexual act. If true, then the character will need to engage into certain position of sexual activity regularly. Sex Hours: similar to AAF extension, sets how often must the activity be fulfilled. Do note that your character may end up with multiple needs due to his/her bloodlines and in this case they will need to fulfill them all during the given time. Sex Type: The type which is necessary for the character. There are three values which are possible for the race: "A" - "aggressive" - the character must engage into an aggressive act and be in active role in it (strong dominance fetish) "P" - "passive" - the character must engage into an aggressive act and be in passive role in it (extreme submission fetish) "N" - "neutral" - the character must engage into consensual acts, regardless of the role When merged together from different bloodlines, the string may look something like "AN" - meaning that the character must do both consensual and aggressive-active acts to fulfill this sexuality rule. Sex Position: The position which is necessary for the character. There are three values which are possible for the race, "A", "O" and "V" - each one as a first letter for the "used hole". Similarly to the sex type, it may end up as "AV" or "AO" after merging and the character must fulfill them all to make it count. Do note that a single scene might yield several positions, it all depends on what AAF history will return. Cheated: Whether or not the character has cheated, even once. Used to determine if the bonus for being faithful should be granted. Last Sex Hour(s): Multiple values for the specific type and position. This is tracking the rules satisfaction to apply punishments if necessary. Acts similarly to the AAF measures, it's just that there are a lot more things to keep track of. Punishment Level(s): One for type and position. This is the corresponding level of punishment for failing to obey the rules on the type or position correspondingly. Punishment Max Level(s): Again, one for type and position. Sets how high can be the related punishment level - be it for type or position. Sex Partner: An actor reference to the partner that the character has the first act with. Note, that it has an interesting consequence in the game world - should that actor die or become unavailable for another reason, there will be only two outcomes for the PC: either "cheat" and receive full punishment for that - or do nothing and wait till the punishment level kicks in. The former often means falling from racial grace, the latter could mean death. So, PSA: think whom to chose as your partner and when done, be careful with them and treasure them! Yet again, I will only post the code fragment to indicate the racial records for this extension. Writing it in words would be an essay: Spoiler ;male; note: AES cannot properly handle "submissive males / dominant females", hence there must be no "P" entries for Type scale! AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceOrigin, SexMale, Monogamous, SexTypeUnreliant, SexPositionDependent, 16, "N", "O", "PunishmentFalling", -1, 5, 1, 2, 99, 98, callerId) ; Angel AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceFallen, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 20, "A", "", "", 3, -1, 5, 10, 90, 80, callerId) ; Fallen Angel AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceOrigin, SexMale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 20, 80, 60, callerId) ; Beast AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceFallen, SexMale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 15, 80, 65, callerId) ; Fallen Beast AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceOrigin, SexMale, Monogamous, SexTypeUnreliant, SexPositionDependent, 8, "N", "A", "PunishmentInfidelity", -1, 7, 5, 10, 85, 85, callerId) ; Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceFallen, SexMale, Polygamous, SexTypeUnreliant, SexPositionDependent, 8, "A", "A", "", -1, 3, 10, 20, 80, 75, callerId) ; Fallen Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceOrigin, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "A", "", "", 3, -1, 10, 25, 66, 66, callerId) ; Demon AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceFallen, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "A", "", "", 3, -1, 10, 20, 65, 65, callerId) ; Fallen Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceOrigin, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "A", "", "", 3, -1, 6, 16, 66, 66, callerId) ; Devil AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceFallen, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "A", "", "", 3, -1, 16, 16, 77, 77, callerId) ; Fallen Devil AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceOrigin, SexMale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 15, 25, 65, 50, callerId) ; Human AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceFallen, SexMale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 15, 25, 65, 50, callerId) ; Fallen Human AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceOrigin, SexMale, Monogamous, SexTypeUnreliant, SexPositionDependent, 16, "", "V", "PunishmentInfidelity", -1, 7, 5, 8, 80, 80, callerId) ; Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceFallen, SexMale, Polygamous, SexTypeUnreliant, SexPositionDependent, 16, "A", "V", "", -1, 3, 10, 10, 70, 65, callerId) ; Fallen Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceOrigin, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 16, "", "", "", 7, -1, 0, 0, 99, 99, callerId) ; Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceFallen, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 16, "", "", "", 5, -1, 10, 10, 99, 99, callerId) ; Fallen Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceOrigin, SexMale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 15, 20, 65, 50, callerId) ; Orc AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceFallen, SexMale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "A", "", "", -1, -1, 10, 20, 65, 55, callerId) ; Fallen Orc AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceOrigin, SexMale, Monogamous, SexTypeDependent, SexPositionUnreliant, 20, "N", "", "", 5, -1, 8, 16, 64, 80, callerId) ; Vampire AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceFallen, SexMale, Polygamous, SexTypeDependent, SexPositionUnreliant, 20, "A", "", "", -1, -1, 8, 16, 50, 64, callerId) ; Fallen Vampire ;female; note: AES cannot properly handle "submissive males / dominant females", hence there must be no "A" entries for Type scale! AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceOrigin, SexFemale, Monogamous, SexTypeUnreliant, SexPositionDependent, 16, "N", "O", "PunishmentFalling", -1, 5, 0, 0, 99, 99, callerId) ; Angel AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceFallen, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 20, "", "", "", 3, -1, 5, 5, 90, 90, callerId) ; Fallen Angel AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceOrigin, SexFemale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 20, 80, 60, callerId) ; Beast AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceFallen, SexFemale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 10, 80, 65, callerId) ; Fallen Beast AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceOrigin, SexFemale, Monogamous, SexTypeUnreliant, SexPositionDependent, 16, "", "A", "PunishmentInfidelity", -1, 7, 1, 3, 95, 90, callerId) ; Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceFallen, SexFemale, Polygamous, SexTypeUnreliant, SexPositionDependent, 16, "", "A", "", -1, 3, 5, 10, 90, 90, callerId) ; Fallen Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceOrigin, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "", "", "", 3, -1, 5, 10, 80, 70, callerId) ; Demon AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceFallen, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "", "", "", 3, -1, 3, 6, 80, 70, callerId) ; Fallen Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceOrigin, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "", "", "", 3, -1, 6, 16, 50, 50, callerId) ; Devil AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceFallen, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 24, "", "", "", 3, -1, 6, 16, 50, 50, callerId) ; Fallen Devil AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceOrigin, SexFemale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 20, 65, 70, callerId) ; Human AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceFallen, SexFemale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 20, 65, 70, callerId) ; Fallen Human AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceOrigin, SexFemale, Monogamous, SexTypeUnreliant, SexPositionDependent, 16, "", "V", "PunishmentInfidelity", -1, 7, 1, 5, 96, 93, callerId) ; Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceFallen, SexFemale, Polygamous, SexTypeUnreliant, SexPositionDependent, 16, "", "V", "", -1, 3, 3, 9, 92, 90, callerId) ; Fallen Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceOrigin, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 16, "P", "", "", 7, -1, 0, 0, 99, 99, callerId) ; Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceFallen, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 16, "N", "", "", 5, -1, 2, 5, 90, 90, callerId) ; Fallen Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceOrigin, SexFemale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 20, 65, 70, callerId) ; Orc AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceFallen, SexFemale, Polygamous, SexTypeUnreliant, SexPositionUnreliant, 0, "", "", "", -1, -1, 10, 15, 65, 70, callerId) ; Fallen Orc AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceOrigin, SexFemale, Monogamous, SexTypeDependent, SexPositionUnreliant, 20, "N", "", "", 5, -1, 2, 8, 88, 80, callerId) ; Vampire AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceFallen, SexFemale, Polygamous, SexTypeDependent, SexPositionUnreliant, 20, "", "", "", -1, -1, 4, 8, 84, 80, callerId) ; Fallen Vampire Oral Handling: Apart from this, there's also a very early development stage (yet it seems to be working somewhat) functionality of treating the "lingual pleasantries". The character may chose what to do during such an act and that will cause different changes to the racial conformance attribute. For example, females of submissive races like angels or nymphs better behave as good girls do and enjoy the taste. But this goes both ways, of course - males of aggressive races would want to force their partners to "do the right thing" thus failing to do it will cause some penalty. This special functionality will not kick in for any scenes that are reported by the Hardship mod. This is because that mod already has similar functionality and it would make a mess out of all the popup menus. So it will be just ignored during the event handling. Devious Devices Requires: Devious Devices There's a slight integration with DD as well. What is added here is racial reaction to certain device types. Different cultures have different fetishes and may approve / disapprove equipping certain devices. Some devices may be so welcome that the character gets racial conformance bonus for wearing them. Much of the functionality relies on DD's API calls which I haven't mastered yet, so the results are not yet stable. For instance, equipping the item without locking it in will not result in any conformance change. There are three reaction types that you can expect from the character when equipping the DD: Aversion: the character will unequip the device. Racial hatred and all. Neutral: nothing will change, no actions taken Enjoyment: the character will enjoy it and get some racial conformance points. As far as device types go, it supports all basic types defined in the DDA module. Multiple racial records will also be merged into one for several bloodlines meaning that the character may end up enjoying more devices than just the main race (or being averse to more of them). There's nothing else defined right now for DD and it mostly serves as an RP element of "no way I'm wearing this" or "yes, master, thank you" reactions. One thing to add - this all was (somewhat) tested on a female character. Males will have difficulties related to DD mod and display of devices, but the rules of this FF4 extension should work fine. At least that's in theory. Here's the rule set as usual: Spoiler ; |b-fold| boots |ch.belt|ch. bra|collar | gag |gloves |harness| hood |l.cuffs|n.pierc|pl.anal|pl.vagi| suit |w.cuffs| AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, -1, -1, 0, 0, 0, 0, -1, 0, 1, 1, -1, -5, -1, 0, -1, 0, 0, 0, 1, 1, callerId) ; Angel AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceFallen, 1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 0, callerId) ; Fallen Angel AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 1, -1, 0, 0, -1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Beast AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceFallen, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, callerId) ; Fallen Beast AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 5, 0, 0, 1, 1, 0, 0, 1, -1, 0, 0, -1, 0, 1, 1, callerId) ; Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceFallen, 1, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, callerId) ; Fallen Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceOrigin, 0, 0, 1, 5, 0, 0, 0, 0, -1, -5, 1, -5, 0, 0, 0, 0, 1, 1, 0, 0, 1, 5, 0, 0, 1, -1, 0, 0, -1, -1, callerId) ; Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceFallen, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, -1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Fallen Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Devil AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceFallen, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Fallen Devil AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Human AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceFallen, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Fallen Human AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceOrigin, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 1, -1, -1, -1, 0, 0, callerId) ; Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceFallen, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Fallen Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceOrigin, -1, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, -1, 0, 1, 1, -1, -5, 1, 1, -1, 0, -1, -1, -1, -1, -1, 0, 0, 0, callerId) ; Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceFallen, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 1, 5, 1, 5, 1, 5, 0, 0, -1, -5, callerId) ; Fallen Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceOrigin, 0, 0, 0, 0, 1, 5, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Orc AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceFallen, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, callerId) ; Fallen Orc AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, callerId) ; Vampire AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceFallen, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 1, 5, 0, 0, 0, 0, callerId) ; Fallen Vampire Sex Attributes Requires: Sex Attributes Describes racial dispositions for the "orientation" traits from that mod and also the boundaries on other values like Spirit or Self-Esteem. To incorporate racial special properties, sometimes the race stands out if the way it's handles by this extension. A good example would be Nymphs who have a persistent state of sexual arousal or Angels who take no wear damage due to the fact their bodies are always virgin (and hence immediately recover after the act). It's worth mentioning that the extension is integrated based on "good will" - i.e. it listens to the emitted events from the FPA module. If for whatever reason there was no event (bug in the FPA or anything like that) - then FF4 extension will also fail to react on that. Since the integration is event-driven, changing values via console will mean that FF4 will do nothing about that until the moment there will be a proper update from the FPA. This also can lead to some weird situations when you will lose your edits - if you insist on changing values via console, which I do not recommend. Either way - do it on your own risk. Here are the racial records that are added by this extension: Maximum Wear: A maximum value that the race can have for the wear (all three types). Since FPA also has a hidden dependent wear value (the "bottom wear"), it is tracked separately and is propagated into FPA. Maximum Intoxication: Maximum intoxication level. You can't go beyond that limit for your race. Maximum Trauma: Maximum trauma level. You can't go beyond that limit for your race. Maximum Reputation: Maximum reputation level. You can't go beyond that limit for your race. Self-Esteem, Minimum .. Maximum: A range for allowed Self-Esteem values, both minimum and maximum. It will act as a gate on top of a usual FPA's 0..100 range. Spirit, Minimum .. Maximum: A range for allowed Spirit values, both minimum and maximum. It will act as a gate on top of a usual FPA's 0..100 range. Willpower, Minimum .. Maximum: A range for allowed Willpower values, both minimum and maximum. It will act as a gate on top of a usual FPA's 0..100 range. Arousal, Minimum .. Maximum: A range for allowed Arousal values, both minimum and maximum. It will act as a gate on top of a usual FPA's 0..100 range. Orientation, Minimum .. Maximum: A range for allowed Self-Esteem values, both minimum and maximum. It will act as a gate on top of a usual FPA's -50..50 range. Sex Level, Minimum .. Maximum: A range for allowed Sex Level values, both minimum and maximum. It will act as a gate on top of a usual FPA's level range. Addiction: Signifies sexual addiction for the race. If true, then the character of that race will be permanently in the state of sexual addiction (like nymphs, for instance). This functionality is tested and found mostly working though I do not know how other mods that rely on FPA will react. Due to the eventual nature of the updates, FF4 writes FPA values directly. This means that when, for example, the FPA value is changed to conform to the gated range from FF4, that change will not be emitted as an FPA event. Reason for that is - if it will be, then there's no way for FF4 to determine if that event was originated in FF4 or not and it will end up with the endless update loop. Below is the code fragment for all current racial FPA-related rules: Spoiler ;(FF4_Race FF4Race, bool IsFallen, WearAMax, WearOMax, WearVMax, IntoxicationMax, TraumaMax, SexReputationMax, SelfEsteemMin, SelfEsteemMax, \ ;SpiritMin, SpiritMax, WillpowerMin, WillpowerMax, ArousalMin, ArousalMax, OrientationMin, OrientationMax, SexLevelMin, SexLevelMax, SexAddiction) AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceOrigin, 0, 0, 0, 0, 0, 0, 80, 100, 80, 100, 80, 100, 0, 100, -50, -40, 0, 100, SexTolerant, callerId) ; Angel AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), RaceFallen, 50, 50, 50, 0, 0, 100, 80, 100, 50, 100, 80, 100, 0, 50, 25, 50, 0, 100, SexTolerant, callerId) ; Fallen Angel AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceOrigin, 100, 100, 100, 50, 50, 100, 0, 100, 20, 100, 0, 100, 0, 100, -50, 50, 0, 100, SexTolerant, callerId) ; Beast AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), RaceFallen, 100, 100, 100, 100, 50, 100, 20, 100, 0, 100, 20, 100, 0, 100, -50, 50, 0, 100, SexTolerant, callerId) ; Fallen Beast AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceOrigin, 20, 100, 100, 100, 50, 50, 80, 100, 0, 100, 20, 100, 20, 100, -50, 0, 0, 100, SexTolerant, callerId) ; Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), RaceFallen, 20, 80, 80, 80, 100, 100, 80, 100, 20, 80, 20, 100, 0, 100, -50, 25, 0, 100, SexTolerant, callerId) ; Fallen Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceOrigin, 50, 50, 50, 20, 0, 100, 50, 100, 0, 50, 50, 100, 20, 80, 25, 50, 0, 100, SexTolerant, callerId) ; Demon AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), RaceFallen, 50, 50, 50, 50, 0, 100, 20, 80, 0, 100, 50, 100, 20, 80, 25, 50, 20, 100, SexTolerant, callerId) ; Fallen Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceOrigin, 100, 100, 100, 50, 50, 100, 100, 100, 0, 100, 80, 100, 0, 50, 25, 50, 0, 100, SexTolerant, callerId) ; Devil AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), RaceFallen, 100, 100, 100, 50, 50, 100, 80, 100, 20, 100, 80, 100, 0, 100, 25, 50, 0, 80, SexTolerant, callerId) ; Fallen Devil AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceOrigin, 100, 100, 100, 100, 100, 100, 0, 100, 0, 100, 0, 100, 0, 100, -50, 50, 0, 100, SexTolerant, callerId) ; Human AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), RaceFallen, 100, 100, 100, 100, 100, 100, 0, 100, 0, 100, 0, 100, 0, 100, -50, 50, 0, 100, SexTolerant, callerId) ; Fallen Human (just a fallback) AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceOrigin, 100, 20, 100, 100, 100, 50, 20, 100, 20, 80, 20, 100, 0, 100, -50, 25, 20, 100, SexTolerant, callerId) ; Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), RaceFallen, 100, 20, 100, 100, 100, 50, 20, 100, 20, 80, 20, 100, 0, 100, -50, 50, 50, 100, SexAddicted, callerId) ; Fallen Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceOrigin, 50, 50, 20, 20, 50, 0, 0, 100, 50, 100, 0, 100, 80, 100, -50, -40, 80, 100, SexAddicted, callerId) ; Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), RaceFallen, 50, 50, 20, 20, 50, 0, 0, 100, 0, 100, 0, 100, 80, 100, 0, 50, 0, 100, SexTolerant, callerId) ; Fallen Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceOrigin, 100, 100, 100, 20, 50, 100, 50, 100, 20, 100, 0, 100, 0, 100, 0, 50, 0, 100, SexTolerant, callerId) ; Orc AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), RaceFallen, 80, 80, 80, 50, 50, 100, 50, 100, 20, 100, 0, 100, 0, 100, -25, 50, 0, 100, SexTolerant, callerId) ; Fallen Orc AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceOrigin, 50, 50, 50, 50, 100, 20, 20, 80, 20, 80, 20, 80, 20, 80, -25, 25, 0, 100, SexTolerant, callerId) ; Vampire AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), RaceFallen, 50, 50, 50, 50, 100, 20, 0, 100, 0, 100, 0, 100, 0, 100, -50, 50, 0, 100, SexTolerant, callerId) ; Fallen Vampire Family Planning Requires: Family Planning There's a basic functionality for the pregnancy as well. The idea here is that different races have different fertility/virility and some are just too different from humans and thus it's harder for them to get pregnant / impregnate a human (as FF4 currently works only for PC, all other actors in the scene will be human). Or - some races cannot get pregnant altogether, in-lore reasons - example would be Angels again: since their bodies are always virgin, there's absolutely no way they can get pregnant. There are only a few racial properties added by this extension: Impregnation Chance: How likely it is for PC to be impregnated, female PC only Impregnating Chance: How likely is it that PC will impregnate the partner, male PC only. The meaning is exactly as it reads. Similar to FPA, FF4 integrates with FPFP based on eventual updates meaning that checks will happen after the act. If it so happened that impregnation occurred during the scene, FF4 will then roll the chance check according to PC's gender, and if the roll showed that the impregnation failed - then FF4 will call the abortion API method from FPFP. This means that technically there's a moment in time between the event arrival and handling the abortion call when PC will be counted as "pregnant" even if racial records prevented them from being so. This time is short, less than a second usually - but it will mean that you will se the impregnation message from FPFP and then abortion message from FF4. There's no way to fix it unless FPFP's authors will create an integration with FF4 in some way and do checks on their end. Here's the racial rules set for this FF4 extension: Spoiler AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), false, 100, 0, callerId) ; Angel AddRaceRecord(RaceAPI.GetRaceByIndex(0, callerId), true, 100, 100, callerId) ; Fallen Angel AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), false, 100, 100, callerId) ; Beast AddRaceRecord(RaceAPI.GetRaceByIndex(1, callerId), true, 100, 100, callerId) ; Fallen Beast AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), false, 50, 10, callerId) ; Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(2, callerId), true, 100, 50, callerId) ; Fallen Dark Elf AddRaceRecord(RaceAPI.GetRaceByIndex(3, callerId), false, 100, 100, callerId) ; Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), true, 100, 100, callerId) ; Fallen Demon AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), false, 100, 100, callerId) ; Devil AddRaceRecord(RaceAPI.GetRaceByIndex(4, callerId), true, 100, 100, callerId) ; Fallen Devil AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), false, 100, 100, callerId) ; Human AddRaceRecord(RaceAPI.GetRaceByIndex(5, callerId), true, 100, 100, callerId) ; Fallen Human AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), false, 10, 10, callerId) ; Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(6, callerId), true, 100, 100, callerId) ; Fallen Light Elf AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), false, 100, 1, callerId) ; Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(7, callerId), true, 100, 10, callerId) ; Fallen Nymph AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), false, 100, 100, callerId) ; Orc AddRaceRecord(RaceAPI.GetRaceByIndex(8, callerId), true, 100, 100, callerId) ; Fallen Orc AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), false, 25, 25, callerId) ; Vampire AddRaceRecord(RaceAPI.GetRaceByIndex(9, callerId), true, 10, 10, callerId) ; Fallen Vampire And as mentioned earlier, all the extensions will merge the racial rules based on the bloodlines. So for instance, in FPFP extension the pregnancy chances will dwindle if the bloodline races contain those races which have low chances for that. 1
Operand Posted May 11, 2021 Author Posted May 11, 2021 TROUBLESHOOTING As mentioned many times, bugs and glitches are bound to happen, it was impossible for me to vet for all the possible problems nor test all the combinations of races / classes and whatnot. Still, I bothered to add some tools to locate the problem - which I won't be expecting of you, however providing the information back when reporting a bug will increase chances that I understand what went wrong. Debug Log FF4 has it's own debug log, written as FalloutFantasy0.log (there are several numbers on rotation, actually, but the interesting one would almost certainly be the newest one, denoted with a 0). In the log there's usually a very detailed entry set of whatever is happening in the mod. It means that your log will be very large, especially after hours of gameplay without stopping. As such, I would not want you to provide the full log - that would be a waste of space and I don't need it anyways. Instead, you can try locating the relevant piece of the log depending on the issue you experience. For example, if you think the issue is with the races not functioning correctly, you can try to search the log for FF4_RaceManager entries. All the lines follow the format like this: Spoiler [05/01/2021 - 09:37:56PM] Fallout Fantasy / info / FF4:OnTimer:2047179 / FF4_SpellManager / OnTickSpell / --> Tick .. I.e. you have a block of information, separated by a slash in the following order: Timestamp + mod name, always the same Log line level: info, warning or error (there is also "critical" level but at that point the mod should not allow to continue) Caller ID - the unique identifier that's passed through the entire call stack back to the origin of the request Script name - the script name which has written the log line Method name - the method name in the script that has written the log line Data - the data itself, i.e. what was written So, when you've found the related log entry, check that it: Contains the script name that is at least somewhat makes sense for the error check. Example: it would be pointless to check Profile API if you see the problem with the player controls Timestamp is somewhere around the issue. Best way - you pause the game the moment you encounter the problem, switch to the log and see what's in there in the last lines And after that, when you think you found the relevant log line, you need to see what caller id it has (it's the third value in the line, looking like "FF4:OnTimer:2047179" - some colon-separated stuff with a long number at the end) and then search the log for all the lines with this value. Many text editors will allow you to do so automatically. Yes, I know it's a lot to ask - but that will drastically increase my chances of identifying the problem. Digging through the entire log is impossible both in resources and time for me. Especially if there will be a lot of them. Debug In-Game There's also a way for you to check certain values in-game. This is for developer access mainly, but I figured some of the values can be useful to see directly in debug mode and not everything is written in the log. Besides, the log will never show internal state of objects and data structures in the mod. This portion assumes you have: Console that's enabled (in survival mode it isn't by default, though there are ways to enable it) Basic understanding on how to use commands in console Here's the list of console commands you can use to check the state of certain values in the mod, technically there are more than this but I omit commands that will have no use to the non-developers of the mod: cgf FF4:Globals:FF4_Debug.DebugShowSexualityRules Will show the JSON for the sexuality rules in-game. Each plugin, if enabled, will report its internal data store. Useful for checking how things were merged in case PC has several bloodlines cgf FF4:Globals:FF4_Debug.DebugShowAutoEquip Will show the items that are registered for auto-equip. These items will be forced to be equipped on the character at all times and will be re-equipped even if other mods will try to unequip them (this does not work on AAF since that is using technically a doppelganger in the scene, a different NPC from the player and hence autoequip does not apply) cgf FF4:Globals:FF4_Debug.DebugShowClassLevels Will show current classes and their levels for the player. Useful to check if the internal structure corresponds to whatever is shown in the profile page for the classes. cgf FF4:Globals:FF4_Debug.DebugShowKnownSpells Will show all the FF4 spells that are known to the PC. Usually good to do if you think some of your spells are missing in the aid menu. The mod normally tries to restore the spell item if you lost it for some reason, but it might be the case that I forgot one or more cases when that can happen. cgf FF4:Globals:FF4_Debug.DebugShowKnownFeats Will show all the FF4 feats that are known to the PC. Similar to spells - do this if you feel some feats are missing. Usually it's not the case because feats aren't meant to be used actively. cgf FF4:Globals:FF4_Debug.DebugShowKnownProficiency Will show known proficiency. Very useful in case you think you must be able to equip certain stuff and the mod doesn't let you. Proficiency in-game is designed as a multi-layered system with some racial feats including some other feats for instance. This is a good way to see which keywords are actually allowed as a result of all that. cgf FF4:Globals:FF4_Debug.DebugShowRaceVisuals Will show registered racial visuals. Especially good if you used the "custom" option for the racial visual items definition. That functionality is in early stage and wasn't tested extensively, so this command might help you to see if what you customized reflects the reality. cgf FF4:Globals:FF4_Debug.DebugShowAllRaces Will show all races in-game. A generic check to see if the initialization for racial entries was completed successfully. cgf FF4:Globals:FF4_Debug.DebugShowAllClasses Will show all races in-game. A generic check to see if the initialization for class entries was completed successfully. 1
toivo Posted May 11, 2021 Posted May 11, 2021 I um unable to crouch/sneak after starting a new game with this mod.
Operand Posted May 11, 2021 Author Posted May 11, 2021 51 minutes ago, toivo said: I um unable to crouch/sneak after starting a new game with this mod. Intended. Sneak (crouch) is reserved for Rogue class and it's derivatives. Sorry, but no sneak attacks for mages. P.S. I realize there will be a lot of questions about things in the mod (even if it works by design) simply because it's not documented anywhere. And yes, that's why the status is pre-alpha. So please feel free to ask/complain/critique in the comments 4
Guest Posted May 12, 2021 Posted May 12, 2021 This mod looks fantastic haha, I would like to try it but first I will finish playing the game that is almost finished and later I will install this mod, I hope you continue to put more information and photos of course
2Dimm Posted May 12, 2021 Posted May 12, 2021 i really dont understand what this does, does this this mod just adds some random fantasy races to choose from in the game? so yeah i'll complain, you should really practice your ability to create a summary, everything can be summarized into a single paragraph 2
megadoom41 Posted May 12, 2021 Posted May 12, 2021 Mod looks great so far, but in my experience keep a text document open on the side to record your changes as you make them it takes little effort and helps everybody including yourself; ill be watching with great interest as the fantasy and rpg elements of fallout 4 are what makes it inferior to the other fallout games, next to the offensive game design of pandering to the lowest common denominator but that's a separate issue 1
Operand Posted May 12, 2021 Author Posted May 12, 2021 3 hours ago, 2Dimm said: i really dont understand what this does, does this this mod just adds some random fantasy races to choose from in the game? so yeah i'll complain, you should really practice your ability to create a summary, everything can be summarized into a single paragraph I guess I should. I tried to include at least something in the main post but to my defense - it IS indeed a lot of stuff. It adds races - yes, but that's only one of the aspects. It adds some RP elements, a classes system and a lot more. I will expand the first posts with more information. For now - think of it as "what would happen if Fallout4 had a fantasy-like character builder and RP elements". Or at least some version of that idea. 4
A_guy_with_the_plan Posted May 14, 2021 Posted May 14, 2021 this looks like itll be a great mod when finished cant wait to see it
puttputt Posted May 14, 2021 Posted May 14, 2021 I just wanted to say good job. It must take a lot of patience and passion to make a mod of this scale. BTW if you need help I can join you/your team. But keep in mind I'm a complete noob with FO4Edit but I'm willing to learn
Operand Posted May 14, 2021 Author Posted May 14, 2021 13 hours ago, puttputt said: BTW if you need help I can join you/your team. But keep in mind I'm a complete noob with FO4Edit but I'm willing to learn Hey, thanks. Here's what I need skills-wise: Are you good with Papyrus scripting? Yes? Welcome to the Spells & Feats crew! No? Let's try something else Are you good with animations and can create them / guide me through a lot of "how"-s? Yes? Good sir, welcome, welcome! You might as well earn some good $$$ here! No? Let's try something else Perhaps you know ActionScript and can help me creating the UI widgets and explain how to integrate them with my mod? Yes? Good sir, welcome, welcome! UI crew wants you in! You might as well earn some good $$$ here! No? Let's try something else Maybe you know Creation Kit then? Did some quests and dialogues before? Yes? Welcome to the Quests & Dialogues crew! This is a new team with no members yet No? Well, I think we don't have an opening yet. But don't worry - our scenario & plot crew is likely to be formed soon and you can try your luck there! Of course the "team" label is just for fun, there is no organization here, I did everything so far on my own.
Chad24 Posted May 15, 2021 Posted May 15, 2021 So far all I've seen is Fallout Fantasy in the Menu. no classes no races nothing. Do i have to progress further into the game before something happens? 1
Operand Posted May 15, 2021 Author Posted May 15, 2021 4 hours ago, Chad24 said: So far all I've seen is Fallout Fantasy in the Menu. no classes no races nothing. Do i have to progress further into the game before something happens? There is a "Fallout Fantasy Controller" added in the "aid" menu (it's a chem), using it will allow you to set up your character. If it's not there then something went wrong, it's added when the mod reports successful init completion.
g0lden_sky Posted May 15, 2021 Posted May 15, 2021 The game removes any items from the players inventory at some point in the intro, so if the item is added before then (I think based on the sounds it's while you're stuck in the cryopod), it has a chance of getting removed. Also, the inability to use any weapons in the mod intro is a bit tedious, but makes sense given the mod state. It also proves that the current features work as intended! Also, tried loading the mod up in the CK, and it just full on crashes, likely because of some record errors (When checking for errors xEdit mentions something about FFFFFF entries and unloadable records, tho I'm sure these would likely be adjusted for as the mod progresses). SKK article on including a "onlocationchange()" backup to ensure your items are added https://www.nexusmods.com/fallout4/articles/1038 *I'm not really a papyrus person, so all of this is a mildly educated guess
Chad24 Posted May 15, 2021 Posted May 15, 2021 4 hours ago, Operand said: There is a "Fallout Fantasy Controller" added in the "aid" menu (it's a chem), using it will allow you to set up your character. If it's not there then something went wrong, it's added when the mod reports successful init completion. Thanks I'll try to use it with a no mods profile, I may have to many other mods running
Operand Posted May 15, 2021 Author Posted May 15, 2021 2 hours ago, candied_skull said: The game removes any items from the players inventory at some point in the intro, so if the item is added before then (I think based on the sounds it's while you're stuck in the cryopod), it has a chance of getting removed. Also, the inability to use any weapons in the mod intro is a bit tedious, but makes sense given the mod state. It also proves that the current features work as intended! To correct: it will not remove items, it will unequip them. And yes - this is an intended behavior. Anything of type armor / weapon generally requires proficiency and if the character can't use the thing - well, they can't. Example - using the pistol is not as easy as one might think. Apart from the obvious aiming thing, you need to know the safe switch (if it's there) and how to flip it, then how to reload etc etc. Not even beginning to mention the gun maintenance. 2 hours ago, candied_skull said: Also, tried loading the mod up in the CK, and it just full on crashes, likely because of some record errors (When checking for errors xEdit mentions something about FFFFFF entries and unloadable records, tho I'm sure these would likely be adjusted for as the mod progresses). I actually never tried doing anything with this mod in CK. Because I never used CK in my life - apart from one attempt which ruined days of my prior work and I decided to steer clear of CK. However if this mod is to progress further - yes, I think CK is necessary - for cells, quests and dialogues. When that time comes, I will try to make it editable in CK. Edit: Checked in FO4Edit. Yey, only 6 errors and all are very minor. Impressive, if I do say so myself - especially that I never checked it before and just cleaned things up as they came and went. Recommendation for the start would be mods like Start Me Up. First - because it allows to skip the intro sequence. Second - RP-wise. Like - come on, if PC is a say demon, how could he/she possible have a family lore-wise? Or if she is an angel - how she could ever bear a child?
g0lden_sky Posted May 15, 2021 Posted May 15, 2021 19 minutes ago, Operand said: To correct: it will not remove items, it will unequip them. And yes - this is an intended behavior. Anything of type armor / weapon generally requires proficiency and if the character can't use the thing - well, they can't. I'm not referring to this mod's block weapon feature. I'm referring to a vanilla game "feature" that may be what prevents or removes the fantasy aid controller item. It is a common issue that many mods that add a holotape/aid item/etc without a check to see if you are in the commonwealth, or add a check for changelocation can end up with the item missing from the player menu on a new game. I tested your mod without any other mods and did not have your mod's aid item in my inventory, and heard the add item sound while in the intro and the remove item sounds mid-cryo pod sequence Edit: I was indeed able to add it in via console, of course
nb097 Posted May 15, 2021 Posted May 15, 2021 17 minutes ago, candied_skull said: I'm not referring to this mod's block weapon feature. I'm referring to a vanilla game "feature" that may be what prevents or removes the fantasy aid controller item. It is a common issue that many mods that add a holotape/aid item/etc without a check to see if you are in the commonwealth, or add a check for changelocation can end up with the item missing from the player menu on a new game. I tested your mod without any other mods and did not have your mod's aid item in my inventory, and heard the add item sound while in the intro and the remove item sounds mid-cryo pod sequence There's a mod that fixes that: https://www.nexusmods.com/fallout4/mods/51781 Haven't had any problems with it yet, but I've also only started once or twice since adding, and haven't gotten very far before starting over each time.
Operand Posted May 15, 2021 Author Posted May 15, 2021 1 hour ago, candied_skull said: I tested your mod without any other mods and did not have your mod's aid item in my inventory, and heard the add item sound while in the intro and the remove item sounds mid-cryo pod sequence Edit: I was indeed able to add it in via console, of course Got it. Well, this is just a bug in my mod. I know there are issues with vanilla engine here but the aim should be to make it work under any circumstances. An easy fix here would be to not start the FF4 Kernel handler until MQ102 is done (like any other well-respected mod behaves). So yeah. I'm not sure how to do it exactly, but I guess that will be necessary. For now - again - starting the game with some alternate start mod seems to be the best option.
Chad24 Posted May 15, 2021 Posted May 15, 2021 3 hours ago, candied_skull said: The game removes any items from the players inventory at some point in the intro, so if the item is added before then (I think based on the sounds it's while you're stuck in the cryopod), it has a chance of getting removed. Also, the inability to use any weapons in the mod intro is a bit tedious, but makes sense given the mod state. It also proves that the current features work as intended! Also, tried loading the mod up in the CK, and it just full on crashes, likely because of some record errors (When checking for errors xEdit mentions something about FFFFFF entries and unloadable records, tho I'm sure these would likely be adjusted for as the mod progresses). SKK article on including a "onlocationchange()" backup to ensure your items are added https://www.nexusmods.com/fallout4/articles/1038 *I'm not really a papyrus person, so all of this is a mildly educated guess 7 hours ago, Operand said: There is a "Fallout Fantasy Controller" added in the "aid" menu (it's a chem), using it will allow you to set up your character. If it's not there then something went wrong, it's added when the mod reports successful init completion. Sorry i cant remove the quotes I saw the pop up window about not doing anything until the mod was at 100% so I didnt do anything until it was finished loading while still in the bathroom.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now