• 🏆 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!

War3 Object Editor 0.7.1

War3 Object Editor provides a stand alone alternative to the standard Warcraft III object
editor.

0.7.1 : An additional fix for very large number of custom objects

0.7.0 : Added the ability to customize editor colors through the File->Options menu
Added support for maps larger than 4MB
Improved local language support
Fixed a bug related to maps with a very large number of custom objects

INSTALLATION

Unzip this application into the folder of your choice. War3 Object Editor should find your
Warcraft III directory. If for some reason it does not find your directory or if you
have multiple instances of Warcraft III installed, there is an option under the File pull
down menu to select the directory yourself.

USAGE

War3 Object Editor has features and options consistent with the Warcraft III editor.
Enhancements come from:

A spreadsheet metaphor
Improved data input menus
Enhanced copy and paste capabilities
Improved search capability
A feature to hide / unhide objects and properties to simplify editing
Ability to create custom .slk files
Integrated Balance, Damage and Armor - Damage Reduction calculators
Includes hidden icons, models, units and abilities
Includes a colorizer for string inputs
Ability to customize object property category names
Ability to pull object and terrain data directy from another map without going through import/export
Backup feature automatically creates backup copies of work
Local file support
Ability to customize editor colors

Provides a good base for future enhancements.

Since this is an early release of tool that manipulates critical map data, please save your
work prior to using.

Requires .NET Framework 4.5 You can download it here http://www.microsoft.com/en-us/download/details.aspx?id=30653

Keywords:
Warcraft, Object Editor, Editor, Objects, Object Manager, File Import Manager, Balance, Damage, Calculator, Armor, Colorizer
Contents

War3 Object Editor 0.7.1 (Binary)

Reviews
10:15, 18th Sep 2014 TriggerHappy: Interesting tool. Works. Are there any hidden fields this can modify?

Moderator

M

Moderator

10:15, 18th Sep 2014
TriggerHappy:

Interesting tool. Works.

Are there any hidden fields this can modify?
 
Level 3
Joined
Jan 27, 2013
Messages
13
Not sure what to do with that post. I don't read cyrillic. If I had to guess, it has something to do with a non English number format specification that is causing a problem with the code when it is trying to covert a string to a number. Can you translate the error messages?
 
Level 1
Joined
Aug 13, 2010
Messages
3
I have an idea.Open two or more Object Editor,and we can copy one object to another.I think it is useful to mark map easier.(just like use serializer or xml in clipboard to copy)

I am a Chinese,so I am not good at English very well.
 
Level 3
Joined
Jan 27, 2013
Messages
13
The info you have highlighted is being pulled directly from your war3 mpq by stormlib. Looks like you have a Russian language version of wc3, the change I made was to ask stormlib to pull English language versions of the files which apparently you do not have. I don't have access to a Russian language version so I can only guess at fixes. Can you email me your War3Patch.mpq file?
 
Level 9
Joined
Aug 26, 2010
Messages
573
Code:
System.IndexOutOfRangeException: Индекс находился вне границ массива.
   в ObjectEditor.NodeData.ItemObjects()
   в ObjectEditor.NodeData.GetObjects()
   в ObjectEditor.NodeData.Init()
   в ObjectEditor.MainDiag.UpdateNodes()
   в ObjectEditor.MainDiag.FileOpenMapClick(Object sender, EventArgs e)
   в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   в System.Windows.Forms.Control.WndProc(Message& m)
   в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   в System.Windows.Forms.ToolStrip.WndProc(Message& m)
   в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

I got an index out of bounds exception in ObjectEditor.NodeData.ItemObjects() while opening attached map.
 

Attachments

  • GS Code42.w3x
    5.1 MB · Views: 508
Level 3
Joined
Jan 27, 2013
Messages
13
Should be fixed now in Release 0.7.0

Do you really need to have 500 levels for some of your upgrades? It's making your map load very slowly. You should reset that number if you don't really need it. If you do need it, you should turn off backups by setting the number of backup copies to zero in the File->Options menu. Otherwise, you will experience long pauses while the editor periodically takes automatic backups.
 
