←  Mods & Addons

Main page

»

WoTStat: A WoT Battle Log Analyzer

Kajiryu's Photo Kajiryu 23 Feb 2012

Download WoTStat 1.7 (Compatible with WoT 7.5)

FAQ

I am developing a tool called WoTStat which can extract data out of garage screenshots from World of Tanks. It uses optical character recognition to get the amount of credits, exp, repairs, ammo and consumables from a screenshot. It works already quite well, but it needs some testing in non-developer environments now.

If you always wanted to know which of your tanks is the most profitable one, you should give WoTStat a try!

WoTStat is build on top of the Netbeans Platform. This means everybody could develop new plugins which then could be integrated seamlessly.

For some more screenshots and features look at my website: WoTStat

Spoiler

Important Requirements!!
  • Till now WoTStat can only recognize garage screenshots with english text! (Regular Expressions for other languages can be created in the "OCRLanguages" folder. Only languages with characters in the ASCII range are recognizable. Also if the language has accents you need all the trained language files which are in the tessdata directory for this language. You can find Tesseract 2.0 languages here: http://code.google.c.../downloads/list)
  • Java RE 7 (32bit) must be installed for WoTStat to run.
  • For the ReadabilityMod installation to succeed, you need to have permissions to write in the World of Tanks folder.


I hope someone finds this tool useful and I am open for suggestions on how to improve WoTStat.

Edit: Whenever a new update is released, I advise that you separate your old screenshots from the new ones until I have updated the Tank Support Module. If there are new tanks, I have to add them to the supported list first. If WoTStat doesn't know a tank, it will find the tank name which is the most closest.

P.S.: To Wargaming: If there are copyright problems with the splash screen image, logo, or link to your website in my application, just tell me. I will replace it then.
Quote

xpnotoc's Photo xpnotoc 23 Feb 2012

This is really cool. The only drawback is the fact that you have to take screenshots after every game.. Obviously this is necessary since this is an optical recognition approach, but it may not be an easy way for most users (that are lazy) ;)
Quote

Kajiryu's Photo Kajiryu 23 Feb 2012

Yeah, you are absolutely right. But before I was typing my battle log numbers into Excel/Calc manually and it was really annoying and time consuming. Taking a screenshot is the lesser evil.  ;)

I still hope WG will implement a battle log file eventually. That would make scanning so much easier and faster. But till then this has to do.
Quote

Phalynx's Photo Phalynx 24 Feb 2012

Really nice idea to track the income/outcome.
Quote

Vertius's Photo Vertius 25 Feb 2012

WOT Colored Battle Messages can affect your program?
I'm getting this error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Quote

daanoontje's Photo daanoontje 25 Feb 2012

I got the same thing:

java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)


Don't have the color blind mod though.
Quote

Kajiryu's Photo Kajiryu 25 Feb 2012

View PostVertius, on 25 February 2012 - 08:49 PM, said:

WOT Colored Battle Messages can affect your program?
I'm getting this error:
java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)

The OCR engine is quite sensitive to changes in color, so I think it can create some problems. But if the OCR engine can't recognize a screenshot it will get rejected and continue to run fine.

I think the reason for this error is that this method was added only at Java 1.7. Seems like I have to update the requirements in my post. Thanks for pointing that out.
Quote

Trent's Photo Trent 26 Feb 2012

Brilliant idea.

However...

View PostKajiryu, on 23 February 2012 - 07:01 PM, said:

WoTStat can only recognize the system messages in the garage which are not floating.
Any plans for changing that in the future? I have garage screenshots of my last ~2000 battles. Many of them have floating messages, unfortunately.
Quote

daanoontje's Photo daanoontje 26 Feb 2012

Kajiryu, is there gonna be a quick fix or is this something for in the long run?
Quote

Kajiryu's Photo Kajiryu 26 Feb 2012

View PostTrent, on 26 February 2012 - 05:16 AM, said:

Brilliant idea.

However...


Any plans for changing that in the future? I have garage screenshots of my last ~2000 battles. Many of them have floating messages, unfortunately.

I thought about it, but at the moment I don't know how to implement this. The thing is, the non-floating messages have a background, which is blank if the message is shorter (e.g if you didn't need to restock ammo or repair). And this message window has always the same size. The floating messages however have the tank stats as a background, which would interfere with the text recognition. Besides that, I first would have to distinguish between floating and non-floating messages, so I could apply the ocr algorithm to the correct image area.

I have some ideas with checking the image for horizontal lines and finding the borders of the messages. But that would be higly experimental. I will try to look into it. Don't get your hopes up yet.  ;)

BTW, could you post one of your screenshots? I am using a laptop and it only can run one resolution (1366x768). I have to check, if the floating messages are also always at the same position.
Quote

Kajiryu's Photo Kajiryu 26 Feb 2012

View Postdaanoontje, on 26 February 2012 - 01:57 PM, said:

Kajiryu, is there gonna be a quick fix or is this something for in the long run?
Sorry, definitely no quick fix for the floating message thingy. If I am able to find a solution, it will take some time. :mellow:
Quote

daanoontje's Photo daanoontje 26 Feb 2012

No i actually meant the Error:

java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)

Or is that the same thing? Because in that case i can just delete all the floating images :)
Quote

Kajiryu's Photo Kajiryu 26 Feb 2012

