TeknoMW3's Changelog - Musta1337/TeknoMW3 GitHub Wiki
- It can be said that there were "two branches": one to support only the SP / SO; and another to support only the MP (although there was a time when it supported SP, SO and MP at the same time).
- If you have information about other versions that don't appear here, you can tell me so I'll edit it. :P
1.0 - Link
- Initial version
1.0 Hotfix - Link
- LAN hosts have now better connectivity
1.2 - Link
- New advanced patching code to prevent timeouts.
- All IP ranges now work.
- IP Box recoded for better usability.
- Bug that caused Client to die on startup is now fixed.
- .NET 4.0 Problems should now be gone.
- Added FOV (65-120) support under settings.
- Now checks for updates on each startup to keep users up-to-date.
- Added “TeknoGods Coop” over the multiplayer text to make it more clear.
- Lot of small bug fixes on loader.
- Version 1.4 of the game now works properly.
- Fixed “,” issues with foreign language Windows.
- Added notice when joining game that makes troubleshooting easier
- Added notice when host and client have same IDs.
- Launcher now requires admin rights in order to run.
1.3 - Link
- SteamID generation failed with ID “/” when ID was not present and progress was not saved. This is now fixed and autodetected.
- Multilanguage problems now fixed, French language works fine.
2.0 - Link
- We basically had to write some missing pieces of the game, add a lot of extra services and code to handle them. Our goal was to make it easier to play the game on LAN parties or wherever a proper internet connection is a problem.
- For future releases we plan on adding an internet server list, in-game console, mod support, linux-friendly dedicated server launcher and much much more!
2.1 - Link
- Fixed a bug in Loader where it couldn’t read process memory sometimes
- Fixed a bug in loader where it would take IP as Dedicated server port
- Fixed a bug where it would require all game executables to be present.
- Lighter process starting.
2.2 - Link
- Dedicated servers have now lowered CPU requirements to 1Ghz.
2.3 - Link
- Added dedicated server launcher ‘TeknoMW3_dedicated.exe’ for linux(wine)/windows.
- Removed admin requirements from running the loader.
- Added domain support now, you can use IP addresses or domains.
- FOV restricted to 80.
- INI no longer gets written over each time game is ran.
- Fixed 0xC0000005 crash.
2.5 - Link
- Enabled Internet Server List
- You can now browse online servers. Requirements for the server: NAT out the net_masterServerPort in order to make your server visible to the clients.
- CPU usage drastically decreased. No more 100% core use.
- Minor stability fixes, more to come soon.
2.5.1.0 - Link
- The 2.5.1.0 version was using a test server which is offline. The can either fix this by editing the “teknogods.ini” file and adding:
[Network]
MasterServer=kebl.in:27017
2.5.2.0 - Link
- The internet server list should be more stable now.
2.5.3.0 - Link
- Fixes *yet again* CPU use of the dedicated server and stability of the internet server list.
2.6.0.0 - Link
- BUGFIX: INI file now has a special option under
[Network]
NetWorkInterface=x
Where x is your prefered adapter, by default its 255 which means the game will bind on all adapters. If you can't see some hamachi or LAN game, set the adapter that binds to that network. NetworkInterfaceList is information only. Check it.
- BUGFIX: Dedicated server doesnt crash anymore when offline or on slow / lagged internet connection.
- ADDED: INI option under
[Network]
OnlineMode=false/true (default true)
It can make your server invisible to the master server.
- BUGFIX: Servers can be properly passworded now.
- BUGFIX: 2 player disconnect. Now external ip is cloned from internal ip or randomly generated (client). This fixes the disconnect problem. If you'd like to set a custom external ip, there is a new INI option under
[Network]
ExternalIP=x.x.x.x
- BUGFIX: IW guys left a nasty bug in the game code. The randomize cryptotable used to encrypt rcon protocol using securityID. If the securityID is 'unlucky' enough, it would encrypt some random character of your password to become a ';' character which is safety-checked in the console func, and disregarded as 'command reminator'. End result: your password '1234' can be encrypted as 'fb;e' and while being passed through console end up being sent as 'fb', decrypted on the server as '12'. '12' obviosly wouldnt match '1234' sooo you'd never be able to log in. Well, this is fixed now. TL;DR: rcon should work every time now
- ADDED: secure ban list. New ban list is located at: .\main\permanent_ex.ban - To un-ban, you need to manually find the entry and remove it.
- ADDED: Favorite/History/Official server lists
- BUGFIX: Server list shouldnt crash anymore I hope
- BUGFIX: Loader shouldn't crash when executed twice.
- It’s advised not to use 2.6.0.0. We’re working on the 2.6.1.0 which will address the crash issues and most likely will use new kind of protocols again (to address the high UDP traffic issue), making it incompatible with 2.6.0.0/2.5.3.0 servers.
- The 2.6.1.0 will be branded as beta release, so when it’s out you’re welcomed to try it, but it’s recommended to stay with 2.5.3.0 until a stable 2.7.0.0 is out.
2.6.2.0 - Link
- No information
2.6.3.0 - Link
- BUGFIX: Ini file "ExternalIP" setting (from [Network] section) should no longer get overwritten by UPnP router result.
- BUGFIX: Team Auto Balance is now properly initialized. By default its enabled. You can disable it via server.cfg: seta scr_teambalance 0
- ADDED: ui_hud_obituaries, waypointiconheight and waypointiconwidth dvars are no longer protected (server must be running though).
- ADDED: global ban list. Disabled by default. To enable add an uption to the ini file under
[Network]
GlobalBans=true
- ADDED: "dvarinfo" command to the dedicated server. It enables debug printouts for the dvars (their current value + default) * this wont work from rcon
- ADDED: "rcon_full_access" dvar. It gives you a full access to raw server commands via RCON. Set it in server.cfg like: seta rcon_full_access "1"
The carrier command is 'set @' for example:
rcon set @quit --this will shut down the server
rcon set @say hi all --this will say 'hi all' to everyone
When "rcon_full_access" is not set, or set to "0", there is
still a feature that can be used for server-chat. Carrier
command is 'set #say', for example:
rcon set #say hello all, this is server admin.
2.7.0.0 - Link
- Master server moved to an official host
- Minor security tweaks
2.7.0.1 - Link
- Disabled folder check
- Stability fixes
2.7.3.5 - Link
- No information
2.7.3.6 - Link
- No information
2.7.3.7 - Link
- No information
2.7.3.11 - Link
- No information
2.9 - Link
- No information
2.91 - Link
- Still SP only
- Added support to 1.9.441
2.92 - Link
- Still SP only
- Added support to 1.9.446 that comes with Collection 3.
- Speed problems should be fixed
3.0 - Link
- I regret to inform you that the development of TeknoMW3 3.0 is canceled, because of the death of our main developer known as Hans Krebs additionally Seraphim signed out.
2.8.0.0 - Link
- [BUGFIX] Fixed string parser on the Client side. Now servers/clients can send the "^\x01" or "^\x02"-type messages and they wont crash.
- [BUGFIX] Fixed MSG_ReadBitsCompress stack overflow. This bug was actively exploited to achieve "God Mode" or to crash/destroy server installations.
- [BUGFIX] Fixed various command injections in OOB packet-handler, RCON and B3-RCON.
- [BUGFIX] Fixed infinite loop bug in B3 RCON.
- [BUGFIX] Fixed UDP packet handling in B3 RCON.
- [BUGFIX] Changed memory access rights for the code section on the server binary. Previously it was set to Read-Write-Execute, allowing easy exploitation of certain bugs.
- [BUGFIX] Fixed invalid memory reference in the Weapon-handler.
- [BUGFIX] Fixed protocol handler of the Server Browser.
- [FEATURE] Re-enabled B3 RCON. By default, it is using "net_authPort" 8766.
- [FEATURE] Added "-disable_b3" commandline param to server executable, in case B3 RCON is not neeeded.
- [FEATURE] Re-enabled in-game RCON. If server has the "rcon_password" set and you know it, you can open RCON using ` or Shift+` and connect to it (rcon login ).
- [FEATURE] Added "-disable_rcon" commandline param to server executable, in case RCON is not neeeded.
- [FEATURE] Added "sv_serverFullMsg" server config dvar. It is loaded only once, when the server starts. Standard \n \t \x?? (hex) char encodings are allowed.
- [FEATURE] Added "sv_protectedDvars" server config dvar. All dvars listed under it will be read-only & write-protected once the first map is loaded. For example: seta sv_protectedDvars "sv_serverFullMsg sv_hostname rcon_password sv_privatePassword g_password sv_privateClients sv_maxclients"
- [MISC] Some file names have changed. Client and Server no longer use the same library name "TeknoMW3.dll", they are now known as "TeknoMW3C.dll" and "TeknoMW3S.dll". Together with new loader executables, Client and Server binaries can be safely copied onto the same installation directory of MW3.
- [MISC] Ban database is again based on text file format. SQL database is no longer used (due to stability and security reasons).
- [MISC] It is recommended to set these DVARs in "server.cfg", for EXAMPLE:
seta sv_clanWebsite "http://www.somesuper.clan/plz?join"
seta sv_Discord "https://discord.gg/k5ghe7q"
seta sv_serverFullMsg "Some message when the server is full.\nPlease join our server XYZ or visit out website blabla.com"
seta sv_maxping "500"
- [MISC] Added "Latest News" screen to the main menu (client binary).
- [UPGRADE] Mono has been updated from 4.0 to 4.5. Network, SQL, etc. functionalities are now possible from within scripts!
- [FEATURE] Added "TeknoMW3_SteamPlugin.dll". If Steam is ON, it will set your presence to "In-Mod TeknoMW3 - Call of Duty: Modern Warfare 3".
- [NOTE] @Client Users: If one day Steam updates and the "TeknoMW3_SteamPlugin.dll" plugin stops working for some reason, or you do not wish to have your presence known, delete / rename the "TeknoMW3_SteamPlugin.dll".
- [NOTE] @Server Admins: you have to use "TeknoMW3_Server_Launcher.exe" in your batch files in order to start the Dedicated Server correctly.
2.8.0.2 - Link
- [MISC] You can now specify custom MONO version for the server via server.cfg dvar settings. Values in the example below are DEFAULTS, so no need to set them, add some of these only if you need to change something.
seta mono_script_lib_folder "mono-2.10.9\\lib"
seta mono_script_cfg_folder "mono-2.10.9\\cfg"
seta mono_runtime_version "v4.0.30319"
seta mono_default_config_parse "true"
seta mono_assembly_name "InfinityScript.dll"
seta mono_config_file "anything.config" -- this is mainly needed for latest MONO, where using SQL or NET libs triggers "exePath" error.
- [BUGFIX] Fixed FPS lock at 60.
- [BUGFIX] Fixed Client renderer lag.
- [BUGFIX] Fixed Client HWID generator.
- [MISC] Due to Mono 5.0.1.1 instability, we reverted to official Mono 2.10.9 in this release. All plugins should work again and server should not crash randomly.
- [FEATURE] Added a new InfinityScript function: GI_SetSectionProtection(int section, bool protect). It is exported under: Utilities.SetSectionProtection(int section, bool protect). How does it work:
1st param = executable section to change protection of, section 0 = ".text" (code section)
2nd param = protect true/false; to enable patching, make it "true", to disable patching, make it "false"
Currently server will automatically unprotect ".text" section for any call to Mono/Script, however, if you need to change something while the protection is still enabled, this API might come in handy.
Important note: REMEMBER to set the protection back after doing whatever was needed: Utilities.SetSectionProtection(?, true)
- [BUGFIX] InfinityScript function getter Entity.IP now utilizes 2 new TeknoMW3S.dll exports: GetClientAddressIP & GetClientAddressPORT. This should fix the issue with 64bit-value error when reading IP+PORT via GetClientAddress().
- [BUGFIX] Disabled GScr_SetSlowMotion, to re-enable it, run server with "-enable_slow_motion"
2.8.0.3 - Link
- Many bugs have been fixed on client & server side. For example:
- Proper banning/unbanning (with fixed HWID)
- More configuration options for the server, incl. mono2/5 selection
- Extra dvars / command line options / extra information printed on server boot-up
- Client loader now allows emblem/tag/title selection
- Working SteamPlugin (for in-game presence)
- Server lag / memory consumption drastically decreased
- Fixed several scriptability features (like OnServerCommand)
2.8.0.4 - Link
- Client
- [MISC] Adjusted maxfps to minimum of 46 (in loader and in-game).
- [MISC] Spaces in nickname/title are now allowed (again).
- [BUGFIX] Fixed yet another IW bug when class was set to one that had no weapon-data loaded (crashing the client in result).
- [FEATURE] Added a security list of dvars that servers will not be able to set for clients. They are: “sec_sv_blocked_dvars” and “sec_cfg_blocked_dvars” – both can be set in “config_mp.cfg”, for example:
seta sec_sv_blocked_dvars “cg_hudChatPosition;cg_chatHeight” –this would protect those 2 dwords against changes from done by the server
seta sec_cfg_blocked_dvars “cg_hudChatPosition;cg_chatHeight” –this on the other hand, would allow servers (assuming same dvars wouldnt be also blocked using the feature above) to be changed at runtime, but any writes to “config_mp.cfg” for them would be replaced with their default values.
This basically means you can now protect against some rogue dvar-changes initiated by the game servers (using “sec_sv_blocked_dvars”) or, allow servers to change some risky dvars, but instead, block their write(s) to “config_mp.cfg” (using “sec_cfg_blocked_dvars”).
Default blocked values:
“sec_sv_blocked_dvars”: Only “compassSize” for now.
“sec_cfg_blocked_dvars”: All dvars starting with: “con_”, “cg_Scores”, “cg_chat”, “compass”.
- Server
- [FEATURE] Added a new dvar “sv_current_dsr” that is automatically updated whenever a new DSR is loaded.
- [MISC] Nicknames/titles with spaces are now allowed (again).
- [FEATURE] Scripts: Added Utilities.SetConnectErrorMsg(string) function – use this to set error message that will be sent to clients that got denied entry via another new feature:
- [FEATURE Scripts: Added a callback/event: OnClientConnect(Func<Dictionary<string, string>, bool> func)
How it works: Once server gets a connection-attempt request, this event will be fired up with a dictionary containing all client info.
Callback should by default return FALSE. If you return TRUE (eatIt?), it will tell the server to deny entry to the client.
For example: if (args[“name”].ToLower().Contains(“hax”)) { Utilities.SetConnectErrorMsg(“you hax bruh!”); return true; }
- [BUGFIX] Scripts: Entity.IP fixed, again. Hopefully for good this time.
- [MISC] While B3 normally uses “net_authPort” (that can be used for another service, in which case we increase that port by 1), we have added a new server param “-b3port XXXX” (where XXXX is a port of your choice of course).
2.8.0.4b - Link
- “TeknoMW3_Client_Launcher.exe” had a small bug that made it impossible to set FOV other than 90 & a small crash if “dw” folder was missing.
2.8.0.4b - Farewell Release - Link
- A new version that will fix a number of critical bugs in the game code (Thanks IW!) will be released ASAP.
- For now, an RCE HotFix has been applied.
- New INI option under:
[Settings]
HPAllowed=true
New Launcher - Link
- Launcher can self update.
- Launcher will keep client and server files up to date.
- Missing or Corrupted files will be replaced with new files. (TeknoMW3 Client/Server Files only)
- File validity check.
- Eliminated all the issues user had with Launcher.
- Unlock All has been added to Launcher.
- User Preferred Prestige level and In-game Level.
- Introducing Discord Rich Presence to TeknoMW3. Displays user information of Current server, Server map, Server maxclient, Server current clients count and Server current mode.
2.8.0.5b - Link
- Update for dedicated servers, not for clients!
- But the link includes the latest launcher version, as well as the TeknoMW3 files.
- We have fixed several stability issues that users faced and different methods which resulted in server crash.