Trykz Posted April 27, 2017 Posted April 27, 2017 I'd like to preface this from the assumption that you are somewhat experienced in building a custom race mod, and are at least a little familiar with papyrus functions. So, bypassing the basic stuff, here we go: First, this method utilizes native papyrus functions, allowing race swaps to be handled through terminals. It requires ZERO editing of vanilla forms (like the player preset or any vanilla race records). ANY mod that directly edits a vanilla form IS a "dirty" mod that will likely interfere with other mods that need access to those same forms. I don't care what the author tells you. It's the very definition of a dirty mod. Mods like Character Customization Compendium and Unique Player are the most horrendous offenders of this cardinal rule of proper modding: Duplicate, duplicate, duplicate..... NEVER assume direct control of ANY vanilla form. It WILL cause problems. That said, ANY race mod built using the method I'm about to describe WILL NOT work with the aforementioned mods. A properly built race mod will include it's own CUSTOM race form and access the Human head parts formlist DYNAMICALLY at runtime. Which incidentally, is exactly what this method does. Race modding for FO4 is a whole new animal. It's basics are the same as Skyrim, but it's implementation is entirely different. As things progress from this point, I'll be looking into rebuilding my own version of a proper character customization mod that adds everything CCC adds, and more..... So, after a YEAR of trying to sort this mess out, I was finally able to put it to rest this afternoon. Using my own custom race mod and DizzasterJuice's ARES race mod, I was able to devise this method WITHOUT F4SE, or the need for any type of RaceCompatibility master file. So, build a race as you would for Skyrim. BUT, don't create a RaceController quest. It isn't necessary. Simply duplicate a "default" terminal of your choosing (terminals that are the base for other functioning terminals in the game), set it up as lore friendly as you like, and add the following script fragment (with your own properties) to a menu entry: HeadPartsHuman.AddForm(YourCustomRace) Utility.Wait(2) Game.GetPlayer().AddSpell(TeleportInSpell, false) Utility.Wait(1) Game.GetPlayer().SetRace(YourCustomRace) Utility.Wait(2) Your compiled script fragment should look like this: ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment Scriptname Fragments:Terminals:TERM_YouCustomRaceSelectionTermin_01010A6E Extends Terminal Hidden Const ;BEGIN FRAGMENT Fragment_Terminal_01 Function Fragment_Terminal_01(ObjectReference akTerminalRef) ;BEGIN CODE HeadPartsHuman.AddForm(YourCustomRace) Utility.Wait(2) Game.GetPlayer().AddSpell(TeleportInSpell, false) Utility.Wait(1) Game.GetPlayer().SetRace(YourCustomRace) Utility.Wait(2) ;END CODE EndFunction ;END FRAGMENT ;END FRAGMENT CODE - Do not edit anything between this and the begin comment FormList Property HeadPartsHuman Auto Const Race Property YourCustomRace Auto Const SPELL Property TeleportInSpell Auto Const The HeadPartsHuman formlist is what your custom race needs to access, and the AddForm function is what gives it the dynamic access it needs to utilize vanilla customizations, and even custom hairs. ANY customization item that doesn't modify vanilla forms will work without issues. The TeleportInSpell adds a neat lightning effect that sort of covers up the race transition (T-Pose). Using this method, I was able to make my mod (which adds 4 custom races at once) and DJ's mod work flawlessly together without any conflicts or issues. I was even able to switch back and forth between his race and any of mine without any problems. And it will work for any number of custom races that the game engine is capable of withstanding. Give me the weekend, and I'll sort some illustration screenshots and other info for those of you eager to try your hand at race modding Trykz
Recommended Posts
Archived
This topic is now archived and is closed to further replies.