Fallout 76 beta I am now the lucky recipient of a Fallout 76 pre-order and beta key. The download is literally in progress right now and...

Fallout 76 Beta

Fallout 76 beta
I am now the lucky recipient of a Fallout 76 pre-order and beta key. The download is literally in progress right now and I'm excited to check it out. Thanks to my loving wife for the nice birthday gift!

Zombie Walkers for Fallout 76?


If Bethesda gets to the point of allowing mods for this game, I will most likely work on a port of Zombie Walkers for sure. So far they are reporting that they are committed to making it happen in an official capacity but it may take some time.

Clearly the "Scorched" are zombies, right?
I can already see the "Scorched" are this Fallout's version of a ghoul/zombie creature. Only this time they are intelligent and able to wield guns? Early signs point to them being re-branded zombies with removal of running and weapon wielding. Hopefully other features from the Fallout 4 Zombie Walkers mod will be possible if things like scripting are allowed.

Doesn't playing Fallout zombie survival with your friends sound fun? I guess we'll have to wait to see how far Bethesda allows modders to go and if they follow through on mod support to find out.

Update: 11/3/2018

It appears Feral Ghouls are still in the game in addition to Scorched. Bigger variety of zombies? I only had a chance to play for 40 mins or so before the beta shutdown at 9pm. Hoping to play more. Should be interesting to see what kind of atmosphere the lack of human NPCs creates.

3 comments:

Zombie Settings using the Mod Configuration Menu Many have asked for it and I've had it on my list for awhile. I'm very happy to...

Mod Configuration Menu Support

Zombie Settings using the Mod Configuration Menu
Many have asked for it and I've had it on my list for awhile. I'm very happy to announce Mod Configuration Menu (MCM) support for Zombie Walkers as of version 2.6.

What is is?

For those that may not be aware, the Mod Configuration Menu is a a mod itself that provides a configuration framework for other mods that includes a "MOD CONFIG" option in the main menu of the game. Once that option is selected, a view similar to the screenshot above appears with left navigation options for each installed mod with MCM support. 

Requirements

You must download and install the MCM mod and all of its requirements including the Fallout 4 Script Extender (F4SE). F4SE allows mods access to functions not normally available and exposed by the developers (for whatever reason) and is used by MCM internally.

As a result of the F4SE requirement, MCM is only available on PC.

Mod Integration

Even though MCM is only available on PC, I was able to allow Zombie Walkers to be configured by it without making my mod PC only. This is thanks entirely to how easy and loosely coupled MCM is to integrate with.

Basically, you need to create a JSON file in a specific directory. Inside this file you add configuration pages and fields that essentially set the same Global Variables your mod may already be setting via holotape. There are more advanced options that I didn't use like allowing for mod specific ini files and callback functions to be called as options are changed by MCM.

Here's a snippet of the JSON that shows the "Max Effective Level" settings:

{
"text": "Max Effective Level",
"type": "slider",
"help": "-1 is Unlimited. Doesn't set actual level but caps calculated stats like health, damage, etc.",
"valueOptions": {
"min": -1,
"max": 50,
"step": 1,
"sourceType": "GlobalValue",
"sourceForm": "walkers.esp|9884"
}
}

The bit in bold above is the key in that it implies the IsPluginInstalled and GetFormFromFile functions (or similar) are being used which is how you can access forms from other mods without actually requiring or directly linking to them. In the case of this example, the form type is also specified so that MCM knows to cast to a GlobalValue and set it accordingly.

Manual Installation

The Nexus version of Zombie Walkers already contains the necessary JSON files as part of the zip and will extract them to the proper location. I recommend this option as it is the easiest.

If you install Zombie Walkers via the in game mods menu (bethesda.net), then you won't get MCM support for free. This is because I'm not sure how or even if you can include the files. Follow the manual instruction steps below:

1. Manually Download the latest zip from the Zombie Walkers Nexus Site
2. Extract the zip manually on your PC
3. Move the files under the MCM folder to your Fallout 4 Data directory (eg. "C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Data")

Supporting Config Changes

I did run across a couple of nuances between my holotape configuration pattern and MCM. MCM exposes the raw value of global variables on things like sliders where my holotape menus were able to map values to text labels. Many Zombie Walkers global variables have 0 - 100 style settings and a -1 value with special meaning.

For example, the screenshot at the top of this blog shows Max Effective Level of -1 with a comment at the bottom when you hover stating "-1 is Unlimited...". On the holotape, I was able to clearly label "Unlimited" as the text label for -1 and show numbers for the other options.

Max Effective Level configuration via Zombie Walkers holotape.
This may seem like bad, but it is likely due to how I am overloading a single global variable with what could be two separate configurations: and unlimited checkbox (or switcher as MCM calls it) and a max effective level integer which is only used if unlimited is false (or off). MCM has the ability to conditionally hide options so it should be possible to clean this up in the future.

