• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

A16 - Zombie Transmogrifier

sphereii

Surviver
The Zombie Transmogrifier shakes things up in the apocalypse by adding a random twists to the spawned in zombies. Hal9000's Run in Dark mod has been expanded to include more random elements in the world.

  • Random Walk Types - No more adding the same zombies in the entityclasses; This mod randomizes all spawned in zombies to various Walk Types
     
  • Random Approach Speeds - Everyone walks, shuffles and runs at different speeds. Did the apocalypse change that? Hell no!
     
  • Random Heights - Was the apocalypse based in Kamino? Hell no! Random sizes for all the zombies
     
  • Random Run in Dark - There's a small chance the next zombie you meet in the burnt out house can run... Will you be ready for them?
     
  • Head Shots matter - This feature enables bonus multipliers to head shots, and reduces damage done to the body. <property name="HeadShots" value="true" />
     
  • HandItem Support - Similar to the zombie vomit, we can now equip weapons through the GetBareHndItem()
     


Heavily commented code allows and encourages for more community expansion ideas and tweaks.

This mod extends the EntityZombie, EntityZombieCop, and EntityZombieCrawler classes. It includes a part of Hal9000's Helper, in order to properly extend the classes.

Browser the Mod Here:https://github.com/7D2DSDX/Mods/tree/master/ZombieTransmogrifier

Or Download the complete set of mods here: https://github.com/7D2DSDX/Mods/archive/master.zip

 
Last edited by a moderator:
This is a fantastic addition. It really does make a difference with the variety. Such as big bertha the spoon (shovel) carrier does something different other than lumber around. Horde night was fun :)

Thanks again for all the hard work that's been put in by all the contributors.

SDX has really changed the game for me. SDX = more fun!

It's such a neat solution to maintaining mods and integrating everything together.

 
I am really happy that you are enjoying the SDX experience so much, and I can't wait to see some of the things you'll do with this.

The Zombie Transmogrifier is a perfect example of the successful evolution of a base SDX mod, and extended to do things it was never intended or thought of doing. I'm excited to see what the next extension will look like.

 
Unfortunately I think this is the cause of a pretty gamestopping bug. I kept getting locked into the console by a Keynotfoundexception almost every time the game tried to restore sleepers, and it starts happening at GS1:

KeyNotFoundException: The given key was not present in the dictionary.

at System.Collections.Generic.Dictionary`2[system.Int32,System.String].get_Item (Int32 key) [0x00000] in <filename unknown>:0

at SleeperVolume.HQ (.World ) [0x00000] in <filename unknown>:0

at SleeperVolume.Tick (.World _world) [0x00000] in <filename unknown>:0

at World.QUC () [0x00000] in <filename unknown>:0

at World.OnUpdateTick (Single _partialTicks, ArraySegment`1 _activeChunks) [0x00000] in <filename unknown>:0

at GameManager.BC () [0x00000] in <filename unknown>:0

at GameManager.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

I searched for causes and found this thread: https://7daystodie.com/forums/showthread.php?73135-KeyNotFoundException-The-given-key-was-not-present-in-the-dictionary

So I tried replacing SteveCrawler and SteveCrawlerFeral in the sleeper gamestages with a different zed. I'm using this mod on top of Valmod, it adds 1 more zombie (and that happens to be a crawler) to the sleeper stages, so I replaced that one as well. When that didn't help, I replaced regular Steve too. No dice. But since this mod can make any zed into a crawler, I finally tried setting the crawler class from EntityZombieCrawlSDX, Mods back to EntityZombieCrawl. Since then, no more console popping up. I even set the class back two more times to confirm, the console error came back immediately.

 
Unfortunately I think this is the cause of a pretty gamestopping bug. I kept getting locked into the console by a Keynotfoundexception almost every time the game tried to restore sleepers, and it starts happening at GS1:
KeyNotFoundException: The given key was not present in the dictionary.

at System.Collections.Generic.Dictionary`2[system.Int32,System.String].get_Item (Int32 key) [0x00000] in <filename unknown>:0

at SleeperVolume.HQ (.World ) [0x00000] in <filename unknown>:0

at SleeperVolume.Tick (.World _world) [0x00000] in <filename unknown>:0

at World.QUC () [0x00000] in <filename unknown>:0

at World.OnUpdateTick (Single _partialTicks, ArraySegment`1 _activeChunks) [0x00000] in <filename unknown>:0

at GameManager.BC () [0x00000] in <filename unknown>:0

at GameManager.Update () [0x00000] in <filename unknown>:0

(Filename: Line: -1)

I searched for causes and found this thread: https://7daystodie.com/forums/showthread.php?73135-KeyNotFoundException-The-given-key-was-not-present-in-the-dictionary

So I tried replacing SteveCrawler and SteveCrawlerFeral in the sleeper gamestages with a different zed. I'm using this mod on top of Valmod, it adds 1 more zombie (and that happens to be a crawler) to the sleeper stages, so I replaced that one as well. When that didn't help, I replaced regular Steve too. No dice. But since this mod can make any zed into a crawler, I finally tried setting the crawler class from EntityZombieCrawlSDX, Mods back to EntityZombieCrawl. Since then, no more console popping up. I even set the class back two more times to confirm, the console error came back immediately.
Hmm, strange, I haven't seen that error before. I may just remove the crawler from the SDX, as you did, since there's little value in watching a crawler.. well, run. :)

 
Hmm, strange, I haven't seen that error before. I may just remove the crawler from the SDX, as you did, since there's little value in watching a crawler.. well, run. :)
That bug is not caused by this mod. In Starvation we had the same error, and fixed it the same way you suggested. We have not used this mod, and we do not alter the crawlers properties in any way. We believe this is a vanilla bug related to the model.

 
I absolutely love this mod. Thank you so much for making this!

