Jump to content
Sign in to follow this  
Earthworm

Loot Probability Viewer

Recommended Posts

LootViewer

 

 

With permission of the author Earthworm, SphereII and Xyth (me) have updated this tool for compatibility with A18. I found this tool very useful in A15 to balance loot tables and loot items and hopefully you will too. We forked the original project until the author becomes active modding again, then he can resume updates.

 

Earthworm's OP Below:

 

I have an xml project at work in Visual Studio coming up, and thought I would do some prelim work on my own to familiarize myself with working in an xml based VS project. So I created a little tool to help me understand the probabilities of Loot in the loot.xml file a bit better. While I know adding something to the loot.xml and adding a "prob=0.5" doesn't really add a 50% chance of that item being selected, when you get into groups of groups of groups in containers it is really hard to grasp how those probabilities actually work out. So this project helps me visualize that.

 

For example, Joel recently stated in an A13 play-through that Honey was a rare drop in a tree stump now. But if you actually do the math, the way honey was added to the loot.xml in A13, Honey is actually the Highest probability drop in a tree stump at ~21.25%, nothing else in the tree stump has greater than a ~2.2% chance of dropping. This is due to Honey being the only "Item" that has a drop in the stump, all other drops for the stump (lootContainer 35) are Groups, so while there is a ~20% chance of "Medicine" being dropped, it is lower prob for the individual items within the medicine group. Honey was already a "Rare" drop in a tree stump, but at only 1.25% (due to being in the cannedFood Group, with a 1 in 16 chance of being picked from cannedFood, which is only a 1 in 5 chance of cannedFood being picked from the stump container).

 

So this project Scans the supplied loot.xml and parses all probabilities out, and allows you to see what the actual drops and their probabilities are for a specific Loot Container, or search by item name, and shows all containers that can possibly drop from, and the probability within that container of it being dropped.

 

This is a super rough draft of the tool, but gets the point across (i.e. lootGroups with a count="All" aren't equating probabilities quite right yet), nor are the Counts of a Loot container added into the equation (i.e. There is a 21.25% chance Honey will be picked from picking 1 item from a tree stump, even though a stump may have 0 to 2 items selected from it.)

 

If there is interest in the tool, I can expand its capabilities and refine the user interface further.

 

Git project is here: https://github.com/EarthwormO/7DtD-LootViewer (This is for the old A15 version)

 

A18 release (rar containing an EXE) is here: https://github.com/SphereII/7DtD-Loo...ases/tag/A18.4

 

To use, put the path to your loot.xml (with file name) in the "Loot File" text box and click "Load" button. When it has loaded the file, use the LootContainer combo box to select which lootContainer ID you want to look at, or change Search Type to Item name and use the combo box to select the Item you are wanting containers listed for.

 

Let me know your thoughts on the tool.

Edited by xyth (see edit history)

Share this post


Link to post
Share on other sites

I may be the only person with an interest in this but I got an error from the exe. I'm developing a trading mod and I'm trying to work out the true value of each item by examining the chance of each item "dropping". Items that are rare in the loot table will have a higher value than those that don't.

 

If you have a working version of this I'd love to try it, or even a one time dump of items + % will get your name in my credits. :)

 

 

************** Exception Text **************

System.UnauthorizedAccessException: Access to the path 'D:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\Config' is denied.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)

at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)

at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)

at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)

at System.Threading.CompressedStack.runTryCode(Object userData)

at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)

at System.Xml.XmlTextReaderImpl.OpenUrl()

at System.Xml.XmlTextReaderImpl.Read()

at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)

at System.Xml.XmlDocument.Load(XmlReader reader)

at System.Xml.XmlDocument.Load(String filename)

at _7DtD_LootViewer.LootViewer.B_Load_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

 

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34014 built by: FX45W81RTMGDR

CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

----------------------------------------

7DtD-LootViewer

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Users/Connor/Desktop/7DtD-LootViewer.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34250 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34262 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34239 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

Accessibility

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

----------------------------------------

System.Xml

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34230 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

----------------------------------------

 

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

 

For example:

 

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

 

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

 

 

Edited by togFox (see edit history)

Share this post


