Index: scripts/usr/local/lib/7dtd/VERSION
===================================================================
--- scripts/usr/local/lib/7dtd/VERSION	(revision 310)
+++ scripts/usr/local/lib/7dtd/VERSION	(revision 344)
@@ -1,3 +1,3 @@
-Version: 110
-Release: 2017-08-26
+Version: 111
+Release: 2019-01-05
 
Index: scripts/usr/local/lib/7dtd/commands/updateengine.sh
===================================================================
--- scripts/usr/local/lib/7dtd/commands/updateengine.sh	(revision 310)
+++ scripts/usr/local/lib/7dtd/commands/updateengine.sh	(revision 344)
@@ -235,4 +235,5 @@
 	fi
 	if [ "$DOCHECK" = "yes" ]; then
+		echo "Updating version information..."
 		rm /root/Steam/appcache/appinfo.vdf
 		cd $SDTD_BASE/steamcmd
Index: scripts/usr/local/lib/7dtd/monitor-log.sh
===================================================================
--- scripts/usr/local/lib/7dtd/monitor-log.sh	(revision 310)
+++ scripts/usr/local/lib/7dtd/monitor-log.sh	(revision 344)
@@ -73,8 +73,8 @@
 
 handleChat() {
-	echo "$(timestamp): $1: $2" >> $CHATLOG
+	echo "$(timestamp): $1: $2 (SteamID $3, EntityID $4, Target $5)" >> $CHATLOG
 	
 	for H in $(getHooksFor chat $INSTANCE); do
-		$H $INSTANCE "$1" "$2"
+		$H $INSTANCE "$1" "$2" "$3" "$4" "$5"
 	done
 }
@@ -167,10 +167,13 @@
 			handleGmsg "$msg"
 			unset msg
-		#Chat: 'name': .*$
-		elif [ -n "$(echo "$line" | grep -E '^Chat: .+')" ]; then
-			name=$(expr "$line" : "Chat: '\(.*\)': .*$")
-			msg=$(expr "$line" : "Chat: '.*': \(.*\)$")
-			handleChat "$name" "$msg"
-			unset name msg
+		#Chat (from '<steamid>', entity id '<entityid>', to '<targettype>'): '<senderchatname>': <msg>
+		elif [ -n "$(echo "$line" | grep -E '^Chat .+')" ]; then
+			steamId=$(expr "$line" : "Chat (from '\(.+\)', entity id '[0-9]+', to '[a-fA-F:0-9.]+'): '.*': .*$") 
+			entityId=$(expr "$line" : "Chat (from '.+', entity id '\([0-9]+\)', to '[a-fA-F:0-9.]+'): '.*': .*$") 
+			targetType=$(expr "$line" : "Chat (from '.+', entity id '[0-9]+', to '\([a-fA-F:0-9.]+\)'): '.*': .*$") 
+			name=$(expr "$line" : "Chat (from '.+', entity id '[0-9]+', to '[a-fA-F:0-9.]+'): '\(.*\)': .*$") 
+			msg=$(expr "$line" : "Chat (from '.+', entity id '[0-9]+', to '[a-fA-F:0-9.]+'): '.*': \(.*\)$") 
+			handleChat "$name" "$msg" "$steamId" "$entityId" "$targetType"
+			unset name msg steamId entityId targetType
 		#Executing command ".*" from client ".*"$ 
 		elif [ -n "$(echo "$line" | grep '^Executing command '.*' from client')" ]; then 
Index: scripts/usr/local/lib/7dtd/serverconfig.sh
===================================================================
--- scripts/usr/local/lib/7dtd/serverconfig.sh	(revision 310)
+++ scripts/usr/local/lib/7dtd/serverconfig.sh	(revision 344)
@@ -56,21 +56,23 @@
 }
 serverconfig_ServerDisabledNetworkProtocols_Values() {
-	config_allowed_values=("None" "UNET" "UNET,SteamNetworking" "UNET,RakNet" "UNET,SteamNetworking,RakNet" "SteamNetworking" "SteamNetworking,RakNet" "RakNet")
-}
-
-
-serverconfig_ServerIsPublic_QueryName() {
+	config_allowed_values=("None" "SteamNetworking" "SteamNetworking,LiteNetLib" "LiteNetLib")
+}
+
+
+serverconfig_ServerVisibility_QueryName() {
 	echo "Public server"
 }