Another interesting tidbit is that MCM makes it very easy to allow a wide range of values, so I've allowed % style configurations to use 0-100 while the holotape may only have 0, 25, 50, 75, 100 options. As a result, you can see options actually fall off the holotape if a value is selected in MCM that is not accounted for on the holotape. I'm not going to worry about this one though as I believe the use of MCM will make the holotape obsolete anyway and updating the holotape to include more options is tedious and time consuming (which is why the options are already limited).

What's next?

In the short term I plan to support and test the new configuration options for human replacements (type and faction overrides) that were introduced alongside the MCM update. I've actually began playing my mod again and every time I do I seem to walk away with some minor tweaks I want to make to get the experience like I want it (hardcore zombie apocalypse survival). I may blog a little about my play-through and what other mods I'm using to supplement the experience, we'll see.

18 comments:

Zombies feast on a settler in the middle of the road. What do zombies do with all the people they kill? In previous versions of Zombie W...

Zombies Ate My Settlers

Zombies feast on a settler in the middle of the road.
What do zombies do with all the people they kill? In previous versions of Zombie Walkers they just walked on by and wandered away, but no more! Now you have the opportunity to stumble upon scenes like above before fighting for your life to avoid the same fate.

Behavior Update

The Fallout 4 engine uses a combination of AI packages and linked references to mostly govern actor behavior outside of combat. I already created a custom package for zombies for their horde movement behavior based on the default package master that I have now stripped down and simplified to ensure zombies only perform the actions I want them to.

Package used by zombies to Sit, Follow, or Patrol based on the linked references they may have assigned.
Packages are made up of Procedures which are what actually make an actor move or otherwise interact with the game world. Most procedures are configurable and take various properties in as input to tell it what to interact with or where to move the actor. The three procedures above all operate on a linked reference as a target. 

Note that procedures can also have conditions assigned to it which can cause a procedure to be skipped. In the screenshot above, the Sit procedure will only execute if the linked reference is not disabled and the actor has the FeralGhoulRace. I added the race condition to prevent Ghoul zombies (from NPC Resurrection) from trying to use furniture they have no animation for which would otherwise cause them to just stand around.

Procedures Used

Sit procedure - This procedure causes an actor to use a particular piece of furniture. Maybe it should be called "Use Furniture" instead? This is used to link zombies to the special feral ghoul eating furniture next to a dead body.
Follow procedure -  This procedure causes an actor to follow another actor around. This is used to group zombies together. Zombies follow each other until ones becomes the defunct leader and wanders.
Patrol procedure -  This procedure causes an actor to move to a marker of some kind and markers can be chained together forming a path (or moved like this mod does to implement wandering zombies - see Horde Behavior).

Setting Linked References

SandboxFeralGhoulSquatEating furniture
There is a script attached to all zombies that initializes a zombie (once) when they are spawned, listens to certain events (like a zombie dying or entering combat), and updates their behavior. The behavior update portion of the script essentially sets the linked reference for that zombie so that the appropriate procedure described above triggers. 

In the case of zombie feeding, the script searches for nearby corpses and if found actually creates the furniture object. The furniture is then linked to the zombie with the keyword LinkAmbushFurniture since that is the same keyword used by existing ferals in the game. 

The end of the script executes EvaluatePackage to make the zombie re-evaluate the package tree described above. This causes the Sit procedure to execute which makes the zombie walk to the furniture and use it. Furniture has animations linked to it that are specific to the type of actor the furniture was made for. The SandboxFeralGhoulSquatEating furniture is what is used by zombies and makes the zombies squat down over the corpse and use their hands to grab from the ground in front of them and then move to their mouths as if eating.

What About the Corpse?

There are two events you can register for to detect when an actor uses furniture (OnSit) and stops using furniture (OnGetUp). When OnSit is triggered, the corpse being "eaten" by the zombie has a random limb chosen and Dismembered. Once all limbs are dismembered the corpse is marked as eaten so other zombies now ignore it.

A cleanup script runs and disables the zombie furniture after about 1 hr in game. When this happens the OnGetUp event is triggered as the zombie exits that no longer valid furniture. This allows the script to update the zombie behavior again which could cause the zombie to move on to the next body part or wander away if nothing is left to consume.

Limitations and Future

The corpse eating is limited to Feral Ghoul zombies right now. Zombies spawned by NPC Resurrection or replacement of humans are actually Ghouls and do not have the animations required to use the furniture. I am exploring alternatives for them possibly including the game's built in Cannibal perk. Early experiments have failed but I will pursue it.

Some corpses, like the dead raider across Sanctuary bridge, refuse to be eaten for some reason and I have yet to figure out why. If "Already Dead" is enabled under Spawn Settings -> Replacements -> General Settings, then that raider is marked as zombie food until it resurrects as a zombie itself. The zombies nearby detect this and create the furniture marker but don't use it.

The behavior updates described above do not apply to all zombies. Some zombies have pre-defined behavior like ambushes (Crawling out from under cars) that I didn't want to break so I exclude them from being changed. Also, currently the behavior updates do not apply to interior locations. This was mostly to avoid zombies trying to wander to inaccessible areas and getting stuck, but I may revisit this to at least allow them to search for food.

8 comments:

Pages (8)1234567 »