Level 9
Joined
Aug 26, 2010
Messages
573
Code:
Подробная информация об использовании оперативной 
(JIT) отладки вместо данного диалогового 
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.IndexOutOfRangeException: Индекс находился вне границ массива.
   в ObjectEditor.ObjectData.UpdateAbilNames()
   в ObjectEditor.ObjectData.UpdateNames()
   в ObjectEditor.ObjectData.GetMapData(String map_folder_name, String map_file_name)
   в ObjectEditor.MainDiag.FileOpenMapClick(Object sender, EventArgs e)
   в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   в System.Windows.Forms.Control.WndProc(Message& m)
   в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   в System.Windows.Forms.ToolStrip.WndProc(Message& m)
   в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Загруженные сборки **************
mscorlib
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Object Editor+
    Версия сборки: 1.0.5112.28925
    Версия Win32: 
    CodeBase: file:///H:/New/War3ObjectEditor0.7.0/War3ObjectEditor0.7.0.exe
----------------------------------------
System.Windows.Forms
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.1 built by: RTMRel
    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
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

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

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.

Again out of range, in another map. Can't give u open version, srry.
 
Level 3
Joined
Jan 27, 2013
Messages
13
Can you add changing of multiple selected values at the same time?

Do you mean you want to select multiple fields and then enter one value that will be the same for all? If so, can you tell me more about why you want that capability? Right now you can copy and past a value across multiple cells.

The other option is to enter multiple related fields through a single menu. You can do that now through the damage calculator or unit balance calculator.

Again out of range, in another map. Can't give u open version, srry.

How many custom abilities do you have in this map?
 
Last edited by a moderator:
Level 6
Joined
Jan 13, 2013
Messages
129
I get an unhandled exception when I open my map which leaves an Opening Map File dialog box that simply says Updating Objects in it. I can click around it and still navigate the object editor however it does not have any data from my map.
Code:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at ObjectEditor.NodeData.AbilObjects()
   at ObjectEditor.NodeData.GetObjects()
   at ObjectEditor.NodeData.Init()
   at ObjectEditor.MainDiag.UpdateNodes()
   at ObjectEditor.MainDiag.FileOpenMapClick(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.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.6.100.0 built by: NETFXREL2STAGE
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Object Editor+
    Assembly Version: 1.0.5116.26363
    Win32 Version: 
    CodeBase: file:///C:/Users/Swan/Documents/warcraft%203/War3%20Object%20Editor%200.7.1/War3ObjectEditor0.7.1.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.81.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.81.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.91.0 built by: NETFXREL2STAGE
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.81.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.81.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.81.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.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.
 
Level 25
Joined
Feb 2, 2006
Messages
1,669
Can you port this to Reforged and detect bioth Classic and Reforged directories? I think this could be a rather useful tool if you want to change values and have some multiedit/better copy&paste functionality!

When I import the attached object data I get the following error:

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
bei ObjectEditor.ObjectData.GetImportAbilData(BinaryReader br)
bei ObjectEditor.MainDiag.FileImportAllClick(Object sender, EventArgs e)
bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
bei System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4390.0 built by: NET48REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
Object Editor+
Assembly-Version: 1.0.5116.26363.
Win32-Version: .
CodeBase: file:///C:/Users/Tamino/Downloads/War3%20Object%20Editor%200.7.1/War3ObjectEditor0.7.1.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4390.0 built by: NET48REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4360.0 built by: NET48REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4390.0 built by: NET48REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Configuration
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4190.0 built by: NET48REL1LAST_B.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Core
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4390.0 built by: NET48REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Xml
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4084.0 built by: NET48REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4084.0 built by: NET48REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.4084.0 built by: NET48REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

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

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

I only expected the Doodad data to be broken and not the abilities. Continue does not help to achieve anything.

If this tool would work and had Reforged support, I would rate it much higher.
THe performance could be better and you could load BLP textures and preview them and preview pathing textures which the World Editor does NOT!
It should also support some search bars as the current World Editor does.
You could also support changing the base ID of custom objects which is not possible with the World Editor.

You could support more custom SLKs but they only would work for real modifications and not custom maps.
 

Attachments

  • ObjectData.7z
    162.9 KB · Views: 42
Last edited:
Level 7
Joined
Jan 11, 2022
Messages
108
Hey I have the problem that when I open the object editor it just says "reading units", doesnt load, and after 3seconds just disappears. checked the proccesses, and it's working for these 3seconds then just quits
 
Top