-serverconfig_ServerIsPublic_Type() {
-	echo "boolean"
-}
-serverconfig_ServerIsPublic_Default() {
-	echo "true"
-}
-serverconfig_ServerIsPublic_ErrorMessage() {
-	echo "Not a valid boolean given (true/false or yes/no or y/n)."
-}
-
+serverconfig_ServerVisibility_Type() {
+	echo "number"
+}
+serverconfig_ServerVisibility_Default() {
+	echo "2"
+}
+serverconfig_ServerVisibility_Range() {
+	echo "0-2"
+}
+serverconfig_ServerVisibility_Values() {
+	config_allowed_values=("Not listed" "Friends only (only works while at least one player is connected manually. Dedi servers do not have friends!)" "Public")
+}
 
 
@@ -233,5 +235,39 @@
 }
 serverconfig_GameWorld_Values() {
-	config_allowed_values=("Random Gen" "Navezgane") #  "MP Wasteland Horde" "MP Wasteland Skirmish" "MP Wasteland War"
+	config_allowed_values=("RWG" "Navezgane") #  "MP Wasteland Horde" "MP Wasteland Skirmish" "MP Wasteland War"
+}
+
+
+
+serverconfig_WorldGenSeed_QueryName() {
+	echo "Random generation seed (if world RWG)"
+}
+serverconfig_WorldGenSeed_Type() {
+	echo "string"
+}
+serverconfig_WorldGenSeed_Validate() {
+	if [ ! -z "$1" ]; then
+		echo "1"
+	else
+		echo "0"
+	fi
+}
+serverconfig_WorldGenSeed_ErrorMessage() {
+	echo "Seed cannot be empty."
+}
+
+
+
+serverconfig_WorldGenSize_QueryName() {
+ 	echo "Random generation map size (if world RWG)"
+}
+serverconfig_WorldGenSize_Type() {
+ 	echo "number"
+}
+serverconfig_WorldGenSize_Default() {
+	echo "6144"
+}
+serverconfig_WorldGenSize_Range() {
+	echo "2048-16384"
 }
 
@@ -239,5 +275,5 @@
 
 serverconfig_GameName_QueryName() {
-	echo "Random gen seed"
+	echo "World decoration seed"
 }
 serverconfig_GameName_Type() {
@@ -285,24 +321,79 @@
 }
 serverconfig_GameMode_Values() {
-	config_allowed_values=("GameModeSurvivalMP" "GameModeSurvivalSP")
-}
-
-
-
-serverconfig_ZombiesRun_QueryName() {
-	echo "Zombies run"
-}
-serverconfig_ZombiesRun_Type() {
-	echo "number"
-}
-serverconfig_ZombiesRun_Default() {
+	config_allowed_values=("GameModeSurvival")
+}
+
+
+
+serverconfig_ZombieMove_QueryName() {
+	echo "Zombie speed, regular"
+}
+serverconfig_ZombieMove_Type() {
+	echo "number"
+}
+serverconfig_ZombieMove_Default() {
 	echo "0"
 }
