This mod is a port of my Homeworld Classic Enhanced mod for Homeworld 2. It combines my HW Classic Rebalance and Gameplay Enhanced mods into one single mod, providing you with a greater number of gameplay options than can be found in either mod alone. Development of those earlier mods has stopped in favor of this one.
The latest change log is in the download description.
2.2.0 --- 2016/07/10
• Fixes to some game type menu option texts.
• "CheckCaptureStatusRule()" now cycles through players using the
"WIN_AnyPlayerIndex" variable and the "CyclePlayers()" function instead of
picking a player at random, just like the other WIN CONDITION rules. I hope I
didn't break anything.
• Other minor tweaks to "CheckCaptureStatusRule()".
• Total overhaul of the "WriteStats()" script. The ADVANCED STATS now contain
time and date info, a list of game rule settings chosen by the host, and
lists of ships, subsystems and research. The output now also contains nearly
all the info that the vanilla stats the game normally writes to the profile
"stats" folder have. Thanks to Dwarfinator and radar3301!
• "WriteStats()" is also a rule now instead of just a regular function. This
apparently is necessary for the "Your fleet is victorious" and "Your fleet
has been defeated" messages to appear at the end of each battle. Not sure
• The starting objective message text is now customized based on the current
WIN CONDITION. Unfortunately, I do not have audio files for each of the WIN
• Modified "levelfunc.lua" to remove "meg_kharak" and "meg_kharakburned", which
were removed from the game by GearBox apparently.
• Fixed the ship "tur_ionarrayfrigate" since it had a bug in it that caused the
game to crash. The ship "der_lifeboat" also crashes the game, but I haven't
figured out why.
• Edited "data\ui\newui\ingamemenu.lua" to add the "BTN_EXITTOMAINMENU" button,
since exiting all the way to Windows makes testing the mod in multiplayer
• Replaced instances of "Universe_PlayerCount() - 1" with a new global variable
• Fixed a bug in "CheckTeamProductionShipsLeftRule()" and
"CheckTeamAnyShipsLeftRule()" where the game continued to try to kill players
even when they were already dead.
• The "CheckMothershipDeadRule()" function now uses the "WIN_AnyPlayerIndex"
global variable to iterate through players just like the other WIN CONDITION
• Moved the "Player_Team()" and "Player_NumberOfShips()" functions to
"common.lua" from "wincondition.lua".
• Renamed "SetStartObjective()" to "SetWinObjective()".
• The BACKGROUND MUSIC rule now has a "Map Default" option that reverts to
playing whatever background music is specified in the level file.
• Replaced calls to the "CPU_Exist()" function with calls to the
"Player_GetLevelOfDifficulty" function since the former were causing desyncs.
• HWCM debug text changed slightly.
• Overhauled how seeds for my PRNG work. Before, each seed was generated using
the native Lua "random()" function. This caused desyncs however, which I did
not realize until I did some multiplayer testing over a LAN connection in the
last few days. Now, the seeds are generated by performing operations on game
setup options, and then summing the results. While the seed values are not as
"unique" as before, they will not cause desyncs. Thus, the mod can finally be
played against other human players over the Internet.