Jump to content

Remove vultures from desert & wasteland


Krougal

Recommended Posts

Am I doing this right? I'm not looking to remove all vultures from the game (at the moment) just the ones that spawn constantly in desert & wasteland biome and make driving through them a constant hassle.

 

<Krougal>

 	<set xpath="/entitygroups/EnemyAnimalsDesert[@name='animalZombieVulture']/*/@prob">0</set>
 	<set xpath="/entitygroups/EnemyAnimalsWasteland[@name='animalZombieVulture']/*/@prob">0</set>
 	<set xpath="/entitygroups/ZombiesWastelandNightNoBears[@name='animalZombieVulture']/*/@prob">0</set>
 	<set xpath="/entitygroups/ZombiesWastelandNightNoBears[@name='animalZombieVultureRadiated']/*/@prob">0</set>	
	<set xpath="/entitygroups/ZombiesWastelandNight2[@name='animalZombieVulture']/*/@prob">0</set>
	<set xpath="/entitygroups/ZombiesWastelandNight2[@name='animalZombieVultureRadiated']/*/@prob">0</set>

</Krougal>

 

The groups being modded.

 

Spoiler
	<entitygroup name="EnemyAnimalsDesert">
		<entity name="animalCoyote" prob="30"/>
		<entity name="animalZombieVulture" prob="20"/>
		<entity name="animalSnake" prob="10"/>
		<entity name="none" prob="40"/><!-- must not be first since first name determines if enemy group -->
	</entitygroup>

	<entitygroup name="EnemyAnimalsWasteland" >
		<entity name="animalSnake" prob="20"/>
		<entity name="animalZombieVulture" prob="30"/>
		<entity name="animalZombieDog" prob="30"/>
		<entity name="animalZombieBear" prob="20"/>
	</entitygroup>
	
	<entitygroup name="ZombiesWastelandNightNoBears">
		<!-- Bears/Animals aren't controllable by the BloodMoon horde system until the animal code is re-factored. -->
		<entity name="zombieSpider"/>
		<entity name="zombieBoe"/>
		<entity name="zombieJoe"/>
		<entity name="zombieSteve"/>
		<entity name="zombieTomClark"/>
		<entity name="zombieMoe"/>
		<entity name="zombieYo"/>
		<entity name="zombieArlene"/>
		<entity name="zombieDarlene"/>
		<entity name="zombieMarlene"/>
		<entity name="zombieNurse"/>
		<entity name="animalZombieDog"/>
		<entity name="zombieSteveCrawler"/>
		<entity name="zombieFatCop"/>
		<entity name="zombieBurnt"/>
		<entity name="zombieWightFeral"/>
		<entity name="animalZombieVulture" prob="0.6"/>
		<entity name="animalZombieVultureRadiated"  prob="0.4"/>
		<entity name="zombieMaleHazmat" prob="0.2"/>
		<entity name="zombieFatHawaiian"/>
	</entitygroup>

	<entitygroup name="ZombiesWastelandNight2">
		<entity name="zombieSpider"/>
		<entity name="zombieBoe" prob="0.05"/>
		<entity name="zombieJoe" prob="0.05"/>
		<entity name="zombieSteve" prob="0.05"/>
		<entity name="zombieTomClark" prob="0.05"/>
		<entity name="zombieMoe" prob="0.05"/>
		<entity name="zombieYo" prob="0.05"/>
		<entity name="zombieArlene"/>
		<entity name="zombieDarlene"/>
		<entity name="zombieMarlene"/>
		<entity name="zombieNurse"/>
		<entity name="animalZombieDog" prob="0.15"/>
		<entity name="zombieSteveCrawler" prob="0.05"/>
		<entity name="zombieFatCop" prob="0.15"/>
		<entity name="zombieBurnt" prob="0.07"/>
		<entity name="animalZombieBear" prob="0.1"/>
		<entity name="zombieWightFeral" prob="0.1"/>
		<entity name="animalZombieVulture" prob="0.6"/>
		<entity name="animalZombieVultureRadiated"  prob="0.4"/>
		<entity name="zombieFatHawaiian"/>
	</entitygroup>

 

Although this doesn't seem right since it would just replace the vultures with something else, and it seems like they are dedicated vulture spawns. Am I looking at the wrong files for what I am trying to accomplish?

 

