• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

W3x2Lni v2.7.2

W3x2Lni is a wc3 map management tool. It helps you to manage your maps when developing or publishing.We defined 3 formats for a wc3 map, and w3x2Lni allows you to convert your maps amongst these 3 formats which are `Lni`, `Obj` and `Slk`.

> Lni
`Lni` is a VCS (like git, svn) friendly format. It looks like a directory. Most binary files in w3x will be converted into plain text files (yes! human-readable) by w3x2Lni which will also organize and categorize these text files.

> Obj
`Obj` is a wc3-readable and WE-readable format. If you want to open your map with WE, convert your map into this format.

> Slk
`Slk` is only readable by wc3 and should be used for final distribution. W3x2Lni enables multiple optimization for this format, including:

* Objects converted to slk
* Removed unreferenced objects
* Removed WE-only files
* Inlined WTS strings
* Compressed mdx
* Removed comments and unncessary white spaces in the script
* obfuscated variable and function name

W3x2Lni comes with war3 1.27.1 English data files. But it may not meet everyone's needs, you can use `w2l mpq <war3_path>` to extract data files.


For more information see the documentation.


W3x2Lni is a open source project.We welcome any pull request, e.g. improving the English text or writing English documents.
Contents

W3x2Lni v2.7.2 (Binary)

Reviews
eejin
The tool works as one would expect. The UI is nice and to the point. Only thing I am missing is a back button wen you have chosen a conversion mode. You also cannot scroll horizontally when viewing the log when converting to Lni. I am looking...
Level 4
Joined
Sep 25, 2017
Messages
56
Im sorry this Bug has been 3 months. Because it only appears in the English version, I never found it.

I have been able to have no errors by editing the trigger file from lni format triggers. For some reason spaces are added on properties.

upload_2018-8-27_18-53-26.png


After removing those spaces, no errors were thrown. Not sure where is this file generated, but that seems to be the problem.

upload_2018-8-27_18-53-1.png
 
Level 4
Joined
May 31, 2018
Messages
92
I have been able to have no errors by editing the trigger file from lni format triggers. For some reason spaces are added on properties.

View attachment 305365

After removing those spaces, no errors were thrown. Not sure where is this file generated, but that seems to be the problem.

View attachment 305364
You are right, we added postspace just for alignment. Unfortunately, I mistaken it for quotation marks, so when W2L load lml, the key read with redundant space, makes converting failed.
 
Level 16
Joined
Apr 14, 2016
Messages
382
Hello!

Forgot to mention this, it is nothing essential, but. Is it possible to add a feature to disable comment creation in .ini files or could you make it support English? It would be a neat thing, at least for me. Would be glad to have such option in the tool. Found nothing else to mention, all seems to work as it should.
 
Last edited:
Level 4
Joined
May 31, 2018
Messages
92
Hello!

Forgot to mention this, it is nothing essential, but. Is it possible to add a feature to disable comment creation in .ini files or could you make it support English? It would be a neat thing, at least for me. Would be glad to have such option in the tool. Found nothing else to mention, all seems to work as it should.

The comments should be English, I will check it again.
 
Level 4
Joined
May 31, 2018
Messages
92
Hello!

Forgot to mention this, it is nothing essential, but. Is it possible to add a feature to disable comment creation in .ini files or could you make it support English? It would be a neat thing, at least for me. Would be glad to have such option in the tool. Found nothing else to mention, all seems to work as it should.

I have checked it again, it seems ok. Maybe redownload would fix it.
 
Level 4
Joined
Sep 25, 2017
Messages
56
Could you add a warning when an ability has an invalid order id?

unknown.png


In a map someone translated, they translated the order so changed from rejuvination (valid order id) to Rejuvenation (invalid), which caused the ability not to work and took a long while to figure out why.
 
Level 4
Joined
May 31, 2018
Messages
92
Could you add a warning when an ability has an invalid order id?

unknown.png


In a map someone translated, they translated the order so changed from rejuvination (valid order id) to Rejuvenation (invalid), which caused the ability not to work and took a long while to figure out why.

Sure. We plan to add a new option. When this option is enabled, W3x2lni will check the rationality of the attribute. Thank you for your advice!
 
Level 7
Joined
Aug 11, 2009
Messages
193
I don't exactly understand how this tool is supposed to work but my experience with it is disastrous so far.
upload_2018-11-23_23-55-3.png


This is what the map ends up like after I let it through this tool. All the text and names are gone and replaced with either blank space or TRIGSTR_XXX.

For reference I've only selected "Remove WE-only files" as an option in the tool.
 
Level 4
Joined
Sep 25, 2017
Messages
56
@Krotos have you checked the log file for errors? Also trying the 1.1c map from epicwar checking all options on convertion to slk works for me: would advice to check log file, but it could also be a bug which doesn't happen on older w3x2lni version / on the map you posted on epicwar. Hard to say without the map you tried with


