Tool TExtract - Extract Terraria's images, sound effects and music!

Antag99

Skeletron Prime
TExtract is a tool for extracting Terraria's images, sound effects and music. Feedback is welcome.

dY83yMF.gif


Changelog:
1.7.0 (2016-12-30): Added support for the PCM wavebank format, which is used in 1.3.3 wavebanks.
1.6.0 (2015-07-25): Added support for the ADPCM wavebank format, which is used on Linux/Mac
1.5.0 (2015-07-08): Implemented command-line options, along with various tweaks and changes
1.4.2 (2015-07-01): Added music names for 1.3 tracks
1.4.1 (2015-05-10): Fixed image encoding issues, which resulted in rejection by some programs.
1.4.0 (2015-05-03): Updated GUI, download is now much smaller. Dropped font extraction (simply wasn't usable).
1.3.3 (2014-12-21): Speeded up image extraction
1.3.2 (2014-11-11): Fixed crash when extracting large tracks
1.3.1 (2014-11-02): Fixed steam path detection error
1.3.0 (2014-10-31): Image files are now compressed, improved steam path detection
1.2.1 (2014-10-27): Fixed music extraction issues on Linux
1.2.0 (2014-10-27): Removed .NET requirement, by implementing XNB decompression in java
1.1.1 (2014-10-09): Fixed issues when the terraria directory wasn't found
1.1.0 (2014-09-28): Optimized image extraction, small GUI changes
1.0.0 (2014-09-27): Initial release

Download:
EXE (v1.7.0)
JAR (v1.7.0)


Bugs/Feature Requests:
Post in this thread, or on the issue tracker. Please attach TExtract.log in case of errors.

As of version 1.5.0, TExtract can operate via command-line options:
Code:
java -jar "TExtract X.X.X.jar" [options] [--] [files]
Where available options are:
Code:
--help - Lists available commands
--outputDirectory path - Where extracted files will be put
--logLevel trace|debug|info|error|none - Verbosity
--logFile - Enable log file
--no-logFile - Disable log file
If no output directory or input file is provided, the GUI is started as usual.

This is an open source project. Check it out at the GitHub Repository.
 
Last edited:
I think we're fine. Only one Antivirus (NANO) detected a trojan, so it's most certainly a false positive.

Thanks for the uploading. Definitely going to try this baby out. Not for any particular reason, really.
 
Hmph. Java. Did you manage to load the XNB files in Java? I needed such a piece of code like, 2 years ago, lol.
Anyway, good job I guess. The XNB -> PNG tool was getting old.

EDIT: Oh, nope. The XNB -> PNG part is C#. Welp.
 
Google Chrome is saying it's malware. I'd really like to try this out, so if it isn't really malware, try to fix that. :/
 
@SpartaCraft I wonder, did you ever try downloading ANY .EXE FILE WITH ANY MODERN BROWSER? They all go "it might be malware, open at your own risk" - just so you can't blame the browser author for anything. It's not like every .EXE file is malware. I don't even think 10% of total .EXE files are malware.
Same goes for .JAR.

Also, I don't think you should be using this app, if you're so worried. You sound like someone who shouldn't be using this, or just won't have any use of it.
 
Google Chrome is saying it's malware. I'd really like to try this out, so if it isn't really malware, try to fix that. :/
Well, use another browser or disable the "malware" block in chrome.
Hmph. Java. Did you manage to load the XNB files in Java? I needed such a piece of code like, 2 years ago, lol.
Anyway, good job I guess. The XNB -> PNG tool was getting old.

EDIT: Oh, nope. The XNB -> PNG part is C#. Welp.
Well, everything exept LZX decompression and the xWma to wav conversion was done in java. I've thought of porting the rest so it can be run on all platforms, but it's tricky.
 
@SpartaCraft I wonder, did you ever try downloading ANY .EXE FILE WITH ANY MODERN BROWSER? They all go "it might be malware, open at your own risk" - just so you can't blame the browser author for anything. It's not like every .EXE file is malware. I don't even think 10% of total .EXE files are malware.
Same goes for .JAR.

Also, I don't think you should be using this app, if you're so worried. You sound like someone who shouldn't be using this, or just won't have any use of it.
No, I've only seen it with this EXE. How do I sound like "someone who shouldn't be using this"? I'm saying I'm not going to needlessly download a virus, so I would rather he just fixed the problem instead of me turning off malware protection.
 
This is pretty awesome, nice work :D

Now if only I could get lossless copies of the Terraria Console Exclusive tracks, my terraria music folder would be complete!
Edit: I actually managed to do that with a few tools, woo a complete terraria music collection ^.^
 
Last edited:
No, I've only seen it with this EXE. How do I sound like "someone who shouldn't be using this"? I'm saying I'm not going to needlessly download a virus, so I would rather he just fixed the problem instead of me turning off malware protection.
Some programs look like malware because of how they work, there's not some kind of magic switch you can flip in the code that tells google chrome something isn't malware.
 
Some programs look like malware because of how they work, there's not some kind of magic switch you can flip in the code that tells google chrome something isn't malware.
I know. But when other EXE's don't have this problem, there should be a way for them to not have this problem either.

Though with all the positive feedback on this thread, I'll turn off my malware protection just to download this.
 
hey. i don't understand, how to set Content folder?

I lounch programm and set directory: D:\Games\steam\steamapps\common\terraria and nothinc going on.
i select any file in \Content\.. folder or any file and have message:
upload_2014-10-9_8-39-1.png


in the tExtract folder appear new TerrariaAssets, contain log.txt:
Exception in thread "Thread-4" java.lang.NullPointerException
at com.github.antag99.textract.task.DecompressionTask.perform(Unknown Source)
at com.github.antag99.textract.ExtractorFrame.executeTasks(Unknown Source)
at com.github.antag99.textract.ExtractorFrame.extractContent(Unknown Source)
at com.github.antag99.textract.ExtractorFrame$2$1.run(Unknown Source)
 
hey. i don't understand, how to set Content folder?

I lounch programm and set directory: D:\Games\steam\steamapps\common\terraria and nothinc going on.
i select any file in \Content\.. folder or any file and have message:
View attachment 4183

in the tExtract folder appear new TerrariaAssets, contain log.txt:
Exception in thread "Thread-4" java.lang.NullPointerException
at com.github.antag99.textract.task.DecompressionTask.perform(Unknown Source)
at com.github.antag99.textract.ExtractorFrame.executeTasks(Unknown Source)
at com.github.antag99.textract.ExtractorFrame.extractContent(Unknown Source)
at com.github.antag99.textract.ExtractorFrame$2$1.run(Unknown Source)
I have EXCACTLY the same problem, but it gets stuck on "decrompressing XNB files 1/6"
 
This is pretty awesome, nice work :D

Now if only I could get lossless copies of the Terraria Console Exclusive tracks, my terraria music folder would be complete!
Edit: I actually managed to do that with a few tools, woo a complete terraria music collection ^.^

Could you upload and link your music collection? I just cant get it to work :(
 
hey. i don't understand, how to set Content folder?

I lounch programm and set directory: D:\Games\steam\steamapps\common\terraria and nothinc going on.
i select any file in \Content\.. folder or any file and have message:
View attachment 4183

in the tExtract folder appear new TerrariaAssets, contain log.txt:
Exception in thread "Thread-4" java.lang.NullPointerException
at com.github.antag99.textract.task.DecompressionTask.perform(Unknown Source)
at com.github.antag99.textract.ExtractorFrame.executeTasks(Unknown Source)
at com.github.antag99.textract.ExtractorFrame.extractContent(Unknown Source)
at com.github.antag99.textract.ExtractorFrame$2$1.run(Unknown Source)
I have EXCACTLY the same problem, but it gets stuck on "decrompressing XNB files 1/6"
This should have been fixed in the new version, thanks for reporting!
 
And version 1.3.1 only extracts the "overworld night" theme. god damit
heres the crash log:
2014-11-11 15:23:05 [ERROR] (XactExtractor.java:256) - An unexpected error occured when extracting Wave Bank
java.nio.BufferOverflowException
at java.nio.HeapByteBuffer.put(Unknown Source)
at java.nio.ByteBuffer.put(Unknown Source)
at com.github.antag99.textract.extract.XactExtractor.extract(XactExtractor.java:236)
at com.github.antag99.textract.Extractor.extract(Extractor.java:59)
at com.github.antag99.textract.ExtractorGUI.run(ExtractorGUI.java:145)
at java.lang.Thread.run(Unknown Source)
thats why i dont like java.
oh actually, that happens with every version. You program doesnt suport custom wavebanks. FIX THIS PLEASE!
 
Back
Top Bottom