Link to comment
Share on other sites

Not an expert, but changing the probability to 0 should eliminate the random spawns in those areas for vultures.   In the group EnemyAnimalsDesert, the chances of the vultures spawning are 20 out of 100 (30+20+10+40).  If you code your changes right, it should be 0 out of 80 (30+0+10+40).  However, this won't remove POI spawned vultures as they are handled differently.  You could also just remove those entities from the lists altogether...

 

<remove xpath="/entitygroups/entitygroup[@name='EnemyAnimalsDesert']/entity[@name='animalZombieVulture']"/>

 

Also see how I coded it, I am not sure your code will direct it to the right location

 

Should be

 

<set xpath="/entitygroups/entitygroup[@name='EnemyAnimalsDesert']/entity[@name='animalZombieVulture']/@prob">0</set>

 

Compared to yours:

<set xpath="/entitygroups/EnemyAnimalsDesert[@name='animalZombieVulture']/*/@prob">0</set>
Link to comment
Share on other sites

20 minutes ago, BFT2020 said:

Not an expert, but changing the probability to 0 should eliminate the random spawns in those areas for vultures.   In the group EnemyAnimalsDesert, the chances of the vultures spawning are 20 out of 100 (30+20+10+40).  If you code your changes right, it should be 0 out of 80 (30+0+10+40).  However, this won't remove POI spawned vultures as they are handled differently.  You could also just remove those entities from the lists altogether...

 

<remove xpath="/entitygroups/entitygroup[@name='EnemyAnimalsDesert']/entity[@name='animalZombieVulture']"/>

 

Also see how I coded it, I am not sure your code will direct it to the right location

 

Should be

 

<set xpath="/entitygroups/entitygroup[@name='EnemyAnimalsDesert']/entity[@name='animalZombieVulture']/@prob">0</set>

 

Compared to yours:

<set xpath="/entitygroups/EnemyAnimalsDesert[@name='animalZombieVulture']/*/@prob">0</set>

Thanks! Even with the tutorials the xpath still has a bit of a learning curve without a clear example of what you are trying to do.

I intentionally left the POI and horde vultures. The POI vultures at least are in predictable places.

Although I may remove the horde ones because they are fairly annoying too.

 

I'm still not sure if this is the best way about it. I probably need to lower the spawn chance for the affected groups as well, because I'm trading 1 annoyance for another (It will be extra bears and dogs in place of vultures which can be almost as annoying)

 

Link to comment
Share on other sites

So I remember there used to be an "invisibleanimal" which was used to further reduce a spawn chance. It would have been useful here but I can't find an example and don't know if it still works.

I wound up adding:

	<append xpath="/spawning/biome[@name='desert']">
			<spawn maxcount="1" respawndelay="3.5" time="Any" entitygroup="EnemyAnimalsDesert" spawnDeadChance="20" />
	</append>

	<append xpath="/spawning/biome[@name='wasteland']">
		<spawn maxcount="1" respawndelay="0.3" time="Any" entitygroup="EnemyAnimalsWasteland" spawnDeadChance="30" />
	</append>

Which more or less works. As it is now it seems like I only get dead bears in the wasteland, and of course they spawn right in front of me, but it might just be I only notice them because they are so big. I don't spend a lot of time in the desert so not sure how it's going there.

Link to comment
Share on other sites

On 12/27/2021 at 9:01 AM, Krougal said:

So I remember there used to be an "invisibleanimal" which was used to further reduce a spawn chance. It would have been useful here but I can't find an example and don't know if it still works.

That was changed to None in the EntityGroups file.

 

    <entitygroup name="WildGameForest">
        <entity name="animalRabbit" prob="48"/>
        <entity name="animalChicken" prob="48"/>
        <entity name="animalBoar" prob="1"/>
        <entity name="animalStag" prob="1"/>
        <entity name="animalDoe" prob="1"/>
        <entity name="animalWolf" prob="1"/>
        <entity name="none" prob="50"/>
    </entitygroup>

 

Rather than spawning an invisible animal that uses resources, it now just doesn't spawn anything

Link to comment
Share on other sites

So I can't seem to find a good example for using append with entitygroup.

