splewis / get5

CS:GO Sourcemod plugin for competitive matches/scrims
GNU General Public License v3.0
557 stars 175 forks source link

"No match setup" when joining newly started server #614

Closed nickdnk closed 2 years ago

nickdnk commented 3 years ago

Expected behavior

I would expect players to not be kicked when joining a server that has loaded a match configuration with their SteamIDs.

Actual behavior

Players sometimes get kicked when attempting to join a newly started server with the NoMatchSetupInfoMessage string. I have tried to replicate this behavior, but I have not been able to reliably do so. Reconnecting again (sometimes twice) "solves" the problem even though no commands are run on the server. It occurs both when using the auto-load config (with a fixed path to the .json file) and when manually entering the command into the server terminal, although the latter triggered the problem much more frequently.

The server output looks like this when it happens. In this case it was a manually entered command, and then reconnecting does not work. Reconnecting only (but always) works when the config is autoloaded. In practice this means there is no real problem, but it's just annoying and weird.

Note: This log is from september. The problem is the same today, I just never got around to reporting it. It happens once in a while. Maybe every 25-30th game I'd say.

Connection to Steam servers successful.
   Public IP is X.X.X.X
Assigned persistent gameserver Steam ID [G:1:XXXXX].
Gameserver logged on to Steam, assigned identity steamid:XXXXXXX
Set SteamNetworkingSockets P2P_STUN_ServerList to '155.133.250.140:3478' as per SteamNetworkingSocketsSerialized
VAC secure mode is activated.
GC Connection established for server version 1181, instance idx 1
get5_loadmatch addons/sourcemod/configs/get5/match_config.json <- Command run
[Get5] Loaded match config. <- Note load feedback here
-> Reservation cookie d7783760e3964840:  reason [R] Connect from X.X.X.X:27005
---- Host_Changelevel ----
*** Map Load: de_inferno: Map Group mg_activeL 09/27/2020 - 20:41:17: -------- Mapchange to de_inferno --------
GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom).
GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative).
GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission).
ConVarRef room_type doesn't point to an existing ConVar
ammo_grenade_limit_default - 1
ammo_grenade_limit_flashbang - 1
ammo_grenade_limit_total - 3
ammo_item_limit_healthshot - 4
bot_allow_grenades - 1
bot_allow_machine_guns - 1
bot_allow_pistols - 1
bot_allow_rifles - 1
bot_allow_rogues - 1
bot_allow_shotguns - 1
bot_allow_snipers - 1
bot_allow_sub_machine_guns - 1
bot_autodifficulty_threshold_high - 5.0
bot_autodifficulty_threshold_low - -2.0
bot_chatter - normal
bot_coop_idle_max_vision_distance - 1400
bot_defer_to_human_goals - 0
bot_defer_to_human_items - 1
bot_difficulty - 1
bot_max_hearing_distance_override - -1
bot_max_visible_smoke_length - 200
bot_max_vision_distance_override - -1
bot_quota - 10
bot_quota_mode - normal
bot_coop_idle_max_vision_distance - 1400
bot_max_vision_distance_override - -1
bot_max_hearing_distance_override - -1
bot_coopmission_dz_engagement_limit - missing cvar specified in bspconvar_whitelist.txt
cash_player_bomb_defused - 300
cash_player_bomb_planted - 300
cash_player_damage_hostage - -30
cash_player_get_killed - 0
cash_player_interact_with_hostage - 150
cash_player_killed_enemy_default - 300
cash_player_killed_enemy_factor - 1
cash_player_killed_hostage - -1000
cash_player_killed_teammate - -300
cash_player_rescued_hostage - 1000
cash_player_respawn_amount - 0
cash_team_elimination_bomb_map - 3250
cash_team_elimination_hostage_map_ct - 2000
cash_team_elimination_hostage_map_t - 1000
cash_team_hostage_alive - 0
cash_team_hostage_interaction - 500
cash_team_loser_bonus - 1400
cash_team_loser_bonus_consecutive_rounds - 500
cash_team_planted_bomb_but_defused - 800
cash_team_rescued_hostage - 0
cash_team_survive_guardian_wave - 1000
cash_team_terrorist_win_bomb - 3500
cash_team_win_by_defusing_bomb - 3250
cash_team_win_by_hostage_rescue - 3500
cash_team_win_by_time_running_out_bomb - 3250
cash_team_win_by_time_running_out_hostage - 3250
contributionscore_assist - 1
contributionscore_bomb_defuse_major - 3
contributionscore_bomb_defuse_minor - 1
contributionscore_bomb_exploded - 1
contributionscore_bomb_planted - 2
contributionscore_cash_bundle - 0
contributionscore_crate_break - 0
contributionscore_hostage_kill - -2
contributionscore_hostage_rescue_major - 3
contributionscore_hostage_rescue_minor - 1
contributionscore_kill - 2
contributionscore_kill_factor - 0
contributionscore_objective_kill - 3
contributionscore_suicide - -2
contributionscore_team_kill - -2
ff_damage_reduction_bullets - 0.1
ff_damage_reduction_grenade - 0.25
ff_damage_reduction_grenade_self - 1
ff_damage_reduction_other - 0.25
global_chatter_info - 
healthshot_healthboost_damage_multiplier - 1
healthshot_healthboost_speed_multiplier - 1
healthshot_healthboost_time - 0
inferno_child_spawn_max_depth - 4
inferno_max_flames - 16
inferno_max_range - 150
molotov_throw_detonate_time - 2.0
mp_afterroundmoney - 0
mp_anyone_can_pickup_c4 - 0
mp_autokick - 1
mp_autoteambalance - 1
mp_bot_ai_bt - 
mp_buy_allow_grenades - 1
mp_buy_allow_guns - 255
mp_buy_anywhere - 0
mp_buy_during_immunity - 0
mp_buytime - 90
mp_c4_cannot_be_defused - 0
mp_c4timer - 40
mp_consecutive_loss_max - 4
mp_coop_force_join_ct - 0
mp_coopmission_bot_difficulty_offset - 0
mp_coopmission_dz - 0
mp_coopmission_mission_number - 0
mp_coopmission_dz - 0
mp_ct_default_grenades - 
mp_ct_default_melee - weapon_knife
mp_ct_default_primary - 
mp_ct_default_secondary - weapon_hkp2000
mp_damage_headshot_only - 0
mp_damage_scale_ct_body - 1.0
mp_damage_scale_ct_head - 1.0
mp_damage_scale_t_body - 1.0
mp_damage_scale_t_head - 1.0
mp_damage_vampiric_amount - 0
mp_death_drop_c4 - 1
mp_death_drop_defuser - 1
mp_death_drop_grenade - 2
mp_death_drop_gun - 1
mp_deathcam_skippable - 1
mp_default_team_winner_no_objective - -1
mp_defuser_allocation - 0
mp_display_kill_assists - 1
mp_dm_bonus_percent - 50
mp_dm_bonus_respawn - 0
mp_dm_bonusweapon_dogtags - 0
mp_dm_dogtag_score - 0
mp_dm_kill_base_score - 10
mp_dm_teammode - 0
mp_dm_teammode_bonus_score - 1
mp_dm_teammode_dogtag_score - 0
mp_dm_teammode_kill_score - 1
mp_dogtag_despawn_on_killer_death - 1
mp_dogtag_despawn_time - 120
mp_dogtag_pickup_rule - 0
mp_drop_grenade_enable - 0
mp_drop_knife_enable - 0
mp_economy_reset_rounds - 0
mp_equipment_reset_rounds - 0
mp_force_assign_teams - 0
mp_force_pick_time - 15
mp_forcecamera - 1
mp_free_armor - 0
mp_freezetime - 6
mp_friendlyfire - 0
mp_ggprogressive_round_restart_delay - 15.0
mp_ggtr_always_upgrade - 0
mp_ggtr_bomb_defuse_bonus - 1
mp_ggtr_bomb_detonation_bonus - 1
mp_ggtr_bomb_pts_for_flash - 4
mp_ggtr_bomb_pts_for_he - 3
mp_ggtr_bomb_pts_for_molotov - 5
mp_ggtr_bomb_pts_for_upgrade - 2.0
mp_ggtr_bomb_respawn_delay - 0.0
mp_ggtr_end_round_kill_bonus - 1
mp_ggtr_halftime_delay - 0.0
mp_ggtr_last_weapon_kill_ends_half - 0
mp_give_player_c4 - 1
mp_global_damage_per_second - 0.0
mp_guardian_bot_money_per_wave - 800
mp_guardian_force_collect_hostages_timeout - 50
mp_guardian_loc_icon - missing cvar specified in bspconvar_whitelist.txt
mp_guardian_loc_string_desc - 
mp_guardian_loc_string_hud - #guardian_mission_type_kills
mp_guardian_loc_weapon - 
mp_guardian_player_dist_max - 2000
mp_guardian_player_dist_min - 1300
mp_guardian_special_kills_needed - 10
mp_guardian_special_weapon_needed - awp
mp_guardian_target_site - -1
mp_guardian_force_collect_hostages_timeout - 50
mp_guardian_give_random_grenades_to_bots - 1
mp_halftime - 0
mp_halftime_pausetimer - 0
mp_heavyassaultsuit_aimpunch - 1.0
mp_heavyassaultsuit_cooldown - 5
mp_heavyassaultsuit_deploy_timescale - 0.8
mp_heavyassaultsuit_speed - 130
mp_heavybot_damage_reduction_scale - 1.0
mp_hostagepenalty - 10
mp_hostages_max - 2
mp_hostages_spawn_force_positions - 
mp_hostages_spawn_same_every_round - 1
mp_items_prohibited - 
mp_limitteams - 2
mp_match_can_clinch - 1
mp_match_end_changelevel - 0
mp_max_armor - 2
mp_maxmoney - 16000
mp_maxrounds - 0
mp_molotovusedelay - 15.0
mp_only_cts_rescue_hostages - 1
mp_plant_c4_anywhere - 0
mp_playercashawards - 1
mp_radar_showall - 0
mp_randomspawn - 0
mp_randomspawn_dist - 0
mp_randomspawn_los - 1
mp_respawn_immunitytime - 4.0
mp_respawn_on_death_ct - 0
mp_respawn_on_death_t - 0
mp_respawnwavetime_ct - 10.0
mp_respawnwavetime_t - 10.0
mp_round_restart_delay - 7.0
mp_roundtime - 5
mp_roundtime_defuse - 0
mp_roundtime_hostage - 0
mp_solid_teammates - 1
mp_starting_losses - 0
mp_startmoney - 800
mp_suicide_penalty - 1
mp_t_default_grenades - 
mp_t_default_melee - weapon_knife
mp_t_default_primary - 
mp_t_default_secondary - weapon_glock
mp_tagging_scale - 1.0
mp_taser_recharge_time - -1
mp_teamcashawards - 1
mp_teammates_are_enemies - 0
mp_timelimit - 5
mp_use_respawn_waves - 0
mp_warmup_pausetimer - 0
mp_warmuptime - 30
mp_warmuptime_all_players_connected - 0
mp_weapon_self_inflict_amount - 0
mp_weapons_allow_heavy - -1
mp_weapons_allow_heavyassaultsuit - 0
mp_weapons_allow_map_placed - 0
mp_weapons_allow_pistols - -1
mp_weapons_allow_rifles - -1
mp_weapons_allow_smgs - -1
mp_weapons_allow_typecount - 5
mp_weapons_allow_zeus - 1
mp_weapons_glow_on_ground - 0
mp_weapons_max_gun_purchases_per_weapon_per_match - -1
mp_win_panel_display_time - 3
occlusion_test_async - 0
spec_freeze_panel_extended_time - 0.0
spec_freeze_time - 3.0
spec_replay_bot - 0
spec_replay_enable - 0
spec_replay_leadup_time - 5.3438
sv_accelerate - 5.5
sv_air_pushaway_dist - 0
sv_airaccelerate - 12
sv_allow_votes - 1
sv_alltalk - 0
sv_arms_race_vote_to_restart_disallowed_after - 0
sv_auto_adjust_bot_difficulty - 1
sv_auto_full_alltalk_during_warmup_half_end - 1
sv_autobunnyhopping - 0
sv_autobuyammo - 0
sv_bot_buy_decoy_weight - 1
sv_bot_buy_flash_weight - 1
sv_bot_buy_grenade_chance - 33
sv_bot_buy_hegrenade_weight - 6
sv_bot_buy_molotov_weight - 1
sv_bot_buy_smoke_weight - 1
sv_bots_force_rebuy_every_round - 0
sv_bots_get_easier_each_win - 0
sv_bots_get_harder_after_each_wave - 0
sv_bounce - 0
sv_buy_status_override - -1
sv_deadtalk - 0
sv_disable_immunity_alpha - 0
sv_disable_radar - 0
sv_disable_show_team_select_menu - missing cvar specified in bspconvar_whitelist.txt
sv_duplicate_playernames_ok - 0
sv_enablebunnyhopping - 0
sv_env_entity_makers_enabled - 1
sv_extract_ammo_from_dropped_weapons - 0
sv_falldamage_scale - 1
sv_falldamage_to_below_player_multiplier - 1
sv_falldamage_to_below_player_ratio - 0
sv_force_reflections - 0
sv_friction - 5.2
sv_grassburn - 0
sv_gravity - 800
sv_guardian_extra_equipment_ct - 
sv_guardian_extra_equipment_t - 
sv_guardian_health_refresh_per_wave - 50
sv_guardian_heavy_all - 0
sv_guardian_heavy_count - 0
sv_guardian_max_wave_for_heavy - 0
sv_guardian_min_wave_for_heavy - 0
sv_guardian_refresh_ammo_for_items_on_waves - 
sv_guardian_reset_c4_every_wave - 0
sv_guardian_respawn_health - 50
sv_guardian_spawn_health_ct - 100
sv_guardian_spawn_health_t - 100
sv_health_approach_enabled - 0
sv_health_approach_speed - 10
sv_hegrenade_damage_multiplier - 1
sv_hegrenade_radius_multiplier - 1
sv_hide_roundtime_until_seconds - missing cvar specified in bspconvar_whitelist.txt
sv_highlight_distance - 500
sv_highlight_duration - 3.5
sv_ignoregrenaderadio - 0
sv_infinite_ammo - 0
sv_knife_attack_extend_from_player_aabb - 0
sv_maxspeed - 320
sv_maxvelocity - 3500
sv_occlude_players - 1
sv_outofammo_indicator - 0
sv_show_ragdoll_playernames - missing cvar specified in bspconvar_whitelist.txt
sv_show_team_equipment_force_on - 0
sv_staminajumpcost - .080
sv_staminalandcost - .050
sv_stopspeed - 80
sv_talk_enemy_dead - 0
sv_talk_enemy_living - 0
sv_teamid_overhead_maxdist - 0
sv_teamid_overhead_maxdist_spec - 0
sv_versus_screen_scene_id - 0
sv_vote_to_changelevel_before_match_point - 0
sv_warmup_to_freezetime_delay - 4
sv_water_movespeed_multiplier - 0.8
sv_water_swim_mode - 0
sv_wateraccelerate - 10
sv_waterfriction - 1
sv_weapon_encumbrance_per_item - 0.85
sv_weapon_encumbrance_scale - 0
tv_delay - 10
weapon_accuracy_nospread - 0
weapon_air_spread_scale - 1.0
weapon_max_before_cleanup - 0
weapon_recoil_scale - 2.0
weapon_reticle_knife_show - 1
weapon_sound_falloff_multiplier - 1.0
sv_camera_fly_enabled - missing cvar specified in bspconvar_whitelist.txt
Executing dedicated server config file
exec: couldn't exec gamemode_competitive.cfg <-- This is by design. I have removed this file as it messes with game rules in my setup.
CHostage::Precache: missing hostage models for map de_inferno. Adding the default models.
Commentary: Could not find commentary data file 'maps/de_inferno_commentary.txt'. 
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
Error parsing BotProfile.db - unknown attribute 'Rank'
RecordSteamInterfaceCreation (PID 1): SteamGameServer013 / GameServer
RecordSteamInterfaceCreation (PID 1): SteamUtils009 / Utils
RecordSteamInterfaceCreation (PID 1): SteamNetworking005 / Networking
RecordSteamInterfaceCreation (PID 1): SteamGameServerStats001 / GameServerStats
RecordSteamInterfaceCreation (PID 1): STEAMHTTP_INTERFACE_VERSION003 / HTTP
RecordSteamInterfaceCreation (PID 1): STEAMINVENTORY_INTERFACE_V001 / Inventory
RecordSteamInterfaceCreation (PID 1): STEAMUGC_INTERFACE_VERSION014 / UGC
RecordSteamInterfaceCreation (PID 1): STEAMAPPS_INTERFACE_VERSION008 / Apps
Client "<anonymised>" connected (X.X.X.X:27005).
GOTV[0] broadcast active.
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Dropped <anonymised> from server: Disconnect
Client "<anonymised>" connected (X.X.X.X:27005).
Dropped <anonymised> from server: There is no match setup
Dropped <anonymised> from server: There is no match setup
Dropped <anonymised> from server: There is no match setup
Dropped <anonymised> from server: There is no match setup
Dropped <anonymised> from server: There is no match setup
Dropped <anonymised> from server: There is no match setup      
<- I manually run the command *again* here, and as visible it returns and says the config was loaded, yet proceeds to kick players ->
get5_loadmatch addons/sourcemod/configs/get5/match_config.json[Get5] Loaded match config.
Client "<anonymised>" connected (X.X.X.X:27005).
Dropped <anonymised> from server: Disconnect
Client "<anonymised>" connected (X.X.X.X:27005).
Dropped <anonymised> from server: There is no match setup
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:27005).
Dropped <anonymised> from server: There is no match setup
Client "<anonymised>" connected (X.X.X.X:27005).
Dropped <anonymised> from server: There is no match setup
Dropped <anonymised> from server: There is no match setup
Client "<anonymised>" connected (X.X.X.X:27005).
Client "<anonymised>" connected (X.X.X.X:60410).
Dropped <anonymised> from server: There is no match setup           
Dropped <anonymised> from server: There is no match setup              
Dropped <anonymised> from server: There is no match setup      