upload_2018-11-23_21-23-59.png
 
Level 6
Joined
May 1, 2012
Messages
95
Here's the log for my file btw. It gets messed up no matter what I do. report.log

Thank you for your feedback. The log shows two errors. One is the syntax error of jass, this is because you are not using the correct data file; w3x2lni provides you with the data file of Warcraft III1.27, but this is a constant definition from 1.29. The other is the wts parsing error, this is the w3x2lni bug, I will fix it.
 
Level 7
Joined
Aug 11, 2009
Messages
193
Thank you for your feedback. The log shows two errors. One is the syntax error of jass, this is because you are not using the correct data file; w3x2lni provides you with the data file of Warcraft III1.27, but this is a constant definition from 1.29. The other is the wts parsing error, this is the w3x2lni bug, I will fix it.
I know that one of the syntax errors is the tool not recognising colour conversion to Emerald, because 1.27 and 1.28 didn't have it, but 1.29+ do. It's the rest that's currently not letting me release the map as I am unable to optimise it and protect it. I'd appreciate a quick upload of a fixed version of lni.

Speaking of: any chance of renaming the tool in the future into something more...official / presentable? W3x2lni is such a weird name and my initial thought was that this is a highly experimental, mega-unstable tool that might just explode my maps instead of helping them.
 
Level 6
Joined
May 1, 2012
Messages
95
Speaking of: any chance of renaming the tool in the future into something more...official / presentable? W3x2lni is such a weird name and my initial thought was that this is a highly experimental, mega-unstable tool that might just explode my maps instead of helping them.



I think the name is very good. Maybe you only use the features of the optimized map, but in fact the main feature of this tool is to convert the map (w3x) and lni to each other. Optimizing the map is only a feature from 1 to 2, but lni is a feature from 0 to 1. It's very powerful, it makes a lot of things from impossible to possible.
 
Level 7
Joined
Aug 11, 2009
Messages
193
I think the name is very good. Maybe you only use the features of the optimized map, but in fact the main feature of this tool is to convert the map (w3x) and lni to each other. Optimizing the map is only a feature from 1 to 2, but lni is a feature from 0 to 1. It's very powerful, it makes a lot of things from impossible to possible.
Fair enough. I just thought calling it something like 'Actboy's W3x2Lni Converter/Multi-purpose tool' would make it clearer what it's about from a glance.

EDIT: Just gave it a shot and everything works right now. Cheers.
 
Last edited:
Level 5
Joined
Mar 6, 2017
Messages
190
99357CEB-D562-409F-9BCF-DE55A086869C.jpeg
Thanks
I want to report this too
PLEASE keep the “ORIGINAL BLIZZARD’S SLK STRUCTURE”
My map use a lot of objects and it’s really lag when opening
So I use those slks from the map to custom edit the value in editor
But,your slks fucked up things,world editor wont read them like it DID read anymore
Here the errors
 
Level 6
Joined
May 1, 2012
Messages
95
View attachment 310565 Thanks
I want to report this too
PLEASE keep the “ORIGINAL BLIZZARD’S SLK STRUCTURE”
My map use a lot of objects and it’s really lag when opening
So I use those slks from the map to custom edit the value in editor
But,your slks fucked up things,world editor wont read them like it DID read anymore
Here the errors

I don't know what you're talking about. At any time, slk should not be used for WE editing. It is a format that exists to optimize runtime speed.
 
Level 3
Joined
May 5, 2018
Messages
31
I don't quite understand what you mean, can you say more?
Are you writing lni, and want to write lni more efficiently?
I just need to compare abilities stats between two generated ini files (with Lni) but these tooltips makes comparing more complicated, so I wanted to generate ini files with Lni thing without these tooltips, only pure numbers (like on screen), but I suppose there is no such a function
 
Last edited:
Level 6
Joined
May 1, 2012
Messages
95
I just need to compare abilities stats between two generated ini files (with Lni) but these tooltips makes comparing more complicated, so I wanted to generate ini files with Lni thing without these tooltips, only pure numbers (like on screen), but I suppose there is no such a function

If you know a little bit about lua, the problem is simple. W3x2lni is released in source code, you can modify it at any time.

sumneko/w3x2lni

This is where the lni is generated. For values you don't want, you can use `return`, for example
Code:
if key == "Tip" then
    return
end
 
Level 3
Joined
May 5, 2018
Messages
31
If you know a little bit about lua, the problem is simple. W3x2lni is released in source code, you can modify it at any time.

sumneko/w3x2lni

This is where the lni is generated. For values you don't want, you can use `return`, for example
Code:
if key == "Tip" then
    return
end
Oh, thats really helped, thats what I needed! Thanks! I can only advice to make these things as additional... options? to the programm itself, to make people life easier, without coding :D
 
Level 6
Joined
May 1, 2012
Messages
95
Top