No wonder people are just doing straight up file replacement in the mods.

Set worked for Desert since there was already an entry for "none" but:

	<append xpath="/entitygroups/entitygroup[@name='EnemyAnimalsWasteland']/entity[@name='none']/@prob">30</append>

Isn't working. Curiously some of the other lines aren't working either, even though the configsdump files show them, the outputlog says didn't apply. Some of them do.

 

So this works for append:

	<append xpath="/entitygroups/entitygroup[@name='EnemyAnimalsWasteland']">
		<entity name="none" prob="30" />
	</append>

Syntax is everything.

 

Sat and compared the output log lines that don't work and it's because 2 of the groups didn't have vultures, so you can't set something when it doesn't exist. So I think I got it all fixed now. Thanks for all the help @BFT2020

Link to comment
Share on other sites

I just changed this line in entityclasses, and it really helped with them not being a so harassing..

 

    <set xpath="entity_classes/entity_class[@name='animalZombieVulture']/property[@name='SightRange']/@value">7</set>

 

I did that when i did a "living in the desert" play..

it may suit what you are wanting..

they are still there, for the ambiance, but leave you alone for the most part..

 

 

Link to comment
Share on other sites

6 hours ago, 12pack said:

I just changed this line in entityclasses, and it really helped with them not being a so harassing..

 

    <set xpath="entity_classes/entity_class[@name='animalZombieVulture']/property[@name='SightRange']/@value">7</set>

 

I did that when i did a "living in the desert" play..

it may suit what you are wanting..

they are still there, for the ambiance, but leave you alone for the most part..

 

 

Hmmm. Interesting. Cut to 10% of default. Not a bad idea at all, because like you said, they do add to the ambiance but are just annoying AF.

And that takes care of the irradiated as well, I'm guessing they inherit off base class?

Link to comment
Share on other sites

14 hours ago, Krougal said:

So I can't seem to find a good example for using append with entitygroup.

No wonder people are just doing straight up file replacement in the mods.

Set worked for Desert since there was already an entry for "none" but:

	<append xpath="/entitygroups/entitygroup[@name='EnemyAnimalsWasteland']/entity[@name='none']/@prob">30</append>

Isn't working. Curiously some of the other lines aren't working either, even though the configsdump files show them, the outputlog says didn't apply. Some of them do.

I found it easier in this case to use insertAfter.

 

So for this I would enter

 

    <insertAfter xpath="/entitygroups/entitygroup[@name='EnemyAnimalsWasteland']/entity[@name='animalZombieBear']">
        <entity name="none" prob="30"/>
    </insertAfter>

 

Link to comment
Share on other sites

9 hours ago, Krougal said:

Hmmm. Interesting. Cut to 10% of default. Not a bad idea at all, because like you said, they do add to the ambiance but are just annoying AF.

And that takes care of the irradiated as well, I'm guessing they inherit off base class?

that's right, rad extends the base bird

not to mention it's just easier..

but if I really wanted to get rid of them, i would do something like:

 

    <remove xpath="/entitygroups/entitygroup[@name='EnemyAnimalsWasteland']/entity[@name='animalZombieVulture']" />
    <append xpath="/entitygroups/entitygroup[@name='EnemyAnimalsWasteland']">
        <entity name="animalChicken" prob="30"/>
    </append>

 

replace the vultures with chickens.. pigeons for the wasteland, and RoadRunners for the desert.. give that coyote something to chase..

anyway, that is just another option..

doing this way, though, you have to find every group you want them out of..

i have tried the All wildcard (*) too, and it doesn't seem to like it, unless i just did it wrong..

 

Link to comment
Share on other sites

  • 6 months later...

Hello all,

 

Can someone help the neophyte here (me) implement the commands you all have submitted above?  I'd LOVE to lower the vulture spawn rate in desert/wasteland but not sure WHERE to enter your coding above.  is it in the console window, or somewhere in an XML file?  Any help you could provide would be hugely appreciated.  Thanks for taking the time to help a newb like me.

 

