Jump to content

khzmusik

Members
  • Posts

    1,243
  • Joined

  • Last visited

  • Days Won

    7

Posts posted by khzmusik

  1. 45 minutes ago, Riamus said:

    Lol.  Honestly, one of the worst things a developer can do is release a buggy game instead of delaying the release to fix the bugs.  The negative reviews from a buggy release can seriously damage overall sales.

     

    Depends upon what you mean by "release." If the game were going gold, then you're right. I also agree with you about stable releases, though I could see arguments otherwise.

     

    But if we're talking about experimental releases, then I think releasing earlier is better, for two reasons: 1) there's more time for players to find bugs, and 2) it allows modders more time to update things before a stable release.

     

    The catch is that players expect a stable release soon after the first experimental release. An ideal time between experimental and stable could be a month or more. But I don't think that would fly.

  2. It's very hard to understand what is going on in that video, and it's not because of the video quality.

     

    From what I can tell, before the video recording was started, you hired three NPCs, then got on a motorcycle. At that point the NPCs shouldn't be visible any more (NPCs "disappear" while their player bosses are in vehicles, otherwise they are left behind and that causes issues).

     

    Next, you stop the motorcycle, and they re-appear next to you when you get off of it. You talk to them, but none of the NPCs have the dialog statements they would have if they were hired. They only have the statement to hire them, and the "Nevermind" statement.

     

    This implies they are no longer hired, yet they still disappear when you get on the motorcycle, and re-appear next to you when you get off of it, which they should only do if you are their boss.

     

    Is that the issue?

     

    If it is, then I have never encountered that issue, nor have I ever seen anyone else encounter that issue.

     

    I also don't know what that has to do with "patrolling." Perhaps that word was translated incorrectly. In earlier versions of Xyth's NPCs, there was an option to "patrol a route." That doesn't work in A20, and the "patrol" dialog option is commented out in the XML. It should not be used.

  3. On 10/8/2022 at 6:04 AM, Ganeshakw said:

    @khzmusik Bro, The kind of packs you are creating are attracting prople like me who has been playing 7dtd for a while now

     

    eg.human faction reputation and quests, variable NPC sleepers, psychos and rouges, whisperers and pretty much all the NPC related packs.

    The thing is, it gets really confusing now a days with lot of overhaul mods. All of them uses some or all of the NPC features. If a player like me wants to play all thesse packs (Related to NPC), it becomes really difficult to choose a mod. Thats why I asked you if all of these are there in the NPC mod or not.

     

    What do you suggest to players like us ?

     

     

     

    The NPC Mod itself is meant to be a kind of "base" for other modders to work off of. It's in a lot of things, so it isn't intended to be "opinionated" about how it's used. 

     

    If you're asking which mods of mine I recommend, then basically all of them. :) 

     

    Unfortunately the NPC faction quests probably aren't ready for prime time yet, but that's because there aren't enough POIs in A20 to support them. I am still working on the NPC POIs, since those also had to be redone for A20. (Others will eventually get involved - I've been talking with some of the Compo Pack folks about creating an NPC POI pack - but it looks like that won't happen until A21.) I am working on them a little bit every day though, so hopefully they'll be done "soon."

     

    If I can actually get all of them done before A21 drops, then I am planning to put out some kind of "mod pack" that has everything together and set up. That's a big "if" though.

     

    If you're asking how to get them into an overhaul - like Darkness Falls or Undead Legacy - then the answer is probably "you can't." Overhauls like that are not meant to be modded. If you want any of my NPCs to be in them, then you would be better off asking the creators of those overhauls, politely, if they could add them.

  4. 5 hours ago, MandyCMoore said:

    @xyth@sphereii@Darkstardragon@arramus@GanTheGrey@khzmusik@stallionsden May I have permission to use your NPCs/mods in a pack I am working on? I originally put it together for myself & my husband, but people who have been watching us play it have been asking for it so thought I would tweak it a little, add a list to credit everyone properly, & put it out. It will be called CMS World Restoration, & the whole point is to restore the world, build settlements, & add back in some of the best parts of A16. I just want everyone's permission before I include their work in it. Thanks!

     

    You are always free to use any of my modlets however you like. Credit is appreciated but not required.

     

    When your mod/pack is released, let me know and I'll check it out.

  5. I'm very pleased to announce a new NPC Pack:

     

    Rogues and Psychos Pack for NPC Core

     

    Rogues:

    Rogues.thumb.jpg.863577b461f25acee60c5cd341a0b4e8.jpg

     

    Psychos:

    Psychos.thumb.jpg.beacf91585c193d8503df3b32e5b5307.jpg

     

    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

     

    Further details are in the first post.

     

    Enjoy!

  6. On 10/6/2022 at 6:32 AM, Ganeshakw said:

    @khzmusik Bro, All the mods created by you and been mentioned in this thread, are they a part of Npcmod now ?

     

    Some are, but most are not. The main reason is because NPCs changed significantly in A20.

     

    For example, most NPCs are distributed in packs, not as part of NPC Core itself, and it is the responsibility of pack authors to adjust their characters how they like. Some of the changes in A19 (like removing the tracking icons) aren't necessary in A20. And some changes simply weren't wanted by the other people on the NPC Core team.

     

    However, the sleeper volumes for NPC POIs are in A20 NPC Core, and the core NPCs (baker, nurse, Harley) are added to them. This is so anyone with NPC Core can create POIs for NPCs, and users or overhaul authors can pick-and-choose which NPC packs to use.

     

    If you have a specific mod or feature in mind, then I can tell you if there's an A20 equivalent or not (or if it's needed).

     

    Though I left the NPC Core team, I am still working on my own NPCs in A20, and I have done some modlets that make adjustments to the A20 NPCs written by other people. You can read my A20 thread for details:

     

  7. On 10/1/2022 at 4:36 PM, Evil_Geoff said:

    The same bodies are used multiple times.  You might find 5 identical nurses, and two have names and you can hire, and three may not be hireable.  Or all 5 can be hired.  Or none of them can be hired.

    It's all random. 

     

    I don't think that's true of the NPC Core characters. Yes, there are different kinds of NPC Core templates (basic, advanced, blood moon), but the neutral NPCs (baker and nurse) are all hireable.


    Now, the soldiers are a different story. I assume we're talking about the 1-SoldierPack modlet by DarkstarDragon. That modlet can spawn both hireable versions of the characters (they start with "npc") and non-hireable versions (they start with "survivor").

     

    If you spawn them in using F6 then it's easy to get mixed up. But even if not, both varieties spawn into biomes, and the fact that one is hireable and the other is not is the only noticeable difference. Both use the same character models and weapons.

     

    On 9/24/2022 at 5:39 AM, Kutay said:
    I actually tried that, man. First I saw a nurse with a gun and the option to speak appeared.
    I rented it for 2700 and it came with me. Then I kicked him out of the group. I went to the soldier NPC.
    I was able to rent it, too, and I rented it. Then when I went to the nurse again, I couldn't hire her anymore.
    Two NPCs could be hired and I could only hire one. This is really weird.

     

     

    For what it's worth, I just fired up the game with NPC Core installed. I could hire both a nurse and a baker at the same time. When I dismissed the nurse (with the baker still hired), I could re-hire her.

     

    So there's probably something amiss with your particular setup. By any chance, did you add the NPCCore/SCore/SoldierPack/etc. modlets to an existing game? If so that's almost certainly the issue.

  8. 7 hours ago, doughphunghus said:

    I think for a19 @khzmusik made a "seasons" mod so there is some ability to tweak the weather by time/day and have it "stay" but i think he made a dll mod (c# mods were not supported then) and i believe it was updating the weather constantly (like every second) to override/reset the global weather to he what he wanted on that day/time.

     

    That's pretty close. In A19 I made a C# mod that set the global temperature according to a sine wave, where one cycle of the sine wave was a meteorological year (four seasons). Since the weather was mainly determined by the global temperature, the rest of it (rain, fog, etc.) pretty much just fell into place. (Also the update happened every frame update, not just every second.)

     

    But, the entire weather system was overhauled for A20, so none of the code in my mod could be updated.

     

    Also, one of the reasons I made that mod was to make survival harder the further you got into the game - it was meant to be combined with my "crop growth by weather" modlet, where certain crops wouldn't grow in certain temperatures (and thus not in certain seasons). Since TFP nerfed farming, and people generally think now that farming is too hard anyway, I didn't see much point to figuring out the weather system from scratch.

     

    If you have any C# experience, and want to try it yourself, the place to start is in the WeatherManager.GenerateWeatherServerFrameUpdate method.

     

    And, if you want to use my code as a basis for your own C# modlet, the source code is here: https://gitlab.com/karlgiesing/7d2d-a19-modlets/-/tree/master/khzmusik_Seasonal_Weather_DMT

  9. On 9/27/2022 at 5:31 AM, sandpaper600 said:

    Assuming I can find older versions, would I also need older versions of the packs as well?

     

    You probably do not need older versions of the packs. The new trigger is used in buffs.xml, and I don't think there are any NPC Packs that modify buffs. (Or not those buffs, anyway.)

     

    On 9/26/2022 at 6:36 PM, magejosh said:

    Pretty sure the baker default character that spawns is the nonhireable survivor type.

     

    Maybe he used to be, but I looked in the latest NPC Core, and the Baker descends from the "npcAdvanced" templates which should be hireable.

  10. On 9/21/2022 at 11:42 AM, Ru Melin said:

     

    Are the 1-khzmusik_Civilians by Khzmusik mod to hire too?

     

    You should be able to hire my civilians. If you can't, that is a bug. But, if you also can't hire the Baker character, that also might be a bug.

     

    When you try to hire the Baker, what exactly happens? If you don't have enough Dukes, you'll go through the whole hiring process (open the "Hire" dialog, click confirm) but at the end it will show a tooltip message saying "You cannot afford me. I want (X) Dukes." It's easy to miss the tooltip message.

  11. It's probably not possible. The drone has a "Class" property of "EntityDrone" and traders have a "Class" property of "EntityTrader". These values correspond to C# types that determine their behavior, and they're not even close to interchangeable.

  12. On 9/19/2022 at 6:54 PM, Telric said:

    Another option, specifically to deal with sleeper spawns, would be to use a /set on the actual block of the spawner to turn it into air instead of a spawner block. That would basically remove all sleeper spawn points with one little line of code.

    Untested, but this should do what i'm talking about.

    <set xpath="/blocks/block[contains(@name, sleeper)]">
    	<property name="Tags" value="air"/>
    	<property name="Material" value="Mair"/>
    	<property name="Shape" value="Invisible"/>
    	<property name="Texture" value="250"/>
    	<property name="FilterTags" value="MC_outdoor,SC_terrain"/>
    	<property name="SortOrder1" value="d0j0"/>
    	<property name="SortOrder2" value="0050"/>
    </set>

     

     

    If this does what I think it does, then it would effectively remove spawning of anything inside a POI, whether it's a zombie or not. The world would be full of very empty buildings.

     

    I think a better idea would be to replace the zombies with the special "none" entity:

     

    <set xpath="//entitygroup/entity[starts-with(@name,'zombie')]/@name">none</set>

     

    You should only do this after you replace any zombies with other entities that you think are OK, like animals or human NPCs.

     

    But, there may be "gotchas." I know that if there are no entities in an entity group, the game will throw errors, but I don't know about only having "none" entities. Also, there are notes in the entityclasses.xml files about not having "none" be the first entity in the entity group, because that determines whether the entity group is an "enemy group" or not. (See the "EnemyAnimalsDesert" entity group.)

     

    Incidentally - if you are replacing zombies in sleeper volumes with human NPCs, then you might be interested in a modlet I wrote called "Variable NPC Sleepers."

     

    Assuming you're using NPCs that are based on the 0-XNPCCore modlet, it adjusts their behavior so that they behave more like vanilla zombies. If you don't use that modlet, then by default they become fully active when they spawn in, and end up wandering all over the place - this is especially bad if you accept "clear" missions from traders. The modlet is part of my thread here:

    https://community.7daystodie.com/topic/27333-a20-khzmusiks-modlets/

     

    Also, if you are substituting zombies with human NPCs, keep in mind that most human NPCs can't be spawned into hordes (wandering hordes or blood moon hordes). The entities in hordes are required to descend from a specific C# class, and most human NPCs don't, because that class has limited functionality. (My Whisperers entities are exceptions, but you probably don't want those since they look like zombies.) I'm in the process of making more enemy human NPCs right now, and I will try to make those also able to be spawned into hordes.

  13. On 9/1/2022 at 3:12 AM, v3lt3r said:

    I would like to set up gaining experience not for killing a zombie, but the amount of damage done to it. So for example, 100 damage = 5 experience and also add 5 coins to the player's pocket immediately. But I understand that here it is necessary to work not through xml, but with the help of C#

     

    Maybe ?

     

    You should not ask questions like this in this thread. It is better if you create your own thread in the "Discussion and Requests" forum. But to sort of answer your question, yes, that's going to need C# programming, and it probably wouldn't be simple.

  14. On 9/13/2022 at 8:01 PM, Kalnazzar said:

    That last part confused me lol. Kinda new to this ok I am working on a total re-haul mode as I learn new things right now, I just have a bunch of new recipes and Items because that is pretty much all I know how to MOD currently I am a visual learner so I have to see something to understand how to do it myself and I can't find videos on how to MOD this part or terrain. But to answer your question the best I can I have tried this one and I also copied and pasted the original perk and just changed the part's he had changed and added. Both kept popping up yellow test saying it could not remove 'perkLivingOffTheLand because there was already a key with that name. But no, it's not its own MOD it has other stuff I edited which all work I use them on my own server, and this is the only thing I can't seem to get to work. At first, I thought maybe it was seedHarvest maybe that's not the code/command the game registers to harvest a seed but then I read the yellow text and it said it couldn't remove the original perk code.  So, my question is since I am new what do you mean by ""with a ModInfo.xml at the same level as the Config folder"" I have a Progression.xml in my config folder along with Item's and recipes, and quest. 

     

    I believe Cranberry Monster wants to double-check that you are using this code in a modlet, and that the modlet is properly organized.

     

    This code cannot go directly into the game's config files.

     

    The "<remove..." and "<append..." tags are XPath commands, not configuration XML. The game only recognizes XPath if it is inside a modlet, in that modlet's "Config" folder, in a file whose name matches the name of a file within the game's "Config" folder. (EDIT: the filenames must match exactly, so "Progression.xml" won't match "progression.xml".) Also, the modlet won't work unless there is a ModInfo.xml file inside the root folder for that modlet.

     

    If all that is true, then I'm not sure what to tell you. The code you posted above looks like it should not produce errors.

     

    Whether it will do what you want, I cannot say. I searched the game's XML files and could not find a "seedHarvest" string anywhere. Getting a seed seems to be determined by the "Destroy" drop event in the crop's block, and that does not have any tags.

  15. 12 minutes ago, Prydonian said:

    It'd be great if they could take the gloss sheen off the older carpet textures.  Oh, and dark, polished wood!  #Mahogany


    What I think would be cool is if you could specify a "base color" of a texture. That would get rid of some of the textures ("orange metal" or "red concrete") and offer a lot more flexibility.

     

    Of course, the real issue is space. There are only so many bits in a block, and if you add even two bits to store the index of a color map, that's two less bits to store the index of the texture map, meaning four less textures would be available. So who knows if that's worth it.

     

    The ideal solution would be to simply use more bits per block, but I'm guessing they're using a standard bit size (like a ushort), so moving up to the next bit size (like a uint) would double the bits per block. The map itself would take up four times the amount of memory it does now, as would any code that dealt with map chunks. So I understand why they won't do that.

  16. 4 minutes ago, ErrorNull said:

    i cannot argue with that logic, and it makes me sad.

     

    i haven't had the time to try yet, but i was going to experiment with using buffs and some of those twitch integration code to spawn zombies and kinda 'fake' some sort of wandering horde spawning that uses cvars or buffs to add in zombie difficulty progression. have you heard anyone trying that angle yet?

     

    I have not. If it works I'm going to steal it. :)

  17. 1 hour ago, ErrorNull said:

    @khzmusik ok nice. that clarifies a good deal.

     

    also since we are working within the context of NPCMod which has its feelers into the lower level code, have you heard of a way to remove the limitation the wandering hordes having of just 50 gamestage levels max? apparently the spawning mechanic for wandering horde simply loops back to gamestage1 entities when players rise above gamestage 50.

     

    Unfortunately I have not heard of any way to get rid of that. It annoys me too, and we're not the only ones. I can do a deeper dive into the C# code, but since it annoys a whole lot of people, if there was a solution it probably would have been published already.

  18. 22 minutes ago, ErrorNull said:

    ah ok. that's good to know. Yes I have heavily customized the entitygroups that will spawn within the wandering horde spawners to showcase my various zombie theme groups.

     

    with your Whisperers, what theme or spawning pattern were you looking to maintain for the wandering horde? I will try my best to maintain your intentions while merging with my wandering horde groupings. will likely need to remove some existing groups and shift some around to accommodate, which i don't mind. below is how the wandering horde is modified per gamestages.xml.

     

    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='01']/spawn/@num">10</set>	<!-- Businessmen / businesswomen -->	
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='02']/spawn/@num">10</set>	<!-- Farmers -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='03']/spawn/@num">04</set>	<!-- Coyotes (from vanilla EnemyAnimalsCoyote group) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='04']/spawn/@num">08</set>	<!-- Feral Businessmen / businesswomen -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='05']/spawn/@num">04</set>	<!-- Zombie Dogs (from vanilla ZombieDogGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='06']/spawn/@num">08</set>	<!-- Feral Farmers -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='07']/spawn/@num">08</set>	<!-- Feral Hazmats -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='08']/spawn/@num">05</set>	<!-- Vultures (from vanilla VultureGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='09']/spawn/@num">10</set>	<!-- Zombie Workers (utility and janitor zombies) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='10']/spawn/@num">10</set>	<!-- Crazies (half nakeds and hobos) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='11']/spawn/@num">06</set>	<!-- Camos (those grass/bushmen) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='12']/spawn/@num">03</set>	<!-- Wolves (from vanilla WolfGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='13']/spawn/@num">08</set>	<!-- Feral Zombie Workers (utility and janitor zombies) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='14']/spawn/@num">08</set>	<!-- Feral Crazies (half nakeds and hobos) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='15']/spawn/@num">10</set>	<!-- Biker Bar Zombies (from vanilla ZombieBikerBarGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='16']/spawn/@num">06</set>	<!-- Feral Camos (those grass/bushmen) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='17']/spawn/@num">10</set>	<!-- Punks -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='18']/spawn/@num">10</set>	<!-- KHz zombies -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='19']/spawn/@num">10</set>	<!-- Fatasses -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='20']/spawn/@num">06</set>	<!-- Zombie Dogs (from vanilla ZombieDogGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='21']/spawn/@num">08</set>	<!-- Feral Punks -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='22']/spawn/@num">08</set>	<!-- Feral KHz zombies -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='23']/spawn/@num">08</set>	<!-- Feral Cowboys -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='24']/spawn/@num">10</set>	<!-- Old Western zombies (from vanilla ZombieGhostTownGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='25']/spawn/@num">10</set>	<!-- Spider zombies -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='26']/spawn/@num">10</set>	<!-- Athletes (footballers and female joggers) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='27']/spawn/@num">06</set>	<!-- Vultures (from vanilla VultureGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='28']/spawn/@num">10</set>	<!-- Strippers -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='29']/spawn/@num">08</set>	<!-- Feral Fatasses -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='30']/spawn/@num">08</set>	<!-- Feral Athletes (footballers and female joggers) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='31']/spawn/@num">06</set>	<!-- Feral Bikers -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='32']/spawn/@num">08</set>	<!-- Miners -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='33']/spawn/@num">06</set>	<!-- Lumberjacks -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='34']/spawn/@num">07</set>	<!-- Zombie Dogs (from vanilla ZombieDogGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='35']/spawn/@num">10</set>	<!-- Military (soldiers, swat, and stealth zombies) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='36']/spawn/@num">02</set>	<!-- Cops (just the vanilla fat cop for now) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='37']/spawn/@num">06</set>	<!-- Feral Miners -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='38']/spawn/@num">05</set>	<!-- Zombie Dogs and Bears (from vanilla ZombieAnimalsGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='39']/spawn/@num">06</set>	<!-- Feral Lumberjacks -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='40']/spawn/@num">08</set>	<!-- Feral Spiders zombies -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='41']/spawn/@num">05</set>	<!-- Wolf and Direwold (from vanilla WolfPack) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='42']/spawn/@num">08</set>	<!-- LabCreatures -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='43']/spawn/@num">02</set>	<!-- Giants -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='44']/spawn/@num">08</set>	<!-- Feral Soldiers (modified vanilla ZombieSoldierGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='45']/spawn/@num">20</set>	<!-- Goblins -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='46']/spawn/@num">08</set>	<!-- Stronger LabCreatures -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='47']/spawn/@num">08</set>	<!-- Vultures (from vanilla VultureGroup) -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='48']/spawn/@num">04</set>	<!-- Feral Fat Cops -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='49']/spawn/@num">10</set>	<!-- Hazmat zombies -->
    	<set xpath="/gamestages/spawner[@name='WanderingHorde']/gamestage[@stage='50']/spawn/@num">02</set>	<!-- Zombie Bears (from vanilla ZombieBearsGroup) -->

     

    The wilderness biome spawning is the only other area that is also heavily customized. So in regards to the wilderness biomes, let me know if there are certain considerations i know in order to mirror your spawning intentions as closely as i can for the Whisperers. below are the custom entitygroups groups that any zombies that want to be compatible with enZombies need to fall within:

     

    PineforestZombiesDay

    PineforestZombiesDayCity

    PineforestZombiesDayDowntown

    PineforestAnimalsAggroDay

    PineforestAnimalsGameDay

    PineforestZombiesNight

    PineforestZombiesNightCity

    PineforestZombiesNightDowntown

    PineforestAnimalsAggroNight

    PineforestAnimalsGameNight

     

    DesertZombiesDay

    DesertZombiesDayCity

    DesertZombiesDayDowntown

    DesertAnimalsAggroDay

    DesertAnimalsGameDay

    DesertZombiesNight

    DesertZombiesNightCity

    DesertZombiesNightDowntown

    DesertAnimalsAggroNight

    DesertAnimalsGameNight

     

    SnowZombiesDay

    SnowZombiesDayCity

    SnowZombiesDayDowntown

    SnowAnimalsAggroDay

    SnowAnimalsGameDay

    SnowZombiesNight

    SnowZombiesNightCity

    SnowZombiesNightDowntown

    SnowAnimalsAggroNight

    SnowAnimalsGameNight

     

    BurntZombiesDay

    BurntZombiesDayCity

    BurntZombiesDayDowntown

    BurntAnimalsAggroDay

    BurntAnimalsGameDay

    BurntZombiesNight

    BurntZombiesNightCity

    BurntZombiesNightDowntown

    BurntAnimalsAggroNight

    BurntAnimalsGameNight

     

    WastelandZombiesDay

    WastelandZombiesDayCity

    WastelandZombiesDayDowntown

    WastelandAnimalsAggroDay

    WastelandZombiesNight

    WastelandZombiesNightCity

    WastelandZombiesNightDowntown

    WastelandAnimalsAggroNight

     

    the above entitygroups are then called upon by spawning.xml in the following way. this is just example for the pine forest biome, but the xml follows similar template for the remaining biomes:

     

    <set xpath="/spawning/biome[@name='pine_forest']/spawn/@maxcount">0</set>
    	<append xpath="/spawning/biome[@name='pine_forest']">
    		<spawn maxcount="2" respawndelay="1.00"	time="Day" 	entitygroup="PineforestZombiesDay" 			notags="commercial,industrial,downtown" />
    		<spawn maxcount="3" respawndelay="0.50"	time="Day" 	entitygroup="PineforestZombiesDayCity" 			tags="commercial,industrial" notags="downtown" />
    		<spawn maxcount="4" respawndelay="0.25"	time="Day" 	entitygroup="PineforestZombiesDayDowntown" 		tags="downtown" />
    		<spawn maxcount="1" respawndelay="2.00"	time="Day" 	entitygroup="PineforestAnimalsAggroDay" 		spawnDeadChance="0" />
    		<spawn maxcount="1" respawndelay="1.00"	time="Day" 	entitygroup="PineforestAnimalsGameDay" 			spawnDeadChance="0" />
    		<spawn maxcount="3" respawndelay="0.50"	time="Night" 	entitygroup="PineforestZombiesNight" 			notags="commercial,industrial,downtown" />
    		<spawn maxcount="4" respawndelay="0.25"	time="Night" 	entitygroup="PineforestZombiesNightCity" 		tags="commercial,industrial" notags="downtown" />
    		<spawn maxcount="5" respawndelay="0.10"	time="Night" 	entitygroup="PineforestZombiesNightDowntown" 	tags="downtown" />
    		<spawn maxcount="1" respawndelay="1.00"	time="Night" 	entitygroup="PineforestAnimalsAggroNight" 		spawnDeadChance="0" />
    		<spawn maxcount="1" respawndelay="1.00"	time="Night" 	entitygroup="PineforestAnimalsGameNight" 		spawnDeadChance="0" />
    	</append>

     

     

    There are a lot of groups there, so I think you're probably the better judge of which Whisperers belong in which groups. I can make some recommendations though.

     

    In my opinion:

    • There are three Whisperer characters that would be at home in snow biomes: Whisperer Female Lumberjack, Whisperer Male Lumberjack, and Whisperer Male Young. (I think I already have those spawned into the vanilla snow biome.)
    • Otherwise, they probably work better in forest biomes. Their threat is in stealth, and it's more difficult to be stealthy without trees to hide behind.
    • They probably would not work well with any armored or special zombie types, or animal zombies. So probably don't spawn them with vultures, soldiers, football players, etc. On the other hand, "crazies" or "camos" would probably work.
    • If they're wandering with zombies (and not in their POIs) then they should use relatively silent weapons - meaning melee weapons (especially knives) or bows, and no firearms.
    • In my own headcannon, they're religious fanatics, so any zombie groups with religious overtones (zombie priests or whatever) would be especially appropriate for Whisperers.

    Whichever you choose, it's probably worth it to just copy what I have for the "wanderingHorde" or "FwanderingHorde" groups in the modlet (and use whichever gamestage number you want). Those probabilities take into account things like weapon difficulty or health points, and you probably don't want to recalculate all that stuff. There is a Node.js script in the Scripts folder if you are in the mood to modify that and use it for your own groups, but copying what's there is probably the better option.

     

    Hope that helps.

     

  19. First, this should be moved to the "Discussion and Requests" forum. The "Mods" forum is for announcing and discussing actual mods that are released to the public.

     

    But to answer your question - AFAIK no mod or modlet exists to do this, because I don't know anyone who plays 7D2D and doesn't like zombies.

     

    However, it's possible to write a modlet yourself that does it (or at least goes most of the way there - see below). What you want to do is to substitute all the zombies with animals. Which animals go with what zombies is up to you of course.

     

    The file you want to modify is entitygroups.xml. That controls which entities spawn. Keep in mind they spawn in many different contexts -  biome spawns ("in the wild"), in wandering hordes, in blood moon hordes, in POIs, etc. I'm not sure which contexts you're talking about, or if you're talking about all of them.

     

    In general, you want to make a modlet that uses XPath to substitute each zombie for some animal equivalent. You can also use XPath to specify which entity groups you're targeting, and since they have predictable names, you can target the different "contexts" by entity group name.

     

    As a simple example, this targets biome spawn groups for zombies, and if that group spawns a zombie cop, it will spawn a zombie bear instead:

     

    <set xpath="//entitygroup[starts-with(@name, 'Zombies')]/entity[@name='zombieFatCop']/@name">animalBear</set>

     

    But there are limitations. According to comments in that file, "Bears/Animals aren't controllable by the BloodMoon horde system until the animal code is re-factored." I think I know what they're talking about, and if so, that isn't just the blood moon horde system, it's also wandering hordes.

     

    So it may not be entirely possible to substitute all zombies with animals. But it will get you at least partway there.

     

    Try it and see. Good luck!

  20. 17 hours ago, Nonesuch77 said:

    @ErrorNull there's at least one add-on by @khzmusik that adds Whisperer NPCs to NPCMod, but the only place I can find it is in the Mod Launcher (doesn't show up on his GitHub, but I'm not very good with Git so...). There's a few patches for NPCMod as well that add things like Loot Bags and progression/factions for the NPCs, but I don't think those should need any additional work. 

     

    The reason you can't find them on GitHub is because my modlets are all on GitLab. (Same idea, different service.) Here's the one for the Whisperers:

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

     

    For the most part I think you're right, my modlets and EN's probably don't overlap. But ironically, the one that might be an exception is the Whisperers modlet. That's because the Whisperers (unlike most human NPCs) can spawn into hordes, and I added them to the wandering horde groups.

     

    @ErrorNull I don't know if you changed the wandering horde entity groups or not, but if you did, then that's something you will have to consider with the Whisperers. Also - I haven't actually looked at EN zombies for a while, but if you like I can help you add my NPC packs to your updated biome spawn groups. Let me know.

  21. 15 hours ago, Souhank said:

    Hello khzmusiks! 👋
    Omg you did the factions and quests mod a month ago you are amazing probably one of the best mods in 7 days.

    Have you thought about uploading the mod to nexus to get more feedback? 

     

    Thanks! Though, to make sure you know, the quests that go to POIs aren't enabled, because there aren't enough POIs to support them. That's what I'm working on now, in fact.

     

    In the past I stayed away from Nexus, for a couple reasons - the users aren't used to how 7D2D mods work, they'd try to use the Nexus mod launcher which is iffy on 7D2D support (it didn't support Harmony/C# mods), it would be splitting my time between different platforms, etc. But I don't know how valid those reasons are with A20, since you can now install C# mods the same as XPath/XML mods.

     

    So, maybe I should look into that again, when I have time.

     

    EDIT: I just remembered one reason I don't use it right now. A whole lot of my modlets depend upon other modlets to work (particularly SCore and/or NPCCore). Those aren't on Nexus, so in order to use any of those modlets, people would have to come to these forums anyway.

  22. 6 hours ago, Janarah said:

    on the seasonal weather, is actual new weather added or can it be added, i.e. thunder storms, blizzards, torrential down pours, possible rad storms, etc? Which bring to my mind the question of if the sky box can be changed with the varying weathers to something custom?

    I'd like to add in multiple things along the above lines once I figure it all out. 

     

    Since you're in the A19 thread, I guess you're asking about how it worked in Alpha 19?

     

    In A19, there was global weather, and a global temperature. That global temperature was modified by biome (so for example it would always be 20 degrees hotter in the desert biome). The weather in each biome had a complex calculation (number of days without rain, fog, etc.) but it was all dependent on the global temperature.

     

    All my seasonal weather mod did, was set the global temperature according to the number of in-game days that had passed. It used a sine wave, where the upper peak was the summer, and the lower peak was the winter. A seasonal year was one cycle of that sine wave.

     

    I didn't do much more than that. The biome calculations for fog, rain, snow, etc. basically took care of themselves.

     

    All of this changed in A20. In that update the entire weather system was rewritten. There is no more global temperature, and each biome's weather is independent of other biomes. For that reason I can't update the seasonal weather modlet.

     

    That's most of what I know. Once I knew that I couldn't update my modlet, I didn't look very closely at the new weather system to see how it could be modded.

     

    If you want to research it yourself, the class is called WeatherManager in the game's C# code. You'll have to decompile assembly-csharp.dll to see it.

×
×
  • Create New...