Steps to reproduce

Unable. Play many games? I know this is awful information, but I have nothing to go on and I have looked through the code trying to find out where it could possibly go wrong to no avail. To me it seems to be related to the server "changing levels" when the first person joins, and when/if this happens at the wrong time, this happens.

Debug info:

basebans.smx: Basic Ban Commands by AlliedModders LLC: Basic Banning Commands (1.10.0.6497, http://www.sourcemod.net/) adminhelp.smx: Admin Help by AlliedModders LLC: Display command information (1.10.0.6497, http://www.sourcemod.net/) basecomm.smx: Basic Comm Control by AlliedModders LLC: Provides methods of controlling communication. (1.10.0.6497, http://www.sourcemod.net/) funvotes.smx: Fun Votes by AlliedModders LLC: Fun Vote Commands (1.10.0.6497, http://www.sourcemod.net/) basevotes.smx: Basic Votes by AlliedModders LLC: Basic Vote Commands (1.10.0.6497, http://www.sourcemod.net/) nextmap.smx: Nextmap by AlliedModders LLC: Provides nextmap and sm_nextmap (1.10.0.6497, http://www.sourcemod.net/) admin-flatfile.smx: Admin File Reader by AlliedModders LLC: Reads admin files (1.10.0.6497, http://www.sourcemod.net/) antiflood.smx: Anti-Flood by AlliedModders LLC: Protects against chat flooding (1.10.0.6497, http://www.sourcemod.net/) playercommands.smx: Player Commands by AlliedModders LLC: Misc. Player Commands (1.10.0.6497, http://www.sourcemod.net/) get5.smx: Get5 by splewis: (0.7.2-dev, https://github.com/splewis/get5) sounds.smx: Sound Commands by AlliedModders LLC: Sound Commands (1.10.0.6497, http://www.sourcemod.net/) clientprefs.smx: Client Preferences by AlliedModders LLC: Client peferences and settings menu (1.10.0.6497, http://www.sourcemod.net/) basetriggers.smx: Basic Info Triggers by AlliedModders LLC: Adds ff, timeleft, thetime, and others. (1.10.0.6497, http://www.sourcemod.net/) basecommands.smx: Basic Commands by AlliedModders LLC: Basic Admin Commands (1.10.0.6497, http://www.sourcemod.net/) get5.smx: Get5 by splewis: (0.7.2-dev, https://github.com/splewis/get5) adminmenu.smx: Admin Menu by AlliedModders LLC: Administration Menu (1.10.0.6497, http://www.sourcemod.net/) reservedslots.smx: Reserved Slots by AlliedModders LLC: Provides basic reserved slots (1.10.0.6497, http://www.sourcemod.net/) basechat.smx: Basic Chat by AlliedModders LLC: Basic Communication Commands (1.10.0.6497, http://www.sourcemod.net/) funcommands.smx: Fun Commands by AlliedModders LLC: Fun Commands (1.10.0.6497, http://www.sourcemod.net/)

mrc4tt commented 3 years ago

// Whether the plugin kicks new clients when no match is loaded get5_kick_when_no_match_loaded 1 -- You need to set it to zero (0)

You can find it under: csgo/cfg/sourcemod/get5.cfg

Unless the match has been setup via the web?

nickdnk commented 3 years ago

// Whether the plugin kicks new clients when no match is loaded get5_kick_when_no_match_loaded 1 -- You need to set it to zero (0)

You can find it under: csgo/cfg/sourcemod/get5.cfg

Unless the match has been setup via the web?

This has nothing to do with the problem. As you can see from the console output I am clearly loading match configurations and the correct SteamIDs are in that file. This happens rarely, not all the time, which it would if it was a configuration issue. I want other players to be kicked (and the server to not work if no match is loaded).

Edit: Updated wording in expected behavior to elaborate on this.

nickdnk commented 3 years ago

Perhaps https://github.com/splewis/get5/issues/557 is related? Unless he means it prints out "failed to load match config" which is not the case here.

splewis commented 3 years ago

To me it seems to be related to the server "changing levels" when the first person joins, and when/if this happens at the wrong time, this happens.

I would suggest trying to disable hibernation on your server, which should stop that behavior (I believe).

nickdnk commented 3 years ago

To me it seems to be related to the server "changing levels" when the first person joins, and when/if this happens at the wrong time, this happens.

I would suggest trying to disable hibernation on your server, which should stop that behavior (I believe).

Hibernation is already disabled.

Edit: This also does not explain how the server can accept a match-load command and then immediately (even if no map change takes place) reject users, as evident from the attached logs.

nickdnk commented 2 years ago

I've not had this problem (where it's not resolved with a reconnect) after using autoload instead of entering the command in the console. I think it's a case of bad timing when using the command manually on a newly booted server. Closing.