I am attempting to host a public server on a new Windows laptop, after following the usual procedures that worked on my previous Linux server---nobody was able to join [WAN and LAN users], I immediately confirmed that the procedures were followed correctly for my OS, but the problem still persists.
Current SRCDS Startup Options:
Code:
C:\Servers\TF2DS\srcds.exe -console -reuse -game tf +sv_pure 1 +maxplayers 32 +sv_setsteamaccount XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +exec server.cfg +map szf_dustbowl_b4 -autoupdate -ip 0.0.0.0
*Server config will be at the end of this post*
Results of using
http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=<PublicIP>3E&format=json
Code:
{"response":{"success":true,"servers":[{"addr":"XX.X.XXX.XXX:27015","gmsindex":65534,"appid":440,"gamedir":"tf","region":0,"secure":true,"lan":false,"gameport":27015,"specport":0}]}}
Important parts of the server log:
Code:
Network: IP 0.0.0.0, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
Initializing Steam libraries for secure Internet server
Logging into Steam game server account
pure_server_whitelist.txt not present; pure server using only base file rules
trusted_keys.txt not present; pure server using only base trusted key list
SOLID_VPHYSICS static prop with no vphysics model! (models/props_mining/dustbowl_roof02.mdl)
L 08/19/2020 - 19:44:42: [TF2ITEMS] "GiveNamedItem" offset = 477
L 08/19/2020 - 19:44:44: [tf2attributes.smx] Could not initialize call to CEconItem::SetCustomName
Executing dedicated server config file server.cfg
Using map cycle file 'cfg\mapcycle.txt'.
Set motd from file 'cfg/motd.txt'
Set motd_text from file 'cfg/motd_text.txt'
SV_ActivateServer: setting tickrate to 66.7
Connection to game coordinator established.
Current item schema is up-to-date with version 015F92D3.
[SM] Changed cvar "mp_ik" to "0".
It is of note, for the following block of the server log, that bots are not configured to get instantly kicked after joining and server hibernation is disabled, so I find it peculiar that they instantly get kicked even though bots are supposed to stay on even when nobody is on---I may be wrong about that though. Also, players and bots in the LAN show up as being connected but get dropped afterward (after being stuck on "connecting to server" or "parsing game info" for around 10 minutes; for bots, it was around 1 ms then they'd get "kicked" as well.
For players in the WAN, they can't see the server in the server browser and can't connect at all (connection failed after 4 retries):
Code:
hostname: Super Zombie Fortress - Left 4 Dead 2 in TF2!
version : 5970214/24 5970214 secure
udp/ip : 0.0.0.0:27015 (public ip: XX.X.XXX.XXX)
steamid : [XXX] (XXXX)
account : not logged in (No account specified)
map : szf_dustbowl_b4 at: 0 x, 0 y, 0 z
tags : alltalk,cp,increased_maxplayers,nocrits,nogifts
players : 0 humans, 0 bots (32 max)
edicts : 729 used of 2048 max
# userid name uniqueid connected ping loss state adr
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
tf_bot_quota
"tf_bot_quota" = "16" ( def. "0" )
game
- Determines the total number of tf bots in the game.
tf_bot_quota_mode
"tf_bot_quota_mode" = "fill" ( def. "normal" )
game
- Determines the type of quota.
Allowed values: 'normal', 'fill', and 'match'.
If 'fill', the server will adjust bots to keep N players in the game, where N is bot_quota.
If 'match', the server will maintain a 1:N ratio of humans to bots, where N is bot_quota.
tf_bot_add 1
NextBot tickrate changed from 0 (0.000ms) to 7 (0.105ms)
Dropped C++ from server (Kicked from server)
tf_bot_add 1
Dropped GutsAndGlory! from server (Kicked from server)
Dropped [AU] Toaster Oven from server (Lost connection)
map cp_dustbowl
These were the attempts at fixing the issues of no LAN or WAN users being able to join:
1.) Ports forwarded properly, UDP and TCP ports designated according to
https://developer.valvesoftware.com/...dicated_Server.
portchecktool.com also confirmed the ports were open when the server was running.
Port forwarding is not the problem.
1.5.) Made sure the internet was not on CGNAT (it wasn't), and double-checked ports with
to find the TCP ports on the srcds PID included the ones forwarded, and they were listening. The UDP ports also showed up, but no info other than the source was obtained:
Code:
TCP 0.0.0.0:27015 0.0.0.0:0 LISTENING 3024
UDP 0.0.0.0:27005 *:* 3024
UDP 0.0.0.0:27006 *:* 3328
UDP 0.0.0.0:27015 *:* 3024
UDP 0.0.0.0:27016 *:* 3328
UDP 0.0.0.0:27020 *:* 3024
***SRCDS PID: 3024
***TF2 PID: 3328
3.) Added firewall exceptions
4.) Turned off PC firewall
5.) Turned off the modem firewall.
6.) Removed -ip from srcds "launch options" it defaults to the network loopback adaptor IP (I don't have NAT loopback) which was set up with the public IP so I could see my server in the server browser. It was seen in the both the LAN (addressed as local IP) and internet tabs (addressed as public IP on the loopback). Having the loopback adaptor installed or not made no difference in who could join (local IP; loopback IP).
7.) Tested out port forwarding on this website with another server application to see if the problem lied elsewhere:
http://helper.osgrid.org/simdiagnostic.php
After properly setting it up, tests always concluded:
Results: Connection to <Public IP> 27027 port [tcp/*] succeeded!
Your OpenSim.ini configuration appears good. We are able to connect to your simulator from outside your network.
UDP: Your Region ExternalHostName and InternalPort provided in /Regions/Regions.ini
Results: No data available or unable to connect.
This indicates that your port forwarding and firewall settings are probably good. There is simply nothing listening on that port ( 7777 ). Are you sure OpenSim.exe is running? Double-check ExternalHostName in Regions.ini is correct.
Ensure that the host/address you provided ( XX.X.XXX.XXX ) is not the same as your local IP address, listed above.
UDP connections always seemed to fail here, and since TF2 relies on UDP game transmission---that could be a problem.
8.) Attempted to add the server to GameTracker using public IP and 27015 as the game port and query port, which only resulted in:
Code:
GAMETRACKER COULD NOT SCAN THE SERVER.
One of the following suggestions may help you:
Your server is currently offline.
GameTracker needs your server to be online before you can add it to our database. Please restart your server and make sure it's up before hitting ADD SERVER again.
You entered the wrong query port.
Please update your query port and hit scan again
Your server is firewalled.
Please turn off any firewall you have that may block scanning or whitelist the gametracker scanning IP addresses:
149.28.43.230
45.77.96.90
108.61.78.150
108.61.78.149
Code:
SERVER.CFG:
// Server optimization
lzma_persistent_buffer 1 // Allocates more memory upfront for a one time buffer for compression
sm_cvar mp_ik 0 // Disable IK on models, which increases performance and may improve hitreg
sv_motd_unload_on_dismissal 1 // Unload MOTD on clients after dismissal
anim_3wayblend 0 // Disable three way animation blending on some entities
ai_expression_optimization 1 // Enable optimizations to facial expressions based on visibility
ai_expression_frametime .015 // Enforce perfect frametime, or else optimizations fallback to full optimization without checking visibility
fps_max 1000 // Higher server framerate
//host_timer_spin_ms 0.5 // Use CPU busy-loop for improved timer precision on Windows
sm_cvar sv_pushaway_clientside 0 // No phys obj pushaway
host_timescale 0 // Small optimization to frame check
// Hitreg optimization
// Demanding settings. Make sure your players have good ping and a good connection.
sv_clockcorrection_msecs 30 // Set all clients closer to a central server truth (2 tick intervals)
sv_mincmdrate 66 // Enforce syncing as much as possible to the server
sv_minupdaterate 66 // ^
sv_client_cmdrate_difference 0 // ^
sv_client_max_interp_ratio 2 // Restrict players from using an interp higher than needed
sv_minrate 81048 // The minimum acceptable rate is the default TF2 rate
sv_client_predict 1 // Enforce client side prediction
//sm_cvar sv_maxusrcmdprocessticks_holdaim 1 // Holds client aim angles to server for 1 tick
//sv_master_share_game_socket 0 // Use another socket for queries (port 26900), instead of redirecting through game server
sv_master_share_game_socket 1
// Demanding on server upload speed. Use TF2 defaults (comment) instead if needed.
net_maxcleartime .029 // Rate limiting should never delay more than our correction
net_splitpacket_maxrate 83160 // Split packets are sensitive to faster rates
net_compresspackets_minsize 180 // Compress more packets (may be CPU intensive)
sv_parallel_sendsnapshot 1 // Send to each player in parallel
// Disable clientside exploits / misc abuse
sv_allow_voice_from_file 0 // Disable playing voice from a custom file
tf_tournament_hide_domination_icons 1 // Prevent players from spotting icons instead of players
mp_show_voice_icons 0 // ^
sv_restrict_aspect_ratio_fov 0 // Allow ultrawide
sv_namechange_cooldown_seconds 300 // Limit name change abuse
sv_allowupload 1 // No uploads to limit attack vectors
sv_allowdownload 1
sv_downloadurl ftp://*publicip*:7778/tf/
sv_downloadlist_include_navfile 1
net_maxfilesize 64
sv_hibernate_when_empty 0
tf_allow_server_hibernation 0
host_name_store 1
host_info_show 1
host_players_show 2
sv_lan 0
// Logging
con_timestamp 1
sv_log_onefile 0
exec info
exec social
exec balance
Final notes:
-The server is directly connected to the modem via ethernet cable (there is an ethernet junction, however, don't know if that would effect anything).
-My area is limited to ADSL2+
-Modem model: Zyxel PK5001z
Finally, sourcemod (and metamod) and a few plugins are installed on the new server (they worked on the previous Linux server).
After tons of research and attempts at fixing the problem. No one is able to join still.
If anyone needs any more info please let me know. Any help is appreciated!
Discussion note: Please read through any posts I reply to and my reply to said post after reading the OP before commenting.