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

Warcraft III: Community Edition

Warcraft III: Community Edition is a launcher designed specifically for Warcraft III, version 1.29.2.9231, nothing more, nothing less. The goal is to make a stable modding platform compatible with retail. A platform where we can add our own carefully considered features and thrive.

Alpha Version​

This is an alpha version of the launcher and will have a lot of issues. The point of this alpha release is to gather feedback on what needs fixing.

Please report any issues you encounter directly in this thread, or on our GitHub repo.

Installation Guide​

  1. Download 1.29.2 from here.
  2. Download Warcraft III: Community Edition and unzip it to a separate folder, not into the Warcraft III folder.
  3. Make sure you have the dependencies listed below.
  4. Make sure you have your CD-keys ready for both Reign of Chaos and The Frozen Throne.
  5. Run W3CE.Launcher and follow the on-screen instructions.

Dependencies​

Features​

  • Support for loading maps up to version 1.36.
  • Support for most natives introduced up to version 1.36.
  • Support for loading maps written in Lua.
  • Support for compiling map scripts with WASM.
  • Support for loading SD models up format version 1100.
  • A server to play with friends on.

Making your own maps​

We do not ship a custom World Editor with W3CE, so you are free to work on your maps in whatever editor you like (including the Reforged World Editor). In order for you to use our custom natives from JASS, you will have to enable local files and overwrite the common.j with our custom one.
  1. Enable local files
  2. Download W3CE's common.j
  3. Place the common.j in your <Warcraft III Installation Folder>/_retail_/scripts folder.

Known Issues​

  • New abilities introduced since 1.29.2 (Sundering Blades, Prioritize, etc) are currently not supported, but will only silently fail with a log message.
  • Many HD assets will be missing (pic related), but we do forward the ones we can to SD.
  • The frame API is still being worked on and needs some edge cases ironed out.

Planned Features​

  • Server stored characters and progress.
  • Reconnect and joining games in progress.
  • Map signing and author verification.
  • Tools to aid map developers in debugging desyncs.

Frequently Asked Questions (FAQ)​

  • What if I don't have CD Keys?
    • We plan on adding support for players who have purchased Reforged but do not own any CD keys.

How can I help?​

Right now the thing we need the most is testers to try out their favorite maps, to see where our efforts should be focused.
Feedback in this tool thread and in the #w3ce channel on our Discord server is warmly welcomed.

Credits and Acknowledgements​

W3CE builds on decades of knowledge gathered across many communities and wouldn't have been possible without everyone involved now and in the past.

Changelog​

  • Added an alternate CE version of the object instance API which is 1 indexed and doesn't exhibit any bugged behavior.
  • BlzSetUnitWeaponRealField now matches the bugged behavior of Reforged.
  • Fixed an issue where maps with UTF8 characters in their trigger string file would not display properly.
  • Fixed a crash that could occur after playing a second map.
  • Fixed a crash that could occur randomly after playing multiple maps.
  • Fixed a crash that would occur when importing a 0kb terrain tile texture.
  • Fixed a crash that would occur when assigning frame's parent to a simpleframe.
  • WASM is now a supported scripting environment, allowing developers to code their maps in a variety of different languages such as Rust, C++, Go, Java, and so on.
  • Significantly improved map loading times.
  • Blizzard natives are now zero indexed in order to match Reforged's behavior.
  • Added 14 new origin frame types.
  • Added 24 new frame natives.
  • Added 10 new input natives.
  • Added CeGetAbilityLevel which allows you get the current level of an ability or buff object
  • BlzSetItemName, BlzSetItemDescription, and BlzSetItemIconPath are now working properly.
  • Implemented the item instance natives.
  • Implemented the majority of the unit instance natives.
  • Implemented the majority of the ability instance natives.
  • BlzFrameGetText now works for SimpleStrings.
  • BlzFrameSetTooltip now works for SimpleButtons.
  • BlzFrameGetByName now works with many different origin frames.
  • EditBox frames now have functioning events.
  • Fixed an issue where health bars would appear over the UI.
  • Fixed an issue where the texture cache was not working, causing maps to stutter.
  • Fixed an issue where FrameGetTextValue could cause a crash.
  • Fixed an issue where using strings longer than 1024 characters could cause a crash.
  • Fixed an issue where BlzEnableCursor could cause a crash.
  • Fixed an issue where TFT maps that used Reforged doodad data would crash.
  • Fixed an issue where BlzSetItemSkin would cause items to be invisible.
  • Fixed an issue where some frame events would trigger in reverse.
  • Fixed an issue where DXT1 textures did not support transparency.
  • Fixed an issue where textures with no mipmaps could fail to load.
  • Fixed an issue where keyboard events only fired for one player.
  • Fixed an issue where sync events would not take the sync prefix into account.
  • Fixed an issue where TriggerSleepAction would crash Lua maps.
