Jump to content

[A20] khzmusik's Modlets


khzmusik
 Share

Recommended Posts

Hello, all. This thread is for all of my modlets that are compatible with A20.

 

The old (and now deprecated) A19 thread is here:

 

The Git repo for my A20 modlets is here:

https://gitlab.com/karlgiesing/7d2d-a20-modlets

 

Each modlet has its own individual README file. These files can be read on the Web by going to the modlet's directory in the GitLab repo; I have provided a link for each modlet.

 

The README files have many details about installation and usage, including whether it is recommended to create a new game world, as well as technical details about the creation of the modlet and how to modify its behavior.

 

Feel free to download them, modify them, learn from them, use the code in your own mods/modlets, and in general do whatever you like with them. Credit is appreciated but not required.

 

These modlets should be available in the Mod Launcher as well. I highly recommend using that to install and manage your mods and modlets:
http://7d2dmodlauncher.org

 

ZIP file downloads

 

I am now including a link to a ZIP file for each modlet. These files are automatically generated by GitLab when you visit the URL, so you should get the latest version each time.

 

Important: GitLab automatically wraps the modlet in a folder called "7d2d-a20-modlets-main-[modlet name]". The directory inside this directory should be put into your Mods folder.

 

If you want to download the modlet in a different compression format:

 

  1. Go to the modlet's directory in the repo (follow the "Repo" link).
  2. Click on the button with the "download" icon (next to the "Clone" button) in the upper-right hand corner of the page.
  3. Under "Download this directory," click on the format you want. In addition to .zip format, GitLab supports .tar, .tar.gz, and .tar.bz2.

 

XPath modlets
These modlets use XPath, so they are EAC friendly. Most require installation only on the server. Those that contain custom assets (usually additional icons) will need to be installed on both the server and clients. See the individual README.md files for details.

 

I am also including modlets that are dependent upon other modlets that use XPath (and/or custom assets), and do not have custom C# code.

 

Bad Medicine

 

You have to feel it to heal it.

 

Spoiler

 

Features:

 

  • You can only craft dirty bandages using cloth alone. Dirty bandages can be sterilized (to "vanilla" bandages) by boiling with clean water in a cooking pot.
  • Dirty bandages have a chance to cause infection. Treating lacerations (as opposed to just bleeding) will always cause infection.
  • To make up for the increased chance of infection, first aid items now have a very small antiseptic effect (less than honey).
  • You can also drink gasoline. Don't drink gasoline.
  • If you are on fire, don't douse yourself with flammable liquids.
  • You're not Rambo. Stitch up a wound using a sewing kit, and you'll make pain sounds for everyone to hear. Unless you're drunk.
  • The negative effects from a concussion occur much more frequently (though still randomly).

 

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Bad_Medicine

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Bad_Medicine

 

 

Quality of Life

 

Includes a variety of "quality of life" improvements for the game.
 

Spoiler

These are modifications that do not significantly change the game mechanics, are uncontroversial, and should be compatible with most other mods or modlets.

 

Included changes:

  • The "already read book" icon is now a semi-translucent green color.
  • The time it takes to scrap brass is significantly reduced.
  • If you have the required knowledge to craft ammo bundles, you can craft them from loose ammo (not just from raw materials).
  • Vehicles are sellable to traders (at the usual steep discount).
  • With permission, this modlet includes a version of Khaine's Lockable Inventory Slots modlet. A big thank you to Khaine for making that modlet! This version is modified to additionally enable locking on the junk drone, and all lootable containers.

 

Note: version 1.0.1 removed stackable dyes, because stacking item modifiers causes a lot of bugs. If you upgrade from 1.0.0, you will not need to start a new game, but the size of all dye stacks will be reduced to 1. Plan accordingly by separating all dye stacks into stacks of 1 each. If you do this, the dyes shouldn't be lost.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Quality_Of_Life

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Quality_Of_Life

 

 

Slow Build

 

Slows down building, and to a lesser extent crafting.

 

Spoiler

This encourages renovating prefabs rather than building structures from scratch, for both horde bases and personal dwellings. It also makes inventory management more challenging. The fact that wood items take nails to craft will also discourage nerd poling.

 

  • Wood frames, shapes, and ladders now require nails to craft. To adjust for this, players are now given a small stack of nails when starting. Also, full boxes of nails (100 count) can sometimes be found in loot.
  • Upgrading wood frames requires 10 wood (from 4).
  • Crafting cobblestone now requires a cement mixer.
  • The stack sizes for all frames have been reduced to 50 (from 500).
  • The stack sizes for natural resources (such as iron or clay) have been reduced from 6000 to 500. Stack sizes for cobblestone, cement, and concrete have been reduced from 1000 to 100. Bundles of resources have been updated to reflect the new stack sizes.
  • Trees now take twice as long to grow, and yield at most one seed.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Slow_Build

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Slow_Build

 

 