Anyhow, I'm wondering if there is code to manually select the zombies height? ...or even better; a range of heights (ie: 0.8,1.2). If there isn't already I think this would be a fantastic addition to the mod. I love the randomness for some of the zeds, others can become comical if too small or too big. Turning it off for some zombies works fine but having the ability to chose would be much better. :D

Quick second question: Does the headshot code automatically increase decap chance?

 
I absolutely love this mod. Thank you so much for making this!
Anyhow, I'm wondering if there is code to manually select the zombies height? ...or even better; a range of heights (ie: 0.8,1.2). If there isn't already I think this would be a fantastic addition to the mod. I love the randomness for some of the zeds, others can become comical if too small or too big. Turning it off for some zombies works fine but having the ability to chose would be much better. :D

Quick second question: Does the headshot code automatically increase decap chance?
Yes, there should already be random heights added, available through the XML to toggle on and off

The head code adds a multiplier, and most vanilla entities will lose their heads to die, but it doesn't always happen.

 
Yes, there should already be random heights added, available through the XML to toggle on and off
The head code adds a multiplier, and most vanilla entities will lose their heads to die, but it doesn't always happen.
Nice, thank you. But what I meant was a definable scale in the xml, not just the ability to toggle on and off. Something like this:

Code:
   <!-- Available Command -->
   <property name="RandomSize" value="false" />

   <!-- Commands I would like to see -->
   <property name="CustomSize" value="1.2" />

   <!-- Or -->
   <property name="CustomSizeRange" value="0.8,1.2" />
I do appologize if this is already available somewhere else or not a fitting request for the mod. Just curious if it's something that is possible as it gives me some really neat ideas. :D And will this mod work with animals if I were to change the Class to EntityAnimalHal?

Thank you so much

 
Last edited by a moderator:
Nice, thank you. But what I meant was a definable scale in the xml, not just the ability to toggle on and off. Something like this:

Code:
   <!-- Available Command -->
   <property name="RandomSize" value="false" />

   <!-- Commands I would like to see -->
   <property name="CustomSize" value="1.2" />

   <!-- Or -->
   <property name="CustomSizeRange" value="0.8,1.2" />
I do appologize if this is already available somewhere else or not a fitting request for the mod. Just curious if it's something that is possible as it gives me some really neat ideas. :D And will this mod work with animals if I were to change the Class to EntityAnimalHal?

Thank you so much
No, it's just a toggle now. There's a line in the code that defines the sizes it can do. I picked this method, rather than a true random, because it allowed you to be more fine controlled on the differences.

Code:
    if (this.blRandomSize)
       {
           // This is the distributed random heigh multiplier. Add or adjust values as you see fit. By default, it's just a small adjustment.
           float[] numbers = new float[9] {0.8f, 0.8f, 0.9f, 0.9f, 1.0f, 1.0f, 1.0f, 1.1f, 1.1f};
           int randomIndex = random.Next(0, numbers.Length);
           this.flScale = numbers[randomIndex];

           // scale down the zombies, or upscale them
           this.gameObject.transform.localScale = new Vector3(this.flScale, this.flScale, this.flScale);
       }
Animals are a bit different; the EntityAnimalHal doesn't have this code in it, so it wouldn't work. Maybe in A17 I'll look at expanding it.

 
Updated the description to include the XML syntax for enable head-shots matter, and to show support for allowing the zombies to hold weapons though the GetHandItem call.

 
Hello sphereii!

I want to ask. Is there a possibility to assign zombie height(constant) through .xml ?

(i just want to make bigger of that guy in the Hawaiian shirt)

 
Hello sphereii!
I want to ask. Is there a possibility to assign zombie height(constant) through .xml ?

(i just want to make bigger of that guy in the Hawaiian shirt)
Interesting. I'll ad that to the TODO list when the mod gets refreshed for A17. We could expose a new XML tag, that if set, will use that scale.

A scale of 1 is normal size. So you could do a 1.2, and it'll be 20% taller.

 
Interesting. I'll ad that to the TODO list when the mod gets refreshed for A17. We could expose a new XML tag, that if set, will use that scale.
A scale of 1 is normal size. So you could do a 1.2, and it'll be 20% taller.
Sweet! Waiting for A17 update.

 
It's out I thought?
Sphere, you doing version control on the launcher?
It's updated, but not released yet :) I have to add in the new feature first.

The Mod Launcher won't be getting updated until we hit stable, or until the modders start changing their repos. It's still up in the air. :)

 
I was going to do this as a separate mod, but this fits so much better with what you're already doing...

...please randomize the

<property name="KnockdownProneRefillRate" value="0.045,0.045"/>

<property name="KnockdownKneelDamageThreshold" value="0.4"/>

<property name="KnockdownKneelStunDuration" value="0.5,1.8"/>

<property name="KnockdownKneelRefillRate" value="0.045,0.045"/>

...fields, so that they aren't so easily timed, thanks!

Bonus: This fits in with what you're already doing. :)

Extra Bonus: I don't have to do it.

 
Back
Top