Link to post
Share on other sites
I may be the only person with an interest in this but I got an error from the exe. I'm developing a trading mod and I'm trying to work out the true value of each item by examining the chance of each item "dropping". Items that are rare in the loot table will have a higher value than those that don't.

 

If you have a working version of this I'd love to try it, or even a one time dump of items + % will get your name in my credits. :)

 

 

************** Exception Text **************

System.UnauthorizedAccessException: Access to the path 'D:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\Config' is denied.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)

at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)

at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)

at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)

at System.Threading.CompressedStack.runTryCode(Object userData)

at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)

at System.Xml.XmlTextReaderImpl.OpenUrl()

at System.Xml.XmlTextReaderImpl.Read()

at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)

at System.Xml.XmlDocument.Load(XmlReader reader)

at System.Xml.XmlDocument.Load(String filename)

at _7DtD_LootViewer.LootViewer.B_Load_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

 

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34014 built by: FX45W81RTMGDR

CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

----------------------------------------

7DtD-LootViewer

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Users/Connor/Desktop/7DtD-LootViewer.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34250 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34262 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34239 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

Accessibility

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

----------------------------------------

System.Xml

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34230 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

----------------------------------------

 

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

 

For example:

 

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

 

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

 

 

 

 

The tool seems to work nicely for me. The error seems to indicate a problem accessing the loot.xml file. Instead of using the actual game installation folder, try creating a new folder and copying the loot.xml file to it. Then try to open that copied file using this tool.

Share this post


Link to post
Share on other sites

I've been checking some of the loot containers with this tool and it does not appear to be taking into account the probabilities of the individual items / groups when these are defined per item. Has anyone else had a chance to test this?

 

ie...

 

<lootcontainer id="5" count="0,2" size="4,3" ... >

<item name="cookingPot" count="1,2" prob="1.5" />

<item name="scrapIron" count="1,2" prob="1.5" />

<item name="emptyJar" count="1,2"/>

<item name="canEmpty" count="1,2"/>

</lootcontainer>

 

returns 25% for each item despite the prob="1.5" for the cookingPot and scrapIron. Unless I am understating this wrong, those should have 30% chance while the emptyJar and canEmpty should have 20%...

Share this post


Link to post
Share on other sites
I may be the only person with an interest in this but I got an error from the exe. I'm developing a trading mod and I'm trying to work out the true value of each item by examining the chance of each item "dropping". Items that are rare in the loot table will have a higher value than those that don't.

 

If you have a working version of this I'd love to try it, or even a one time dump of items + % will get your name in my credits. :)

 

 

************** Exception Text **************

System.UnauthorizedAccessException: Access to the path 'D:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Data\Config' is denied.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)

at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)

at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)

at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)

at System.Threading.CompressedStack.runTryCode(Object userData)

at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)

at System.Xml.XmlTextReaderImpl.OpenUrl()

at System.Xml.XmlTextReaderImpl.Read()

at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)

at System.Xml.XmlDocument.Load(XmlReader reader)

at System.Xml.XmlDocument.Load(String filename)

at _7DtD_LootViewer.LootViewer.B_Load_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

 

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34014 built by: FX45W81RTMGDR

CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

----------------------------------------

7DtD-LootViewer

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Users/Connor/Desktop/7DtD-LootViewer.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34250 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34262 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34239 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

Accessibility

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

----------------------------------------

System.Xml

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34230 built by: FX452RTMGDR

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

----------------------------------------

 

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

 

For example:

 

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

 

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

 

 

This is actually Windows UAC causing the problem, due to your installation being in the program Files folder. If your Steam was located outside of Program Files, the issue wouldn't exist. The solution is to Right-Click the Loot-Viewer EXE and select Run as Administrator, that will give it the rights to the folder. Or as Numberz said, take a copy of the loot.xml to a folder not in Program Files and point the tool there and it should work just fine.

Share this post


Link to post
Share on other sites
I've been checking some of the loot containers with this tool and it does not appear to be taking into account the probabilities of the individual items / groups when these are defined per item. Has anyone else had a chance to test this?

 

ie...

 

<lootcontainer id="5" count="0,2" size="4,3" ... >

<item name="cookingPot" count="1,2" prob="1.5" />

<item name="scrapIron" count="1,2" prob="1.5" />

