Jump to content
⚠ Known Issue: Media on User Profiles ×

marcelocastro

Members
  • Posts

    17
  • Joined

  • Last visited

Everything posted by marcelocastro

  1. Hi crawe1x, Repair tracking is in my "to do" list. But I need to polish the version I'm going to release now. Maybe on the next release.
  2. First Version of the mod is out. For testing. https://www.nexusmods.com/fallout4/mods/26998/?
  3. SETTLEMENTS ATTACKS IMPROVED I've been working on a mod for some time now to improve settlement attacks. It's my first mod. I started this project trying to replicate the settlement attack quests that old DCMS used to have, just to see if I could learn to mod. But as I learned about the CK and papyrus scripting, the mod grew with it. I tried different approaches to improve settlement attacks until I realized that editing the vanilla quest (WorkshopXXXAttackNN) and scripts (WorkshopAttackScript and REScript) is a bad idea, so I've built this mod to work around the vanilla quests and I didn't edit anything on those quests and scripts. A while back I saw a post from Ianwrath saying he was trying to do something similar to what I modding, so I contacted him and we teamed up to develop it. The first version of the mod should be available soon for testing (25/09/2017). Why isn't this an overhaul? Because I found the vanilla settlement attack logic to be actually interesting. Don't get me wrong, like all Bethesda games, they half-assed it, it almost seems like an intern did it, there are a lot o problems that I've tried to fix. But the basis for it was there, and, in my opinion, it was good, I didn't wan't to drastically change it, but I wanted to improve upon it. The mod main features are listed below: 1. Every vanilla settlement attack is turned into a proper Minuteman quest, with quest log and different stages: There are some vanilla quests that originally didn't appear on the miscellaneous quest log, like the animal quests (Yao Guai, Deathclaw, Radscorpions, Mole Rats, etc.), but with SAI they do. Never miss a settlement attack quest warning again (check). 2. Properly named quests indicating the settlement and the type of attacker: Know what you are facing beforehand (check). 3. Put up head markers and count kills/enemies on the quest objectives: Easily find the attackers on large settlements through HUD or minimap and know, beforehand, the number of attackers you need to kill. Track down those missing attackers (check). 4. Create a quest queue: you will always only have a single quest active (you can only defend one settlement at a time), if another settlement attack is triggered, it will enter the quest queue (even if the vanilla miscellaneous quest is logged) and will only be activated when it arrives at the front of the queue. If the quest is queued, you can go to that settlement, build, talk to settlers, trade, and the attackers won't trigger, they will only trigger when the SAI quest is active and pointing at that settlement. Never fail an attack quest again because two quests triggered simultaneously and you didn't have time to get to the settlement (check). 5. Make sure the method works for both fast travel and hardcore and also for low-end and high-end rigs: the way SAI was set up, it works well with all types of users (check). 6. Correct the Synth Quest to turn the synth settlers against the settlement on synth attacks: One of the vanilla synth quests has an error. It should turn the synth settlers against the settlement, but it doesn't. Kill synth settlers on synth quest (check). 7. Holotape to trigger settlement attacks: Use a holotape from a terminal to choose which settlement to attack or from your pip-boy to trigger a "random settlement" attack. The attacks are triggered instantly and enter the quest queue. So you could, possibly, trigger one attack on each settlement of the game and just keep chain-questing settlement attacks. (check). 8. Fix what some people are calling the "fast travel glitch": This "glitch", that's not actually a glitch, but a package attached to the attackers aliases, allows attackers to move inside the settlement walls when the player fast travels to the settlement. SAI doesn't allow the attackers to move from the spawn point unless the player arrives near the settlement. Don't get "ninja" attackers in your settlement. (check) 9. Works with all attack quests from all DLCs (check) 10. Compatibility: Because not one single line of the vanilla was touched, SAI was built to be compatible with most mods available (check) - It should work with properly built new settlements (modded settlements) - It should work with modified settlement borders - It should work with modified spawn points (as long as they are properly referenced ans Edgemarkers on the Workshop), and It allows the use of up to 5 spawn markers on each settlement. And furthermore... SAI was built to improve settlement attacks, so on the next versions you will see a lot of new features, like a new type of resolution through paying a bribe or offering a tribute to the attackers; more attackers; more difficult attackers (benemoths, glowing ones, mirelurk queens, etc.);
  4. Ok, Think I found the problem. There's an alias on every vanilla settlement attack quest called Workshop that is marked as reserved. From what I can tell, if you mark this, no other quest that goes thorough the story manager will allow an alias to be filled with this specific reference. Just to be precise: to trigger a quest through the story manager on a vanilla reserved settlement, you need to mark the other quest (your quest) pointing at that target as "Allows Reserve", this allows you to use a reserved target as an alias on your own quest. So... Without editing the vanilla quests, I won't be able to trigger them on settlements that are marked as reserved on other quests that started through the story manager. This sucks... No double attack.
  5. Thanks for the help guys. I don't think I'll be able to bypass this flag with creative thinking. Unless there is a way to stop a workshop from loading. The pertinent vanilla bool trigger I want to stop is on Workshop Attack quests (like WorkshopSuperMutantAttack01). On stage 20 script fragment REScript puts up a flag if the workshop (target of the attack) is loaded and REParent immediately starts cleaning up, the vanilla workshop attack fails and I lose all references to the attackers (they are still there, but I cant control them through my own quest). With hardcore there wouldn't be much problem, but allowing fast travel really screws things up with this flag. if workshopRef.Is3DLoaded() == false && workshopRef.OwnedByPlayer WorkshopRaiderAttack03Message.Show() SetObjectiveDisplayed(10) workshopRef.SetValue(kmyQuest.REParent.WorkshopActorAlert, 1) else ; now quest should shutdown when everything unloads kmyQuest.StopQuestWhenAliasesUnloaded = true endifI'm trying another approach. I make sure the attack is only triggered far away from the target workshop (check with is3DLoaded), let the quest vanilla quest load and then I get the attackers to my quest and manipulate them as I please (move them, freeze them, etc...). The problem is, I can't trigger vanilla attacks on the settlements the player is currently in, and for instance, you can't trigger an attack on red rocket if you are in sanctuary (because it is 3D loaded), which is kinda lame. I'll have to make my own similar attack quests to allow the player to trigger attacks on the settlement he's in. Some more info on what I'm trying to do: https://forums.nexusmods.com/index.php?/topic/5948298-settlement-raids-overhaul/
  6. Ok. Just some more feedback. Did some testing and I think there's something in the story manager that blocks quests from triggering on settlements that already have quests on them. Any quests... I did a simple quest with just two aliases and directed them to the location and the workshopref of a settlement, and I could't trigger settlement attacks on this settlement. Then I first triggered and attack on a settlement, and then activated my quest on the same settlement, without the story manage, and it did work. So you can have two quests on the same settlement, just can't trigger two quests on the same settlement through the story manager. Can anyone else confirm this?
  7. Hi guys, I want to force a bool on a vanilla quest script to remain false while my own quest script is running (preventing the vanilla quest from shutting down). And I want to do so without editing the vanilla script. Is it possible? If not, is there anyway to remotely pause a script? I've been trying something like quest myQuest myQuest = WorkshopSuperMutantAttack01 as quest REScript myREScript myREScript = myQuest as REScript myREScript.Utility.Wait(10) but I get the "the type name Utility cannot be used as a property" error on the compiler. Any suggestions?
  8. OMG. This is great. Thank you so much. Ok, quest isn't triggering because is failing to fill an alias. It's probably the workshop alias. Is there any way to check? Now, why is it failing to fill the aliases? Is it a game engine limitation? It looks like the easiest solution is to let the settlements with minutemen active quests in the list, and pop up a message if the attack fails. Tracking dozens of minutemen quests don't seem like a good idea. [09/11/2017 - 09:28:18AM] ---Node '' passed[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopMirelurkAttack_SI' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'DLC01WorkshopBotRaiderAttack02' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopDeathclawAttack01' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopRaiderAttack02' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'DLC01WorkshopBotRaiderAttack01' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopSynthInfiltrator01' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopRaiderAttack03' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopSuperMutantAttack02' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopSynthInfiltrator02' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopGunnerAttack02' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'DLC03WorkshopTrapperAttack01' failed conditions[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopFeralGhoulAttack01' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopRadscorpionAttack01' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopRaiderAttack01' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopYaoGuaiAttack01' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopGunnerAttack01' failed to fill aliases[09/11/2017 - 09:28:18AM] ----Quest 'WorkshopDeathclawAttack02' failed conditions[09/11/2017 - 09:28:18AM] ---Node '' is flagged as do all before repeating and is resetting after failing to pick a quest.[09/11/2017 - 09:28:18AM] ---Node '' passed
  9. Hmmm, Ok. Now we're getting somewhere... The thing is... I think you can actually trigger 2 quests from the same node and have them run together. I can trigger 2 settlement attacks (different quests) at the same time, on different settlements (Tested), I just can't trigger both those quests on the same settlement (Tested multiple times). I need to check if the quests they trigger are in the same node, probably yes (Need to check if quests from DLC nodes were triggered instead of the main node). The same thing was happening with settlements involved with the minutemen quests (and the minutemen radiant quests are on another branch of the story manager). The targets of such quests (and I mean the settlement locations where they point to) must be different. And I don't know why... It's driving me nuts. Something is ruling these restrictions, but what?
  10. Just an update. Me and Ianwrath did team up, and you guys can expect some progress shortly.
  11. JagMaker, Thanks for the reply. The actual triggering is ok. I solved it. I just used WorkshopParent.TriggerAttack(settlement, attackStrength)The SetStage command doesn't work in this case (the settlement attack quests are script event enabled quests from the story manager, they have to run through it), but you could just use the trigger above. (Tested) But I found your idea intriguing. I'm a new modder and did't mod skyrim at all, so I didn't know spells would work on FO4. Well, my friend, If they do, you gave me some ideas on how to solve some other problems I'm having. Now back to my original question I can choose the settlement in the holotape list and most of the times, it does trigger the attacks. There are a few times that it doesn't trigger such attacks, and after a lot of testing I found out that settlements that are currently under attack can't be triggered a second time, and also, settlements involved with minutemen radiant quests can't be triggered. Because I'm working with a dynamic list terminal for the holotape, I just check which settlement attack quests are active (my mod is about those quests, so I track them) and remove the linked workshops from the list. Then you can't choose those settlements on the holotape to trigger an attack. This is working and tested and retested with debug. The problem now are the settlements that are involved with the minutemen radiant quests, there is a really large number of Minutemen Quests and I don't want to track each individual minutemen radiant quest just to eliminate the linked settlements from my holotape list. That's why I want to know if there is an easy way to know if a settlement is involved in the minutemen quests. Probably there is a way, because the actual vanilla game prevents you from having two minutemen quests on the same settlement (I've never experienced two simultaneous minutemen quest on the same settlement). I just want to know how the game checks for that. It's in which quest? Which Script? Is there a bool flag?
  12. It should be fairly simple. 1) Use CK. 2) Find the random encounter quest you want to disable and check how it's activated (it's probably with a story manager script event) and just make sure it doesn't activate (just delete the quest node from the story manager tree).
  13. I've been working on a mod to trigger and improve settlement attacks. I've done a holotape that lists available settlement (owned) and you can trigger attacks through it. The problem is, I can't trigger attacks in all settlements. After much testing, I'm pretty sure that you can't trigger an attack on a settlement that is already involved in another quest (like another settlement attack or a Minutemen Radiant Quest). But I still haven't found the script that rules this behavior. Does anyone knows why this happens? Is there a flag for settlements involved with quests? In which script?
  14. Oh man... I'm glad I saw this. I'm working on a similar mod for months now (I was calling it Settlement Attacks Improved). I'm no programmer, but I can manage. This is also my first mod. From what I saw, you can change most of the parameters for settlement attacks without actually editing the holy trio of scripts: WorkshpScript/WorkshopParentScript/WorkshopAttackScript. I've had your dilemma, and I think that editing those scripts is a bad idea. You can run most functions of those scripts from other scripts (your scripts) without editing them, and you can access and change some of the variables remotely as well. What I'm trying to do is run parallel quests that are actually quests, with quest objectives and such. Kinda like good'old DCMS used to have. And I was thinking of improving the attacks, like, adding enemies, elites, bosses, benemoths, etc..., but trough this parallel quest, without touching the vanilla quests or scripts. What I've done so far: Worked out how to register for remote event and remotely observe when a vanilla attack quest is triggered and change stages and trigger my own quests using the vanilla quest aliases. My quests have four stages: 1) Go to the settlement (do a range check) - mark the settlement on the map 2) Got to the settlement - mark enemies over their heads and on the map and do killcount/enemycount. 3) Killed all enemies - Talk with settlers (this is tricky, not all settlers do the conversation that triggers the vanilla quest, but Icebreaker mod solves this). 4) Quest completed - give xp, money and rep with minutemen 5) If player didn't get to the settlement in time (15 hours of game time since the attack is triggered): see if the attack resolves in favor or against the settlement and complete (with no rewards) or fail the quest accordingly. To test it, I did a holotape that allows you to choose which settlement you want to trigger an attack, and allows you to do it instantly (using the vanilla quests and scripts without altering them). Some settlements weren't triggering and it was driving me nuts, I must've read the trio of scripts like a dozen times each and I could't find anything. But now I think I've figured it out, I still don't know why, but you can't trigger attacks on settlements that are already being attacked (or have a vanilla quest running - they stop on alias unload, even after the attack has finished), or on settlements that are currently involved with the Minutemen radiant quests. It's working very nicely, you can trigger simultaneous attacks on many settlements. What I plan to do: Stage 1: Finish the holotape and the 34 quests (release Alpha for testing and debugging) - One more month maybe Stage 2: Improve on the quests that are already in place (in parallel, without editing the vanilla assets), adding more enemies, elites, bosses, etc... (release Beta) - 2 months maybe Stage 3: Play with the variables on the trio of scripts, like locking settlements from having attacks (bAllowAttacks) or making sure the quests don't resolve automatically (attackDelayGameTime). Make sure this is available trough the holotape and in the new MCM. (Release 1.0) (Dreams...) Stage 4: Trigger a repair stage on my quests after an attack, showing which settlement objects need repair. (Also from DCMS) Stage 5: Do a check of dead bodies near the settlement, loot them to the workbench and eliminate them automatically (for framerate purposes). (Also from DCMS) Stage 6 Create new quests (I don't know, Conclave? Ghoul Apocalypse? Your ransom quests are a good idea, offering settlers as tribute, how hunger games of you), for this I think I'll have to edit the story manager tree, but... So, I have most of the kinks worked out for release alpha, just need a little polish and grunt work (there are 34 quests that are triggered with settlement attacks that I'm doing parallel quests to). As you can see, this way you can make most of what you wanted without altering the vanilla scripts or quests. If you want to team up I would gladly accept a partner. Message me if you're interested. Some comments on what you want to do: R1.1. This is not actually a glitch. The created enemies are attracted by the workshop. This is defined in the refcoll alias. You would need to change the alias in all quests. R1.2. This is already a part of the vanilla quest. It does calculate attack strength and number of attackers, but the groups are pretty lame for a well defended settlement. R1.3. Not sure what is realistic, but it does a check to resolve the attacks and uses a few variables. R2.6. It does have all of those. And also mirelurks, trappers, robots, insects and yao guai. (you need the expansions for some) R2.7. It does have settlement attack quests for minutemen and BOS, with Vertibirds and everything (you need the Nuka Cola expansion and have sided with the raiders)
  15. Ok. Solved it. You can't use reference collection aliases as quest objectives. You need to assign individual aliases to each reference in the collection. Then condition each individual alias. With this solved, the range check works fine, it just switches to the multiple individual targets at 10000 units.
  16. Hey guys, 1) I'm doing a quest to kill a bunch of raiders. They are grouped in a reference collection alias. I'm trying to display the quest objectives on the map (showing each of the targets) and want to put those little quest objective markers on top of their heads as well. But doing so through the quest objectives tab is not working (probably because the reference I chose is a collection). How do I do this? 2) Before I get to that part, I'm displaying just one quest objective on the map. I want to change to those markers (from question 1) when the player gets close enough to the raiders. I'm using a range check function (RegisterForDistanceLessThanEvent/OnDistanceLessThan) to do that, but because the area where the raiders might spawn is kind of large, the range check is not an effective tool (sometimes it changes quest stages without actually visualizing the raiders). The best solution I could think of was using a Is3DLoaded on the raider collection alias. But I can't do that because there's a randomness to the number of raiders that actually spawn and I KillSilent the rest, so not all the raiders from the collection actually spawn. Anyone has any other suggestions? Links to references and tutorials are welcomed. Thanks
×
×
  • Create New...