View Postdaanoontje, on 26 February 2012 - 04:09 PM, said:

No i actually meant the Error:

java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)

Or is that the same thing? Because in that case i can just delete all the floating images :)

Ah ok, the quick fix would be to install Java RE 7. Then it should work fine. I didn't get a response about it yet though. If this works for you please tell me.
Quote

Renovatio74's Photo Renovatio74 26 Feb 2012

Thanks for this tool, it is nearly exactly what I have been searching for :) The only thing, as others already mentioned is, that you have to import the data manually via screenshots. But I am looking forward to future developement. Can we have a "Stay tuned" on that please ? ^^
Quote

daanoontje's Photo daanoontje 26 Feb 2012

View PostKajiryu, on 26 February 2012 - 04:23 PM, said:

Ah ok, the quick fix would be to install Java RE 7. Then it should work fine. I didn't get a response about it yet though. If this works for you please tell me.

Nope, still getting the error:

java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
Quote

Kajiryu's Photo Kajiryu 26 Feb 2012

View PostRenovatio74, on 26 February 2012 - 05:35 PM, said:

Thanks for this tool, it is nearly exactly what I have been searching for :) The only thing, as others already mentioned is, that you have to import the data manually via screenshots. But I am looking forward to future developement. Can we have a "Stay tuned" on that please ? ^^
There probably never will be another input then screenshots. I tried to make it as automatic as possible, with the given circumstances. I thought about directory monitoring though. WoTStat would just monitor your screenshot folder and imports new ones when they are written by WoT.

View Postdaanoontje, on 26 February 2012 - 05:44 PM, said:

Nope, still getting the error:

java.lang.NoSuchMethodError: java.io.File.toPath()Ljava/nio/file/Path;
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:87)
This seems to be a problem with the Java environment. Do you have by chance two or more different Java environments installed. Please look in your "Program Files/Java" directory. If there is a folder beginning with "JRE6" then maybe you had JRE6 environment installed before and it is still registered as default.
Quote

Renovatio74's Photo Renovatio74 26 Feb 2012

View PostKajiryu, on 26 February 2012 - 06:34 PM, said:

I thought about directory monitoring though. WoTStat would just monitor your screenshot folder and imports new ones when they are written by WoT.
This would be really great and I think thats enough even for lazy ppl like me ;)

View PostKajiryu, on 26 February 2012 - 06:34 PM, said:

This seems to be a problem with the Java environment. Do you have by chance two or more different Java environments installed. Please look in your "Program Files/Java" directory. If there is a folder beginning with "JRE6" then maybe you had JRE6 environment installed before and it is still registered as default.
That was exactly the problem I had, unfortunately Java doesn't remove old versions when installing a new one. I had to manually deinstall JRE 6, so that only JRE 7 is present on the system.

But after removing the old Java, I get a message that it can not find tessdll module, even though the file tessdll.dll is residing in the bin directory (I changed nothing after extracting).
The error occurs after pressing start to start scanning the screenshots.
Quote

Kajiryu's Photo Kajiryu 26 Feb 2012

View PostRenovatio74, on 26 February 2012 - 07:03 PM, said:

But after removing the old Java, I get a message that it can not find tessdll module, even though the file tessdll.dll is residing in the bin directory (I changed nothing after extracting).
The error occurs after pressing start to start scanning the screenshots.

:blink: That is very strange. I can't imagine why the application doesn't find the dll. Do you use a 64bit operating system?

The Tesseract Library is 32bit DLL, but it should also run fine on 64bit systems. It would be good when some other people with 64bit systems would report if they have the same error.

Renovatio74, can you copy and pm me the full ide log text? You find the IDE Log under the View->IDE Log menu.
Quote

Renovatio74's Photo Renovatio74 26 Feb 2012

View PostKajiryu, on 26 February 2012 - 07:36 PM, said:

:blink: That is very strange. I can't imagine why the application doesn't find the dll. Do you use a 64bit operating system?

The Tesseract Library is 32bit DLL, but it should also run fine on 64bit systems. It would be good when some other people with 64bit systems would report if they have the same error.

Renovatio74, can you copy and pm me the full ide log text? You find the IDE Log under the View->IDE Log menu.

Yes it's a 64 Bit Windows 7.

I PM you the log you requested.
Quote

daanoontje's Photo daanoontje 26 Feb 2012

View PostRenovatio74, on 26 February 2012 - 08:05 PM, said:

Yes it's a 64 Bit Windows 7.

I PM you the log you requested.


I had the old Java 6 still running and deleting that indeed worked, but now i got myself a new error. Probably the same one as Renovatio74.

java.lang.UnsatisfiedLinkError: Unable to load library 'tessdll': The specified module could not be found.

	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:169)
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:242)
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:205)
	at com.sun.jna.Native.register(Native.java:1033)
	at net.sourceforge.tess4j.TessDllAPI1.<clinit>(TessDllAPI1.java:35)
	at org.brainnucleus.wotstat.ocr.OCR.getTextFromImageWithTesseract2OCR(OCR.java:168)
[catch] at org.brainnucleus.wotstat.screenshotimporter.AnalyzerTask.run(AnalyzerTask.java:77)

Aslo 64bit windows 7 :)
Quote
Get the IPS Communities App for iPhone now!