<item name="emptyJar" count="1,2"/>

<item name="canEmpty" count="1,2"/>

</lootcontainer>

 

returns 25% for each item despite the prob="1.5" for the cookingPot and scrapIron. Unless I am understating this wrong, those should have 30% chance while the emptyJar and canEmpty should have 20%...

 

You seem to be correct. I will look into it later this week when i have a chance. i think the problem only exists for Loot Containers that have direct items in their list, instead of just Groups, which Loot container 5 is one of the only ones to be like that. I will correct it and upload a new version. Thanks for the feed-back.

Share this post


Link to post
Share on other sites
You seem to be correct. I will look into it later this week when i have a chance. i think the problem only exists for Loot Containers that have direct items in their list, instead of just Groups, which Loot container 5 is one of the only ones to be like that. I will correct it and upload a new version. Thanks for the feed-back.

 

 

You're welcome and thanks for the tool. I think this can be of tremendous help to modders in terms of balancing the loot drops.

Share this post


Link to post
Share on other sites

How do we know what container number is what? I see the container numbers for say calipers but in game wont know what those ones even are. Thanks

Share this post


Link to post
Share on other sites

Thanks, wow you can find a caliper in a car or zombie lumberjack? Never seen that before. Will have to keep these in mind since at least my seed I only found 1 working stiffs and im on day 60+ now. I also never seen a miners chest before that I can remember.

Share this post


Link to post
Share on other sites
You're welcome and thanks for the tool. I think this can be of tremendous help to modders in terms of balancing the loot drops.

 

Updated, look at Alpha 2 release for the updated .exe to fix the minor math problem on Items directly in loot containers.

 

- - - Updated - - -

 

How do we know what container number is what? I see the container numbers for say calipers but in game wont know what those ones even are. Thanks

 

While the link earlier does work, it only works on the default Loot.xml assuming no changes made by the Devs. Once you start adding new Loot containers from Mods, those names won't stick. Best is to hope the modder added a comment in the loot.xml near their container ID to state what that ID is.

Share this post


Link to post
Share on other sites
Thanks, wow you can find a caliper in a car or zombie lumberjack? Never seen that before. Will have to keep these in mind since at least my seed I only found 1 working stiffs and im on day 60+ now. I also never seen a miners chest before that I can remember.

 

Yes, you can find them in those locations, but remember they are in the .02% chance range, so close to 1 in 5,000 chance, so good luck with those odds. :encouragement: The RNG is never that nice to me when I am specifically looking for something. Also at pre 13.8 I think there is a bug where LumberJack's dead bodies weren't correctly associated with their Loot Container, so it while it was technically available in the container, the body never linked to it, so it wasn't really there.

Share this post


Link to post
Share on other sites

Update!

 

I needed this tool to do some additional work to my loot.xml and found 2 additional math errors in the logic of this tool, so I went ahead and updated it. Math checks out across all examples and levels I have thrown at it so far.

 

Additions:

  • a new containernames.xml file will be created the first time you load your loot.xml with the default names of TFPs containers, along with all additional containers you have added, though unknown containers will have a "" name. You can edit this file with your names, and those names will load the next run.
  • Speaking of Container Names, now the name of the container will list next to the ID when looking at where Items can be found. Makes that view much easier. As well as next to the ID in the combo box.
  • Math Errors that were mentioned above. I can detail if you want the specifics
  • Loot Probability Templates now work correctly!!!! So if your Loot is based on a Probability Template, the tool will now figure the correct Probability, instead of assuming Prob=1 like it did previously. The downside, is the tool equates probability off all loot on the "Load" step for now, so comparing different Player Levels requires exiting and reloading for now. - use the MaxSkillLevel to set the overall world level, and the Player Level to set what you want the probability to be equated at Prior to clicking the LOAD button

 

As always, post here if you have questions on the tool.

Share this post


Link to post
Share on other sites

Oh, interesting! I had not noticed your program earlier, it can be useful.

What is the Output button ?

Share this post


Link to post
Share on other sites

Hmm. Ran it and it gives me a 33% chance for Tool And Die Set in a WorkingStiffs crate.

Eyeball Mk1 is considerably more accurate. =P

Share this post