Oh, and if the Fun Pimps actually read this......FOR @%$#S SAKE THERE ARE TOO MANY GODDAMN VULTURES.  I can understand needing them for horde night to keep players from cheesing things, but do I really need to be fighting vultures every 7 seconds while taking my ride through the desert for the first time once I get my bike?  Seriously, tone it down, or even better yet:  perhaps add an option in the game menus where you select horde size and frequency and whatnot - something that allows you to PICK:  lotsa vultures, regular vultures, few vultures, and go @%$# yourself vultures I don't want to see you until horde night.  ANYTHING would be helpful.  I seriously don't like playing in the desert or wasteland just because of the ridiculous vulture encounter rate.  You went overboard.  Time to reign it in, or give us a way to do it for ourselves.  Thanks in advance for listening to the ravings of a casual player.  I love your game, but I HATE your vultures.

Link to comment
Share on other sites

A bit extra if you wish, Jeco, but start your modding adventure by creating a "Mods" folder, under your "C:\Users\<username here>\AppData\Roaming\7DaysToDie\Mods. Make a folder under that and call it "MyMod" Then download and install "Explorer++" from https://explorerplusplus.com/  Once that's done, use Explorer++ "File -> New", and name it entitygroups.xml.   Type in the following, exactly as below:

<configs>
          <!-- Get rid of Vultures entirely by calling ZombieJoe instead -->       (this is how notes are added to an xml file)
          <set xpath="/entitygroups/entitygroup[contains(@name, '')]/entity[contains(@name, 'animalZombieVulture')]/@name">zombieMoe</set></

</configs> 

Save it in the new MyMod folder, and start the game - it doesn't have to be a new game. (in this case). This will be your first mod.

You can also reduce the probability of them, too, but that calls for a bit of experimentation, which can come a bit further in the learning "adventure"  . . . 

Hint.... browse to the original  <drive>:\Steam\steamapps\common\7 Days To Die\Data\Config folder and open the games "entitygroups.xml" for the location and probability for the animalZombieVulture  . . .

😎

Link to comment
Share on other sites

(sigh) (I know - my wife just said so, too ! ! !  (if only it were true . . .  🤣  )

(That being said - there actually ARE actually some really brilliant coders here on these forums, and you'll get to know them all with time and patience. (and I'm not one of them, by the way - I'm just a journeyman. :classic_sad:  )

 

Edit:

 ..... as is evidenced by my forgetting an important file - the Modinfo.xml, which sits inside your new "MyMod" folder, (but outside Configs), so it will look like:

Roaming
       7DaysToDie
              Mods
                      MyMod
                                 Configs               <   contains your mod xmls, like recipies.xml, items.xml, entityclasses.xml, etc.,
                                 ModInfo.xml        <   the actual ModInfo.xml that contains the info about your mod. The game needs this.


The actual xml file content will look like this (mine). Just change it to what your want yours to reflect, per the notes on each line:

<?xml version="1.0" encoding="UTF-8" ?>                      <  I don't think this is a necessary line, (but I'm not sure.)
<xml>
       <ModInfo>
            <Name value="Red20" />                                     <  yours will be "MyMod" here.
            <Description value="Change stuff according to my liking" />          < your comment(s) here.
            <Author value="PJ" />                                           < your name, or identifier
            <Version value="0.0.0" />                                      <  Whatever version number, so you can track changes, if you wish.
       </ModInfo>
</xml>

Link to comment
Share on other sites

5 hours ago, Jeco said:

I don't think I did this right.  I still get vultures.  Lots of vultures.  Oh well.  I have to investigate further.

 

If you post what you did I can probably help.

 

Probably the simplest solution is to put this in your Mods/entitygroups.xml:

 

<config>
    <set xpath="//entity[@name='animalZombieVulture']/@name">none</set>
</config>

 

The two slashes mean "any descendant XML node" (in this case of the whole XML document). It matches any "entity" tag, with an attribute ("@") called "name", whose value is "animalZombieVulture"; and sets its "name" attribute to "none".


This way you don't have to worry about targeting the different entity groups or whatever - it matches all entity tags in the document. It removes them from biome spawns, wandering hordes, blood moon hordes, even from the group used to spawn them in POIs.
 

You could also replace the "name" attribute with the name of some other animal or zombie, like other people suggested above.

 

You probably need to do the same thing for radiated vultures, unless you want those to still spawn in. (I'm pretty sure they only spawn in blood moon hordes.)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...