Community Projects: Difference between revisions

From wowdev
Jump to navigation Jump to search
(Added libwarcraft to the available data storage libraries.)
(45 intermediate revisions by 21 users not shown)
Line 1: Line 1:
== Data Storage & Archives ==
== Data Storage & Archives ==
{| class="wikitable"
{| class="wikitable"
! Name
! scope="col" style="width: 15%;" | Name
! WoW Version
! scope="col" style="width: 10%;" | WoW Version
! Language
! scope="col" style="width: 10%;" | Language
! Open Source
! scope="col" style="width: 5%;" | Open Source
! In development
! scope="col" style="width: 5%;" | In development
! Description
! scope="col" style="width: 55%;" | Description
|-
|-
| [http://www.zezula.net/en/mpq/stormlib.html StormLib]
| [http://www.zezula.net/en/mpq/stormlib.html StormLib]
Line 41: Line 41:
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
|-
| [https://github.com/Warpten/DBFilesClient.NET DBFilesClient.NET]
| {{Template:Sandbox/VersionRange|min_expansionlevel=1}}
| C#/.NET
| {{Yes}}
| {{Yes}}
| DBFilesClient.NET is a blazing-fast C# library for reading DBC and DB2 files, from Vanilla to Legion. Allows for complex reads by inheriting specific exposed types, allowing the user to define relations between files, or even as far as linking to an entry in CASC.
|-
|-
| [https://github.com/Nihlus/libwarcraft libwarcraft]
| [https://github.com/Nihlus/libwarcraft libwarcraft]
| {{Template:Sandbox/PrettyVersion|max_expansionlevel=3}}
| {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
| C#/.NET
| C#/.NET
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Managed library for interacting with all Blizzard file formats up to and including Wrath of the Lich King. Supports reading MPQ archives with write support in the works.
| Managed library for interacting with all Blizzard file formats up to and including Wrath of the Lich King. Supports reading MPQ archives with write support in the works.
|-
| [https://bitbucket.org/tharo/taliis mwtMPQ]
| {{Template:Sandbox/VersionRange|max_expansionlevel=1}}
| Java
| {{Yes}}
| {{No}}
| As part of the Taliis Toolchain there is a basic MPQ lib written in Java.
|-
| [https://github.com/erorus/casc erorus/casc]
| {{Template:Sandbox/VersionRange|min_expansionlevel=7}}
| PHP
| {{Yes}}
| {{Yes}}
| Command-line CASC client designed for speed and efficiency. Developed on a Linux platform, but likely usable in Windows.
|-  
|-  
|}
|}
Line 53: Line 74:
== Data Handling ==
== Data Handling ==
{| class="wikitable"
{| class="wikitable"
! Name
! scope="col" style="width: 15%;" | Name
! WoW Version
! scope="col" style="width: 10%;" | WoW Version
! Language
! scope="col" style="width: 10%;" | Language
! Open Source
! scope="col" style="width: 5%;" | Open Source
! In development
! scope="col" style="width: 5%;" | In development
! Description
! scope="col" style="width: 55%;" | Description
|-
|-
| [https://github.com/Deamon87/WebWoWViewer WebWoWViewer]
| [https://github.com/Deamon87/WebWoWViewer WebWoWViewer]
Line 95: Line 116:
|
|
|-
|-
| [https://bitbucket.org/mugadr_m/neo Neo/WoWEditor]
| [https://bitbucket.org/mugadr_m/neo Neo]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}, {{Template:Sandbox/PrettyVersion|expansionlevel=6}}
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}, {{Template:Sandbox/PrettyVersion|expansionlevel=6}}
| C#/.NET
| C#/.NET
| {{Yes}}
| {{Yes}}
| {{Unknown}}
| {{No}}
| A WoW Development Suite
| A WoW Development Suite aimed to provide wide world and data editing functionality in one cross-platform application.
|-
| [https://github.com/WowDevTools/Neo Neo (fork)]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}, {{Template:Sandbox/PrettyVersion|expansionlevel=6}}
| C#/.NET
| {{Yes}}
| {{No}}
| A WoW Development Suite aimed to provide wide world and data editing functionality in one cross-platform application.
|-
|-
| [https://bitbucket.org/berndloerwald/noggit3 Noggit3]
| [https://github.com/wowdev/noggit3 Noggit3]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
| C++
| C++
Line 109: Line 137:
| map editor
| map editor
|-
|-
| [https://github.com/Kruithne/W3DT W3DT]
| [https://bitbucket.org/tharo/taliis Taliis]
| Live, PTR, Beta
| {{Template:Sandbox/VersionRange|max_expansionlevel=2}}
| Java
| {{Yes}}
| {{No}}
| map and advanced dbc editor
|-
| [https://github.com/skarnproject/Blender-WMO-import-export-scripts Blender WMO import/export scripts]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}?
| Python 3 (Blender API)
| {{Yes}}
| {{No}}
| Script addon for Blender featuring World of Warcraft World Model Object (WMO) import/export. This branch is discontinued in favor of WoW Blender Studio.
|-
| [https://github.com/WowDevTools/pywowlib pywowlib]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}, {{Template:Sandbox/PrettyVersion|expansionlevel=7}},
{{Template:Sandbox/PrettyVersion|expansionlevel=8}}
| Python 3.5+
| {{Yes}}
| {{Yes}}
| pywowlib is a Python 3.5+ libary featuring the functionality of reading and writing various World of Warcraft related file formats. The goal of the library is to initially target 3 WoW versions: 3.3.5a, 7.3.5, retail. In the future, it may target other core expansion versions: 1.12, 2.4.3, 4.3.4, 5.4.8, 6.2.4
|-
| [https://github.com/Nihlus/Everlook Everlook]
| {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
| C#/.NET
| C#/.NET
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| 3D Toolkit for World of Warcraft aimed at machinima creators.
| World of Warcraft Model Viewer clone, based on [https://github.com/Nihlus/libwarcraft libwarcraft] and implemented using GTK3. Aims for full cross-platform support, and to provide a smoother workflow than WMV.
|-
|-  
| [https://github.com/Marlamin/WoWFormatTest WoWFormatTest]
| [https://github.com/Nihlus/gnome-blp-thumbnailer gnome-blp-thumbnailer]
| {{Template:Sandbox/VersionRange|min_expansionlevel=6}}
| {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
| C#/.NET
| {{Yes}}
| {{Yes}}
| Thumbnail generator for BLP files for the GNOME desktop environment.
|-
| [https://github.com/Nihlus/blizzard-mime-types blizzard-mime-types]
| {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
| Shell/XML
| {{Yes}}
| {{Yes}}
| FreeDesktop.org MIME type definitions for most Blizzard file formats. Works out of the box with practically all *nix operating systems.
|-
| [https://github.com/WowDevTools/WDBXEditor/ WDBX Editor]
| {{Template:Sandbox/VersionRange|max_expansionlevel=7}}
| C#/.NET
| C#/.NET
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
|-
| A DBC/DB2/Cache editor designed to work for all client versions. Includes a wide range of tools for various DB related tasks.
| [https://github.com/skarnproject/Blender-WMO-import-export-scripts Blender WMO import/export scripts]
|-  
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}?
| [https://github.com/erorus/db2 erorus/db2]
| Python (Blender API)
| {{Template:Sandbox/PrettyVersion|expansionlevel=7}}
| PHP
| {{Yes}}
| {{Yes}}
| DB2 Reader library written in PHP, using unit tests and code coverage. Auto-detects field formats. Supports WDB6, ADB, Hotfix.tbl, embedded strings, nonzero block, etc.
|-
| [https://bitbucket.org/wowmodelviewer/wowmodelviewer WoW Model Viewer]
| {{Template:Sandbox/PrettyVersion|expansionlevel=7}}
| C++
| {{Yes}}
| {{Yes}}
| Well known WoW Model Viewer, currently under active development, supporting data viewing and exporting including Legion. Community forum available [https://forum.wowmodelviewer.net here]
|-  
| [https://github.com/wowstack/php-dbc-parser WoW DBC Parser]
| {{Template:Sandbox/PrettyVersion|expansionlevel=1}} {{Template:Sandbox/PrettyVersion|expansionlevel=2}} {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
| PHP
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| Script addon for Blender featuring World of Warcraft World Model Object (WMO) import/export.
| A unit-tested parser for all DBC files contained in WoW up to version 3.3.5. Has been developed with DBCs from 1.0 up to 1.12.2.
|-  
|-  
|}
|}
Line 133: Line 212:
== Client & Memory ==
== Client & Memory ==
{| class="wikitable"
{| class="wikitable"
! Name
! scope="col" style="width: 15%;" | Name
! WoW Version
! scope="col" style="width: 10%;" | WoW Version
! Language
! scope="col" style="width: 10%;" | Language
! Open Source
! scope="col" style="width: 5%;" | Open Source
! In development
! scope="col" style="width: 5%;" | In development
! Description
! scope="col" style="width: 55%;" | Description
|-
|-
| [https://github.com/tomrus88/WowAddin WoWAddin]
| [https://github.com/tomrus88/WowAddin WoWAddin]
Line 149: Line 228:
| [https://github.com/miceiken/IceFlake IceFlake]
| [https://github.com/miceiken/IceFlake IceFlake]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
| C#/.NET
| {{Yes}}
| {{No}}
|
|-
| [https://github.com/TheNoobCompany/TheNoobBot TheNoobBot ]
| {{Template:Sandbox/PrettyVersion|expansionlevel=5}}{{Template:Sandbox/PrettyVersion|expansionlevel=6}}{{Template:Sandbox/PrettyVersion|expansionlevel=7}}
| C#/.NET
| C#/.NET
| {{Yes}}
| {{Yes}}
Line 171: Line 257:
== Network & Emulators ==
== Network & Emulators ==
{| class="wikitable"
{| class="wikitable"
! Name
! scope="col" style="width: 15%;" | Name
! WoW Version
! scope="col" style="width: 10%;" | WoW Version
! Language
! scope="col" style="width: 10%;" | Language
! Open Source
! scope="col" style="width: 5%;" | Open Source
! In development
! scope="col" style="width: 5%;" | In development
! Description
! scope="col" style="width: 55%;" | Description
|-
|-
| [https://github.com/cmangos CMaNGOS]
| [https://github.com/cmangos CMaNGOS]
Line 185: Line 271:
|  
|  
|-
|-
| [https://gitlab.com/Shgck/durator-emu DuratorEmu]
| [https://github.com/Dece/DuratorEmu DuratorEmu]
| {{Template:Sandbox/PrettyVersion|expansionlevel=1}}
| {{Template:Sandbox/PrettyVersion|expansionlevel=1}}
| Python
| Python
| {{Yes}}
| {{Yes}}
| {{No}}
| Tiny sandbox for 1.1.2.4125, written in Python, which tries to remain small, clean and understandable.
|-
| [https://idewave.com/ idewave-core]
| {{Template:Sandbox/PrettyVersion|expansionlevel=2}}
| Python
| {{Yes}}
| {{Yes}}
| Sandbox for 2.4.3, written in Python + SQLAlchemy, created as simple as possible for simplify the process of making incredible things. Currently in progress.
|-
| [https://github.com/GrenderG/alpha-core alpha-core]
| {{Template:Sandbox/PrettyVersion|expansionlevel=0}}
| Python
| {{Yes}}
| {{Yes}}
| Tiny sandbox for 1.1.2.4125, written in Python, which tries to remain small, clean and understandable.
| {{Yes}}
| Experimental 0.5.3.3368 emulator, aimed to be the first playable 0.5.3 core for historical preservation purposes. Currently in development, join our discussions [https://discord.gg/RzBMAKU here]!
|-
|-
| [https://github.com/EmberEmu/Ember Ember]
| [https://github.com/EmberEmu/Ember Ember]
Line 198: Line 298:
| {{Yes}}
| {{Yes}}
| Ember is an educational server emulation project targeting the WoW 1.12.1 protocol, striving to be a modular and robust architecture.
| Ember is an educational server emulation project targeting the WoW 1.12.1 protocol, striving to be a modular and robust architecture.
|-
| [https://shadowburn-project.org/ Shadowburn Project]
| {{Template:Sandbox/PrettyVersion|expansionlevel=1}}
| Elixir
| {{Yes}}
| {{Yes}}
|
|-
|-
| [https://github.com/ProjectSkyfire/SkyFire.548 Skyfire]
| [https://github.com/ProjectSkyfire/SkyFire.548 Skyfire]
Line 207: Line 314:
|-
|-
| [https://github.com/TrinityCore/TrinityCore TrinityCore]
| [https://github.com/TrinityCore/TrinityCore TrinityCore]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}, {{Template:Sandbox/PrettyVersion|expansionlevel=6}}
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}, {{Template:Sandbox/PrettyVersion|expansionlevel=7}}
| C++
| C++
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
|  
|  
|-
| [http://www.azerothcore.org/ AzerothCore]
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
| C++
| {{Yes}}
| {{Yes}}
| 3.3.5a Emulator with a focus on gameplay, blizzlike authenticity, stability and easy custom modifications (modular).
|-
|-
| [https://github.com/WCell/WCell WCell]
| [https://github.com/WCell/WCell WCell]
Line 224: Line 338:
| Pascal
| Pascal
| {{Yes}}
| {{Yes}}
| {{Unknown}}
| {{No}}
|
|
|-
|-
 
| [https://github.com/barncastle/AIO-Sandbox/ AIO Sandbox]
| {{Template:Sandbox/VersionRange|min_expansionlevel=0|max_expansionlevel=4}}
| C#/.NET
| {{Yes}}
| {{Yes}}
| A lightweight sandbox for all client versions (0.5.3 to 4.0.0).
|-
| [https://github.com/mangos MaNGOS]
| {{Template:Sandbox/VersionRange|min_expansionlevel=1|max_expansionlevel=4}}
| C++
| {{Yes}}
| {{Yes}}
| MaNGOS is an educational project made by volunteers. Discord server and forums are available at [https://getmangos.eu getmangos.eu]
|-
|}
|}


== Tools ==
== Tools ==
{| class="wikitable"
{| class="wikitable"
! Name
! scope="col" style="width: 15%;" | Name
! WoW Version
! scope="col" style="width: 10%;" | WoW Version
! Description
! scope="col" style="width: 10%;" | Language
! scope="col" style="width: 5%;" | Open Source
! scope="col" style="width: 5%;" | In development
! scope="col" style="width: 55%;" | Description
|-
| [https://github.com/Nihlus/liblistfile liblistfile]
| {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
| C#/.NET
| {{Yes}}
| {{Yes}}
| Library for generating and optimizing listfiles.
|-
|-
| [http://marlamin.com/minimaps/adtgrid.php ADTGrid]
| [https://github.com/Nihlus/listtools listtools]
| {{Template:Sandbox/VersionRange|min_expansionlevel=6|max_expansionlevel=7}}
| {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
|  
| C#/.NET
| {{Yes}}
| {{Yes}}
| CLI tool implementing the functionality of [https://github.com/Nihlus/liblistfile liblistfile]. Useful for mitigating the widespread incorrect casing in Blizzard archives - the tool learns as it goes and is corrected by the user, and uses this to better predict the correct casing for future files and folders. Can also generate new listfiles from scratch.
|-
|-
| [http://marlamin.com/minimaps/ Minimaps]
| [https://github.com/Luzifix/ADTConvert ADTConvert]
| {{Template:Sandbox/VersionRange|min_expansionlevel=6|max_expansionlevel=7}}
| {{Template:Sandbox/PrettyVersion|expansionlevel=3}}
|
| C#/.NET
| {{Yes}}
| {{Yes}}
| The ADTConverter can convert the World of Warcraft ADT Format form LK(3.3.5) to WoD(6.x.x).
|}
|}

Revision as of 23:48, 19 December 2021

Data Storage & Archives

Name WoW Version Language Open Source In development Description
StormLib ≤ Cata C++ Yes Unknown
CrystalMpq ≤ Cata C#/.NET Yes No CrystalMpq is a MPQ reading library written in C#.
CascLib ≥ WoD C++ Yes Yes An open-source implementation of library for reading CASC storage from Blizzard games since 2014
CascLib ≥ WoD C++ Yes Yes CascLib is C++ library that allows you to access files from a CASC library from any Blizzard game. It aims for a modern C++14 design, being header-only, and leveraging standard C++ features like streams.
CASCExplorer ≥ WoD C#/.NET Yes Yes
DBFilesClient.NET ≥ Vanilla C#/.NET Yes Yes DBFilesClient.NET is a blazing-fast C# library for reading DBC and DB2 files, from Vanilla to Legion. Allows for complex reads by inheriting specific exposed types, allowing the user to define relations between files, or even as far as linking to an entry in CASC.
libwarcraft ≤ Wrath C#/.NET Yes Yes Managed library for interacting with all Blizzard file formats up to and including Wrath of the Lich King. Supports reading MPQ archives with write support in the works.
mwtMPQ ≤ Vanilla Java Yes No As part of the Taliis Toolchain there is a basic MPQ lib written in Java.
erorus/casc ≥ Legion PHP Yes Yes Command-line CASC client designed for speed and efficiency. Developed on a Linux platform, but likely usable in Windows.

Data Handling

Name WoW Version Language Open Source In development Description
WebWoWViewer Wrath JavaScript Yes Yes An attempt to recreate old WoWMapViewer application from scratch and entirely in js
wowmapper Wrath, Cata C++ Yes No
meshReader Cata C#/.NET Yes No
BananaMpq Cata? C#/.NET Yes No Extracting WoW's geometry data reliably
WoWMap WoD C#/.NET Yes Unknown
Neo Wrath, WoD C#/.NET Yes No A WoW Development Suite aimed to provide wide world and data editing functionality in one cross-platform application.
Neo (fork) Wrath, WoD C#/.NET Yes No A WoW Development Suite aimed to provide wide world and data editing functionality in one cross-platform application.
Noggit3 Wrath C++ Yes Yes map editor
Taliis ≤ BC Java Yes No map and advanced dbc editor
Blender WMO import/export scripts Wrath? Python 3 (Blender API) Yes No Script addon for Blender featuring World of Warcraft World Model Object (WMO) import/export. This branch is discontinued in favor of WoW Blender Studio.
pywowlib Wrath, Legion,

Battle

Python 3.5+ Yes Yes pywowlib is a Python 3.5+ libary featuring the functionality of reading and writing various World of Warcraft related file formats. The goal of the library is to initially target 3 WoW versions: 3.3.5a, 7.3.5, retail. In the future, it may target other core expansion versions: 1.12, 2.4.3, 4.3.4, 5.4.8, 6.2.4
Everlook ≤ Wrath C#/.NET Yes Yes World of Warcraft Model Viewer clone, based on libwarcraft and implemented using GTK3. Aims for full cross-platform support, and to provide a smoother workflow than WMV.
gnome-blp-thumbnailer ≤ Wrath C#/.NET Yes Yes Thumbnail generator for BLP files for the GNOME desktop environment.
blizzard-mime-types ≤ Wrath Shell/XML Yes Yes FreeDesktop.org MIME type definitions for most Blizzard file formats. Works out of the box with practically all *nix operating systems.
WDBX Editor ≤ Legion C#/.NET Yes Yes A DBC/DB2/Cache editor designed to work for all client versions. Includes a wide range of tools for various DB related tasks.
erorus/db2 Legion PHP Yes Yes DB2 Reader library written in PHP, using unit tests and code coverage. Auto-detects field formats. Supports WDB6, ADB, Hotfix.tbl, embedded strings, nonzero block, etc.
WoW Model Viewer Legion C++ Yes Yes Well known WoW Model Viewer, currently under active development, supporting data viewing and exporting including Legion. Community forum available here
WoW DBC Parser Vanilla BC Wrath PHP Yes Yes A unit-tested parser for all DBC files contained in WoW up to version 3.3.5. Has been developed with DBCs from 1.0 up to 1.12.2.

Client & Memory

Name WoW Version Language Open Source In development Description
WoWAddin Wrath C++ Yes No
IceFlake Wrath C#/.NET Yes No
TheNoobBot MistsWoDLegion C#/.NET Yes No
cleanCore Cata C#/.NET Yes No cleanCore is an C# interface to the WoW Game
WowMoPObjMgrTest Mists C#/.NET Yes No

Network & Emulators

Name WoW Version Language Open Source In development Description
CMaNGOS Vanilla … Wrath C++ Yes Yes
DuratorEmu Vanilla Python Yes No Tiny sandbox for 1.1.2.4125, written in Python, which tries to remain small, clean and understandable.
idewave-core BC Python Yes Yes Sandbox for 2.4.3, written in Python + SQLAlchemy, created as simple as possible for simplify the process of making incredible things. Currently in progress.
alpha-core PreVanilla Python Yes Yes Experimental 0.5.3.3368 emulator, aimed to be the first playable 0.5.3 core for historical preservation purposes. Currently in development, join our discussions here!
Ember Vanilla C++ Yes Yes Ember is an educational server emulation project targeting the WoW 1.12.1 protocol, striving to be a modular and robust architecture.
Shadowburn Project Vanilla Elixir Yes Yes
Skyfire Mists C++ Yes Yes Derivative core based on TrinityCore that aims for a robust and working 5.4.8.18414 emulator with functionality.
TrinityCore Wrath, Legion C++ Yes Yes
AzerothCore Wrath C++ Yes Yes 3.3.5a Emulator with a focus on gameplay, blizzlike authenticity, stability and easy custom modifications (modular).
WCell Wrath C#/.NET Yes No World of Warcraft emulator written in C#/.NET 4.0, with design and extensibility in mind.
WoWCore Vanilla … Wrath Pascal Yes No
AIO Sandbox PreVanilla … Cata C#/.NET Yes Yes A lightweight sandbox for all client versions (0.5.3 to 4.0.0).
MaNGOS Vanilla … Cata C++ Yes Yes MaNGOS is an educational project made by volunteers. Discord server and forums are available at getmangos.eu

Tools

Name WoW Version Language Open Source In development Description
liblistfile ≤ Wrath C#/.NET Yes Yes Library for generating and optimizing listfiles.
listtools ≤ Wrath C#/.NET Yes Yes CLI tool implementing the functionality of liblistfile. Useful for mitigating the widespread incorrect casing in Blizzard archives - the tool learns as it goes and is corrected by the user, and uses this to better predict the correct casing for future files and folders. Can also generate new listfiles from scratch.
ADTConvert Wrath C#/.NET Yes Yes The ADTConverter can convert the World of Warcraft ADT Format form LK(3.3.5) to WoD(6.x.x).