Link to post
Share on other sites
Hmm. Ran it and it gives me a 33% chance for Tool And Die Set in a WorkingStiffs crate.

Eyeball Mk1 is considerably more accurate. =P

Yes, there:

<item name="toolAndDieSet" prob="0.5"/>

in addition, the decrease of the probability from the player's level.

hmmm...looks right ...

?

 

Upd: should be 12.5% on 1 player level ?

Edited by n2n1 (see edit history)

Share this post


Link to post
Share on other sites
Oh, interesting! I had not noticed your program earlier, it can be useful.

What is the Output button ?

Oops, that was a test button, it doesn't do anything currently and will remove it. Forgot.

 

- - - Updated - - -

 

Hmm. Ran it and it gives me a 33% chance for Tool And Die Set in a WorkingStiffs crate.

Eyeball Mk1 is considerably more accurate. =P

 

Hmmm, haven't heard of that tool, but fairly confident my math is correct. Will look at it again tomorrow to verify.

Share this post


Link to post
Share on other sites
Hmm. Ran it and it gives me a 33% chance for Tool And Die Set in a WorkingStiffs crate.

Eyeball Mk1 is considerably more accurate. =P

 

I just ran the newest (Alpha 3 that I just posted) and came up with 2.66% for Tool and Die set in a Working Stiff's Crate with 14.7 Loot.xml. Independent of Player level.

Share this post


Link to post
Share on other sites
Eyeball Mk1 is considerably more accurate. =P

 

HAHAHA, I am a dumbass... (Yes, I had to look that up on google). Sorry

 

Yes, at straight Containers, it is absolutely pretty easy to see the approximate probability of an item, but once you get 3 LootGoups deep it becomes much more difficult. Especially as I have found some pretty bad probabilities for TFPs Items in there. I have used this tool to fix a lot of those to my personal opinion (why I don't rel;ease my loot.xml, only the tool). Also now using it to add much more advanced Probability Templates, like ReverseBaseTemplate, so that I will find significantly less stone arrows once I hit the higher levels. Also, I edited Books, so I cannot find certain books until after certain levels, and upped Cement and Steel Skill reqs. (I am a masochist I guess??)

Share this post


Link to post
Share on other sites
Hmm. Ran it and it gives me a 33% chance for Tool And Die Set in a WorkingStiffs crate.

Eyeball Mk1 is considerably more accurate. =P

should be 12.5% on 1 player level ?

Edited by n2n1 (see edit history)

Share this post


Link to post
Share on other sites

New Update to Alpha 4.

 

I fixed the Probability Templates when they were used int he LootGoups, but they weren't being equated (defaulting to a 1) when the probability Template was used at the Container level. This has now been fixed as well. Maths=hard. :uncomfortableness:

 

Check out the new Alpha 4 release to get the newest fix.

Share this post


Link to post
Share on other sites

Could you please change the probabilities to display up to 3 decimal points? I'm seeing a lot of 0.0% in my loot probabilities and I know they are not absolute zero. :)

 

Thanks.

Share this post


Link to post
Share on other sites
Could you please change the probabilities to display up to 3 decimal points? I'm seeing a lot of 0.0% in my loot probabilities and I know they are not absolute zero. :)

 

Thanks.

 

if you download the source and run it from visual studio you can change this yourself

 

In Form1.cs, Line 595 and 620:

M_Output.AppendText(lc.Key + ":" + lc.Value.name + ", Prob in container: " + Math.Round(item.prob * 100, 4) + '%' + Environment.NewLine);

 

M_Output.AppendText(" " + item.item + ", " + Math.Round(item.prob * 100, 4) + "% " + tempCount + Environment.NewLine);

 

changing to that will make it 4 decimal places.

Share this post


Link to post
Share on other sites
if you download the source and run it from visual studio you can change this yourself

 

In Form1.cs, Line 595 and 620:

M_Output.AppendText(lc.Key + ":" + lc.Value.name + ", Prob in container: " + Math.Round(item.prob * 100, 4) + '%' + Environment.NewLine);

 

M_Output.AppendText(" " + item.item + ", " + Math.Round(item.prob * 100, 4) + "% " + tempCount + Environment.NewLine);

 

changing to that will make it 4 decimal places.

 

 

Done and done! Thanks Stompy.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...