Jump to content

trilioth

Supporter
  • Posts

    91
  • Joined

  • Last visited

Posts posted by trilioth

  1. I'd like to be able to generate a form list of a specified form type sharing the same keywords or possibly other properties.

     

    Edit: Combining form lists would be nice too. I see mention of a form list manager, but I don't understand how to access it or use it. I used github to grab the latest files.

     

    Edit: If I could simply get that first feature along with an import/export into readable text I could do whatever else I wanted outside of TESVEdit and import.

  2. Have you checked out my tutorial? It's not all that detailed in the instructions. It merely points out the settings involved. It was meant for those who know their way around the GECK. You could also check out

    . He shows you what he is doing in the GECK.

     

    Edit: It's little struggles like not finding the parameter in a condition setting that help us learn why things need to be done in certain ways and helps us learn how to debug.

  3. I will use this comment space to document any changes made to the original post. I intend to as much information on this topic as I can find.

    2/12/2023 04:33 AM CST:
    Added: This also seems to require that I remove Bob from TeammateFaction using the the RemoveFromFaction function.

    2/18/2013 12:53 AM CST:

    Added information about setting the companion to attack the player outside of dialogue and made some changes to the formatting.

     

     

  4. Getting Your Custom Companion to Attack

     

    I had trouble with a couple of points:

    • Getting my custom companion to attack an NPC
    • Getting my custom companion to attack the player (through dialogue)

    I searched the forums to no avail. I even found a post where the maker of Alex Mercer as a companion had trouble, but there was no answer to her question.

     

    To get a companion to attack a specific NPC...

     

    I used a Use Weapon Package. I did this through a quest script using the AddScriptPackage function. I have tested this in two ways that had positive results. I can't remember all the different things I tried that didn't work. I actually went back through some testing phases in order to document this here as thoroughly I could.

     

    1. One way being that the companion (let's call him Bob) was set to be "fired" before starting the attack . The targeted NPC nor his allies attacked Bob for his actions. Even when it resulted in the death of the targeted NPC. To solve that problem I used the SetEnemy function with Bobs Faction and a common faction for the target NPC and his allies as parameters. I believe the faction that is chosen needs to track crime, but I have not tested for that. The NPCs involved only attacked Bob.
    2. The other way was where he was not "fired" nor waiting. When and only when an NPC died did his allies start attacking and they were hostile to both Bob and the player. Using SetEnemy on the Bob's faction did not change this.

    To get a companion to attack the player through dialogue...

     

    First, I should mention that I used the function SetIngoreFriendlyHits (SetIngoreFriendlyHits 1 or SIFH 1) in the hire topic result script. I was having trouble getting Bob to attack the player through dialogue and I eventaully I discovered that I had to turn off SIFH (SIFH 0). If you did not use the function SetIngoreFriendlyHits, then this should not be an issue. Also, I had to "fire" him through scripts. I did this in a quest script before the dialogue package was added using AddScriptPackage. It should work just the same if you "fired" him in the result script that initiates combat with the player (startcombat player should be the last command). If he is still a teammate he will not attack the player. This also seems to require that I remove Bob from TeammateFaction using the the RemoveFromFaction function.

    To get a companion to attack the player outside of dialogue...

     

    Using a quest script, I fire the companion making sure all the needed variables and settings are changed. Then I add the companion to a special faction that is already enemies with the player.

    I would like to add that for compatibility's sake, I chose to avoid editing the targeted NPC, nor any of the vanilla NPCs. Also, SetIngoreFriendlyHits is undocumented and the vanilla companions use this, but I have yet to see any scripting that turns it off. In using this funciton, I have learned that while "BobCompREF.SetIngoreFriendlyHits 1" will compile, it will cause problems. So far I have not seen any of the vanilla scripts use this function outside of a dialogue result script. Any further knowledge of this function's use would be greatly appreciated.

     

    Please feel free to share any knowledge you have involving initiating combat with custom companions. I thank you in advance for your contributions.

  5. You might want to check out Project Nevada. Project Nevada allows you to configure the level cap and experience gain.

     

    Edit: It also adjusts the number of levels required to gain a perk, thus allowing a perk every level. It doesn't allow for more perks per level though.

  6. I prefer scripting as well (although I use the occasional trigger if I need it). Funny what you found with MapPrimmRegion. I've never been able to get Sloan to work. I finally threw down a marker to use for comments.

    MapPrimm didn't cover the area where I need the bark to fire, where as AudioINCPrimm did.

     

    I found a region named VMapSloanRegion; it only covers four cells in the worldspace WastelandNV: (-8, 2), (-7,2), (-8, 1) "Sloan" and (-7, 1). I haven't setup any barks for that region, but I hope that information helps.

  7. This was not intended to be a discussion on how people feel about limiting companions. I do understand that it will take more work on the modder's behalf to enforce limits and also that editing vanilla assets would cause conflicts.

     

    One can simply install a mod that changes the vanilla assets and put it lower in the load order. Companion DLC Access allows companions to access all DLC areas. There seems to be some issues with it based on user comments. Also, one could use Follower Cheat Menu - enhanced companion control (requires MCM, NVSE). From what I understand, this will edit the script variables I mentioned and thus allow for any custom companions that also use these variables. I have not used either of these mods personally.

  8. You might want to check if the companion is with waiting too.
    I used Regions as used with Cass (see VCassTimerGeneralBarkScript and VCassTimerRegionBarkScript), except Cass says them to herself and not the player. I added to the example a situation that checks against a vanilla script variable. This is a sample of what I have done and I know it works. Also, Bob will not say the related line, if Bob happens to visit the same region with the player later. That wasn't necessary in this case, but I added it as an example.
    Another feature of this example is that the Barks happen only once. Cass' scripts allow for repeats, but only after a certain amount of time has expired.
    You can use the Regions editor to get an idea of the defined regions. The Regions names listed there will tell the you value you need for the IsPlayerInRegion function.
    I didn't want to add trigger boxes to the world and this example shows an alternative method. Having a look at the Regions editor will give you a good idea of how other things in the game are achieved. I was just about to try and define my own region since the MapPrimm Region was not working for me. I instead found the AudioINCPrimm Region.
    scn BobCompQuestScript
     
    int BobBarkDone1
    ; ...(some other code you might have)
     
    Begin GameMode
        ; ...
        if BomCompREF.Waiting == 0 && BomCompREF.HasBeenHired == 1
            if BobBarkDone1 == 0 && IsPlayerInRegion AudioINCPrimm == 1 && VDialoguePrimm.bPlayerWarned == 1
                ; DialoguePrimm.bPlayerWarned gets set to 1 after being warned by the NCR Trooper.
                ; This will make Bob say his BomCompBarkNCRPrimm topic defined in conversations
                BomCompREF.SayTo Player BomCompBarkNCRPrimm 1
                set BobBarkDone1 to 1
            endif
            ; ...
        elseif  BomCompREF.HasBeenHired == 0 || BomCompREF.Waiting == 1
            if BobBarkDone1 == 0 && VDialoguePrimm.bPlayerWarned == 1
                ; If Bob was not with the player when he was warned, then he
                ; will not say the related line.
                set BobBarkDone1 to 1            
            endif
        endif
        ; ...
        
    End ; GameMode
    

    Edit: Somewhat ninja'd by IIamaRCA.

  9. Edit: Apparently using a reference for SetIngoreFriendlyHits (eg: BobCompREF.SetIngoreFriendlyHits 1) causes a problem. Just use SetIngoreFriendlyHits 1.

    Edit Again: I forgot to mention that you will need to set up the hired dialog with a condition to deny you if you have another companion. I will update the original post with the details later.

  10. Just a quick update here. When I get time I will edit the original post. Apparently using a reference for SetIngoreFriendlyHits (eg: BobCompREF.SetIngoreFriendlyHits 1) causes a problem. Just use SetIngoreFriendlyHits 1.

     

    Edit: It looks like my indents where nixed by the new forum code.

    Edit Again: New forum code will take some getting used to.

  11. I am working on a mod and I need to consider several angles. One angle has to do with Legion Reputation. In order to make sure that some situation doesn't catch me off guard here, I was wondering if any of you would be willing to share your experiences when playing a Legion Friendly Character. You may not have the answer to the fastest way to achieve Accepted Reputation with Legion, but your stories are just as valuable.

     

    I don't play Legion Friendly characters and I am in the middle of the work.

     

    Thanks in advance to all that contribute.

  12. For your HUD request, I recommend oHUD. It's a combination of Gopher's Immersive HUD, Adjustable HUD and Extra HUD. Extra HUD adds the HUD elements you want.

     

    There are a couple of mods that I have tried that add extra enemies: Using IWS - Increased Wasteland Spawns and DFB - Random Encounters make the world much more like a war-zone, but at the same time it also means you level up faster and end up with a lot more loot.

     

    Note: All of these mods use The Mod Configuration Menu (MCM), which requires NVSE. You can use IWS and Random Encounters without MCM, but the HUD mods require it.

     

    If you are playing Hardcore mode, then that is reason enough to need a place to sleep. If enemies are nearby then you can't sleep. It would be nice to add the chance that you get attacked if you are trying to sleep out doors. I don't know of anything that does this.

     

    I would like to expand on one of you ideas a bit. It would be nice to spread around some random Wastelanders who appear friendly at first, and then turn on you later. I think this could be achieved through timing the events in a way. Like the Wastelander knows you saw him, but since you ignored him he will attack you. Some of them could come approach you for help or demanding your money and if you refuse then they could turn hostile. One of the problems with these ideas, would be location. Where would you find these guys? On the road between major locations? Surely not in the towns. Also the Jackals, Vipers and Fiends cover a lot of areas.

  13. Adding the companion limit and DLC stuff is pretty pointless. People are just gonna manage that themselves, you don't really wanna be forcibly restricting them. It never made sense to me that ED-E couldn't come to Zion with me,

     

    Same with custom companions. Let the players decide how many companions they want at once and whether lonesome road really has to be so lonesome.

     

    I understand the sentiment. I am not proposing that mod author's should impose limits. I am merely explaining the limits involved with vanilla companions. This information could be used in understanding and preventing any issues with using custom companions.

  14. If I edit the original post, I will use this comment space to make note of any changes.

    2/7/2013:

    • I corrected some minor typos.
    • I forgot mention the OnDeath block for the NPC's object script, so I added the detail.

    3/13/2013:

    • I found another script related to Ultra Luxe casino frisking and added it a list where it was missing.

     

     

  15. Custom Companion Issues
    What I have learned thus far.

    Foreward:


    Creating custom companions has been a boost to my understaning about the use of Quests to handle dialogue, AI Packages and how to use conditions in relation to those things. I highly recommend creating your own companion as way to familiarize yourself with these features of the GECK.

    There are some issues involved with an attempt at setting up a companion with the same limitations of the vanilla companions. This is not a full explanation or tutorial, but merely an addendum to your understanding of setting up companions.


    Follower Limiting:

    It is simple enough to force a limit on the number of companions the player can have. You won't have edit any vanilla assets. There are three dialogue topics that relate to limiting the number of the companions: FollowersFiredYes, FollowersFiredYesSuite and FollowersHired. Changes are to be made within the results scripts.

    (For: FollowersHired)


    set VNPCFollowers.bPlayerHasFollower to 1
    set VNPCFollowers.bHumanoidInParty to 1
    set VNPCFollowers.nCurrentFollowers to (VNPCFollowers.nCurrentFollowers + 1)


    (For: FollowersFiredYes and FollowersFiredYesSuite)


    set VNPCFollowers.bHumanoidInParty to 0
    set VNPCFollowers.nCurrentFollowers to (VNPCFollowers.nCurrentFollowers - 1)
    if VNPCFollowers.nCurrentFollowers == 0

    set VNPCFollowers.bPlayerHasFollower to 0

    endif

     

    Take note of the use of bHumanoidInParty. If you are working with a critter, replace that variable with bCritterInParty.

    If you use this information to make custom companion correspond to the limit of the number of companions you can have, then you will also have to add the above lines pertaining to firing in an OnDeath block in the custom companion's object script.

     


    Hiring and Firing Vanilla Companions:

    The VNPCFollowers Quest holds dialogue and variables relating to the vanilla companions. When setting up a custom companion one can simply use a new quest, and as mentioned above, access the variables relating to limiting the number of companions. When it comes to limiting companion access to content such as DLC world spaces and casinos, there is another set of variables that are used. I will be referring to the following variables as "hired variables":

    • bBooneHired
    • bCassHired
    • bVeronicaHired
    • bLilyHired
    • bEDEHired
    • RaulHired
    • ArcadeHired
    • RexHired

     


    Companion Access to Content:

    As what I am about to present to you may be considered spoiler content, It is hidden in the spoiler below. I am not going into detail about how to make the changes, but I will be pointing out the related assets and why they would need to be changed.


    Gomorrah, Tops and Ultra Lux:


    These casinos use "frisking scripts" that use the Reference IDs and hired variables of each of the vanilla companions. They are designed to work for one humaniod companion and one critter companion only.

    GomorrahCasinoEnterTriggerScript
    GomorrahHotelDoorScript
    TopsFriskingTriggerScript
    TopsFriskingHoldoutTriggerScript
    VUltraLuxeFriskingTriggerSCRIPT *
    VUltraLuxeFriskingHoldoutTriggerScript *

    VUltraLuxeInteriorDoorSCRIPT

    * Denoted scripts also use VNPCFollowers.nCurrentFollowers to check if the player has followers.

     


    Lucky 38 Casino:


    The elevator scripts force vanilla companions to wait if certain options are chosen. This is done by checking which companions are hired (one humaniod and one critter) and setting the respective Waiting variables. They don't use bHumanoidInParty or bCritterInParty variables, but only one of of each type gets checked based on the structure of the if statements.

    Lucky38ElevatorDoorScript
    Lucky38VictorElevatorScript

    In dialog with Victor at the entrance of the Lucky 38, you agree to go up to see Mr. House by yourself. In the quest there is a topic result script that forces vanilla companions to wait. Like the elevator scripts, the result script also only checks one humanion and one critter.

    VDialogueLucky38Entrance (Quest)
    VDialogueLucky38EntranceLucky38VictorEntranceTopic008 (Quest Topic)

     


    Dead Money (NVDLC01):


    Dead Money uses a quest script to fire vanilla companions. They do not go to the Lucky 38 and wait for you.

    NVDLC01NewVegasFollowerFireQuestSCRIPT

    Note: The above script sets VNPCFollowers.nCurrentFollowers to 0, but does not set VNPCFollowers.nCurrentFollowers to 0. I consider this a bug. This will affect firing result scripts by preventing them from setting VNPCFollowers.bPlayerHasFollower to 0 when firing the last companion. This can be resolved in game by going to the Big MT for the first time. This bug does not have any disasterous affects that I can find. The Ultra Lux frisking triggers will end up having null values for Companion1REF and Companion2REF, but this will not cause the scripts to fail in any way. The Ferocious Loyalty Perk (mentioned below) does use this variable but is not negatively affected by this bug.

     


    Honest Hearts (NVDLC02):


    Honest Hearts uses dialogue conditions in a quest to check two variables to see if you have followers. You are forced to manually fire your companions if you wish to proceed.

    VNPCFollowers.bHumanoidInParty (Variable)
    VNPCFollowers.bCritterInParty (Variable)
    NVDLC02DialogueCaravanMaster (Quest)
    NVDLC02DialogueCaravanMasterNVDLC02CaravanMasterTopic000 (Quest Topic)

     


    Old World Blues (NVDLC03):


    Old World Blues uses a quest script to fire vanilla companions. They do not go to the Lucky 38 and wait for you.

    NVDLC03TeleportEffectTimerSCRIPT

    Note: The above script sets both VNPCFollowers.nCurrentFollowers and VNPCFollowers.nCurrentFollowers to 0

     


    Lonesome Road (NVDLC04):


    Lonesome Road uses a script on the door to check the hired variables. You are forced to manually fire your companions.

    NVDLC04WreckageDoorSCRIPT

     

     

     

     


    Other Companion Related Features:

    Aside from what is mentioned above, I am only aware of the Ferocious Loyalty Perk and the Spray and Pray Perk.

    Spray and Pray Perk:

    Since the Spray and Pray Perk uses entry point data, I don't see any way to make changes relating to companions. I am guessing that any NPC that is set as a teammate will be covered by the this perk. It could also be related to the functionality of the SetIgnoreFriendlyHits. There doesn't appear to be an article for SetIgnoreFriendlyHits on the GECK pages, but I see this being used in the hiring of vanilla companions. And since it is not used in the firing of vanilla companions, I am guessing that it is directly related to SetPlayerTeammate.


    Ferocious Loyalty Perk:

    The Ferocious Loyalty Perk uses a quest script checks the player's health and VNPCFollowers.nCurrentFollowers in order to apply and remove an actor effect on companions. Companions are affected by checking the hired variables.

    FerociousLoyaltyQuest
    FerociousLoyaltyScript
    FerociousLoyaltyEffect

     

     


    Afterward:

    All of the compiled information presented here is based on my efforts. I personally looked at the all of data in the GECK, and drew my conclusions from what I have found. I have not studied any mods that add companions or alter the vanilla companions. If there is anything that you know that is not covered here, please let me know.
    The process of digging through the data in the GECK was a valuable learning experience. It was like being a detective and searching for clues.

  16. If you do collab with me, I can create NPCs with desired results, as with weapon modifications.

     

    I can create custom companions. I just don't have the skills for 3D modeling. And my textures skills are lacking. Set up an NPC with the appearance, stats, clothing and the like and I can get him working like a vanilla companion. Check out my tutorial. There are a list of issues that I have yet to solve with companions, but I consider them minor issues. If you want the whole thing ironed out exactly like a vanilla companion, that would require editing some some of the vanilla scripts and quests to get to work, but it's doable and not beyond my skills. I just haven't tried it or tested it yet. I have all the DLCs, so that I could make sure that the entries into the other areas do as they should. I would be glad to do this to your specifications.

     

    Edit: I wasn't aware of the mod you released. If you are still looking for help on option 3 let me know.

  17. Those dusters would be awesome light armor. The one issue I have with armor mods is not seeing them on other NPCs. I think the clothes and dusters might go well with the Omertas or maybe some random NPCs who visit the Strip. Just saying. Either way, I hope this gets made. If only I was a 3D modeler.
  18. Did you use BOSS to sort your load order? If you are not using all the DLCs then you make sure you are not using WMX-FOOKNV-DLCs-CP.esp. Other than that, I am also using the MMUE WMX Compatibility Patch.

     

    Edit: Here is my load order. It was slightly different until just a while ago, when I updated to MMUE v8a, but as for FOOK and WMX there have not been any updates.

     

    Active Mod Files:

     

    00 FalloutNV.esm

    01 DeadMoney.esm

    02 HonestHearts.esm

    03 OldWorldBlues.esm

    04 LonesomeRoad.esm

    05 GunRunnersArsenal.esm

    06 ClassicPack.esm

    07 MercenaryPack.esm

    08 TribalPack.esm

    09 CaravanPack.esm

    0A FOOK - New Vegas.esm

    0B FOOK - New Vegas DLCs.esm

    0C Project Nevada - Core.esm

    0D Project Nevada - Equipment.esm

    0E Project Nevada - Extra Options.esm

    0F oHUD.esm

    10 Tera Companion.esm

    11 Project Nevada - Rebalance.esp

    12 Project Nevada - Cyberware.esp

    13 Mission Mojave - Ultimate Edition.esp

    14 MMUE POP.esp

    15 DarNifiedUINV.esp

    16 SaveKey.esp [Version 1.1]

    17 The Mod Configuration Menu.esp [Version 1.5]

    18 The Weapon Mod Menu.esp [Version 1.1]

    19 FOOK - New Vegas.esp

    1A FOOK - New Vegas DLCs.esp

    1B MMUE-CP-FOOK.esp

    1C MMUE-CP-PNCore.esp

    1D MMUE-CP-PNRebalance.esp

    1E MMUE-CP-PNEquipment.esp

    1F Dynamic Quantity Prompt.esp

    20 WeaponModsExpanded.esp

    21 WMX-FOOKNV CP.esp

    22 Project Nevada - WMX.esp

    23 WMX-DeadMoney.esp

    24 WMX-HonestHearts.esp

    25 WMX-OldWorldBlues.esp

    26 WMX-LonesomeRoad.esp

    27 WMX-GunRunnersArsenal.esp

    28 WMX-FOOKNV-DLCs CP.esp

    29 WMX-PreOrderPackClassic.esp

    2A WMX-PreOrderPackCaravan.esp

    2B WMX-PreOrderPackMercenary.esp

    2C WMX-PreOrderPackTribal.esp

    2D MMUE-CP-WMX.esp

    2E Project Nevada - Cyberware Additions.esp

    2F Project Nevada - Rebalance Complete.esp

    30 Project Nevada - All DLC.esp

    31 StashAwayNV.esp

    32 Performance Of The Gods.esp

    33 Gun Runners House.esp

    34 LR ED-E Survives.esp

    35 NoBlurMenus2.esp

    36 MMUE-CP-PNALLDLC.esp

     

     

×
×
  • Create New...