Jump to content

khzmusik

Members
  • Posts

    1,245
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by khzmusik

  1. It creates the world itself, with a random name (like "Kubixe County" or something), and saves it in your %APPDATA%/7DaysToDie/GeneratedWorlds folder. When you go back to the "Start Game" screen, you select that world in the "Game World" box, just like you would select Navezgane or one of the vanilla prefab worlds. I personally use these forums as the "source of truth" for all 7D2D mods and modlets. You can still use 7daystodiemods.com to discover mods and modlets, but it usually includes a link back to their threads on these forums. Or even easier, I just use the Mod Launcher. I honestly don't know why people would use anything else for modded games. I've been using without issues since the game was in Alpha 16.
  2. As a general rule, overhaul mods (Undead Legacy, Darkness Falls, War of the Walkers, etc.) are not meant to be modified. Sometimes mod authors release "compatibility modlets" but that doesn't happen often. In this case, Undead Legacy uses a lot of custom C# code. Since NPC Core needs the custom C# code that is provided by SCore, there is likely some kind of conflict between the two. I think the best option would be to ask Subquake if he could include NPC Core characters in his mod. I doubt he'll do it, but you never know.
  3. Is this Khaine's Behemoth mod? If so, I'm guessing you ran into the same issue some other folks were having. The Behemoth mod uses the same physics body ("zombieBehemoth") that comes with NPC Core, so they are conflicting. If that's the case, you can just remove the physicsbodies.xml file from the Behemoth mod and everything should work fine. EDIT: Also, if you want to go fully offline, there is a Steam forum post that tells you how to do it: https://steamcommunity.com/app/251570/discussions/4/3196989600456389838/ I have not tried it so do not know if it works.
  4. I do not recommend using 7daystodiemods.com for that exact reason. I believe it is run by one person who updates everything manually. (Mod authors have no involvement with that site.) The repo for SCore is here: https://github.com/SphereII/SphereII.Mods/tree/master/0-SCore I don't believe there is any way to download only a subdirectory in a GitHub repo (his repo contains many mods and modlets). However, he has a mirror at GitLab, and you can download just SCore from that: https://gitlab.com/sphereii/SphereII-Mods/-/archive/master/SphereII-Mods-master.zip?path=0-SCore EDIT: Or you could just use the Mod Launcher, which is what I do: http://7d2dmodlauncher.org/ (There is a version for Linux too, but I've never used it.)
  5. Just FYI, the NPC Mod comes with a "fox" animal that can be a companion. You feed it meat to "hire" it. Like other "hired" NPCs, it doesn't have advanced features like needing food or shelter, but it will follow you around and attack enemies, which is probably close enough.
  6. Yeah, anything with custom C# code cannot use EAC. That's by design and it will never change. Until A20, to support custom C# code, mod users had to replace some of the game's .dll files as well. We're all lucky that 7D2D now supports Harmony and custom C# code natively, so we don't have to do that any more.
  7. There is also this mod by @ocbMaurice (which I have not tried myself).
  8. I meant to reply to your original topic, but by the time I double-checked my answers, it was days later. I thought it was probably moot at that point but I was obviously wrong. The short answer is that it can't be done. Here's the long answer. The textures that you can paint onto blocks (including terrain blocks) are not individual textures. They are part of a single texture array. (Think "CSS sprites" in web design.) The block only stores the index in the texture array. The texture array can't be made any larger, because the block's data bits are already full, and TFP can't spare another bit for a larger array index. Additionally, the way terrain works, it wouldn't be possible for the game to tell when one block "blends" with another. (At least not from what I've been able to dig up in the code, which is admittedly very little.) Also, the paint brush (even in dev mode) doesn't allow all textures to be painted, and in particular, the terrain block textures are not allowed. I'm not sure why. I suspect it's related to an issue that is notorious among POI builders: if you paint a block with a texture that is the "native" texture of a craft-able block (say, painting a wood block the same texture as concrete), then performance drops dramatically. If you were allowed to use terrain textures, then I'd recommend just using a regular trim block with the asphalt texture, but unfortunately that's not an option. There is another option, which is to use a single non-square block (like a ramp) on the boundary of the terrain, and maxing out its density by selecting it and hitting <shift>-<up arrow>. The block itself couldn't have a terrain texture, but you can put it next to any terrain block you want, including an asphalt terrain block. TFP have used this technique to make things like sidewalks that blend into the streets.
  9. I just checked. The case of your localization filename does not match the game's case. It should be "Localization.txt", and yours is "localization.txt". This will work OK on Windows (since file and folder names are not case sensitive on Windows), but not on any other operating system. So if the dedicated server is Linux, it won't pick up that file. (Nor will it work on Mac, but I don't know how many Mac players there are.)
  10. I am glad you got it to work. But, from your screenshots, you are using one or more mods. Vanilla (non-modded) 7D2D is different from that mod: Players can not loot the bodies of zombies. (Zombies drop loot bags, players can only loot those.) There is no loot container with the ID of 281. There are no pistol barrels, grips, parts, or receivers. Since you didn't tell us you are using a mod, none of us had any way to know about those differences. In the future, you need to tell people those details when you ask for help. Otherwise you will only confuse people, and get advice that won't help you.
  11. Ha - found it. It's actually a free Mixamo character. https://www.mixamo.com/#/?page=1&query=girlscout&type=Character It's not difficult to turn Mixamo characters into zombies, so that's probably what the Joke Mod did. I don't have any idea if it's available in another mod or modlet.
  12. In the vanilla game, there is no loot group called "zombieSoldier". In vanilla, the entity that is dropped when a zombie dies, is determined by its "LootDropEntityClass" property in its entity class (in entityclasses.xml). That is in the "zombieTemplateMale" entity and is inherited by other zombies. Unless the individual zombie entity class overrides it, it will be the "EntityLootContainerRegular" entity. That is the case for most soldier zombies. The exception is radiated soldier zombies, and that is overridden so they drop "EntityLootContainerStrong" loot bag entities. Those loot container entities, in turn, use different loot containers, as determined by their "LootListOnDeath" values. "EntityLootContainerRegular" uses the "zPackReg" loot container. "EntityLootContainerStrong" uses the "zPackStrong" loot container. The "zPackReg" loot container uses the "groupZpackReg" loot group, and the "zPackStrong" loot container uses the "groupZpackStrong" loot group. So if you want to make soldier zombies - and only soldier zombies - drop gun parts, you will need to do this: In loot.xml, create a new loot group for soldier zombies (or loot groups plural, if you want to follow the vanilla game and have radiated zombies drop better loot) In loot.xml, create new loot container(s) that uses the new loot group(s) In entityclasses.xml, create a new loot container entity (or entities) that uses that new loot container In entityclasses.xml, make the soldiers drop the entity container(s) by overriding or replacing the value of the soldier zombies' "LootDropEntityClass" properties Good luck!
  13. Sorry! I forgot to answer this. In the prefab editor, you can choose the spawn group for each sleeper volume. There are a couple that could be used for boss volumes, such as "Group Zom Badass Only"; and there are also spawn groups that only spawn one specific zombie, like "zombie Biker Radiated". If those aren't good enough for you, it's possible to create your own - I did this for the NPC Core sleeper volumes that spawn NPCs. But it's complicated, and the vanilla spawn groups are probably good enough, so I won't go into details. (There is also a setting called "Boss Volume" but as far as anyone can determine, it does nothing. It's probably either left over from a previous alpha, or supports some planned feature in a future alpha.)
  14. Yes, that's what I meant. It would behave as if you had already cleared all the sleepers from the other sleeper volumes (even though you didn't). As far as the "clear" quest objective is concerned, those other sleeper volumes don't exist. Keep in mind I haven't tested this myself. I have done POIs where one or two sleeper volumes are excluded, and that's how those POIs behave. I have not tried it where all sleeper volumes except one are excluded. This will not work server-side, because it requires replacing all the POIs. Custom POIs require both client and server installation. Please keep in mind that my proposal changes the POIs themselves, not the quests. It would be exactly the same "clear" quest as usual. Unfortunately, it is impossible to create a new kind of quest. For quests that target POIs, they map to the values that you can put into the POI's "QuestTags" property in the XML. The only working values are "clear", "fetch", "restore_power", and "trader" (which is used with the "white river citizen" and "opening trade routes" quests). Those values are hard-coded by TFP. So it's impossible to have one kind of "clear" quest that only targets POIs with one non-excluded sleeper volume, and another kind of "clear" quest that only targets POIs with multiple non-excluded sleeper volumes. The quest objective will choose POIs that have a "QuestTag" value of "clear" and that is all it will do. There is another way to target POIs, but it requires a custom quest objective that I wrote which is in SCore. It's called "RandomTaggedPOIGotoSDX", and it can allow you to target POIs with certain values in its "Tags" property (which is not the same as the "QuestTags" property, and can accept custom values). I mainly wrote it for going to POIs containing human NPCs, but you could use it to include POIs with any tag you want. If you want to do this, then you should make a modlet. Here are the steps you need to take: 1. Create one or more POIs, or modify vanilla POIs, as I suggested in my first post (only one sleeper volume that isn't excluded, spawns only one entity). These would be put in your modlet's "Prefabs\POIs" directory. 2. Choose a custom tag name for those POIs, like "clearboss" or whatever. 3. Add that tag name to the "Tags" property (not the "QuestTags" property!) in the XML files for those POIs. 4. Create a new quest type that will target only those POIs. It is probably easiest to copy and modify the vanilla "clear" quest. 5. I the new quest type, use the "RandomTaggedPOIGotoSDX" objective as a replacement for the vanilla "RandomPOIGoto" objective, and add the "include_tags" property like so: <objective type="RandomTaggedPOIGotoSDX, SCore"> <property name="phase" value="1" /> <property name="nav_object" value="quest" /> <!-- Only include POIs with these tags --> <property name="include_tags" value="clearboss" /> </objective> 6. To make sure the vanilla quests don't go to these POIs, replace the vanilla "clear" quest's "RandomPOIGoto" objective, and add the "exclude_tags" property. This is the XPath to add to your modlet: <append xpath="//objective[@type='RandomPOIGoto']"> <property name="exclude_tags" value="clearboss" /> </append> <set xpath="//objective[@type='RandomPOIGoto']/@type">RandomTaggedPOIGotoSDX, SCore</set> 7. When distributing your modlet, make sure your users know it is dependent upon SCore, and that they will need to download and install it separately. Also make sure users know that SCore and your modlet will need to be installed on both clients and servers. It seems like a lot of work, and it is. I'll leave you to decide if it's worth it.
  15. @bdubyah is correct. The first error in the log is saying it can't find the SCore ClockDMT class. That was added in version 20.6.259.937, and you're still running version 20.6.229.1021. Because of that, it can't load in blocks.xml. Then it can't load any of the other XML files that reference blocks in blocks.xml, like items.xml, recipes.xml...
  16. I'm not sure most people would agree. What you call "deciding the level of engagement," other players might call "cheesing the POI." But regardless - there isn't a way to mod in exactly what you want, but I think you can come close. Unfortunately it involves modifying all the POIs that support clear quests. If you open a POI in the prefab editor, you can select each of the sleeper volumes. There will be a "Quest Exclude" option for each. If that sleeper volume shouldn't be part of a clear quest, then select "Yes". You could use this feature to exclude all sleeper volumes, except one. You then set the non-excluded sleeper volume to spawn one zombie, and that zombie becomes the one that you have to kill. You will probably need to set the "ShowQuestClearCount" value to 1 in the prefab's XML file (if it's not already set to 1). You would have to do this by hand for all POIs too, 7D2D doesn't support XPath for prefab XML files like it does for Config files. I believe the game will still have the same user experience as a normal clear quest - so that zombie (and only that zombie) will show up as a yellow icon until you activate the sleeper volume, then it will turn to a red dot.
  17. You should still be able to install it using the Mod Launcher, that's how people installed it back when it was still around. I didn't try actually installing it using the Mod Launcher v2, but it is there, you just have to change the game version to A16.
  18. These XPath commands are probably not applying. The "setattribute" command is to add a new attribute to an XML tag, when that attribute isn't already there. The "value" attribute already exists on those property tags. You should be using the "set" command to change the value of the "value" attribute: <set xpath="/items/item[@name='schematicMaster']/property[@name='Material']/@value">Mbook</set> <set xpath="/items/item[@name='schematicMaster']/property[@name='Weight']/@value">100</set>
  19. For some reason when you said "kids" I was thinking "infants." I think teenagers, or nearly-teenagers, are OK. I do remember seeing a girl scout zombie. It's still around in the Joke Mod. I think it was originally part of Guppy's zombie pack? Or maybe it's a Unity character that they both bought? Not sure. But he does have a zombie teenage girl character (Alma I think?) with black hair, similar to but legally distinct from the Ring girl.
  20. This is doubtful, because it would require fundamental changes to the pathing code used by the game. That code is not simple, and even small modifications would require some pretty big changes.
  21. The brief answer is no, and the reason why is that they would be unlawful. I highly doubt that the IP holders of Halloween or Friday the 13th sell models of their characters, which would mean any character models would be unlawful rips from other games. Even if the mod authors got the models from someone else, distributing those models would also be unlawful, so the mod authors could also be sued. (This almost happened - a 7D2D mod author got what they believed was a character "inspired by" a Dead By Daylight character, and in fact it was just a rip from the game. They received a notice from the DBD developers and had to remove it from their mod.) As for zombie kids, TFP themselves have said they can't put child zombies in the game because that could get them in legal trouble in certain jurisdictions (mainly Europe I think). That means in general there aren't any zombie child models out there, even original models. I also think mod authors believe it isn't worth the legal risk. (Teenagers might be an option, don't know.) I personally would like to see them too (loved the first episode of Z Nation) but I don't think it will happen.
  22. I'm not sure I understand what you're asking. Are you saying that you have a mod that has the test weapons and your ammo; but it doesn't work with a different mod that adds new weapons? If that's the case, then you should keep some things in mind: All mods/modlets load alphabetically according to folder name. So a mod in a folder named "MyMod" will load after "AMod" but before "SomeMod". There is no way for one mod to tell if another is loaded. If you want your ammo to work with another mod's weapons, then you'll need to decide if you want the weapon mod to be a requirement for your ammo mod. If so, the convention is to name your mod the same as the other, but add a descriptive suffix. So if the other mod is name "AwesomeWeapons" then you could name your mod 'AwesomeWeapons_AwesomeAmmo". You should also make it very, very clear to your users that the weapon mod is required. (There will be a good chance that they will ignore you, install it anyway without the other mod, then complain in these forums. ) If not, then you'll have no way to know if users have installed the weapon mod. Either you'll have to target the other mod's weapons anyway - which, if the user has not installed the other mod, will fail with console warnings about XPath not applying. Or you won't target the other mod's weapons, in which case either the other mod author or users themselves will have to make the other mod work with yours. Make sense?
  23. I think there is some knowledge that you're missing about how XML and XPath work in the game. Maybe you know this and I misread what you wrote, but just to make sure, here's how it works. The game scans the "Mods/[mod name]/Config" directories for XML files with names that exactly match the game's XML file names (the ones in the game's "Data/Config" directory). Most operating systems (basically everything other than Windows) are case sensitive with folder and file names, so it's best to match the game's case. If such a file is found, the game reads that XML file for XPath operations. The initial "/" in XPath translates to "the root node of the game's matching XML file." So you can't put "/buffs" in your modlet's items.xml file and expect it to work; the game's items.xml file doesn't have a "buffs" tag, so that XPath won't match anything. You won't mess up anything, the game simply won't perform that XPath command, and you'll get a yellow warning in the console. Also, I hope you already know this, but you can't put XPath commands in the game's XML files (the ones in "Data/Config"). XPath is only supported in the "Mods/[mod name]/Config" directories. Trying to put XPath in the game's XML files will mess things up; you'll almost certainly get red errors in the console, and it's possible the game won't even start. You probably want to use "onSelfDamagedOther" rather than "onSelfAttackedOther". Since that should only be triggered when you damage another entity, you probably won't need to compare tags. If other players are immune from damage, then the effect shouldn't trigger; but if they're not immune from damage (if the server allows friendly fire, for example), then you probably want the effect to trigger. To make it craftable at all, you'll need to create a recipe for it, and put that recipe into recipes.xml. To make it require the workbench, add craft_area="workbench" and tags="workbenchCrafting" to the recipe tag's attributes. If you want the player to not know the recipe immediately, you'll need to add "learnable" to the tags. You'll then have to figure out how you want them to learn it. If you want them to learn it through a schematic, then you'll need to add that schematic as an item in items.xml, and you'll need to add that item to loot groups in loot.xml. If you want the recipe to be unlocked by a perk, then you'll need to add or modify that perk's "RecipeTagUnlocked" property; perks are in progression.xml. For the sound effects, I assume you mean a different sound when the gun is fired with this ammo? If so, I don't know of any way to do that. I'm pretty sure the sounds are tied to the weapon, not the ammo. (You can, of course, trigger sounds when the buff fires, but if you're using vanilla fire/shock buffs then they probably are doing that already.) For the last question, you could use a cvar that increments every time the gun is fired, and if it's greater than 2 it resets to 0 (so the values are 0, 1, and 2). The ammo buff would have three different triggered effects, each with a requirement that the cvar matches (so it triggers the shock buff if the cvar is 1 and a "headshot" buff if the cvar is 2; it wouldn't trigger anything if the cvar is 0). Make sure you also remove the previous buff each time you fire. For a headshot buff, use the "DamageModifier" value of "head". See the comments in buffs.xml for details. To make sure only the sniper rifle can use it, add the ammo to only the sniper rifle's "Magazine_items" property it items.xml. EDIT: I forgot to add - if there is anything that is displayed to the user (like a recipe name or description) then you should add the text to the Localization.txt file. There is a thread in the tutorials section about how to do that.
  24. I'm assuming you're not putting that, verbatim, into your own modlet's buffs.xml file, and that this is an example to get the general idea of what you want to do. In your example, the buffBurningElement's duration is set by the buffBurningElementDuration cvar. That cvar is set to 10 before the buff is applied. In general, if you are using a buff to add another buff, you should be able to first set whatever cvar that it uses for its duration (or any other effect that is determined by a cvar). But, make sure you look at the other buff, because it almost certainly modifies that cvar itself, and it might change that cvar to something you don't want after it starts. In this example, the buffBurningElement buff automatically sets the buffBurningElementDuration to 10 when it starts, if it's below that value. So you couldn't make it a shorter duration than 10. It also will set the cvar to 10 (not add 10) when the buff stacks. Also, that is not the only way (and probably not even the most common way) that buff durations are set. It's often a combination of stack_type and duration values. Using a cvar does allow for more control, which is probably why TFP use it here. For details on that, the comments at the end of buffs.xml are your friends. EDIT: Here's a helpful hint. You can use the "</>" button to add code to posts. It makes the code much easier to read. Here's your code formatted as XML by the forums: <append xpath="/buffs"> <buff name="buffBurningZombie" hidden="true"> <damage_type value="heat"/> <stack_type value="ignore"/><duration value="0.1"/> <effect_group> <triggered_effect trigger="onSelfBuffStart" action="ModifyCVar" cvar="$buffBurningElementDuration" operation="set" value="10"/> <triggered_effect trigger="onSelfBuffStart" action="AddBuff" buff="buffBurningElement"/> </effect_group> </buff>
  25. That's a pity. I know lots of people are looking forward to NPCs being in the game. Out of curiosity, is the in-progress bandit code going to be shipped with the alpha, just disabled/unused? Or is all the work in a feature branch that won't even get merged into the A21 branch? I'm asking on behalf of modders who may or may not be myself.
×
×
  • Create New...