Changes

Adds support for loading more texture formats (bmp, png, tif, dds, ktx, ktx2).
Improved asset loader to look into common retail paths.
Implemented multiple retail natives.
Improved retail parity in special effect natives.
Expanded W3CE API, adds many new natives related to updating models and their textures on units, items, effects, etc.

Fixes

Fixes Lua issue with equality and nil values.
Changes

Adds automatic UPnP port forwarding to help with Battle.net hosting.
Improves Lua FourCC and print.
Adds support for --verbose command line, to get more detailed logging.
Adds support for UNIT_RF_FLY_HEIGHT.
Adds support for GetUnitZ.

Fixes

Broken Lua dependencies.
Broken Lua common.j event ids.
Crash related to chain lightning from bugged damage events.

Changes​

  • Adds support for loading Reforged maps (1.31 through 1.35)
  • Adds Lua scripting engine.
  • Adds support for MDX version 1100.
  • Adds most critical natives have been implemented (185/242).
    • Some remaining ones are non-functional like dialogue/FaceFX control.
  • Adds partial support for the skin system (war3mapSkin.w3* files).
  • Adds the ability to load textures without specifying an extension.
  • Adds support for all of the updated file formats.
  • Adds support for loading maps created with DzAPI and YDAPI (NetEase).
  • The game can now use up to 3.5GB of RAM compared to the default 2GB.
  • The game is no longer limited to 64fps.
  • Adds support for connecting to our custom Battle.net server.
  • Adds 20 new natives.

Fixes​

  • Displaying a TimerDialog and Multiboad at the same time is no longer broken
  • BlzIsUnitInvulnerable no longer returns false if a unit is invulnerable

Libraries​

Previews
Contents

W3CE-v0.2.1-alpha (Binary)

Reviews
Ralle
One large step for a couple men, one big step for a community.
Since this isn't publicly open source, what kind of security checks can I do with this launcher to make sure that all the code it executes on the machine is the same intended version as what you guys the modding authors who uploaded it intended, and stuff? Do you guys put cryptographic signature(s) onto the application?
 
Level 18
Joined
Jan 1, 2018
Messages
728
Insert video clip of King Arthur from Monty Python and the Holy Grail saying,
"Very well... you make me sad."
"None shall see the source code."
"What?"
"None shall see the source code."
"I have no quarrel with you, good sir knight, but I must inspect the code."
"Then you shall die."
"I command you, as Advocate of Warsmash, to release the source code."
"I share with no man."
"So be it!"

Warsmash vs W3CE.png
 

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Alright, time to hop the wagon. Let's see how my maps fare with this.

Is this okay if I use an old copy of 1.29.2 I have in my machine or is it mandatory to download the one provided? Just confirming since 1+ GB it not friendly for my connection.
You can use an old install, the launcher will tell you if you somehow mixed up the versions as it does an integrity check before launching. So if the launcher doesn't complain, you're good to go. Keep in mind, it will create a "Warcraft III Patched.exe" in your Warcraft folder.

So any windows after Win7 is not supported for now? Or is there a Windows 7+ that is not supported?
I see it's worded quite poorly. Any version of Windows from 7 and forward is supported. Mac is not supported at all. I'll try and reword that.
 
Level 4
Joined
Sep 10, 2022
Messages
41
I downloaded this but haven't installed it yet. Seems cool, though. Making a map in 1.31 (that I hope will be compatible) to experiment with stuff like techtrees. I'll see if I can make the Black Empire a full faction. All of the buildings except the Shipyard are there, and I cobbled together some building sounds on my end. I'll have to find some suitable units...

What sorts of features are planned? I'm hoping for custom soundsets and an Advanced Build button, personally.
 

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
What sorts of features are planned? I'm hoping for custom soundsets and an Advanced Build button, personally.
So far we don't have custom soundsets on the roadmap, but advanced build button is something I've been looking in to.
Just to be sure, is no editor available yet?
Correct, this is just for the game itself. For editor you can simply use 1.34/1.35, since we support loading newer maps. Only thing to avoid is new abilities, but W3CE will give warnings in the log if you use it.
 
For editor you can simply use 1.34/1.35
But seriously, aren't 1.34/1.35 editors unstable and part of the reason people don't want to use newer stuff?
Like if we're being honest, what editor are you going to use for your next W3CE map if you make one?
 
Level 3
Joined
Apr 1, 2022
Messages
12
But seriously, aren't 1.34/1.35 editors unstable and part of the reason people don't want to use newer stuff?
Like if we're being honest, what editor are you going to use for your next W3CE map if you make one?
I would suggest combine RMS + HiveWE
 
