Obsah
Modding Diablo 2 on macOS: PlugY, Enjoy-SP and more
A lot can be changed and tweaked in Diablo 2 – however, lots of modding sites went down in the last couple of years, so it is getting increasingly harder to gain some info on how to do it – especially when running under Wine(skin) on Mac OS X.
In this article I will be slowly gathering my own experiences and manuals for modding and tweaking Diablo II 1.13d. This is and will remain a work‑in‑progress.
Which Diablo II to install?
This is probably obvious, but get Diablo II with expansion (Lord of Destruction). Without it you will miss most of the game content and many programs must be configured differently for basic game (or do not work at all).
Native Mac OS X version or PC version under Wine(skin)?
Blizzard released native Diablo II for Mac. However, since files in this version are different from the PC version, majority of mods simply won't work. I therefore prefer to use PC version of Diablo II running under Wine(skin).
Diablo II version to pick
- The latest Diablo II version is currently 1.14d (released June 7, 2016).
- However, the last version that changed anything gameplay‑wise is 1.13d (released October 27, 2011).
- And the last content patch was 1.13c (released March 23, 2010).
Therefore everything after patch 1.13d are just tweaks for new operation systems – see version history. This is important to know since some editors and modding programs will not work when Diablo II data (like items, skills, monsters) are changed. Any program that works with Diablo II 1.13c will work with all later versions.
Wineskin installation setup
Installation is easy and non‑problematic, do not expect anything fancy. I prefer using Wineskin, since that way I can isolate different Windows games and programs.
In the rest of this article, I will assume you are using Diablo 2 LoD 1.13d running under Wineskin.
Basic mods: PlugY and Enjoy-SP
These are the basic mods I always use. They are both based on the idea that playing vanilla Diablo II in single player is actually much harder and less fun than multiplayer. They are therefore aimed to make single‑player more enjoyable, but not necessarily easy.
PlugY v14.02
- Download here: http://plugy.free.fr/
- Current version (14.02) works with any version of Diablo II up to 1.14d
What does it do?
- Adds infinite storage space for stash + creates shared storage stash.
- Enables the ladder-only runewords for single‑player and TCP/IP game.
- Unassign assigned skills and stats points.
- Added some pages for display more characters stats.
- Display item level in its popup.
- Display the current stats value (without magical bonus).
- … and much more (read the official page)
Enjoy-SP v1.7
- Download here: https://www.moddb.com/mods/enjoy-sp-mod
- Current version (1.7) was made for Diablo II 1.13c, so it works with any version of Diablo II
What does it do?
- Enables all ladder‑only rune words and uniques
- Increases experience gain on higher levels (or, more precisely, eliminates the
ExpRatio
decrease starting from level 70) - Increased the chance of getting uniques, rares and sets when gambling
- Increases drop rates of uniques, rares, sets, runes and gems and decreases junk‑drops
- Further increases drops from all bosses (Act, Super Uniques, Uniques) and adds new Mini‑Boss class. Additionally, Ancients now drop items.
- Decreases the item‑level and the required‑level of 80+ weapons and armors, and slightly decreases the required level of all uniques
- Changed some Cube recipes, added recipes for socketing unique and set items (1 socket only) and normal and superior items (up to 6 sockets), simplified de‑socketing and upgrading runes
- … and much more (read the official page)
Installing PlugY and Enjoy-SP together
Tweaks and small changes
General modding guidelines and info
- Explain Order of loading files
- ‑direct ‑txt commands
Note that the ‑direct ‑txt
command is a 2 command function:
- the
‑txt
command tells the game to generate the binary files in the excel folder on start up. - the
‑direct
tells the game to load the “data” folder first and only then the .mpq files.
So if you are starting a mod for the first time with only txt files in the excel folder and no bins, use the ‑direct ‑txt
and start a new character. This will generate the bins for the first time.
After the bin files are generated, you only need to use the ‑direct
command. The ‑direct
command loads the data folder only and doesn't need to re‑generate the bins, if they are already there.
The point here is that the ‑direct
command is all you need the load the data folder, the ‑txt
command is not needed all the time, only for the first‑time generation of bin files.
Also note that to reload these txt/bin files, you do not need to exit game – they are generated and loaded when you load the game from the character screen.
Changing colour of gems on ground (when holding Alt)
To do this, you need to prepend special colour codes (or their escape sequences, if the TBL editor you use allows it) to names of all gems in /mod/data/local/LNG/ENG/string.tbl
file (which itself is by default packed inside Patch_D2.mpq
file).
Allow Jewels and Charms to be gambled
You need to add Jewels and Charms to the list of items allowed to be generated by gamble routine in /mod/data/global/excel/Gamble.txt
. To do this, append these lines to the end of file:
Small Charm cm1 Large Charm cm2 Grand Charm cm3 Jewel jew
Some important notes:
- You must end the file with a newline, otherwise game wouldn't recognize the item type written in the last line.
- If you want to add another item types, you might find their codes in
/mod/data/global/excel/Misc.txt
(columncode
). They are also references fromTreasureClassEx.txt
file (columnsItemX
). - If you want some items to appear more frequently in gambling window, you might list them several times in the file.
Change probability of Exceptional and Elite items in gambling
This is controlled by columns GambleUber
and GambleUltra
in /mod/data/global/excel/DifficultyLevels.txt
. The probability for an Exceptional/Elite item to be generated is calculated with the following formula (see How are Exceptional/Elite items generated?):
- Exceptional:
exceptionalProbability = max{0%, (ilvl – qlvlV) * 0.9% + 1%}
- Elite:
eliteProbability = max{0%, (ilvl ? qlvlE) * 0.33% + 1%}
- where
ilvl = clvl (‑5 to +4)
andqlvl = quality ‑ lvl
of base item to be generated (e.g. 33 for Demonhide gloves)
The constants (0.9% and 0.33%, respectively), are defined (as 90
and 33
) in the file. My suggested setup is this:
Name […] GambleRare GambleSet GambleUnique GambleUber GambleUltra Normal […] 100000 15000 15000 50 50 Nightmare […] 100000 15000 15000 200 200 Hell […] 100000 15000 15000 800 800
So no magic‑only items (we are gambling, we want something real!), only unique items with 15% probability (in file written as portion of 100000, so 15000), set items with 15% probability (again 15000 in file) and rare items (the rest, i.e. 70% – in file written as 100000 to catch the rest). I have set the probability of getting Exceptional/Elite item to 0.5%/2%/8% (for Normal/Nightmare/Hell, respectively) per one item level (ilvl
) above quality level (qlvl
).
Gambling for Unique Circlets
If you are gambling for exceptional or elite versions of unique/set circlets, remember that only Coronets (and not Circlets!) can be upgraded in gambling window into Tiaras or Diadems. See The complete overview guide to Gambling in Diablo 2 and PoD.
The Cow King in Enjoy-SP does not drop his unique Cow King's Leathers set items – here's how to fix it
The problem is that Enjoy‑SP replaces The Cow King with The Cow Chieftain (looks like The Smith in Barracks), which prevents the game from recognizing that this monster is actually the Cow King which could drop Cow King's Leathers set items. To fix this:
- in
/mod/data/global/excel/MonPreset.txt
replace this line:1 The Old Cow King
with this line:
1 The Cow King
- and in
/mod/data/global/excel/TreasureClassEx.txt
replace these lines:Cow King 7 850 983 983 1024 0 Act 1 Uitem C 1 Act 1 Melee B 2 0 Cow King (N) 7 850 983 983 1024 0 Act 1 (H) Uitem C 1 Act 1 (N) Melee B 2 0 Cow King (H) 7 850 983 983 1024 0 Act 1 (H) Uitem C 1 Act 1 (H) Melee B 2 0
with these lines:
Cow King 7 850 983 983 1024 0 Act 5 Equip C 15 Act 5 Good 3 Cowset 1 0 Cow King (N) 7 850 983 983 1024 0 Act 5 (N) Equip C 15 Act 5 (N) Good 3 Cowset 2 0 Cow King (H) 7 850 983 983 1024 0 Act 5 (H) Equip C 45 Act 5 (H) Good 15 Cowset 3 r33 1 0
This will restore the original Cow King (which is needed for Diablo II code to allow the drop of Cow King's Leathers) and and the same time keep the enhanced Cow King's drops from Enjoy‑SP.
Note that this won't assure that the Cow King will actually drop anything from his set, it only gives him a chance to do so. However, in Enjoy‑SP/Plugy (don't know if also in original game – probably not), you might open the portal to The Secret Cow Level several times – you just have to Save and Exit game between your runs. To do so, repeatedly go to Tristram through The Stony Field teleport to obtain Wirt's Leg and open the portal (Horadric Cube → Tome of Town Portal + Wirt's Leg → opens portal to The Secret Cow Level).
Tweaking shrines
Disable unwanted shrines:
- in
/mod/data/global/excel/Shrines.txt
set required level so high that they will never appear (200+)
Make monster shrine reusable after some time (so that you can generate more uniques, yay!)
- set column
reset time in minutes
to e.g. 1 (the column is in minutes)
My version: only spawn monster, experience and gem shrines, disable other shrines
- change
effectclass
column values so that the only enabled shrine witheffectclass
4 isWarping Shrine
and the only enabled shrines witheffectclass
1 areShrine of Enirhs
,Experience Boost
andGem Upgrade
- note that the chance for effect class 1 is 10% while the chance for effect class 4 is 90% (see The Shrining guide).
Shrine of Enirhs
is out, but it can still be rolled by game, and if so, the game will instead spawnGem Upgrade
shrine.
Good sources for info:
- x
Programs & Editors
Save-game editors (Trainers)
- Preferred (tested, working):
- Hero Editor 1.04: download here. Note that it must be properly installed, not just copied over, as it copies some files to windows.
- Other (untested or not properly working):
- Jamella Hero Editor 4.0 beta9c: download here or here. Do not use, the latest Diablo II version it supports is 1.09. See archived original page
- Shadowmaster 0.87beta: download here. Do not use, the latest Diablo II version it supports is 1.09
TBL editors – editing game texts (strings)
Game texts are stored inside *.tbl
files, which themselves are packed in three different source *.mpq
files:
string.tbl
is ind2data.mpq
and contains texts for original Diablo 2 release;expansionstring.tbl
is ind2exp.mpq
and contains texts from Lord of Destruction expansion;patchstring.tbl
is inpatch_d2.mpq
and contains the texts from the current patch.
Game “loads” its texts in this order, so the latter will override the earlier files – e.g. if the particular text from original Diablo II gets redefined in the expansion, and later again by a patch, game will use the text from patch (pretty clever).
- Preferred (tested, working):
- AFJ tbl Editor 1.12: download here. This is the best editor to use. It has support for colour code escape sequences, does not have any program dependency and I have tested it and it simply works. Two important notes:
- To install AFJ tbl Editor, you have to set Wineskin compatibility mode to Windows XP (Wineskin → Tools → Config Utility)
- Most places on the internet offer you to download version 1.11. This version is broken and does not work. You need to download version 1.12 from the link provided above. It has two variants: Unicode and “normal” version. Unicode works for me, so start with that and if it does not work for you, download the other version.
- Other (untested or not properly working):
- Darkstorm's Diablo 2 Table Editor v1.02: download here. Do not use: Darkstorm's editor lacks functionality, it might corrupt your files and does NOT support escape sequences – if you want to enter color codes, you need to use these human-unreadable texts.
- Peer TBL Editor v3.38: download here. Works and supports escape sequences (and colour codes), but needs .NET Framework. This is problematic to install under Wineskin, so you might rather want to install wine‑mono (read about it here), which is an open‑source and cross‑platform implementation of the .NET Framework. However, at least for me, the program was crashing all the time with wine‑mono. If you cancelled installation of wine‑mono during Wineskin creation, you can additionally install it using these instructions. Basically, (1) download wine-mono, (2) run it with msiexec using e.g.
msiexec /i wine‑mono‑4.5.6.msi
, and (3) if there are errors like this, ignore them.
Others
Gameplay Tips
Types of Monsters
As Enjoy‑SP increases drops from all bosses and unique monsters, running for them is now more important and much more fun.
There are three basic types of monsters in Diablo II (see monster basics here or here):
- Normal monsters with white name: mobs not really worth anything
- Unique monsters with golden name (see below): these include ordinary unique monsters, which are spawned randomly, and super unique monsters spawned always at the same place; and they all drop the best items.
With a Mini‑Boss class introduced by Enjoy‑SP, there are now 4 kinds of unique monsters (ordered by drop rates from best to least interesting):
-
- Mini Bosses are Super Unique monsters “elevated” by Enjoy‑SP mod, so they are stronger and have much better drops:
- Act I:
- Blood Raven, Griswold, The Smith, The Countess
- Act II:
- Radament, The Worm, The Summoner
- Act III:
- The 5 Council members
- Act IV:
- Izual, Hephasto, the 3 Seal‑Lords
- Act V:
- Shenk, the 3 Ancients, Pindleskin, Nilathak
- Super Unique Monsters (see here or here or this list with the exact location and treasure class of all super‑unique monsters):
- Act I:
- Act II:
- Act III:
- Act IV:
- Act V:
-
- These are spawned randomly, but if you see them, you should kill them, as with Enjoy‑SP they drop good stuff too.
Horadric Cube Recipes
This is the complete list of Cube Recipes, taking into account both original Diablo II recipes, and recipes changed or introduced by Enjoy‑SP mod:
Reference pages and Online Resources
General pages
- The Arreat Summit, the “official” Diablo II online strategy guide
- The Amazon Basin Wiki: the best source for detailed description and analysis of:
- magical properties with listing of items that provide them – see e.g. Crushing Blow, Open Wounds, Piercing Attack, Slows Target
- mercenaries – see e.g. general description and Rogue Scout
- The Tankazon resource: great, clean reference page (without explanations) for:
- list of super-unique monsters with their exact location, levels and treasure classes
- list of unique magical properties – nicely complements specific properties lists on The Amazon Basin page.
Gameplay
- Archived d2data.net page with many reference indexes
- Weapon Speed Calculator (archived, but functional version)
- Treasure Classes of all item types, uniques and sets: diablo2.diablowiki.net or DiabloII.net (same data, just different sources)
- Monster Resistances and Immunities Guide (archived)
Horadric Cube
Jewels
Charms
Shrines
- The Shrining - Shrines Revisited – an in‑depth guide to shrines and their modding
- Shrines.txt File Guide on The Phrozen Keep
Gambling
-
- Short answer: items are generated with ilvl between clvl‑5 and clvl+4
-
- Short answer:
Exceptional: pV = max{0%, (ilvl – qlvlV) * 0.9% + 1%} Elite: pE = max{0%, (ilvl – qlvlE) * 0.33% + 1%}
- Note that these constants (0.9% and 0.33%, respectively), are defined (as
90
and33
) in/mod/data/global/excel/DifficultyLevels.txt
underGambleUber
andGambleUltra
columns, respectively.
Modding
Increased Attack Speed, Faster Block Rate, Faster Cast Rate and Breakpoints
- Breakpoints on DiabloWiki.net