'''THIS IS ONLY FOR THE DEDICATED SERVER BUILD OF 7DTD! [[PageOutline(2-5,Table of contents,inline)]] == Download == The latest build can be found here: [http://svn.illy.bz/7dtd/binary-improvements/bin/Release/]. You need both the ''7dtd-server-fixes.dll'' and the ''Assembly-CSharp.'''patched'''.dll'' (rename it to ''Assembly-CSharp.dll'' locally). Note that this will only work with the correct version of the 7dtd dedicated server. If they release a new build the files have to updated (should never take longer than 24h from their release). Once Downloaded add these files to the 7DaysToDie_Data/Managed folder. == Build yourself == The ''Assembly-CSharp.dll'' is first deobfuscated with the [https://github.com/DerPopo/deobfuscate-7dtd Deobfuscator]. Then the ''7dtd-server-fixes.dll'' can be build referencing this assembly. At last the deobfuscated ''Assembly-CSharp.dll'' is patched with the [http://svn.illy.bz/7dtd/binary-improvements/assembly-patcher/ Assembly-Patcher] so it calls the new methods in the ''7dtd-server-fixes.dll''. * Download the [https://github.com/DerPopo/deobfuscate-7dtd Deobfuscator] (if you don't need to change anything use a release build, otherwise at least download the release build for an example ''patchers.xml'') * Put both ''Assembly-CSharp.dll'' and ''UnityEngine.dll'' in the folder where the Deobfuscator executable is * Run the deobfuscator with "Assembly-CSharp.dll" as its only parameter. On Windows this can be achieved by dragging the AC#.dll onto the executable. * Copy the created ''Assembly-CSharp.deob.dll'' to the ''7dtd-binaries'' folder within the 7dtd-server-fixes folder and rename it to "Assembly-CSharp.dll" * Also copy the files given in the ''README.txt'' from the game to that folder * Open the project, change whatever you want, build * Run the ''7dtd-fixer.exe'' on the ''Assembly-CSharp.dll'' in the build folder * Copy the ''7dtd-server-fixes.dll'' and ''Assembly-CSharp.patched.dll'' to your game folder the same way as with the normal precompiled download == Features == === New log information === * New entry whenever a player connects combining all the information that previously had to be collected manually. It is printed after ''RequestToSpawnPlayer'' and looks like this: {{{ Player connected, clientid=1, entityid=171, name=alloc, steamid=765611*******172, ip=192.168.1.58 }}} * Each time someone connects on Telnet: {{{ Telnet connection from: 127.0.0.1:45014 }}} * When someone disconnects from Telnet: {{{ Telnet connection closed by client: 127.0.0.1:45014 }}} * When someone executes a command through Telnet: {{{ Telnet executed "gt" from: 127.0.0.1:45014 }}} * When a connected client successfully executes a remote command: {{{ Executed command "lp" from player "Alloc" }}} * When a player has a stack in his inventory which exceeds the official stack size limit for that item: {{{ Player with ID 171 has stack for "stick" greater than allowed (2000 > 250) }}} === Integrated Webserver for administration === See [[Integrated Webserver]] for more information. === Map rendering === The map is rendered to image files as people visit the different places. Those images are stored within the save game folder in a folder named ''map''. This folder contains one subfolder per zoom level, 0 being the most zoomed out whereas currently 4 is the normal size. In each of them are folders for the X coordinates of the blocks which contain individual images for the Y coordinates: {{{ SaveGame/ map/ 0/ # 0 being the zoom level -3/ # -3 is the block number in x-direction (west to east) 5.png # 5 is the block number in y-direction (south to north) }}} The map will be rendered while people wander around but if you want to initially get everything mapped that has been visited prior to adding this mod (or prior to rev.131 which introduced this feature) you might want to run the command "rendermap". '''NOTE''' that this will take a long time to execute (in the minutes) depending on how big the visited map is so far. During this time the server can not be used for playing or any commands. The generated map file structure can be used to show the map with tools like [http://leafletjs.com/ Leaflet]. The integrated webserver will also show this map. === New commands (for in-game console, control panel and Telnet) === * ''creativemenu'' / ''cm'': Enable/disable creative menu for the current session. * ''getgameprefs'' / ''gg'': Get all server preferences (no parameters passed) or just those that contain the string that is passed. This can be used to give all users access to read the server settings (e.g. land claim size) (see Admins.xml below). Only non-sensitive information can be accessed, so excluded are all preferences which contain the following strings: * Telnet * AdminFileName * ControlPanel * Password * SaveGameFolder * Options {{{ gg claim LandClaimDeadZone = 30 LandClaimDecayMode = 0 LandClaimExpiryTime = 3 LandClaimOfflineDurabilityModifier = 4 LandClaimOnlineDurabilityModifier = 4 LandClaimSize = 7 }}} * ''gettime'' / ''gt'': Get the current in-game time like this one: {{{ Day 18, 14:13 }}} * ''give'': Give an item to a player * ''kill'': Kill a player denoted by his name or entity id * ''listitems'' / ''li'': List items that can be given with ''give'' * ''listknownplayers'' / ''lkp'': List all players that have ever been online (since this version of the mod) * ''listlandprotection'' / ''llp'': Lists all land protection blocks and their owners (name only shown when owner is online) or only those that are owned by a given player (steamid or entity/name if online) or show a summary of players and number of keystones used only (by passing "summary"): {{{ Player " (76561198066968172)" (protected: True, current hardness multiplier: 4): (1249, 60, -21) Total of 1 keystones in the game }}} * ''listplayerids'' / ''lpi'': Lists all online players with their IDs for use with e.g. PM * ''removelandprotection'' / ''rlp'': Removes the given land protection block or all blocks of a given player. * ''rendermap'' / ''rm'': Render the map as far as it was ever visited by any player to both a big file and many small tiles that can be used for a map viewer like Leaflet. '''WARNING:''' This command can take a long time to execute (like 5 to 30 minutes) and the server won't be usable at that time for anything else! * ''reply'' / ''re'': Send a message to the player who last sent you a private message (see ''sayplayer'' / ''pm''). * ''sayplayer'' / ''pm'': Send a message to a single player denoted by his name or entity id. Will be shown on receiver side as " (PM)" where is either "Server" if sent through the control panel or Telnet interface or the name of the sending player if used by the in game console. * ''settimereal'' / ''str'': Set the in-game time by number of days, hours, minutes * ''showinventory'' / ''si'': List the inventory/belt content of a player denoted by his name or entity id. Note that this data is only updated every 30s when the client sends his current state. Sample output: {{{ Belt of player: Slot 1: 001 * bottledWater Slot 2: 001 * canChili Slot 3: 001 * firstAidBandage Bagpack of player: Slot 0: 031 * canBeef Slot 4: 001 * firstAidBandage Slot 5: 032 * painkillers Slot 12: 001 * PumpShotgun Slot 31: 064 * tallGrassDiagonal2 }}} * ''teleportplayer'' / ''tele'': Teleport a given player to a position or player * ''unban'': Remove a ban for a SteamID * ''version'': Show the currently running version of the server fixes === Admins.xml === * Commands with permission level set to >= 1000 can be executed by all players. This is useful e.g. for the new ''getgameprefs'' command. * Commands not defined in ''admins.xml'' at all automatically has permission level 0 * A command set in ''admins.xml'' affects both and long version. E.g. having the following in ''admins.xml'' will set the permisisonlevel to ''1'' for both ''lp'' and ''listplayers'': {{{ }}} === Replaced Telnet server === * Should be way more stable * Handles disconnect of clients without sending ''exit'' * Allows multiple connections at once (though output for one client is sent to all) * If no password is set in ''TelnetPassword'' the Telnet server only listens on the loopback interface! * Greeting message contains new line ''*** Allocs server fixes loaded'' * Output of a command run by a single Telnet client is only sent to this one client == Release Notes == === [https://7dtd.illy.bz/browser/binary-improvements?rev=206 rev. 206] (0.100.5442.30220) === * Updated for Alpha 10.1 (server build ''454117'') * Command ''listplayerids'' / ''lpi'' added === [https://7dtd.illy.bz/browser/binary-improvements?rev=205 rev. 205] (0.100.5439.41910) === * Updated for Alpha 10 (server build ''451483'') * Command ''listplayersextended'' / ''lpe'' removed: Now integrated with the vanilla ''lp'' command === [https://7dtd.illy.bz/browser/binary-improvements?rev=202 rev. 202] (0.93.5409.27239) === * Webserver core updated for better performance / less problems * Command ''listlandprotection'' changed: If run from the game's console it accepts the parameter "nearby" an optionally an distance === [https://7dtd.illy.bz/browser/binary-improvements?rev=199 rev. 199] (0.93.5378.41731) === * Updated map rendering + webserver so that hopefully all "sharing access violation"s are gone === [https://7dtd.illy.bz/browser/binary-improvements?rev=198 rev. 198] (0.93.5378.21429) === * Command ''unban'' actually registered in game ;) === [https://7dtd.illy.bz/browser/binary-improvements?rev=197 rev. 197] (0.93.5377.34787) === * Commands ''give'' and ''listitems'' changed: Now should work for all things in creative menu * Player inventory is monitored for stacksizes greater than the allowed size for each item (see [[Server fixes#Newloginformation|New log information]]) === [https://7dtd.illy.bz/browser/binary-improvements?rev=196 rev. 196] (0.93.5375.21616) === * Added console command ''unban'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=194 rev. 194] (0.93.5374.40502) === * Updated for A9.3 b5 (server build 385244) === [https://7dtd.illy.bz/browser/binary-improvements?rev=192 rev. 192] (0.93.5373.21892) === * Minor bug fix for map rendering === [https://7dtd.illy.bz/browser/binary-improvements?rev=190 rev. 190] (0.93.5369.22980) === * Further Telnet stability improvements === [https://7dtd.illy.bz/browser/binary-improvements?rev=189 rev. 189] (0.93.5368.20218) === * Command ''teleportplayer'' / ''tele'' changed: Second parameter can be another player now * Made Telnet interface robust against errors in core commands (like buff) * Telnet ignores empty lines === [https://7dtd.illy.bz/browser/binary-improvements?rev=188 rev. 188] (0.93.5366.36263) === * Allow setting different rendering settings (run server with this version once, shut down, edit /map/mapinfo.js) * WARNING: This can have a serious impact on server performance! Will be optimized later on. === [https://7dtd.illy.bz/browser/binary-improvements?rev=185 rev. 185] (0.93.5365.39558) === * Web interface no longer depends on CP enabled (only on existence of the "webserver" folder) * Login attempt limiting on Telnet === [https://7dtd.illy.bz/browser/binary-improvements?rev=183 rev. 183] (0.93.5365.36355) === * Multithreaded Telnet server (hopefully lowering CPU usage a bit) === [https://7dtd.illy.bz/browser/binary-improvements?rev=180 rev. 180] (0.92.5364.31430) === * Updated for A9.3 (server build 375426) === [https://7dtd.illy.bz/browser/binary-improvements?rev=174 rev. 174] (0.92.5363.32930) === * Web API: Added getlandclaims * Map updates === [https://7dtd.illy.bz/browser/binary-improvements?rev=172 rev. 172] (0.92.5361.41834) === * Web auth: Actually require user ("admin") and password (same as control panel) if auth is enabled === [https://7dtd.illy.bz/browser/binary-improvements?rev=168 rev. 168] (0.92.5361.28833) === * Fixed minor bug in rendermap * Made webserver authentication chooseable === [https://7dtd.illy.bz/browser/binary-improvements?rev=165 rev. 165] (0.92.5360.43161) === * Updated for A9.2 server hotfix (server build 373581) === [https://7dtd.illy.bz/browser/binary-improvements?rev=164 rev. 164] (0.92.5360.33406) === * Updated for A9.2 (server build 373271) === [https://7dtd.illy.bz/browser/binary-improvements?rev=163 rev. 163] (0.91.5360.30628) === * Added console command ''teleportplayer'' / ''tele'' * Added GetPlayerInventory API * Map: Show inventory for a player by clicking its marker and show inventory (requires latest webserver files) === [https://7dtd.illy.bz/browser/binary-improvements?rev=162 revs. 161/162] (0.91.5360.3074) === * Another hotfix for player list API (JSON empty strings) === [https://7dtd.illy.bz/browser/binary-improvements?rev=160 rev. 160] (0.91.5359.27894) === * Another hotfix for player list API (JSON encoding for strings) === [https://7dtd.illy.bz/browser/binary-improvements?rev=159 rev. 159] (0.91.5359.26222) === * Another hotfix for player list API === [https://7dtd.illy.bz/browser/binary-improvements?rev=156 rev. 156] (0.91.5359.21630) === * Hotfix for player list API * Removed debug output "add dirty" === [https://7dtd.illy.bz/browser/binary-improvements?rev=154 rev. 154] (0.91.5358.38435) === * Web: First API introduced * Map shows current player locations both for online and offline players (last position) === [https://7dtd.illy.bz/browser/binary-improvements?rev=147 rev. 147] (0.91.5355.36217) === * Command ''showinventory'' / ''si'' changed: * Allows to pass steamid in addition to allowing entity id and player name * With steamid also players that are currently not online can be checked * Output format has changed: Items of same type aren't accumulated anymore but instead each slot is shown on its own: {{{ Slot 2: 001 * canChili }}} * Added console command ''listknownplayers'' / ''lkp'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=143 rev. 143] (0.91.5355.28079) === * Big improvements on map rendering (both live and full rendering) === [https://7dtd.illy.bz/browser/binary-improvements?rev=142 rev. 142] (0.91.5354.28918) === * Fixed Telnet connection not using UTF8 * Removed extra output for unimplemented Web methods === [https://7dtd.illy.bz/browser/binary-improvements?rev=139 rev. 139] === * Command ''listlandprotection'' / ''llp'' changed: Allow to show keystones of a single user, show summary only === [https://7dtd.illy.bz/browser/binary-improvements?rev=138 revs. 137-138] === * Minor changes to integrated web server === [https://7dtd.illy.bz/browser/binary-improvements?rev=136 revs. 134-136] === * Improvements on map rendering and integrated server authorization (username="admin", password same as control panel) === [https://7dtd.illy.bz/browser/binary-improvements?rev=133 rev. 133] === * Added integrated web server (map display only so far) === [https://7dtd.illy.bz/browser/binary-improvements?rev=131 rev. 131] (and 130/129) === * Added map live rendering * Added console command ''rendermap'' / ''rm'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=128 rev. 128] === * Added console command ''creativemenu'' / ''cm'' * Added console command ''give'' * Added console command ''listitems'' / ''li'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=127 rev. 127] (and 126/125) === * Updated for A9 (server build 363156) === [https://7dtd.illy.bz/browser/binary-improvements?rev=123 rev. 123] === * Command ''removelandprotection'' / ''rlp'' changed: You can remove all blocks of a given player (by SteamID) instead of only remove a single one * Command ''removelandprotection'' / ''rlp'' changed: Both the association of the block to the owner and the actual block are removed === [https://7dtd.illy.bz/browser/binary-improvements?rev=120 rev. 120] === * IMPORTANT Fixed a bug in the permissions calculation for players. === [https://7dtd.illy.bz/browser/binary-improvements?rev=117 rev. 117] === * Updated for A9 (server build 356618) === [https://7dtd.illy.bz/browser/binary-improvements?rev=114 rev. 114] === * Added console command ''version'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=113 rev. 113] === * Added console command ''listlandprotection'' / ''llp'' * Added console command ''removelandprotection'' / ''rlp'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=112 rev. 112] === * Command ''sayplayer'' / ''pm'' changed: Ignores color codes in player names === [https://7dtd.illy.bz/browser/binary-improvements?rev=110 rev. 110] === * Fixed minor bug in ''reply'' / ''re'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=108 rev. 108] === * Added console command ''reply'' / ''re'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=107 rev. 107] === * Console output of the Web control panel and each Telnet client is separated === [https://7dtd.illy.bz/browser/binary-improvements?rev=106 rev. 106] === * Updated for server build 334790 === [https://7dtd.illy.bz/browser/binary-improvements?rev=103 rev. 103] === * Command ''sayplayer'' changed: Added short version ''pm'' * Command ''sayplayer'' changed: Sender is now denoted as stated in the description above so this command can be used as a PM function for players * All code that could ever produce errors is now doing exception handling so it should at least never affect the game/server itself. === [https://7dtd.illy.bz/browser/binary-improvements?rev=100 rev. 100] === * Updated for server build 333545 === [https://7dtd.illy.bz/browser/binary-improvements?rev=98 rev. 98] === * Fixed: inventory with multiple stacks of the same item causing an exception === [https://7dtd.illy.bz/browser/binary-improvements?rev=96 rev. 96] === * Fixed: New commands get registered even if Telnet is not enabled * Fixed: The actual dedi server DLL is used now === [https://7dtd.illy.bz/browser/binary-improvements?rev=93 rev. 93] === * Added console command ''showinventory'' / ''si'' === [https://7dtd.illy.bz/browser/binary-improvements?rev=91 rev. 91] === * Added Telnet welcome message line: ''*** Allocs server fixes loaded'' * Command ''getgamepref'' changed: First parameter may just be a substring of prefs, like "claim" * Command ''listplayersextended'': Added output field "ping" === [https://7dtd.illy.bz/browser/binary-improvements?rev=86 rev. 86] === * Console commands allowed by admins.xml affect both short and long versions === [https://7dtd.illy.bz/browser/binary-improvements?rev=84 rev. 84] === * Added console command ''settimereal'' / ''str'' * Changed behaviour of Admins.xml (see features) === [https://7dtd.illy.bz/browser/binary-improvements?rev=83 rev. 83] === * Added console command ''sayplayer'' * Added logging output for remote command execution from clients === Initial release ([https://7dtd.illy.bz/browser/binary-improvements?rev=81 rev. 81]) ===