Trader Lore

 

Adds unofficial lore and history to the trader dialogs.


 

Spoiler

Note: if you use this modlet with another modlet that changes the dialog window UI - such as NPC Core - you will see yellow warnings in the console: "XML patch for "XUi/windows.xml" from mod "khzmusik_Trader_Lore" did not apply". This is the desired behavior, and those warnings can be ignored.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Quality_Of_Life

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Quality_Of_Life

 

 

C# modlets
These modlets use custom C# code, so they are not EAC friendly. 

 

They will need to be installed on both the server and clients. See the individual README.md files for details.

 

Fortunately, in A20, installing modlets with custom C# code is as easy as installing an XML/XPath modlet. Just drop it into your Mods directory and go.

 

When installing or removing C# modlets, starting a new game is highly recommended.

 

Food Spoilage and Preserved Foods

 

A modlet that introduces food spoilage, and adds recipes for canned and preserved foods that don't spoil. It combines the "Food Spoilage" and "Preserved Foods" modlets from Alpha 19.


 

Spoiler

Features:

  • Most foods that are not canned or otherwise preserved can now spoil.
  • Prepared drinks (such as teas) can now spoil.
  • Battery-powered refrigerators and beverage coolers can be crafted. Recipes can be learned through schematics, or by purchasing the Advanced Engineering perk.
  • New canned/preserved foods:
    • IPA (India Pale Ale). Beer that takes more hops to craft and doesn't spoil. Recipe unlocked with the vanilla beer recipe.
    • Canned corn, mushrooms, potato, and pumpkin. Recipes unlocked by Master Chef tier 3 or by schematics.
    • Preserved blueberries. Recipe unlocked by Master Chef tier 2 or by the schematic.
    • "Shamway Fruit Pie" (in box, similar to Hostess or Drake's). Loot only, cannot be crafted. New for Alpha 20.
    • Smoked/cured meat. Recipe unlocked by Master Chef tier 2 or by the schematic. New for Alpha 20.
  • Advanced recipes (stews, pies, etc.) have additional recipes that use the new canned vegetables and preserved blueberries.
  • Spoilable foods are removed from (non-Twitch) loot groups, and replaced with canned/preserved equivalents.

 

See the README.md for details.

 

You must start a new game after installing this modlet! If you try to load an existing game, it will corrupt your game save.

 

It requires version 20.0.38.1922 of the 0-SCore modlet. Earlier versions will not work!

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Food_Spoilage

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Food_Spoilage

 

 

Mostly Dead

 

A modlet that implements the "mostly dead" character death style for 7D2D.
 

Spoiler

The idea is that when a player character dies, players respawn as an entirely new character, but they respawn into a (mostly) unchanged world. It can be modified for traditional "Dead is dead" or "Permadeath" gameplay.

 

For an explanation of the "mostly dead" play style, see my "manifesto" on these forums:

 

Features:

 

  • The player's inventory is deleted (the "Drop On Death" setting is forced to "Delete All").
  • Skill points are reset (not removed), and books that were read are forgotten.
  • Bedrolls and beds are no longer spawn points, so players do not spawn on them.
  • The player map is reset, including any saved waypoints.
  • Player quests are removed, and a quest is given that automatically rewards the player with the items they start with when starting a new game.
  • Player vehicles are destroyed.
  • The player's active land claim block is rendered inoperable.
  • The player's ACL (Access Control List - i.e. friends list) is cleared.
  • If the player hired any NPCs, those NPCs are dismissed. (Assumes SCore NPCs.) New for Alpha 20.

 

Major update: 3.0.0

 

While making changes to truly support "Permadeath" play styles, I found many, many things in the modlet that were either wrong, unbalanced, or just needed improvement. The result is a new major version of the modlet.

 

New features:

 

  • Can be modded through XML to support "Permadeath." I also created a separate modlet that makes these changes for you - see below.
  • Players restart as new characters at all levels, including level 1.
  • If the player did not complete the "Basic Survival" quests, they start over from scratch. (This is so players can still earn the skill points from completing those quests.)
  • If the player restarts before level 4, they will be given the "Whiteriver Citizen" quest so they can find a nearby trader.
  • If restarting at level 3 or lower, the player will be given the player's starting items, even if another mod or modlet has added starting items.
  • Restarting at medium and higher levels has been rebalanced.
  • Players are given bundles of items so they have matching armor sets, and their given ammo matches their given weapons. This includes new bow and crossbow bundles (which have custom icons and translations).

 

You must start a new game after updating this modlet to version 3.0.0! If you try to load an existing game, you will lose all progression and skill points.

 

These features can be customized via XML edits or XPath. See the README.md for details.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Mostly_Dead

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Mostly_Dead

 

 

Mostly Dead: Permadeath

 

This modlet makes the XML changes necessary to turn the Mostly Dead modlet into a "Permadeath" modlet. It is for people who do not want to make the XML edits themselves.

Spoiler

 

Features:

 

  • Skill points are reset and removed.
  • The player level is reset to level 1.
  • The player spawns with the starting items again, except the note from the Duke.
  • The player is given the "Basic Survival" quests again.
  • The player is given the "Newbie Coat" buff again.

 

All the other features from the Mostly Dead modlet remain unchanged.

 

You still need to install the Mostly Dead modlet. This modlet will not work by itself.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Mostly_Dead_Permadeath

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=khzmusik_Mostly_Dead_Permadeath

 

 

NPC Core modlets

 

POWERED_LOGO_HORIZONTAL_low.png.9ef56dd2

 

These are modlets that are designed to be used with the NPC Mod system. The NPCcore and Score modlets have custom assets and C# code, so they must be installed on both clients and servers, and EAC must be turned off.

 

A big thank you to Xyth, SphereII, and the entire community who helped make this happen!

 

NPC Packs

 

Zombie Pack for NPC Core

 

Adds new zombies.

 

Spoiler

image.thumb.jpeg.4c2ce7044fa782a59d5959e552d162a0.jpeg

 

A19.6_2021-09-18_01-24-01.thumb.jpg.afaae016490e4dab5a53f17ccf36e526.jpg

 

Adds these new zombies, which have their own models and assets (i.e. are not UMA):

 

  • a new burnt zombie

  • an older businessman zombie

  • an older businesswoman zombie

  • a skinny cowgirl zombie

  • a generic, skinny, female zombie

  • a female lumberjack zombie

  • a female office worker zombie

  • a female stripper zombie, similar to the original TFP designs (Warning! Nudity)

  • a male firefighter zombie

  • a generic, but skinny, male zombie

  • a short but stocky police woman zombie

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/1-khzmusik_Zombies

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=1-khzmusik_Zombies

 

 

Civilians Pack for NPC Core

 

Adds "Civilian" human NPCs to the game.

 

Spoiler

All of them are in the Whiteriver faction, and can be hired.

 

Every character can wield all supported NPC weapons.

 

All characters were created by khzmusik, using assets that are either free for re-use or CC-BY.

 

See the README.md file for details:
https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/blob/main/1-khzmusik_NPC_Civilians/README.md

 

The README.md file also shows the portraits of all the NPCs included with this pack.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/1-khzmusik_NPC_Civilians

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=1-khzmusik_NPC_Civilians

 

 

Whisperers Pack for NPC Core

 

Adds "Whisperer" human NPCs to the game.

 

Spoiler

spacer.png

 

The Whisperers are inspired by the group of the same name from The Walking Dead.
(This modlet is not in any way associated with The Walking Dead.)

 

Whisperers are not attacked by zombies, and do not attack zombies themselves. In order to make this happen, zombies now use faction-based targeting and damage rules. This may have unexpected results if used with other mods/modlets that alter factions

 

Every character can wield all supported NPC weapons.

 

All characters were created by khzmusik, using assets that are either free for re-use or CC-BY. It also uses the "dead face mask" asset provided by @Mumpfy - thank you!

 

The characters come in two flavors: "basic" and "advanced." The "basic" versions can be spawned into horde spawners, but cannot be interacted with or hired. The "advanced" versions cannot be spawned into hordes (the game will throw errors), but they can be interacted with and hired, provided your standing with the Whisperers faction is good enough. By default it is not; the "advanced" versions are meant to be used with mods/modlets that can dynamically change the player's relationship with factions.


I am assuming most players want the "basic" versions, so that is what spawns now. But this can be changed through XML, and there is commented-out code that will do so.

 

See the README.md file for details:

https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/blob/main/1-khzmusik_NPC_Whisperers/README.md

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/1-khzmusik_NPC_Whisperers

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=1-khzmusik_NPC_Whisperers

 

 

Rogues and Psychos Pack for NPC Core

 

Adds "Rogue" and "Psycho" human NPCs to the game.

 

Spoiler

Rogues:

Rogues.thumb.jpg.863577b461f25acee60c5cd341a0b4e8.jpg

 

Psychos:

Psychos.thumb.jpg.beacf91585c193d8503df3b32e5b5307.jpg

 

Most characters can wield all supported NPC weapons. The exception is the Psycho Brute - his his size and posture make him incompatible with the animations for certain weapons.

 

All characters were created by khzmusik, using assets that are either free for re-use or CC-BY.

 

The characters come in two flavors: "basic" and "advanced." The "basic" versions can be spawned into horde spawners, but cannot be interacted with or hired. The "advanced" versions cannot be spawned into hordes (the game will throw errors), but they can be interacted with and hired, provided your standing with the Bandits faction is good enough. By default it is not; the "advanced" versions are meant to be used with mods/modlets that can dynamically change the player's relationship with factions.

 

The "advanced" version also contains extra dialog options (if your faction standing is good enough to talk with them). These dialog options add personal lore for that character - they do not affect gameplay at all. What they reveal to you will change, depending upon your faction standing, and whether they are hired or not.


I am assuming most players want the "basic" versions, so that is what spawns now. But this can be changed through XML, and there is commented-out code that will do so.

 

See the README.md file for details:

https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/blob/main/1-khzmusik_NPC_Rogues_and_Psychos/README.md

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/1-khzmusik_NPC_Rogues_and_Psychos

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=1-khzmusik_NPC_Rogues_and_Psychos

 

 

NPC Behavior Modifications

 

Add Gamestage Progression for NPCs in POIs

 

This series of modlets seeks to re-balance entities spawned into NPC POIs, so that gamestage progression is restored.

 

 

Spoiler

In a recent update to the NPC Packs for NPC Core, all probabilities were removed from the entities which are spawned into the groups that are used by sleeper volumes in POIs.

 

This had the effect of entirely removing gamestage progression from NPC POIs. A player has an equal probability of encountering the same NPC at gamestage 400 as they do at gamestage 1. At all gamestages, they have an equal probability of encountering a "tough" NPC (say, one with an M60) as they do of encountering an "easy" NPC (say, one with a club).

 

Because there are numerous NPC packs, and there is no way for me to know which packs are installed, I created one modlet per NPC pack. My modlets are named after the NPC pack that they modify, except they start with a higher number (so they load later), and have a "khzmusik_Progression" suffix. The list also says explicitly which NPC Pack modlet they are designed to be used with. (Those other modlets must be downloaded and installed separately.)

 

Install whichever of my modlets corresponds to the NPC packs that you have installed.

 

For details, see the README.md file from the modlet that handles the NPC Core characters:

https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/blob/main/2-XNPCCore_khzmusik_Progression/README.md

 

Modlets for NPC Packs:

 


My other NPC Pack modlets are consistent with these modlets.

 

 

Human Faction Reputation and Quests

 

Players have a reputation (relationship value) with each NPC faction, which is affected by killing NPCs, or by doing faction-related quests.

 

Spoiler

Murder Affects Reputation

 

Players can damage and kill NPCs of any faction.

 

If you kill a human NPC, your relationship with that NPC's faction decreases. But, your relationships with other factions increases or decreases, depending upon the relationships between those factions and the faction of the NPC you killed.

 

Your change in reputation depends upon the specific NPC faction. For example, non-bandit factions don't care much if you kill bandits, and even other bandits don't care that much. On the other hand, killing a Whiteriver NPC will have much larger consequences.

 

NPCs will not initially attack if they are in a faction that does not "hate" the player. But if the player damages them, the NPCs will fight back, regardless of the player's reputation with their faction. They will only stop attacking the player if they are damaged by something else, if they lose sight of the player (for 15 real seconds - I think), or if the player kills them.

 

So be careful with your glancing blows, and don't be ashamed to run away!

 

Quests affecting reputations

 

Traders now give special quests that will improve the player's reputation with a faction. Quests can either go to human POIs, or not.

 

Quests that don't require human POIs

 

  • Prove yourself: prove yourself worthy by killing waves of zombies at a random location. This quest is given by a faction that initially dislikes or hates the player.
  • Snipe hunt: looks like a buried treasure quest, but is really a practical joke. Has terrible reward loot, but double the XP, and gives you a mocking note from the faction. It exists mainly to increase your standing with the faction that tricked you.

 

Quests that require human POIs

 

  • Defend: defend a human POI against waves of zombies. This quest is given by a faction that initially likes or is neutral to the player.
  • Steal: equivalent of a fetch or hidden cache quest. The faction giving the quest has been robbed by some other faction (or so they say), and you need to steal the stash back.
  • Murder: equivalent of a clear quest. The faction giving the quest has determined that the humans in another faction's POI do not deserve to live.

 

These quests are not enabled by default. There are not enough POIs at present to support these quests, but that will hopefully change in the future.

 

See the Technical Details section of the README for instructions about enabling this feature, and the POI requirements that you need to meet in order to support these quests.

 

Reset reputation on death

 

This is an optional buff that will reset the player's relationships with all factions upon death. It is meant to be used in "dead is dead" (or "mostly dead") play styles.

 

This feature is not enabled by default. See the Technical Details section of the README for instructions about enabling this feature.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/1-khzmusik_Human_Factions_Reputation_Quests

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=1-khzmusik_Human_Factions_Reputation_Quests

 

NPC Core: Enemies Fight Horde NPCs

 

This modlet allows vanilla enemy entities to fight those NPC Core characters that can be spawned into hordes.

 

AFIAK, only my Whisperers and Rogues and Psychos packs contain these characters, but there may be others that I don't know about.

 

Spoiler

NPC Core has a variety of entity class templates that NPC Pack authors can use for their characters. Some of those templates allow the NPCs to be spawned into hordes (wandering hordes or blood moon hordes). Those characters use a specific C# class that is different from the other NPC templates.

 

Unfortunately, by default, vanilla enemies (zombies, animals, etc.) will not fight those characters. They won't even defend themselves if those characters attack first.

 

This modlet fixes some of those issues.

 

If one of those NPC Core characters attacks a vanilla enemy, the vanilla enemy will fight back, damaging (and possibly killing) the character that attacked it.

Vanilla enemies will still not initially target those NPC Core characters. This is a limitation of the vanilla game.

 

See the README if you want a technical explanation.

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/0-XNPCCore_Enemies_Fight_Horde_NPCs

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=0-XNPCCore_Enemies_Fight_Horde_NPCs 

 

NPC Loot Bags

 

Sick of NPCs with weapons not dropping items that relate to those weapons? Do you want to take out an NPC with an M60 and have a chance to get their M60?

 

If so, then this modlet is for you.

 

Spoiler

Features:

 

  • Introduces weapon-specific loot bags for every supported weapon that an NPC can wield
  • Loot bags can drop the related weapon, ammo, or parts
  • Human loot bags also may drop food, drink, and/or medicine
  • Mech loot bags drop non-organic items (oil, pipes, etc.) with a high chance of robotic parts and a low chance of rare items like forged steel or engines
  • Ranged mech loot bags additionally drop ammo, and possibly handgun parts

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/3-XNPCCore_khzmusik_Loot_Bags

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=3-XNPCCore_khzmusik_Loot_Bags

 

 

Variable NPC Sleepers

 

This modlet changes the behavior of NPCs spawned into sleeper volumes in POIs (or other prefabs), so that they awake in a way that is more consistent with zombies.

 

Spoiler

By default, NPC Core NPCs are instantly awakened, and start wandering around, when they are spawned into sleeper volumes. They are spawned in when the player is a not-so-short distance away from the sleeper volume bounds (I believe it's 9 blocks/meters away). If you're a POI designer, and designing a "dungeon crawl" style POI with NPCs, this can make things difficult.


With these changes, NPCs behave differently according to the type of sleeper volume:

 

  • Passive (very uncommon - used mostly when the entities are "decoration"): Like zombies, NPCs do not wake up unless attacked.
  • Active (most common): NPCs fully wake up as soon as the player touches the sleeper volume, but are only aware of the player if the player is in their line of sight. They may wake up if the player attacks another entity in that sleeper volume, even if they do it from outside the bounds of the sleeper volume.
  • Attack (less common, used mainly near end loot or in "jump scare" situations): NPCs fully wake up as soon as they are spawned in, regardless of whether the player touched the sleeper volume at all. They become aware of the player as soon as the player is in their line of sight. (This is the default behavior of all NPCs without this modlet.)

 

Repo: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/2-khzmusik_variable_NPC_sleepers

Download: https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/archive/main/7d2d-a20-modlets-main.zip?path=2-khzmusik_variable_NPC_sleepers

 

You must have SCore version 20.5.177.1415 or higher. Get the latest version here:
https://gitlab.com/sphereii/SphereII-Mods/-/archive/master/SphereII-Mods-master.zip?path=0-SCore

 

This modlet is also meant to be a tutorial for using the related feature flags from SCore. If you are a mod author or POI designer who wants information on those flags,
then skip to the "Technical Details" section of the README:

https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/2-khzmusik_variable_NPC_sleepers#feature-flags-used

 

 

More modlets are coming. Stay tuned...

I am still in the process of porting over the A19 version of my modlets. It might not be possible to do this, and some modlets will be combined. I will update this thread when new A20 modlets are available. Please be patient!

Edited by khzmusik
Added new modlet (see edit history)
Link to comment
Share on other sites

On 1/25/2022 at 8:26 PM, ErrorNull said:

giggly physics? asking for a friend...

 

No, that requires Unity magic that I don't have. You have to set up the rig to do it (I use Mixamo for rigging, which doesn't rig the, um, correct areas). Also, I've been told that you have to pay for the physics code.

 

For now, you'll have to be satisfied with Big Momma.

Link to comment
Share on other sites

On 1/30/2022 at 2:28 AM, Realism51 said:

hye man, whats the deal with your flying UMA zombies? its not all that fun to be smacking them and have them launch unrealistically into outerspace

 

The short answer: Don't know for sure, but it happens with all UMA zombies.
 

The long answer: I think it has to do with how TFP originally created the Unity ragdoll for the UMA characters. When you do that, you're supposed to assign an overall weight to it. That weight is supposed to match what is in the XML files for the entity class. If it doesn't match, or if the ragdoll weight is really low (or non-existent), you get things like flying zombies.

 

That's not the only issue with UMA either. They don't have a Unity "Collider" object, so they don't interact with vehicles or electric fences.

 

TFP hasn't been using UMA for zombies for a very, very long time (before I started playing, in A16) so it's not surprising that there are issues. It's one of the main reasons I'm not going to do UMA zombies any more. Now that I know how to do some basic Unity stuff, I'll stick with that.

 

I passed my A18/A19 UMA zombies off to ErrorNull, since he works more with UMA zombies anyway.

Link to comment
Share on other sites

Food spoilage is back! 

 

For A20, I combined it with the A19 Preserved Foods modlet.

 

Note that you absolutely must start a new game when installing that modlet! It depends upon SCore, and if food spoilage is enabled, it reads and writes new data to the game save file.

Link to comment
Share on other sites

unknown.png

 

I am seeing the above error when running into the area of a trader. I believe it is caused by this mod? 

 

2022-02-09T17:49:47 290.931 INF Time: 4.39m FPS: 59.77 Heap: 3355.3MB Max: 3355.3MB Chunks: 224 CGO: 130 Ply: 1 Zom: 0 Ent: 5 (12) Items: 7 CO: 1 RSS: 6501.6MB
2022-02-09T17:50:15 318.873 INF Executing command 'xui close trader'
2022-02-09T17:50:17 320.925 INF Time: 4.89m FPS: 59.77 Heap: 3311.0MB Max: 3355.3MB Chunks: 227 CGO: 143 Ply: 1 Zom: 0 Ent: 4 (10) Items: 0 CO: 1 RSS: 6552.7MB
2022-02-09T17:50:22 326.477 INF Executing command 'xui close trader'
2022-02-09T17:50:47 350.955 INF Time: 5.39m FPS: 56.04 Heap: 2980.6MB Max: 3355.3MB Chunks: 229 CGO: 154 Ply: 1 Zom: 0 Ent: 5 (10) Items: 0 CO: 1 RSS: 6575.8MB
2022-02-09T17:50:48 352.089 INF Executing command 'xui close trader'
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
2022-02-09T17:51:17 380.971 INF Time: 5.89m FPS: 59.77 Heap: 3119.0MB Max: 3355.3MB Chunks: 229 CGO: 154 Ply: 1 Zom: 0 Ent: 6 (11) Items: 0 CO: 1 RSS: 6577.4MB
NullReferenceException: Object reference not set to an instance of an object
  at EntityTrader.PopulateQuestList () [0x00050] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at EntityTrader.OnUpdateLive () [0x00013] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at EntityAlive.OnUpdateEntity () [0x0001e] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at World.TickEntity (Entity e, System.Single _partialTicks) [0x00127] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at World.TickEntitiesSlice (System.Int32 count) [0x00037] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at World.TickEntitiesFlush () [0x0000c] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at GameManager.UpdateTick () [0x00033] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at GameManager.gmUpdate () [0x002f4] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at GameManager.Update () [0x00000] in <9b2a57aa6d1740f6935439cf700f87b7>:0
Link to comment
Share on other sites

35 minutes ago, TiTANSTORM said:

unknown.png

 

I am seeing the above error when running into the area of a trader. I believe it is caused by this mod? 

 

2022-02-09T17:49:47 290.931 INF Time: 4.39m FPS: 59.77 Heap: 3355.3MB Max: 3355.3MB Chunks: 224 CGO: 130 Ply: 1 Zom: 0 Ent: 5 (12) Items: 7 CO: 1 RSS: 6501.6MB
2022-02-09T17:50:15 318.873 INF Executing command 'xui close trader'
2022-02-09T17:50:17 320.925 INF Time: 4.89m FPS: 59.77 Heap: 3311.0MB Max: 3355.3MB Chunks: 227 CGO: 143 Ply: 1 Zom: 0 Ent: 4 (10) Items: 0 CO: 1 RSS: 6552.7MB
2022-02-09T17:50:22 326.477 INF Executing command 'xui close trader'
2022-02-09T17:50:47 350.955 INF Time: 5.39m FPS: 56.04 Heap: 2980.6MB Max: 3355.3MB Chunks: 229 CGO: 154 Ply: 1 Zom: 0 Ent: 5 (10) Items: 0 CO: 1 RSS: 6575.8MB
2022-02-09T17:50:48 352.089 INF Executing command 'xui close trader'
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
Calling Animator.GotoState on Synchronize layer
 
2022-02-09T17:51:17 380.971 INF Time: 5.89m FPS: 59.77 Heap: 3119.0MB Max: 3355.3MB Chunks: 229 CGO: 154 Ply: 1 Zom: 0 Ent: 6 (11) Items: 0 CO: 1 RSS: 6577.4MB
NullReferenceException: Object reference not set to an instance of an object
  at EntityTrader.PopulateQuestList () [0x00050] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at EntityTrader.OnUpdateLive () [0x00013] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at EntityAlive.OnUpdateEntity () [0x0001e] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at World.TickEntity (Entity e, System.Single _partialTicks) [0x00127] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at World.TickEntitiesSlice (System.Int32 count) [0x00037] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at World.TickEntitiesFlush () [0x0000c] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at GameManager.UpdateTick () [0x00033] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at GameManager.gmUpdate () [0x002f4] in <9b2a57aa6d1740f6935439cf700f87b7>:0
  at GameManager.Update () [0x00000] in <9b2a57aa6d1740f6935439cf700f87b7>:0

I've never seen that error before, and AFAIK none of my modlets do anything with traders. What modlets are installed?

Link to comment
Share on other sites

3 hours ago, TiTANSTORM said:

Ah! Sorry... I made the assumption as this mod has the XUi folder so I assumed it had something to do with a popup window, etc.

 

It is fairly extensive... trying to figure out what one in here it could be 😐

image.thumb.png.1708a3cd10dc43dbae667e0c33065834.png

 

It looks like the only one of my modlets that you have installed, is my "Quality of Life" modlet. That narrows it down.

 

The code that is crashing actually has nothing to do with XUi, it's a null reference error coming from the EntityTrader.PopulateQuestList method. I would look in your list to see which modlets do anything with custom traders, or add custom quest lists.

 

I did double-check that my QOL modlet did not cause any issues. I went to Trader Joel and interacted with him. I also went into debug mode and entered the "xui close trader" command to make sure. I did not encounter any errors at any time.

 

Sorry I couldn't be more help, hope you figure it out.

Link to comment
Share on other sites

khmusik,

 

Having a little trouble with your QoL mod for stackable dyes. It isnt allowing players to manually stack the dyes, but if you use the sort container button it will stack the dyes. Tried looking through your XML and the only flaw I found is in your items_modifiers.xml file you have an extra / on the start of the xpath append. Corrected that and seems to have no impact. Any other ideas?

 

I do have one other mod that also appends the items_modifiers.xml modDye content, but it is adding a property name "Group" to make the dyes craftable at work benches and chem stations so I didnt think that would affect yours? Its Ratberts Quality of Life mod if that helps.

Link to comment
Share on other sites

21 hours ago, usafmaverick said:

khmusik,

 

Having a little trouble with your QoL mod for stackable dyes. It isnt allowing players to manually stack the dyes, but if you use the sort container button it will stack the dyes. Tried looking through your XML and the only flaw I found is in your items_modifiers.xml file you have an extra / on the start of the xpath append. Corrected that and seems to have no impact. Any other ideas?

 

I do have one other mod that also appends the items_modifiers.xml modDye content, but it is adding a property name "Group" to make the dyes craftable at work benches and chem stations so I didnt think that would affect yours? Its Ratberts Quality of Life mod if that helps.

 

The two slashes at the start of the XPath are on purpose - that tells XPath to search for any descendants of the current node (in this case, the root node, so the whole XML document) for matching elements.

 

I just tested it, and I see the issue too, without any other modlets installed. It's very strange. If you shift-click to move the dyes into or out of containers, they stack in that case too. It's only when you try to drag the dye with your mouse.

 

I'll see if I can figure out what's going on. Once I can, I'll fix it, and announce it here.

Link to comment
Share on other sites

32 minutes ago, khzmusik said:

 

The two slashes at the start of the XPath are on purpose - that tells XPath to search for any descendants of the current node (in this case, the root node, so the whole XML document) for matching elements.

 

I just tested it, and I see the issue too, without any other modlets installed. It's very strange. If you shift-click to move the dyes into or out of containers, they stack in that case too. It's only when you try to drag the dye with your mouse.

 

I'll see if I can figure out what's going on. Once I can, I'll fix it, and announce it here.

Thanks for looking into it. I tried to copy your work to do the same thing for gun/vehicle/equipment mods and they wouldnt stack at all, so I dont know if the stack count is a property that they wont accept or if I did something wrong. I planned to play with them more today too.

Link to comment
Share on other sites

32 minutes ago, usafmaverick said:

Thanks for looking into it. I tried to copy your work to do the same thing for gun/vehicle/equipment mods and they wouldnt stack at all, so I dont know if the stack count is a property that they wont accept or if I did something wrong. I planned to play with them more today too.

 

So it looks like item mods should never be stackable, and not just for the weird "can't drag" reason.

 

If you put more than one copy of a mod into an item (like, 3 red dyes into a single clothing slot) then the "stack size" immediately becomes 1. You lose 2 dyes and can't get them back.

 

Since the whole idea of stacking item modifiers is severely bugged, I'm going to remove that entire feature from my modlet. It's a shame, but there really isn't another option. Perhaps someone can do it, but it would require a lot of C# code (making it both incompatible with EAC, and require client and server installs). That can't go into the QoL modlet, and it's not a feature that is important enough for me to spend lots of time on.

 

Thanks to @Haidrgna for pointing this out to me on Guppy's Discord.

Link to comment
Share on other sites

33 minutes ago, khzmusik said:

 

So it looks like item mods should never be stackable, and not just for the weird "can't drag" reason.

 

If you put more than one copy of a mod into an item (like, 3 red dyes into a single clothing slot) then the "stack size" immediately becomes 1. You lose 2 dyes and can't get them back.

 

Since the whole idea of stacking item modifiers is severely bugged, I'm going to remove that entire feature from my modlet. It's a shame, but there really isn't another option. Perhaps someone can do it, but it would require a lot of C# code (making it both incompatible with EAC, and require client and server installs). That can't go into the QoL modlet, and it's not a feature that is important enough for me to spend lots of time on.

 

Thanks to @Haidrgna for pointing this out to me on Guppy's Discord.

Sorry to bring to light a flaw in TFP's coding, hate to see you take down a mod that you put so much time into. I think its fair to leave it up and just put that disclaimer out there for people. I know I plan to leave it implemented on my server. Also now that you pointed it out, I did have one player comment that he did the same thing (stack multiple dyes in armor and lost some). Lessons learned but there are certainly plenty of other mods out there that come with disclaimers due to limitations of TFP coding. Theres only so much you can do when they lock down certain things behind DLL's.

Link to comment
Share on other sites

  • 2 weeks later...
On 3/5/2022 at 10:11 PM, dujinyuan said:

hey...eh..Can i ask you something?  I just want my water Spoilage too....Can i do that? what should i do....?

 

Sorry it took me so long to reply, I've been a bit MIA from these forums lately.

 

Yes, you can make water spoil. There are detailed instructions in the README for the modlet, which you can read online:

https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/tree/main/khzmusik_Food_Spoilage#consumable-item-xml

 

I'm not sure which water you're asking about. The regular jar of boiled water is the "drinkJarBoiledWater" item. The purified mineral water is the "drinkJarPureMineralWater" item. Whichever item you want to spoil (or both), add the necessary property tags to the XML.


You can copy what I did for the other drinks, from my items.xml file:
https://gitlab.com/karlgiesing/7d2d-a20-modlets/-/blob/main/khzmusik_Food_Spoilage/Config/items.xml#L94

Edited by khzmusik (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Just pushed an update to the Civilians Pack for NPC Core. They are only XML changes, and only affect spawning rates.

 

Now that NPC Core is offering a version of entitygroups.xml that does not contain any NPC Core entities, I could no longer assume they were there. That meant I could not use the technique of placing my own NPCs into entity groups by targeting those entities and matching their probabilities, which I was doing for the entity groups used by sleeper volume spawners.

 

I also removed some XML files that were used during development but were supposed to be removed from the final modlet. Whoops.

 

These are not critical changes. Unless you have POIs that use "friendly" or Whiteriver sleeper volumes, you won't even notice - and I don't think any such POIs exist, yet. I wanted to get these changes out there before people started making those POIs.

 

I am working on other things as well, so stay tuned.

Link to comment
Share on other sites

On 2/12/2022 at 3:57 PM, khzmusik said:

Since the whole idea of stacking item modifiers is severely bugged, I'm going to remove that entire feature from my modlet. It's a shame, but there really isn't another option. Perhaps someone can do it, but it would require a lot of C# code (making it both incompatible with EAC, and require client and server installs). That can't go into the QoL modlet, and it's not a feature that is important enough for me to spend lots of time on.

While dyes are not stackable for reasons, they could be bundled. This could be a workaround - if you wish to do so.

Link to comment
Share on other sites

11 hours ago, pottervogel said:

While dyes are not stackable for reasons, they could be bundled. This could be a workaround - if you wish to do so.

 

True, but I don't think it's really the same thing. Stackable dyes would be convenient so they would take up less space in your backpack. I can't see a case where creating bundles of dyes would be of any advantage with that.

 

A better option might be to just make dyes craftable, so you scrap them to paint (which does stack) and can later turn that paint back into whatever dye you want. But that goes beyond a simple quality of life change, and might be too "controversial" to put into that modlet.

 

But if everyone else thinks it's a good idea, I can do that.

Edited by khzmusik (see edit history)
Link to comment
Share on other sites

20 hours ago, khzmusik said:

 

True, but I don't think it's really the same thing. Stackable dyes would be convenient so they would take up less space in your backpack. I can't see a case where creating bundles of dyes would be of any advantage with that.

 

A better option might be to just make dyes craftable, so you scrap them to paint (which does stack) and can later turn that paint back into whatever dye you want. But that goes beyond a simple quality of life change, and might be too "controversial" to put into that modlet.

 

But if everyone else thinks it's a good idea, I can do that.

when the bundle is stackable and can be crafted with one dye it is almost the same as stackable dyes but without losing all dye per accident

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...