I would suggest combine RMS + HiveWE
Sure, that's the obvious long-term pathway for me, but that's not going to be done for 12 or 18 months at the least. So, I was asking more about the immediate present, just for my own curiosity. For someone like @MindWorX , what editor you going to use? In this case, the word "you" is the key word, highlighting that I was not referring to myself.
 
Sure, that's the obvious long-term pathway for me, but that's not going to be done for 12 or 18 months at the least. So, I was asking more about the immediate present, just for my own curiosity. For someone like @MindWorX , what editor you going to use? In this case, the word "you" is the key word, highlighting that I was not referring to myself.
I personally use JNGP. I would suggest that, or WEX if you want 24 players.

Another good option would be the 1.32 editor if you can find a copy.
 

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Wait, what? This isn't an editor?

Then how do you "add" anything, and/or how would we "use" it? (E.g. advanced build menu; unless I'm modding that in an editor, how would I use it in-game?)

Maybe I'm totally missing the point but I'm confused. :O
So far all that has been added are new natives which you can simply declare yourself in JASS or use directly in Lua. For the advanced build menu, one solution I've looked at is simply allowing a unit to have multiple "Build Tiny" abilities. This means you can make a spellbook with various "Build Tiny" abilities to act as the advanced build menu. This is all doable through the 1.34/1.35 object editor.
For someone like @MindWorX , what editor you going to use? In this case, the word "you" is the key word, highlighting that I was not referring to myself.
I use a mix of 1.34 and Visual Studio Code.
 
Level 4
Joined
Sep 10, 2022
Messages
41
For the advanced build menu, one solution I've looked at is simply allowing a unit to have multiple "Build Tiny" abilities. This means you can make a spellbook with various "Build Tiny" abilities to act as the advanced build menu. This is all doable through the 1.34/1.35 object editor.
I was thinking, for something less cumbersome and that actually allows buildings to cost resources, to use the "Units Sold" field and check whether or not the unit is a building. I don't know why non-building units still have the "Units Sold" field, actually.

Might not really be a good solution, but until a custom editor can add custom fields...
 

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Updated to v0.1.1-alpha

Changes​

  • Adds automatic UPnP port forwarding to help with Battle.net hosting.
  • Improves Lua FourCC and print.
  • Adds support for --verbose command line, to get more detailed logging.
  • Adds support for UNIT_RF_FLY_HEIGHT.
  • Adds support for GetUnitZ.

Fixes​

  • Broken Lua dependencies.
  • Broken Lua common.j event ids.
  • Crash related to chain lightning from bugged damage events.
 
to use the "Units Sold" field and check whether or not the unit is a building.
For technically advanced users like @MindWorX this probably goes without saying, but please DO NOT do what is being asked for here. I have at least one custom map with units who sell other units (like a Polar Bear who sells Polar Bear Cub mini bears right into the field in battle) and you would break custom map compatibility if you eliminated the concept of units who sell other units.

Edit: For example, here I just added Structures Built (Advanced) to my world editor in like 5 minutes using a simple SLK edit, the obvious problem is not supporting it ingame. Here's an example:
1672103056376.png

Edit 2: So please DO NOT BREAK existing fields, that's obviously a terrible idea.
 
Last edited:
Level 4
Joined
Sep 10, 2022
Messages
41
That's understandable. It was more of a temporary measure, that's how I've done my temp lists for the alt tech trees at least.

EDIT: To clarify, what I've done is use the "Units Sold" as a reference for what goes into the "Structures Built (Advanced)" field, so it's only temporary anyway.
 
Last edited:
To fix the crash, copy the file, lua54.dll, from the folder runtimes to the main directory.
Thanks.

Okay, tested this with a map that uses Tasyen's Minimalist UI. Some of the UI position feels off, but I suppose it is mostly appearance issue.

I also tested with my Last Revolt entry in the yet to be released 1.2 version (build on patch 1.32, though I am regretting life choices atm). First thing off, I noticed buildings, even default ones, are missing their portrait. A number of units also missing theirs.

Those aside, it works splendidly. I can see this being a wonderful way for playing maps created in later patches without dealing with patch shenanigans.
 
Level 4
Joined
Dec 7, 2018
Messages
28
At last, the Reforged we all deserved is finally here, its gonna be great!

Can we run this version of the game then expect to run the latest reforged version or vice versa without any conflict or new error popping up? if yes how to fix it, running official reforged changes something in the registry, and if said change is still present when you run 1.31.1 then you'll get an error until you undo whatever change reforged di
If that's the case for this version as well then a file that automatically applies the necessary changes to the registry would be great (one for this CE version and another one for the official version of the game aka the latest Reforged version)

Aside from that, can we get an in-depth list of the brand new natives and of the natives from other wc3 versions that were added to this version?

How about a roadmap with all of the planned features to let us know what's in the works?

Down the line after the devs of this project finish turning their ideas for it into a reality, a Suggestion/Ideas section to let the community brainstorm potential new features that could improve this whole thing one way or another (or be used as inspiration to think of other features that are worth adding)

With that said, is it gonna be possible to add new races like that mod that Retera keeps talking about? the one with lot of different races aside from the default ones, i'd like to see the Naga and the Demon Race (just use all of the ideas brainstormed by that demon race guy in the blizzard wc3 forums)
 
Last edited:

V

V

Level 7
Joined
Jan 13, 2019
Messages
284
"The time has come. In times past, game errors destroyed the world of Warcraft, but now it is time for three valiant knights to answer the call to battle. With bravery and determination, they will defend what they love and fight against the forces of disorder. Thanks to their invaluable efforts, they will guide Warcraft toward a better future. And so, like a phoenix, the world of Warcraft rises from the ashes and flourishes anew, more powerful than ever before."

5370fc97975e6d8eacdbfa83f4c0375f.jpg
 
Level 8
Joined
Jul 15, 2012
Messages
143
why when i am running the W3CE.Launcher, nothing happenned?

i have download the wc3 community and warcraft version 1.29,

and follow this

Dependencies​

but nothing happened when i click the launcher, the command prompt appear for 1 second then vanish
 
Last edited:

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
Yes, you need the x86 version because Warcraft III is an x86 application.

You can use regular Battle.net with this, there is a pvpgn server running that makes this work. You can also play using LAN and some sort of LAN emulator like Hamachi. If you use Battle.net, you will need to forward port 6112/TCP on your router. We are working on improving this, but for now that's the situation.
 
Level 8
Joined
Jul 15, 2012
Messages
143
so i have question,
i have register and login the battlenet from this warcraft 3 community,

and i tried to create a map, can my friend join my map?
if he download and install everything like i did?
or there is another configuration must i do (as i am the host)?

Yes about hamachi, i have already tested it, and previously i am using it for playing with my friend,
i mean there is pre-configuration needed in hamachi, that person must login, instal the app,ect, even checking the tunneling system, is it relay or direct tunnel, so complicated for a layman..
Thats why i wonder if using this battle-net from Wc3 Community Edition, we can just create game and play together?

And then i found a bug inside the game
HeroMapPreview.png

Every hero preview in game is gone.
And also i am adding this line in my 1.30.4 warcraft shortcut to enable full screen
"-nativefullscr"
How to do the same with this launcher?

What i am wonder is, my map is perfectly worked in version 1.26 until the lastest reforged, there is no issue.

please re-read my message, i am edit it..thanks, sorry double post
 

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
As mentioned in my last post, you need to forward port 6112/TCP in your router to be able to host. W3CE does try to do it for you, but it's not always going to work, it depends on what router you have, but you can give it a try. We will improve this in the future, but we are still working on it.

We are aware of the portrait issue, it has been fixed for the next version which we will release soon.

You should still be able to use -nativefullscr, since that is also a command in 1.29.2. Simply pass it to the launcher.
W3CE.Launcher.exe -nativefullscr
 
Level 8
Joined
Jul 15, 2012
Messages
143
how to use nativefull screen?

i add that native in the properties of the shortcut
gambar 1.png
And then the launcher ask me to redirect the warcraft launcher
gambar 2.png
usually i am add this line,"-nativefullscr", from my warcraft shortcut.
But W3CE cannot detect warcraft 3 shortcut. Maybe this is simple problem, but i dont know really.

So when we play together through battle net, the latency will depend on my internet or server internet?
I mean what player feels about the "Lag/delay" in game is it depend on me or there is server thats working on?
Because i just check my ping/latency in game it said 400, but i dont experience lag, so thats mean the latency of the game is depend on the host?
 
Level 8
Joined
Jul 15, 2012
Messages
143
yes its working,
Can you add reconnecting system in the game?
i mean improve the reconnecting system,
because default local game system for reconnecting, i think it takes 1 minute, and after that disconnected,
maybe you can modify it somehow, make new configuration, or if you know about RGC (ranked gaming client) they also modify the reconnecting system somehow,
if it possible.
 
Level 8
Joined
Jul 15, 2012
Messages
143
i tried hosting the game,
and others player can't join,
I try using port forwarding using this tutorial,
because my internet using usb tethering from mobile,
so i dont know how to set the port as you mention
so here, the tutorial


this is the guide that i following,
is my porting is working?
or there is any other way to port to 6112 because i dont use any router right now

i have did according this guide, but still my friend cant join
 
Last edited:
Top