-serverconfig_ZombiesRun_Range() {
-	echo "0-2"
-}
-serverconfig_ZombiesRun_Values() {
-	config_allowed_values=("Default day/night walk/run" "Never run" "Always run")
-}
+serverconfig_ZombieMove_Range() {
+	echo "0-4"
+}
+serverconfig_ZombieMove_Values() {
+	config_allowed_values=("Walk" "Jog" "Run" "Sprint" "Nightmare")
+}
+
+
+
+serverconfig_ZombieMoveNight_QueryName() {
+	echo "Zombie speed, night"
+}
+serverconfig_ZombieMoveNight_Type() {
+	echo "number"
+}
+serverconfig_ZombieMoveNight_Default() {
+	echo "3"
+}
+serverconfig_ZombieMoveNight_Range() {
+	echo "0-4"
+}
+serverconfig_ZombieMoveNight_Values() {
+	config_allowed_values=("Walk" "Jog" "Run" "Sprint" "Nightmare")
+}
+
+
+
+serverconfig_ZombieFeralMove_QueryName() {
+	echo "Zombie speed, ferals"
+}
+serverconfig_ZombieFeralMove_Type() {
+	echo "number"
+}
+serverconfig_ZombieFeralMove_Default() {
+	echo "3"
+}
+serverconfig_ZombieFeralMove_Range() {
+	echo "0-4"
+}
+serverconfig_ZombieFeralMove_Values() {
+	config_allowed_values=("Walk" "Jog" "Run" "Sprint" "Nightmare")
+}
+
+
+
+serverconfig_ZombieBMMove_QueryName() {
+	echo "Zombie speed, bloodmoons"
+}
+serverconfig_ZombieBMMove_Type() {
+	echo "number"
+}
+serverconfig_ZombieBMMove_Default() {
+	echo "3"
+}
+serverconfig_ZombieBMMove_Range() {
+	echo "0-4"
+}
+serverconfig_ZombieBMMove_Values() {
+	config_allowed_values=("Walk" "Jog" "Run" "Sprint" "Nightmare")
+}
+
 
 
@@ -346,4 +437,16 @@
 serverconfig_DayLightLength_Range() {
 	echo "0-24"
+}
+
+
+
+serverconfig_PartySharedKillRange_QueryName() {
+	echo "Party range to share kill / quest XP rewards"
+}
+serverconfig_PartySharedKillRange_Type() {
+	echo "number"
+}
+serverconfig_PartySharedKillRange_Default() {
+	echo "100"
 }
 
@@ -490,4 +593,28 @@
 
 
+serverconfig_TelnetFailedLoginLimit_QueryName() {
+	echo "Max failed login attempts (0 to disable)"
+}
+serverconfig_TelnetFailedLoginLimit_Type() {
+	echo "number"
+}
+serverconfig_TelnetFailedLoginLimit_Default() {
+	echo "10"
+}
+
+
+
+serverconfig_TelnetFailedLoginsBlocktime_QueryName() {
+	echo "Telnet login blocktime after failed logins (seconds)"
+}
+serverconfig_TelnetFailedLoginsBlocktime_Type() {
+	echo "number"
+}
+serverconfig_TelnetFailedLoginsBlocktime_Default() {
+	echo "10"
+}
+
+
+
 serverconfig_DropOnDeath_QueryName() {
 	echo "Drop on Death"
@@ -767,5 +894,5 @@
 	echo "--------------------------------"
 	for CV in \
-			ServerName ServerPassword ServerIsPublic ServerPort ServerDisabledNetworkProtocols ServerDescription ServerWebsiteURL \
+			ServerName ServerPassword ServerVisibility ServerPort ServerDisabledNetworkProtocols ServerDescription ServerWebsiteURL \
 			HideCommandExecutionLog MaxUncoveredMapChunksPerPlayer EACEnabled MaxSpawnedZombies MaxSpawnedAnimals \
 			; do
@@ -795,5 +922,5 @@
 	for CV in \
 			ControlPanelEnabled ControlPanelPort ControlPanelPassword \
-			TelnetPort TelnetPassword \
+			TelnetPort TelnetPassword TelnetFailedLoginLimit TelnetFailedLoginsBlocktime \
 			; do
 		if [ "$CV" = "TelnetPort" ]; then
@@ -815,5 +942,5 @@
 	echo "--------------------------------"
 	for CV in \
-			GameName GameWorld GameMode \
+			GameName GameWorld WorldGenSeed WorldGenSize GameMode \
 			; do
 		$1 $CV
@@ -828,5 +955,5 @@
 	echo "--------------------------------"
 	for CV in \
-			PlayerKillingMode PersistentPlayerProfiles \
+			PartySharedKillRange PlayerKillingMode PersistentPlayerProfiles \
 			PlayerSafeZoneLevel PlayerSafeZoneHours \
 			BuildCreate \
@@ -872,5 +999,5 @@
 	echo "--------------------------------"
 	for CV in \
-			GameDifficulty ZombiesRun \
+			GameDifficulty ZombieMove ZombieMoveNight ZombieFeralMove ZombieBMMove \
 			EnemySpawnMode EnemyDifficulty \
 			BloodMoonEnemyCount BedrollDeadZoneSize \
