92 Commits
Author SHA1 Message Date
Dusk-92 1b85c7687c release v2.0 2026-08-28 10:41:33 +02:00
Dusk-92 accab7f77b release: prepare v2.0 2026-08-28 10:40:53 +02:00
Dusk-92 8f095a52d9 Enable AutoLogin encryption by default 2026-08-27 19:04:46 +02:00
Dusk-92 358d6d3d87 Test AutoLogin encryption key safety 2026-08-27 18:58:40 +02:00
Dusk-92 61fa616d7a Secure AutoLogin encryption key setup 2026-08-27 18:58:12 +02:00
Dusk-92 17606f2f1b feat: add Play Modernized WoW desktop shortcut 2026-08-27 17:34:11 +02:00
Dusk-92 b7d3fc97ef ui: clarify AutoLogin password encryption warning 2026-08-27 17:31:03 +02:00
Dusk-92 14786b5c8c fix: enforce native DirectX 9 without deleting wrappers 2026-08-27 17:23:19 +02:00
Dusk-92 d041363779 fix: harden DXVK ownership and local builds 2026-08-27 17:17:13 +02:00
Dusk-92 f6629a72cf ci: pin Windows Python and build dependencies 2026-08-27 16:41:59 +02:00
Dusk-92 1adaf7abfe build: pin PyInstaller toolchain versions 2026-08-27 16:41:44 +02:00
Dusk-92 d9bac1d0db ci: run installer safety tests before build 2026-08-27 16:37:17 +02:00
Dusk-92 fda823d21b tests: cover installer safety invariants 2026-08-27 16:37:03 +02:00
Dusk-92 f92341f98f ui: clarify AutoLogin credential storage 2026-08-27 16:34:06 +02:00
Dusk-92 f856170b01 payload: record WorldMarkers v0.7.1 2026-08-27 16:31:18 +02:00
Dusk-92 1a10d63989 ci: remove one-time WorldMarkers updater 2026-08-27 16:30:59 +02:00
github-actions[bot] 561e83876d weirdutils: update WorldMarkers to v0.7.1 2026-08-27 14:29:58 +00:00
Dusk-92 78fbcc04fd ci: update WorldMarkers from verified v0.7.1 asset 2026-08-27 16:29:48 +02:00
Dusk-92 329656a96a ci: remove one-time WorldMarkers audit 2026-08-27 16:29:30 +02:00
Dusk-92 2aaa40f0f1 ci: inspect WorldMarkers v0.7.1 2026-08-27 16:28:28 +02:00
Dusk-92 fc01b30fee payload: document bundled binary provenance 2026-08-27 16:22:42 +02:00
Dusk-92 ff00eb2024 ci: remove one-time provenance audit 2026-08-27 16:22:14 +02:00
Dusk-92 abecbbe46e ci: audit bundled binary provenance 2026-08-27 16:19:42 +02:00
Dusk-92 be814efbd1 wdb: track blocker ownership before removal 2026-08-27 16:16:30 +02:00
Dusk-92 6fc07001dd patcher: preserve valid modernized exe when offline 2026-08-27 16:12:19 +02:00
Dusk-92 305b7e8d3c patcher: make WoW_Modernized replacement transactional 2026-08-27 16:11:42 +02:00
Dusk-92 9200c5ea54 fallbacks: validate bundled and installed x86 DLLs 2026-08-27 16:08:37 +02:00
Dusk-92 6de77922a5 downloads: validate x86 PE DLLs before install 2026-08-27 16:07:58 +02:00
Dusk-92 8e566e9536 audio: make managed sound-pack installs transactional 2026-08-27 16:04:29 +02:00
Dusk-92 c388431f01 visuals: skip unchanged managed MPQ downloads 2026-08-27 16:00:52 +02:00
Dusk-92 d12a5bbe03 visuals: track MPQ source revisions 2026-08-27 16:00:25 +02:00
Dusk-92 ae9a56903c dxvk: use VanillaFixes 1.5.3 default config 2026-08-27 15:58:25 +02:00
Dusk-92 dae43b5172 dxvk: document bundled binary provenance 2026-08-27 15:55:37 +02:00
Dusk-92 222ad6059c dxvk: remove unused duplicate configuration 2026-08-27 15:55:26 +02:00
Dusk-92 30b1a4842b dxvk: align config with bundled 2.6.1 x86 2026-08-27 15:55:16 +02:00
Dusk-92 f7313a4f6c ci: remove one-time DXVK identifier 2026-08-27 15:54:54 +02:00
Dusk-92 d7fc1ec651 ci: identify bundled DXVK version 2026-08-27 15:52:57 +02:00
Dusk-92 5cdb9a34ba windows: verify DEP mitigation and launcher creation 2026-08-27 15:44:19 +02:00
Dusk-92 8b5e0710f8 safety: keep install UI state stable during downloads 2026-08-27 15:41:33 +02:00
Dusk-92 d5f0e4cfb4 safety: lock Apply and validate Vanilla client 2026-08-27 15:41:14 +02:00
Dusk-92 b109f2b79e settings: isolate profiles and recover damaged state safely 2026-08-27 15:37:52 +02:00
Dusk-92 c3d0fa3275 plugins: preserve manual dlls.txt entries in dynamic installer 2026-08-27 15:34:54 +02:00
Dusk-92 8c46301939 plugins: preserve manual dlls.txt entries 2026-08-27 15:34:40 +02:00
Dusk-92 3110ee3484 fallbacks: keep DLL addon bundles consistent 2026-08-27 15:30:39 +02:00
Dusk-92 c726d89268 installer: make DLL addon updates transactional 2026-08-27 15:30:16 +02:00
Dusk-92 6298ad9aa2 ci: remove one-time bundled fallback refresh 2026-08-27 15:08:48 +02:00
github-actions[bot] 542d6a07fa payload: refresh bundled known-good fallbacks [skip ci] 2026-08-27 13:08:13 +00:00
Dusk-92 0ff3b156ea ci: add one-time bundled fallback refresh 2026-08-27 15:07:56 +02:00
Dusk-92 52086ae178 fallbacks: preserve installed versions and use bundled backups 2026-08-27 15:06:50 +02:00
Dusk-92 c30f00a9fe mods: add bundled managed fallback helpers 2026-08-27 15:05:53 +02:00
Dusk-92 92380df3a4 settings: persist per-install choices and protect offline mods 2026-08-27 15:05:37 +02:00
Dusk-92 a1f7338034 ci: remove one-time WeirdPerformance importer 2026-08-27 11:57:56 +02:00
github-actions[bot] 658a9d9031 payload: update WeirdPerformance to 0.7.3 2026-08-27 09:57:34 +00:00
Dusk-92 10b859fe7d ci: one-time WeirdPerformance 0.7.3 import 2026-08-27 11:57:25 +02:00
Dusk-92 c0610a0353 cleanup: remove legacy Tweaked files and tidy support icon 2026-08-27 11:46:29 +02:00
Dusk-92 76d2cceb88 credits: document visual audio and WDB sources 2026-08-27 11:26:51 +02:00
Dusk-92 936a715efb ui: add Visual Audio tab and WDB automation 2026-08-27 11:26:24 +02:00
Dusk-92 433e38b36e mods: add managed visual and audio installers 2026-08-27 11:25:15 +02:00
Dusk-92 042c5a967a ui: sync SuperWoW checkbox with tweak controls 2026-08-27 10:56:04 +02:00
Dusk-92 2f95c8a504 ui: make SuperWoW-managed tweaks explicit 2026-08-27 10:55:45 +02:00
Dusk-92 ec10bbd213 fix: rebuild plugin UI section cleanly 2026-08-27 10:42:30 +02:00
Dusk-92 f0af7e50c9 credits: add Interact VMMFix and optional sources 2026-08-27 10:41:27 +02:00
Dusk-92 f628ecb8d1 ui: reorganize plugins and add Interact VMMFix 2026-08-27 10:40:47 +02:00
Dusk-92 1a192c7e6a tweaks: adopt tubtubs patcher options and new defaults 2026-08-27 10:39:54 +02:00
Dusk-92 62f722fcc9 updater: add Interact VMMFix and latest vanilla-tweaks 2026-08-27 10:38:59 +02:00
Dusk-92 5faf3646d4 credits: correct PerfBoost attribution 2026-08-27 09:37:50 +02:00
Dusk-92 9815c54d5d ui: correct plugin attributions 2026-08-27 09:36:59 +02:00
Dusk-92 9b26694316 fix: handle readonly config and permission errors 2026-08-27 09:36:47 +02:00
Dusk-92 7ab2361a11 ui: polish plugin names authors and defaults 2026-08-27 09:28:32 +02:00
Dusk-92 aae75164c1 defaults: prefer DirectX 9 and unlimited addon memory 2026-08-27 09:27:54 +02:00
Dusk-92 2558bd0537 build: keep local icon packaging in sync 2026-08-27 09:18:54 +02:00
Dusk-92 240b45ba13 build: bundle window icon resource 2026-08-27 09:18:50 +02:00
Dusk-92 9dfcf734a9 updater: wire live core refreshes and clearer tooltips 2026-08-27 09:18:34 +02:00
Dusk-92 417364f449 ui: simplify rendering and add requested client tweaks 2026-08-27 09:18:18 +02:00
Dusk-92 59328f2942 updater: refresh Nampower VanillaHelpers and no1600 2026-08-27 09:17:38 +02:00
Dusk-92 79ee9e7064 ui: make updater progress window readable 2026-08-27 08:54:20 +02:00
Dusk-92 8ca8b6d69f ui: show live package download progress 2026-08-27 08:49:46 +02:00
Dusk-92 343f3b3ce3 ui: report download progress and harden addon replacement 2026-08-27 08:49:05 +02:00
Dusk-92 36ad039025 credits: add live plugins and missing bundled sources 2026-08-27 08:40:07 +02:00
Dusk-92 d39a95ead5 core: allow ClassicAPI and AuctionQueryThrottle together 2026-08-27 08:39:24 +02:00
Dusk-92 0519a7a9d0 ui: move live API plugins into recommended core 2026-08-27 08:37:41 +02:00
Dusk-92 29a3c88c46 ci: supersede stale queued test builds 2026-08-27 08:31:32 +02:00
Dusk-92 b5ed777869 harden: enforce tweak exclusivity and restore addon fallbacks 2026-08-26 17:13:48 +02:00
Dusk-92 4dd6198517 harden: tolerate upstream asset naming changes 2026-08-26 17:12:25 +02:00
Dusk-92 8f4f1fb69a ci: allow isolated PR build tests 2026-08-26 17:07:08 +02:00
Dusk-92 9abe6a7f8b ci: add safe branch test build artifact 2026-08-26 17:01:20 +02:00
Dusk-92 fdda765a7b ci: build live-updating tool entry point 2026-08-26 16:58:05 +02:00
Dusk-92 e8da41b128 build: keep local EXE name aligned with releases 2026-08-26 16:57:58 +02:00
Dusk-92 50ebd6d4ee build: use dynamic updater entry point 2026-08-26 16:57:19 +02:00
Dusk-92 df4e294a2f feat: add live-updating Tweaks UI and core packages 2026-08-26 16:57:14 +02:00
Dusk-92 4427a1bab1 feat: add live GitHub package updater 2026-08-26 16:56:49 +02:00
Dusk-92 ce4936d140 Add database reference to PerfBoostOptions 2026-08-20 14:31:50 +02:00
122 changed files with 24417 additions and 19028 deletions
+67 -7
View File
@@ -2,13 +2,26 @@ name: Build Windows EXE
on: on:
push: push:
branches:
- 'main'
- 'feature/client-tweaks'
tags: tags:
- 'v*' - 'v*'
pull_request:
branches:
- 'main'
workflow_dispatch: workflow_dispatch:
permissions:
contents: write
concurrency:
group: modernization-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs: jobs:
build: build:
runs-on: windows-latest runs-on: windows-2025
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -17,10 +30,22 @@ jobs:
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: '3.11.9'
- name: Install PyInstaller - name: Install pinned build toolchain
run: pip install pyinstaller run: python -m pip install --disable-pip-version-check -r requirements-build.txt
- name: Verify build toolchain
run: |
python --version
pyinstaller --version
python -m pip show pyinstaller pyinstaller-hooks-contrib
- name: Syntax check
run: python -m py_compile setup_tool.py setup_tool_dynamic.py remote_packages.py tests/test_safety.py
- name: Unit safety tests
run: python -m unittest discover -s tests -v
- name: Build EXE - name: Build EXE
run: > run: >
@@ -28,14 +53,49 @@ jobs:
--noconsole --noconsole
--onefile --onefile
--icon=PurpleWowLogo.ico --icon=PurpleWowLogo.ico
--add-data "PurpleWowLogo.ico;."
--add-data "Payload;Payload" --add-data "Payload;Payload"
--add-data "vanilla-tweaks.exe;." --add-data "vanilla-tweaks.exe;."
--name "WoW_Modernization_Tool" --name "WoW_Modernization_Tool"
setup_tool.py setup_tool_dynamic.py
- name: Verify EXE exists
shell: pwsh
run: |
if (-not (Test-Path "dist/WoW_Modernization_Tool.exe")) { throw "Build output missing" }
Get-Item "dist/WoW_Modernization_Tool.exe" | Format-List Name,Length,LastWriteTime
- name: Upload test artifact
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
uses: actions/upload-artifact@v4
with:
name: WoW_Modernization_Tool-test
path: dist/WoW_Modernization_Tool.exe
if-no-files-found: error
# One-time production promotion for v2.0. The exact commit message keeps
# normal main pushes from publishing or modifying the v2.0 release.
- name: Create GitHub Release v2.0
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.head_commit.message == 'release v2.0' }}
uses: softprops/action-gh-release@v3
with:
tag_name: v2.0
target_commitish: ${{ github.sha }}
files: dist/WoW_Modernization_Tool.exe
fail_on_unmatched_files: true
name: "WoW Modernization Tool v2.0"
body_path: RELEASE_NOTES.md
generate_release_notes: true
previous_tag: v1.1
make_latest: true
- name: Create GitHub Release - name: Create GitHub Release
uses: softprops/action-gh-release@v2 if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: softprops/action-gh-release@v3
with: with:
files: dist/WoW_Modernization_Tool.exe files: dist/WoW_Modernization_Tool.exe
fail_on_unmatched_files: true
name: "WoW Modernization Tool ${{ github.ref_name }}" name: "WoW Modernization Tool ${{ github.ref_name }}"
body: "Release automatique générée par GitHub Actions." body_path: RELEASE_NOTES.md
generate_release_notes: true
make_latest: true
+39 -1
View File
@@ -1 +1,39 @@
pyinstaller --noconsole --onefile --add-data "Payload;Payload" --add-data "vanilla-tweaks.exe;." setup_tool.py @echo off
setlocal
cd /d "%~dp0"
where py >nul 2>nul
if errorlevel 1 (
echo ERROR: Python launcher ^(py.exe^) was not found.
exit /b 1
)
py -3.11 -c "import sys; a=sys.version_info[:3]; sys.exit(0 if a==(3,11,9) else f'ERROR: Python 3.11.9 is required; found {a[0]}.{a[1]}.{a[2]}')"
if errorlevel 1 exit /b 1
py -3.11 -m pip install --disable-pip-version-check -r requirements-build.txt
if errorlevel 1 exit /b 1
py -3.11 -m py_compile setup_tool.py setup_tool_dynamic.py remote_packages.py tests/test_safety.py
if errorlevel 1 exit /b 1
py -3.11 -m unittest discover -s tests -v
if errorlevel 1 exit /b 1
py -3.11 -m PyInstaller ^
--noconsole ^
--onefile ^
--icon=PurpleWowLogo.ico ^
--add-data "PurpleWowLogo.ico;." ^
--add-data "Payload;Payload" ^
--add-data "vanilla-tweaks.exe;." ^
--name "WoW_Modernization_Tool" ^
setup_tool_dynamic.py
if errorlevel 1 exit /b 1
if not exist "dist\WoW_Modernization_Tool.exe" (
echo ERROR: Build output is missing.
exit /b 1
)
echo Build complete: dist\WoW_Modernization_Tool.exe
+11
View File
@@ -0,0 +1,11 @@
DXVK bundled component
Version: 2.6.1
Architecture: x86 / 32-bit
Component: x32/d3d9.dll
Source: https://github.com/doitsujin/dxvk/releases/tag/v2.6.1
SHA-256: 0349923a6618f2383451c170a0f24d9c8f328392179aca71826a853655982405
Size: 4452366 bytes
Identification was verified by byte-for-byte comparison against the official
DXVK 2.6.1 release archive.
-20
View File
@@ -1,20 +0,0 @@
# DXVK configuration for World of Warcraft
# Uncomment to set framerate limit
# d3d9.maxFrameRate = 1000
# Uncomment to force borderless fullscreen
# d3d9.enableDialogMode = True
# Enable GPL if supported to reduce stuttering (NVIDIA 473.33+, AMD 24.6.1+)
dxvk.enableGraphicsPipelineLibrary = Auto
# Track pipeline lifetimes to reduce memory usage
dxvk.trackPipelineLifetime = True
# Limit compiler threads to reduce memory usage
dxvk.numCompilerThreads = 4
# Allow exclusive fullscreen mode on Windows
dxvk.allowFse = True
# Disabled because VanillaFixes sets process DPI awareness
d3d9.dpiAware = False
@@ -382,6 +382,13 @@ function LoginManager:LoadAccounts()
self.State.accounts = {} self.State.accounts = {}
self.State.last = nil self.State.last = nil
-- Secure-by-default: when Nampower encryption is available, enable it for
-- fresh/legacy AutoLogin state. A saved explicit false value is restored
-- below, so users who deliberately turned Encrypt off keep their choice.
if has_encryption and self.State.encrypt_passwords == nil then
self.State.encrypt_passwords = true
end
local login_data = ImportFile("logins") local login_data = ImportFile("logins")
local file = self:FromFile("logins") local file = self:FromFile("logins")
if file then if file then
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
<Bindings>
<Binding name="Interact" header="INTERACT">
Interact(0)
</Binding>
<Binding name="Interact (auto-loot)">
Interact(1)
</Binding>
</Bindings>
@@ -0,0 +1,21 @@
BINDING_HEADER_INTERACT = 'Interact'
StaticPopupDialogs['INTERACT_WARNING'] = {
text = 'Failed to load |cffffd200Interact|cffffffff. Follow the installation instructions to ensure proper installation.',
button1 = 'Okay',
timeout = 0,
whileDead = true,
}
if not InteractNearest then
StaticPopup_Show('INTERACT_WARNING')
end
function Interact(autoloot)
if not InteractNearest then
StaticPopup_Show('INTERACT_WARNING')
return
end
InteractNearest(autoloot)
end
@@ -0,0 +1,9 @@
## Interface: 11200
## Title: Interact |cff808080by luskanek
## Author: luskanek
## Notes: Interact Key from Retail ported to Vanilla.
## Version: GIT
Interact.lua
Bindings.xml
Binary file not shown.
+606
View File
@@ -0,0 +1,606 @@
{
"schema": 1,
"components": {
"AuctionQueryThrottle fallback": {
"files": [
{
"path": "Payload/Fallback/AuctionQueryThrottle.dll",
"sha256": "720b7ad72941206249df23cb9d36addafa2634f190081f7b33834b84af184f5e",
"size": 92672
}
],
"source": "https://github.com/brues-code/AuctionQueryThrottle/releases/download/v1.2.0/AuctionQueryThrottle.dll",
"version": "v1.2.0"
},
"ClassicAPI fallback": {
"files": [
{
"path": "Payload/Fallback/ClassicAPI.dll",
"sha256": "2a823b141326383a56fba100d09f5a72f34798b08f38fa9340e5bdc2ee31dc65",
"size": 1145856
}
],
"source": "https://github.com/brues-code/ClassicAPI/releases/download/v1.12.7/ClassicAPI.dll",
"version": "v1.12.7"
},
"DXVK": {
"version": "v2.6.1 x86",
"source": "https://github.com/doitsujin/dxvk/releases/tag/v2.6.1",
"files": [
{
"path": "Payload/DXVK_Standard/d3d9.dll",
"size": 4452366,
"sha256": "0349923a6618f2383451c170a0f24d9c8f328392179aca71826a853655982405"
}
]
},
"FishPing fallback": {
"files": [
{
"path": "Payload/Fallback/Audio/FishPing/Sound/Spells/Tradeskills/FishBite.wav",
"sha256": "80497c141e2dfe1dde5cc78d0afc7e1381363e8f1dd491af8dd8faa70d872def",
"size": 44596
}
],
"source": "https://codeload.github.com/notsureawake/FishPing/zip/refs/heads/master",
"version": "master"
},
"Interact fallback": {
"files": [
{
"path": "Payload/Fallback/Interact/Interact.dll",
"sha256": "ab716314eed559a10607ecdc655f71911196ffae69706cf1d373d01df86a915d",
"size": 55808
}
],
"source": "https://github.com/lookino/Interact/releases/download/v1.0.4/Interact.zip",
"version": "v1.0.4"
},
"Nampower": {
"files": [
{
"path": "Payload/nampower.dll",
"sha256": "304bdb35bc00b18ee092b3bc01195319f717c37d9c6babe6775e8fe278229d22",
"size": 1058816
}
],
"source": "https://github.com/brues-code/nampower/releases/download/v4.6.1/nampower-v4.6.1.zip",
"version": "v4.6.1"
},
"no1600x1200": {
"files": [
{
"path": "Payload/no1600x1200.dll",
"sha256": "0df2274116278e8330dd7069902b642f1a83f33fefd909807a22eda197d88652",
"size": 104960
}
],
"source": "https://raw.githubusercontent.com/RetroCro/TurtleWoW-Mods/refs/heads/main/Archive/DLL%20BACKUP/no1600x1200.dll",
"version": "RetroCro main"
},
"NoErrorSounds fallback": {
"files": [
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uChatScrollButton.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/iUiInterfaceButtonA.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uEscapeScreenClose.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/interface/uEscapeScreenOpen.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFrostA.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleNatureA.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleHolyA.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleFireA.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/NoErrorSounds/Sound/Spells/Fizzle/FizzleShadowA.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
}
],
"source": "https://codeload.github.com/Macumbafeh/NoErrorSounds/zip/refs/heads/main",
"version": "main"
},
"PerfBoost": {
"files": [
{
"path": "Payload/perf_boost.dll",
"sha256": "7019e2f31c4f56caa616f1b4b2587c56ff276f2c27c9f35535e2578eafbd4dbe",
"size": 578560
}
],
"source": "https://raw.githubusercontent.com/RetroCro/TurtleWoW-Mods/refs/heads/main/Archive/DLL%20BACKUP/perf_boost.dll",
"version": "RetroCro main"
},
"SuperWoW": {
"files": [
{
"path": "Payload/SuperWoWhook.dll",
"sha256": "bd214b32c878649e94ce654835946bd05e0ce7710e8f01bae10d8ab50a89351d",
"size": 1000448
}
],
"source": "https://github.com/balakethelock/SuperWoW/releases/download/Release/SuperWoW.release.2.2.zip",
"version": "Release"
},
"UnitXP_SP3": {
"files": [
{
"path": "Payload/UnitXP_SP3.dll",
"sha256": "1d1a622fc4fd74864bdd5aa29d8c4ed2dd5cbb0340f978cbf4daca815235d10a",
"size": 185344
}
],
"source": "https://github.com/brues-code/UnitXP_SP3/releases/download/v90/UnitXP_SP3-v90.zip",
"version": "v90"
},
"vanilla-tweaks fallback": {
"files": [
{
"path": "vanilla-tweaks.exe",
"sha256": "e386132fd0e5713818893a9cef9e5ae41d99baff2da03f190911d351cc5ed090",
"size": 5927433
}
],
"source": "https://github.com/tubtubs/vanilla-tweaks/releases/download/tag/vanilla-tweaks_tag_x86_64-pc-windows-gnu.zip",
"version": "tag"
},
"VanillaFixes": {
"version": "v1.5.3",
"source": "https://github.com/hannesmann/vanillafixes/releases/tag/v1.5.3",
"files": [
{
"path": "Payload/VanillaFixes.exe",
"size": 88576,
"sha256": "228d7bb5e3b5b0c2062d6c5f40c38c2a173e4c80d8a5d9e4077be800431b48a3"
},
{
"path": "Payload/VfPatcher.dll",
"size": 72704,
"sha256": "f283b6b5ad8042e7995eff9768c150042dd47de6e5f00ffe530d2e67743df81d"
}
]
},
"VanillaHelpers": {
"files": [
{
"path": "Payload/VanillaHelpers.dll",
"sha256": "1e74ddf6484c23482550d5f9e5f9d291085c4ac538d3b3ed9d87155521841196",
"size": 254976
}
],
"source": "https://github.com/isfir/VanillaHelpers/releases/download/v1.1.2/VanillaHelpers.dll",
"version": "v1.1.2"
},
"VanillaMultiMonitorFix fallback": {
"files": [
{
"path": "Payload/Fallback/VanillaMultiMonitorFix/VanillaMultiMonitorFix.dll",
"sha256": "7fa033e744c4b8794a4c97a45d563a8870264244bfa1e478a1c0f85e0c6e3371",
"size": 28160
},
{
"path": "Payload/Fallback/VanillaMultiMonitorFix/VMMFix_preferred_monitor.txt",
"sha256": "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b",
"size": 1
}
],
"source": "https://github.com/Mates1500/VanillaMultiMonitorFix/releases/download/0.2/release.zip",
"version": "0.2"
},
"WarlockMutedDemons fallback": {
"files": [
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_FUNNY.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_SUMMON01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_KILL04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_DISMISS02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/DoomGuardVO/DOOM_ORDER05.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER05.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_FUNNY.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_ORDER02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_SUMMON04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_DISMISS04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/VoidWalkerVO/VOID_KILL03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_DISMISS05.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_ORDER03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_FUNNY.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/ImpVO/IMP_KILL01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_FUNNY.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_KILL01.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER05.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_DISMISS02.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_ORDER03.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
},
{
"path": "Payload/Fallback/Audio/WarlockMutedDemons/Data/Sound/Creature/SuccubusVO/SUCCUBUS_SUMMON04.wav",
"sha256": "4f1c48e911f813417f6f7324e68e0b09dab1ebb09032c7d7a940168c5d92a954",
"size": 482
}
],
"source": "https://codeload.github.com/spzilyk/Warlock-Muted-Demons/zip/refs/heads/main",
"version": "main"
},
"WeirdPerformance": {
"files": [
{
"path": "Payload/weirdperformance.dll",
"sha256": "872b73e9074b8fd95f968b099adf4139591c10ab6cd916c96082ed4a7b7b8c69",
"size": 204288
}
],
"source": "https://codeberg.org/Dusk92/WeirdUtils/releases/download/0.7.3/weirdperformance.dll",
"version": "0.7.3"
},
"WeirdUtils bundled modules": {
"version": "v0.7.0",
"source": "https://codeberg.org/MarcelineVQ/WeirdUtils/releases/tag/v0.7.0",
"note": "All listed bundled modules were verified byte-for-byte against WeirdUtils v0.7.0. WorldMarkers is tracked separately because it was updated to v0.7.1.",
"files": [
{
"path": "Payload/transmogfix.dll",
"size": 12800,
"sha256": "cd9e4c6ce033b0923cf045269f590f5e0b886bd03f43bd81406670d781452210"
},
{
"path": "Payload/WeirdUtils/bigcursor.dll",
"size": 14848,
"sha256": "daa85d8e29e5458fd9962f922ba1e2a65ff2ac6cddff1242a2d6240c287a22d8"
},
{
"path": "Payload/WeirdUtils/customassets.dll",
"size": 16384,
"sha256": "86f3a24cfbaa8d775bdab280d63fbf48b445d8789c2759fe912183462f36f06f"
},
{
"path": "Payload/WeirdUtils/logsessions.dll",
"size": 14848,
"sha256": "f5f37e449dc4646b6d2de8c01e57b954ab2fb7950bef372ddba2c744fb7b9841"
},
{
"path": "Payload/WeirdUtils/minimapicons.dll",
"size": 142848,
"sha256": "a6821e088d0f8ffa7806e88e1b8686f4ec715a218f74f62d6f33bd9bcf91583e"
},
{
"path": "Payload/WeirdUtils/pngscreenshots.dll",
"size": 16896,
"sha256": "44ca42ac8428eb4e69017ad264b8e86206e803ccbe3a3591d6ba1916d7888dca"
}
]
},
"WeirdUtils WorldMarkers": {
"version": "v0.7.1",
"source": "https://codeberg.org/MarcelineVQ/WeirdUtils/releases/tag/v0.7.1",
"note": "Bug-fix release: relaxes overly strict zone checking that could prevent valid world markers from appearing.",
"files": [
{
"path": "Payload/WeirdUtils/worldmarkers.dll",
"size": 488448,
"sha256": "7b0b0fcdb8bb9e82c5a18ab395af670f57da3e03035b27d5e244e4f8b457fdf2"
}
]
}
}
}
@@ -1,2 +0,0 @@
# UnitXP_SP3_Addon
Vanilla 1.12 Lua Addon for supporting [UnitXP SP3 mod](https://codeberg.org/konaka/UnitXP_SP3)
@@ -374,12 +374,13 @@ local function UnitXP_SP3_setShowInCombatNameplatesNearPlayer(enable)
end end
local function UnitXP_SP3_setWeatherAlwaysClear(enable) local function UnitXP_SP3_setWeatherAlwaysClear(enable)
local test, result; local subcmd;
if enable then if enable == "enable" then
test, result = pcall(UnitXP, "weatherAlwaysClear", "disableRain"); subcmd = "disableRain";
else else
test, result = pcall(UnitXP, "weatherAlwaysClear", "enableRain"); subcmd = "enableRain";
end end
local test, result = pcall(UnitXP, "weatherAlwaysClear", subcmd);
if not test then if not test then
if not skipUpdateMessage then if not skipUpdateMessage then
@@ -612,10 +613,10 @@ local function UnitXP_SP3_reloadConfig()
end end
if UnitXP_SP3_Addon["weatherAlwaysClear"] then if UnitXP_SP3_Addon["weatherAlwaysClear"] then
UnitXP_SP3_setWeatherAlwaysClear(true); UnitXP_SP3_setWeatherAlwaysClear("enable");
xpsp3_checkButton_weatherAlwaysClear:SetChecked(true); xpsp3_checkButton_weatherAlwaysClear:SetChecked(true);
else else
UnitXP_SP3_setWeatherAlwaysClear(false); UnitXP_SP3_setWeatherAlwaysClear("disable");
xpsp3_checkButton_weatherAlwaysClear:SetChecked(false); xpsp3_checkButton_weatherAlwaysClear:SetChecked(false);
end end
@@ -1,12 +0,0 @@
### Nampower settings
See ~~https://gitea.com/avitasia/nampower~~ https://github.com/Emyrk/nampower for in game tooltip for description of each setting.
Access settings in game by right clicking the minimap icon.
### Per Character settings
You can now use different nampower settings for each character. When you enable this option it will save all of your current nampower settings into
WTF\Account\YOUR_ACCOUNT\Nordanaar\YOUR_CHARACTER\SavedVariables\NampowerSettings.lua. Then every time the game loads the settings in that file will overwrite both the nampower defaults and whatever cvars were saved in your main Config.wtf. If you make changes to any settings while this option is enabled it will save to that character's settings file AS WELL AS the main Config.wtf.
#### Queued spell icon display
If you have superwow there is an option (default off) to display an icon for the most recently queued spell (the mini fireball in the castbar). You can resize and position it anywhere.
![img.png](img.png)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -602,6 +602,7 @@ PerfBoostOptions.hasIcon = "Interface\\Icons\\Spell_Nature_Strength"
PerfBoostOptions.defaultMinimapPosition = 180 PerfBoostOptions.defaultMinimapPosition = 180
PerfBoostOptions.independentProfile = true PerfBoostOptions.independentProfile = true
PerfBoostOptions.hideWithoutStandby = false PerfBoostOptions.hideWithoutStandby = false
PerfBoostOptions.db = PerfBoost.db
PerfBoostOptions.OnMenuRequest = PerfBoost.cmdtable PerfBoostOptions.OnMenuRequest = PerfBoost.cmdtable
local args = AceLibrary("FuBarPlugin-2.0"):GetAceOptionsDataTable(PerfBoostOptions) local args = AceLibrary("FuBarPlugin-2.0"):GetAceOptionsDataTable(PerfBoostOptions)
Binary file not shown.
Binary file not shown.
+14 -81
View File
@@ -1,87 +1,20 @@
# ------------------------------------------------------------------------- # DXVK configuration for World of Warcraft
# TURTLE WOW (1.12) DXVK CONFIGURATION
# -------------------------------------------------------------------------
# --- WINDOWING & DISPLAY STABILITY --- # Uncomment to set framerate limit
# "False" disables Exclusive Fullscreen. This is critical for screen capture # d3d9.maxFrameRate = 1000
# reliability (OBS/Discord) and ensures the game behaves like a borderless
# window, allowing seamless alt-tabbing.
dxvk.allowFse = False
# Forces Vulkan to handle vertical sync logic within the window container. # Uncomment to force borderless fullscreen
# This prevents screen tearing in windowed modes without the heavy input # d3d9.enableDialogMode = True
# lag penalty typically associated with standard V-Sync.
dxvk.tearFree = True
# Defers the creation of the rendering surface until the window is fully # Enable GPL if supported to reduce stuttering (NVIDIA 473.33+, AMD 24.6.1+)
# initialized. This fixes the "Black Screen" or "White Screen" hangs dxvk.enableGraphicsPipelineLibrary = Auto
# often seen when launching the 1.12 client or alt-tabbing back into it. # Track pipeline lifetimes to reduce memory usage
d3d9.deferSurfaceCreation = True dxvk.trackPipelineLifetime = True
# Limit compiler threads to reduce memory usage
dxvk.numCompilerThreads = 4
# --- STABILITY (CRITICAL FOR 32-BIT CLIENTS) --- # Allow exclusive fullscreen mode on Windows
# The 1.12 client uses a signed 32-bit integer to query VRAM. dxvk.allowFse = True
# On GPUs with high VRAM, this can overflow into negative values, causing
# crashes. Capping the report to 4096MB prevents integer overflow errors.
# Options: Any integer (MB). 0 = Autodetect (unsafe for 1.12).
d3d9.maxAvailableMemory = 4096
# Aggressively evicts texture data from System RAM once uploaded to the GPU. # Disabled because VanillaFixes sets process DPI awareness
# This significantly reduces the Virtual Memory footprint of the 32-bit
# process, helping to prevent "Error #132" (Out of Memory) crashes.
d3d9.evictManagedOnUnlock = True
# --- VISUAL FIDELITY ---
# Forces 4x MSAA (Multisample Anti-Aliasing) via the Vulkan backend.
# This provides much cleaner edge smoothing than the native WoW 1.12
# implementation. (Note: Set WoW's internal "Multisampling" to 1x/Off).
# Options: -1 (Off), 0 (Off), 2, 4, 8, 16.
d3d9.forceSwapchainMSAA = 16
# Forces 16x Anisotropic Filtering via Vulkan.
# Overrides the legacy 1.12 filtering implementation, providing sharper
# textures on angled surfaces (roads, hills) with negligible performance cost.
# Options: -1 (Game Default), 0 (Off), 1, 2, 4, 8, 16.
d3d9.samplerAnisotropy = 16
# Prevents texture shimmering or "noise" when the camera is moving
# by clamping negative Level of Detail bias.
d3d9.clampNegativeLodBias = True
# Forces the use of the hardware cursor.
# This decouples the cursor from the game's render loop, preventing mouse
# lag or disappearance during framerate dips.
d3d9.cursor = True
# --- PERFORMANCE & SMOOTHNESS ---
# Enables "Graphics Pipeline Library" (Fast Linking).
# "Auto" uses fast linking to compile shaders instantly (eliminating stutter)
# while simultaneously optimizing them on a background thread.
# Options: Auto (Recommended), True (Force On), False (Force Off).
dxvk.enableGraphicsPipelineLibrary = auto
# Explicitly enables the state cache to ensure compiled shaders are saved
# to disk. This prevents micro-stutters on subsequent game launches.
dxvk.stateCache = True
# Sets the number of frame buffers.
# Set to 2 to minimize input latency for reactive combat. The "tearFree"
# setting above handles the smoothness, so 3 buffers are unnecessary and
# only add input lag.
# Options: 1 (Double Buffering), 2 (Triple Buffering), 3+ (Extra Buffering).
dxvk.numBackBuffers = 2
# Limits the number of frames the CPU can queue ahead of the GPU.
# Keeping this at 1 ensures input remains as snappy as possible,
# counteracting latency from windowed mode presentation.
# Options: 1-16 (Lower = Less Input Lag, Higher = Smoother Pacing).
d3d9.maxFrameLatency = 1
# --- SYSTEM INTERACTION ---
# Disables logging to minimize disk I/O and unnecessary CPU overhead.
# Options: none, error, warn, info, debug.
dxvk.logLevel = none
# Disables High DPI awareness in DXVK.
# Prevents double-scaling issues if the operating system is using
# display scaling (e.g., 125% or 150%).
d3d9.dpiAware = False d3d9.dpiAware = False
Binary file not shown.
Binary file not shown.
+109
View File
@@ -0,0 +1,109 @@
# 🛠️ WoW Modernization Tool v2.0
This is a major update focused on **easier setup, safer updates, automatic component refreshes and new optional client improvements**.
Existing users do **not** need to reinstall WoW. Select your current game folder, review your options and click **Apply Setup & Tweaks**.
## 🔄 Automatic Updates & Offline Protection
Supported components can now be refreshed directly from their upstream releases when you apply the setup.
If an online update is unavailable, the tool will keep a valid installed version or use a bundled known-good fallback when available. Existing working files are preserved whenever possible instead of being replaced unnecessarily.
## 🎮 Rendering & DXVK
Renderer selection is now simpler:
- **VanillaFixes — DirectX 9** *(default)* — uses WoW's native DirectX 9 renderer.
- **VanillaFixes + DXVK — Vulkan** — translates DirectX 9 to Vulkan and may provide smoother frame pacing on modern systems.
The bundled DXVK version is now **2.6.1 x86** with a configuration aligned with VanillaFixes.
Switching back to DirectX 9 now safely moves unknown existing D3D9 wrapper files out of the WoW root instead of deleting them.
## 🧩 New & Updated Plugins
- **ClassicAPI** — adds newer WoW API functions so compatible modern addons can work on the Vanilla client.
- **AuctionQueryThrottle** — removes the fixed Auction House query delay for much faster searches.
- **VanillaMultiMonitorFix** — improves resolution, refresh-rate and monitor detection on multi-monitor setups.
- **Interact** — adds a modern interaction key for nearby NPCs, objects, gathering nodes and loot.
- **WorldMarkers 0.7.1** — updated optional world-marker support.
- **WeirdPerformance 0.7.3** — updated engine/runtime optimizations for client smoothness and reduced overhead.
## ⚙️ New Client Tweaks
- **Unlimited AddOn Script Memory** — removes WoW's AddOn memory limit.
- **Cross-Faction Resurrection Fix** — improves resurrection handling for released cross-faction players.
- **Custom Glues Patch** — enables custom login and character-selection interface modifications.
- **Automatically Clear WDB** — clears stale WDB cache data and safely manages the WDB blocker.
- **SuperWoW conflict prevention** — equivalent vanilla-tweaks patches are automatically skipped when SuperWoW already handles FoV, Sound Channels, Auto-Loot or Background Sound.
## 🌙 New Visual Mods
All visual mods are optional and disabled by default.
- **Bluemoon Patch** — restores the rare blue moon visual effect.
- **Darker Nights** — makes nighttime environments darker and more atmospheric.
- **Pretty Night Sky** — replaces the Vanilla night sky with a more detailed starry sky.
- **Epoch Water** — replaces the original Vanilla water textures.
- **Fog Pushback** — pushes environmental fog farther away for clearer long-distance visibility.
- **Pink Herbs** — makes herb nodes bright pink/purple so they are easier to spot.
## 🔊 New Audio Mods
All audio mods are optional and disabled by default.
- **NoErrorSounds** — removes many repetitive spell fizzle/error and interface sounds.
- **FishPing** — replaces the fishing bite sound with a much easier-to-hear ping.
- **Warlock Muted Demons** — mutes many repetitive Warlock demon voice lines.
## 🔐 AutoLogin Security Improvements
When **AutoLogin + Nampower** are enabled together, Modernization Tool now automatically creates or reuses the Windows user encryption key required by Nampower.
AutoLogin also enables password encryption by default when encryption is available. Existing user encryption keys are never replaced, and an explicit user choice to disable AutoLogin encryption is preserved.
## 💾 Installer & Safety Improvements
- Settings are remembered separately for each WoW installation.
- Manually added entries and comments in `dlls.txt` are preserved.
- Downloaded/bundled DLLs are validated before installation.
- Important replacements are performed transactionally to reduce the risk of partial installs.
- Existing valid files are kept when an upstream download fails.
- Large visual mods are not re-downloaded when the installed revision is already current.
- Legacy Modernization Tool files are cleaned up safely.
- The selected game folder is validated before changes are made.
## 🚀 Launcher Improvements
After installation, **Play Modernized WoW** is created both:
- in the WoW game folder;
- on the Windows Desktop.
Use either shortcut to launch the modernized client.
## 📦 Notable Bundled / Known-Good Versions
- VanillaFixes **1.5.3**
- DXVK **2.6.1 x86**
- Nampower **4.6.1**
- ClassicAPI **1.12.7**
- AuctionQueryThrottle **1.2.0**
- UnitXP_SP3 **v90**
- SuperWoW **2.2**
- VanillaHelpers **1.1.2**
- WeirdPerformance **0.7.3**
- WorldMarkers **0.7.1**
- VanillaMultiMonitorFix **0.2**
- Interact **1.0.4**
## ✅ Updating from v1.1
Download **WoW_Modernization_Tool.exe**, select your existing WoW installation and click **Apply Setup & Tweaks**.
A complete WoW reinstall is not required.
---
The detailed change list since **v1.1** is generated automatically by GitHub below.
+1365
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More