No announcement yet.

A16 - 7DaysProfileEditor

  • Filter
  • Time
  • Show
Clear All
new posts

    A16 - 7DaysProfileEditor

    I made a simple tool for editing *.ttp files the game uses to save.

    It's (as far as I know) bug free, but not really finished. More features will be added when I'll feel like it (let's be honest here).
    Feel free to request something to be added to motivate me.

    Current version is It will work with A15.

    For now you can modify your basic info, stats, inventory and skills.

    EDIT: Icons have been added and the UI is less ugly now:



    Also, icons work with mods!

    P.S. The tabs I haven't shown are still ugly. Grow up and deal with it.
    P.P.S. Don't listen to him, all tabs are pretty!

    FAQ (or ones I think will be)

    1. Q: Does this work for modded save games?

    A: Well, this is BASIC version. If you want to deal with modded save files, you're going to have to upgrade to PRO for $49.99

    2. Q: Really?

    A: No, it should work with modded save games, if the modded XMLs have been edited by the book. Make sure you have the modded XMLs in the Data/Config folder. If it doesn't work, you can send me items.xml, blocks.xml and progression.xml so I can maybe make it work.

    3. Q: Will this corrupt my save?

    A: Since this is Beta, it might. However, you cannot overwrite your files. It will always backup your file by adding a time stamp and .bkp extension. Even if you ask to overwrite. That being said, backup your save anyway, you never know.

    4. Q: It doesn't work. You suck.

    A: While there might be a problem with my program, there are few things you can try out yourself. Try clearing your inventory in game and see if you can open the save now. If you xmls are out of sync, issues might appear which this will fix in 2/3 of cases.

    5. Q: It still doesn't work. You suck even more now.
    A: If you encounter a crash or a bug, the program will prompt you to describe it and will save a file where you specify. Send me that will and I'll see what can be done. If you just encounter strange behavior, you can generate a report by clicking Help->Send error report. You'll still have to send me the file. Then I'll fix it and suck less. I'd be great if you reported the issues on the GitHub page.

    5. Q: If I mess up my save, can you fix it?

    A: I probably can't. I can try if you send it to me. But backup your saves!

    6. Q: What features are you planning to introduce?

    A: I'm currently working on another project, so this isn't in active development. However, if the community asks for a specific feature, I can implement it on demand (probably, I don't intend for my program to shoot rockets). That means you as well, so ask away.

    7. Q: This is awesome and I want to help!

    A: The whole project is open source and anyone who wants can contribute. I do suck at making GUI layouts, so there's that. You can also try to open as many saves you have and press all the buttons and then report what broke.

    There, that should cover it, more or less. If you have any extra questions ask.

    You can download the tool here (along with the source code):

    The dll that was required to run the program is now merged with the exe, so less hassle for you. Yay!

    Note: You can use the .dll in your own project to tamper with the saves yourselves. It has it's own project on my GitHub profile. You can also get it's source code there.

    Also, I totally forgot about the legal stuff. All that I created is protected by which ever license allows you to do anything you want with it, short of selling it, presenting it as your own and weaponizing it (I don't know if it can be done, but better to stay on the safe side). Yes, this will most definitely hold up in court.

    I'd also appreciate a note if you have any special plans(candlelight dinner, wink wink) regarding it. Totally up to you.
    Last edited by Karlovsky120; 12-21-2018, 09:10 AM.

    Love the q and a....


      Nice work Karlovsky, this should be very handy for people.


        So my inventory page have no scroll bar (skill page does) so I can't see it all.. Also, I tried to edit profiles with modded items but it didn't work even if the xmls are in the 7dtd folder.

        Any clues?


          I just pushed an update that will add scroll bars to inventory tab. As for the rest goes, I will need your items.xml, blocks.xml and progression.xml as well as the save that's causing the problem. I will also need to know when the whole thing failed.

          You can pack them in a .rar or .7z and upload them to some file sharing service and send me the link via PM.

          I'll also try to force the program to throw prettier errors so I better know what's going on. =)


            I can't even get it to run. (and yes, the DLL is in the same folder)

            The first thing it wants is "the game exe".
            It does not specify which one.
            It does not automaticall see it in the folder it is run from.

            If I navigate to the (first?) exe and hit Enter it crashes.

            7DaysProfileEditor.config only contains this line:
            gameRoot=C:\SteamLibrary\steamapps\common\7 Days To Die

            If I try to run it again it crashes instantly.


              It looks for 7DaysToDie.exe. Once it locates it, it knows where to look for XMLs. I'll specify the name of the .exe in the update.
              The path in the config should work, I don't know why would it crash. I think the game fails to load the XMLs for some reason. You can send me yours (items, blocks and progression) to check out why. You might have some mods installed that the program doesn't know how to deal with. It's the only explanation since it works for me, and I have vanilla installed.

              If you run the program from the games root folder, it shouldn't ask you anything.

              I did an update about four hours ago and it should print out the error code if it crashes.
              EDIT: I just realized now that I didn't push the changes, it should be up to date now.

              EDIT2: I just updated again. It will specify which exe it looks for and will produce an error log upon crashing (ProfileEditorCrash.log). I might later try to specify it even more to see where it fails within the xml.
              Last edited by Karlovsky120; 04-08-2016, 12:06 AM.


                The addition of the scroll bars makes it works. and for the player profile that wasn't working, it was mine. I found the issue, it's one item that I was holding and that is devblocks. (<property name="IsDeveloper" value="true" />) It shows up just and only in dev mode, which doesn't seems to be handled by your editor. (and it's fine) I just had to remove that item from my toolbelt and everything works fine now.

                Thanks for this nice program! But now I'm curious, what are the next steps you're planning to add on it? Equiped clothes and armor? Location? Player stats like kills/deaths/etc ? (That one would be awesome)


                  Yeah, my program removes dev items from the list. Some dev items have special properties and it was easier to just avoid them than handling them. I now added fail-safe that notifies you if dev items are in your inventory and asks you to remove them before using the program.

                  The next thing is general stats (including location, kills, deaths and similar) and player stats such as hunger, hydration, wellness etc...

                  I'm not that concerned with equiped clothes/armor since you can change them indirectly via inventory. I do plan to make most of the save editable. I don't see the need to change your favourited items since you can do that in-game.


                    I added some basic statistical info to the latest version.

                    Gazz, is the program working for you now (was it the dev items?) or is it still crashing?

                    EDIT: Refined dev item detection, the program will now list ALL the dev items and ask you to remove them before continuing.
                    Last edited by Karlovsky120; 04-10-2016, 05:52 PM.


                      Karlovsky, very cool tool. It is nearly precisely what I've been looking for.
                      How difficult would it be to add either or both of these features:
                      1. After opening a given ttp file, be able to save the relevant contents of it in a more-friendly export? I'm thinking something simple like a tab-delimited text file.
                      2. Even more awesome-sauce would be a menu option that would parse every .ttp file in a specified folder and create that same tab-delimited text file with all of the contents.

                      End-game here for me is that we are kicking around the logistics of holding match-style events with our own criteria/weighted values on game score/kills/skill levels/etc. After a match is over I'd like to be able to parse out all of that info for each player. Then I can drop it into a spreadsheet, run whatever algorithm we decide on for our own scoring metric, and then we can post those to our own internal ladder board.

                      But the key is being able to parse out all those players stats from the .ttp files into something more readable/spreadsheet friendly.

                      Thanks mate!


                        Frankencow and I had a discussion via PMs, but to clarify it for anyone else.

                        I don't think I'll add export option to the program. The reason is that I don't know what a lot of the values mean (in order to be able to read and write the save file I had to parse it whole, regardless of my understanding of it's meaning). I'm not sure which data is useful and which is not. On the other hand, I don't want to fill the export with bunch of nonsense.

                        If you really want to parse out some data that is relevant to you, you can use the 7DaysSaveManipulator.dll provided in the first post. taking this route will require you learning a little bit about coding. In case you really want to do it, I put sort of a skeleton in the spoiler below. You can paste it into a Visual Studio C# Console project. Note that you'll also have to reference the 7DaysSaveManipulator.dll in the project (Google is your friend). I setup the name and skills export, you can add anything else you find interesting. In order to see what is available, look into the source code of the dll. If you need any help, feel free to send me a message. =)

                        I might end up going half way and overriding or adding ToString() methods for most classes in the dll to make the process easier. Or I might not, I'm not making promises here.


                          Update is live, yay!

                          You can now change your stats. However, I don't know what each of the values mean. I have not restricted min or max values that can be entered, so you can mess up your save if you enter a wrong number. Once I know more, I'll make it safer and harder to mess up.

                          If anyone's up for it, he or she can try figuring out what which of the numbers mean by going against my advice and sticking random numbers in.

                          Also note that water and food have an additional entry in the save file so the one here might be an unused relic of an old code. Didn't feel like messing with it at the moment. In short, food and water stats might be broken in this version, or at least non functional.


                            Originally posted by Karlovsky120 View Post
                            Update is live, yay!
                            Any idea if this works with A15 parsing? I am using your code to write a .ttp reader (no edit functionality) and am having issues once we get to stat parsing.

                            I'll probably just test the app itself tonight just to make sure it's not my conversion issue.

                            If you're interested:


                              I haven't been following the forums lately, didn't know A15 stable was out already. I'll have it up in a few days, maybe later today, but no promises...

                              It might work with A15, but you'll have to test it yourself right now.