├── 100 └── tf │ └── cfg │ ├── mapcycle.txt │ └── server.cfg ├── Dockerfile ├── LICENSE ├── README.md ├── system ├── conf.sh └── sysctl.conf ├── tf2 ├── replays_srv │ ├── Caddyfile │ └── replays │ │ └── .keep ├── server │ └── tf │ │ ├── addons │ │ └── sourcemod │ │ │ ├── configs │ │ │ └── admins_simple.ini │ │ │ ├── data │ │ │ └── tf2rebalance_attributes.txt │ │ │ └── plugins │ │ │ └── plugins.sh │ │ └── cfg │ │ ├── balance.cfg │ │ ├── info.cfg │ │ ├── mapcycle.txt │ │ ├── motd.txt │ │ ├── motd_text.txt │ │ ├── replay.cfg │ │ ├── server.cfg │ │ ├── social.cfg │ │ ├── sticky_bigbertha.cfg │ │ ├── sticky_suicider.cfg │ │ └── tv.cfg └── start.sh └── update.sh /100/tf/cfg/mapcycle.txt: -------------------------------------------------------------------------------- 1 | ctf_turbine 2 | ctf_doublecross 3 | ctf_sawmill 4 | koth_badlands 5 | koth_brazil 6 | koth_harvest_final 7 | koth_highpass 8 | koth_king 9 | koth_lakeside_final 10 | koth_nucleus 11 | koth_sawmill 12 | koth_sharkbay 13 | koth_suijin 14 | koth_viaduct 15 | -------------------------------------------------------------------------------- /100/tf/cfg/server.cfg: -------------------------------------------------------------------------------- 1 | // .\srcds.exe -console -game tf -threads 1 -unrestricted_maxplayers -nocrashdialog -timeout 0 +sv_pure 0 +maxplayers 100 +randommap +mp_ik 0 +sv_lagflushbonecache 0 2 | // +mp_ik 0 +mp_capstyle 0 +mp_capdeteriorate_time 20 +mp_waitingforplayers_time 10 +obj_damage_factor 1.2 +sv_lagflushbonecache 0 +tf_demoman_charge_regen_rate 50 +tf_spy_cloak_consume_rate 5 +tf_spy_cloak_no_attack_time 1 +tf_spy_cloak_regen_rate 8 +tf_spy_invis_unstealth_time 1 +tf_force_holidays_off 1 +tf_invuln_time 8 3 | // mp_ik disables some animation calculations 4 | // sv_lagflushbonecache 0 keeps an aggressive cache for bones at the cost of hitbox inaccuracy 5 | // Windows, real time priority, 8 thread CPU, no hyperthreading, cascade lake or higher 6 | 7 | // Server optimizations 8 | sv_turbophysics 1 // Disable interactive physics 9 | host_timer_spin_ms .999 // Let the scheduler handle the timer unless we need more precision 10 | tf_resolve_stuck_players 0 // Disable movement stuck resolve 11 | mp_holiday_nogifts 1 // No gifts 12 | tf_spells_enabled 0 // No spells 13 | tf_classlimit 10 // Prevent stacking exploits for edicts 14 | tf_tournament_classlimit_demoman 10 // ^ (for MvM) 15 | tf_tournament_classlimit_engineer 10 // ^ 16 | // Memory opts 17 | lzma_persistent_buffer 1 // Allocates more memory upfront for a one time buffer for compression 18 | // Network opts 19 | sv_parallel_sendsnapshot 1 // Send to each player in parallel 20 | net_queued_packet_thread 581304 // Force all packets to be threaded 21 | net_splitrate 200000 // Force threaded packets as soon as possible 22 | sv_master_share_game_socket 0 // Keep 100 player saturated game response separate from master server 23 | 24 | // Packet compression 25 | // You can play around with this setting. The current thinking is that 26 | // since packet compression happens within the tick 27 | // (we use the queued packet thread to offload packet sends outside of tick) 28 | // it's better to have more split packets uncompressed rather than trying 29 | // to compress data and have less split packets. but this might depend 30 | // on server CPU and other factors 31 | //net_compresspackets 0 // Skip compression for so many clients 32 | net_compresspackets 1 // Compress for reducing split packets 33 | net_compresspackets_minsize 1261 // Compress if we are producing splitpackets 34 | 35 | // Edict handling 36 | sv_lowedict_action 4 // Switch maps 37 | sv_lowedict_threshold 32 // Good number for edict spike 38 | 39 | // MvM 40 | tf_mvm_defenders_team_size 78 // 22 bots on all Valve missions 41 | tf_mvm_max_connected_players 78 // 22 bots on all Valve missions 42 | 43 | // Client optimizations 44 | sv_motd_unload_on_dismissal 1 // Unload MOTD on clients after dismissal 45 | breakable_multiplayer 0 // Disable gibs 46 | func_break_max_pieces 0 // ^ 47 | prop_active_gib_limit 0 // ^ 48 | props_break_max_pieces_perframe 0 // ^ 49 | g_ragdoll_important_maxcount 0 // ^ 50 | g_ragdoll_maxcount 0 // ^ 51 | tf_spawn_glows_duration 0 // Disable spawn glows 52 | tf_spec_xray 0 // Disable spec glows 53 | tf_avoidteammates_pushaway 0 // Don't resolve pushaway for so many players 54 | anim_3wayblend 0 // Disable 3-way blend 55 | 56 | // Quality optimizations 57 | tf_tournament_hide_domination_icons 1 // Prevent players from spotting icons instead of players 58 | mp_show_voice_icons 0 // ^ 59 | 60 | // Security 61 | sv_no_name_changes 1 // No name changes 62 | sv_namechange_cooldown_seconds 300 // Limit name change abuse 63 | sv_allowupload 0 // No uploads to limit attack vectors 64 | sv_allowdownload 0 // No downloads either 65 | net_maxfilesize 0 // ^ (mostly for load, but put here for organization) 66 | sv_allow_voice_from_file 0 // Disable playing voice from a custom file 67 | 68 | // NETWORK 69 | // Per player scaling 70 | sv_client_cmdrate_difference 0 // Freedom to adjust settings 71 | sv_mincmdrate 20 // cmdrate still increases server load 72 | sv_maxcmdrate 20 // ^ 73 | sv_minupdaterate 15 // Reduce snapshot packing 74 | sv_maxupdaterate 15 // ^ 75 | 76 | sv_client_predict 1 // Enforce client side prediction 77 | 78 | // Interp for low update rate 79 | sv_client_max_interp_ratio 2 // Minimal 100ms interp 80 | sv_client_min_interp_ratio 1 // ^ 81 | 82 | // Don't wait on packets 83 | sv_minrate 1048576 84 | sv_maxrate 1048576 85 | net_splitpacket_maxrate 1048576 86 | net_maxcleartime .001 87 | 88 | // Packet size 89 | sv_maxroutable 1260 90 | net_maxfragments 1260 91 | net_maxroutable 1260 92 | 93 | // Drop packets 94 | //net_maxpacketdrop 1 95 | 96 | // Lag rules 97 | sv_clockcorrection_msecs 130 // Keep tick base in line with updates 98 | sv_maxusrcmdprocessticks 29 // Let the cmds lag a bit more due to delays 99 | sv_playerperfhistorycount 0 // Clear out data 100 | 101 | // Balance 102 | // 100 player balance 103 | mp_respawnwavetime 0 // Let 50 players trickle in 104 | // Standard balance 105 | tf_use_fixed_weaponspreads 1 // Fixed weapon spread 106 | tf_fall_damage_disablespread 1 // No random fall damage 107 | tf_damage_disablespread 1 // Disable random damage falloff 108 | obj_sapper_amount 1500 // Engis be gone! Spy is kinda weak from spam.. 109 | tf_grapplinghook_enable 1 // Grappling hook to move around in the spam, plus it's simpler movement simulation 110 | tf_ctf_bonus_time 60 // Avoid CTF stalemates 111 | tf_flag_caps_per_round 5 // Increase a little bit, but not too much to draw out an assured victory 112 | tf_flag_return_time_credit_factor 10 // Long CTF return time 113 | tf_escort_recede_time 0 // Keep the cart going, you've got the players! 114 | tf_escort_recede_time_overtime 10 // Overtime to make up for it 115 | 116 | // Misc 117 | sv_restrict_aspect_ratio_fov 0 // Allow ultrawide 118 | mp_mapcycle_empty_timeout_seconds 300 // Keep the maps moving 119 | 120 | // Teaming 121 | mp_allowspectators 0 // No spectators 122 | mp_spectators_restricted 1 // No switch to spectator 123 | mp_forceautoteam 1 // No choosing teams 124 | 125 | // Strict player slots 126 | mp_idledealmethod 2 // Instakick for idle 127 | mp_idlemaxtime 1 // 1 minute idle time 128 | 129 | // Voice 130 | sv_voicecodec steam // Use steam for voice 131 | sv_alltalk 1 // Let everyone talk in game voice chat 132 | sv_voiceenable 1 // Enable voice chat 133 | 134 | // Voting 135 | sv_vote_issue_classlimits_allowed 0 // Class limits don't work 136 | sv_vote_issue_changelevel_allowed 0 // Don't instantly change level 137 | sv_vote_issue_extendlevel_allowed 0 // No map timer 138 | sv_vote_issue_autobalance_allowed 0 // Autobalance on 139 | sv_vote_issue_nextlevel_allowed 1 // Can vote for next map 140 | sv_vote_issue_nextlevel_prevent_change 1 // No spam 141 | sv_vote_issue_kick_allowed 1 // Moderation 142 | sv_vote_kick_ban_duration 1440 // 1 day ban 143 | sv_vote_issue_scramble_teams_allowed 0 // Scramble crashes 144 | mp_scrambleteams_auto 0 // ^ 145 | mp_autoteambalance 1 // Auto team 146 | 147 | mp_timelimit 25 // 25 min time limit 148 | mp_maxrounds 2 // Rounds 149 | mp_tournament_stopwatch 0 // No stopwatch 150 | mp_winlimit 0 // control points support 151 | 152 | mp_bonusroundtime 0 // No waiting around 153 | mp_enableroundwaittime 0 // ^ 154 | mp_chattime 0 // ^ 155 | mp_tournament_post_match_period 0 // ^ 156 | //sm_cvar mp_waitingforplayers_time 10 157 | 158 | mp_tournament 0 // No tournament mode 159 | mp_tournament_allow_non_admin_restart 0 // Disable restart round command 160 | mp_tournament_readymode_min 0 161 | 162 | tv_delaymapchange_protect 0 // No TV data 163 | tv_allow_camera_man 0 // ^ 164 | tv_delay 0 // ^ 165 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | ENV DEBIAN_FRONTEND noninteractive 3 | RUN dpkg --add-architecture i386 4 | run echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \ 5 | | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list 6 | RUN apt-get update 7 | RUN echo steam steam/question select "I AGREE" | sudo debconf-set-selections 8 | RUN echo steam steam/license note '' | sudo debconf-set-selections 9 | RUN apt-get -yq --no-install-recommends install lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 steamcmd caddy 10 | RUN ./update.sh 11 | RUN ln -s ~/.steam/steamcmd/linux32 ~/.steam/sdk32 12 | CMD ["/bin/sh", "-c", "./tf2/start.sh"] 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020-2022 mastercoms 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # comfig-fortress 2 | A fun TF2 server experiment focusing on game balance and reliability. 3 | -------------------------------------------------------------------------------- /system/conf.sh: -------------------------------------------------------------------------------- 1 | echo never > /sys/kernel/mm/transparent_hugepage/enabled 2 | tuned-adm profile latency-performance 3 | -------------------------------------------------------------------------------- /system/sysctl.conf: -------------------------------------------------------------------------------- 1 | vm.swappiness=10 2 | vm.zone_reclaim_mode=0 3 | vm.stat_interval=10 4 | vm.min_free_kbytes=1024000 5 | 6 | kernel.sched_rt_runtime_us=1000000 7 | kernel.hung_task_timeout_secs=600 8 | kernel.nmi_watchdog=0 9 | 10 | kernel.numa_balancing=0 11 | 12 | net.ipv4.tcp_rmem=4096 1048576 2097152 13 | net.ipv4.tcp_wmem=4096 65536 16777216 14 | net.core.rmem_default=861968 15 | net.core.rmem_max=851968 16 | net.core.wmem_default=1048576 17 | net.core.wmem_max=16777216 18 | net.core.optmem_max=65536 19 | net.ipv4.udp_rmem_min=8192 20 | net.ipv4.udp_wmem_min=8192 21 | net.ipv4.udp_mem=1445727 1927636 2891454 22 | 23 | net.core.busy_read=50 24 | net.core.busy_poll=50 25 | net.core.netdev_max_backlog=2000 26 | 27 | net.ipv4.tcp_keepalive_time = 60 28 | net.ipv4.tcp_keepalive_intvl = 10 29 | net.ipv4.tcp_keepalive_probes = 6 30 | 31 | net.ipv4.tcp_fin_timeout=10 32 | 33 | net.ipv4.tcp_mtu_probing = 1 34 | 35 | net.core.default_qdisc = cake 36 | net.ipv4.tcp_congestion_control = bbr 37 | 38 | net.ipv4.tcp_rfc1337 = 1 39 | 40 | -------------------------------------------------------------------------------- /tf2/replays_srv/Caddyfile: -------------------------------------------------------------------------------- 1 | http://tf2.mastercomfig.com 2 | -------------------------------------------------------------------------------- /tf2/replays_srv/replays/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastercomfig/comfig-fortress/1f6f121759e339389509680734e1f4cffa2cfa22/tf2/replays_srv/replays/.keep -------------------------------------------------------------------------------- /tf2/server/tf/addons/sourcemod/configs/admins_simple.ini: -------------------------------------------------------------------------------- 1 | // mastercoms 2 | "STEAM_1:1:42922582" "99:z" 3 | -------------------------------------------------------------------------------- /tf2/server/tf/addons/sourcemod/data/tf2rebalance_attributes.txt: -------------------------------------------------------------------------------- 1 | "tf2rebalance_attributes" 2 | { 3 | "classes" 4 | { 5 | "scout" 6 | { 7 | } 8 | "soldier" 9 | { 10 | } 11 | "pyro" 12 | { 13 | } 14 | "demoman" 15 | { 16 | } 17 | "heavy" 18 | { 19 | // Critical damage resist 20 | "attribute1" 21 | { 22 | "id" "491" 23 | "value" "10" 24 | } 25 | // Rage on Hit 26 | "attribute2" 27 | { 28 | "id" "244" 29 | "value" "5" 30 | } 31 | // Damage bonus from Rage 32 | "attribute3" 33 | { 34 | "id" "245" 35 | "value" "25" 36 | } 37 | } 38 | "engineer" 39 | { 40 | } 41 | "sniper" 42 | { 43 | } 44 | "medic" 45 | { 46 | } 47 | "spy" 48 | { 49 | } 50 | // Family Business 51 | "425" 52 | { 53 | "id" "230" 54 | "value" "1" 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /tf2/server/tf/addons/sourcemod/plugins/plugins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | BINDIR=$(dirname "$(readlink -fn "$0")") 3 | cd "$BINDIR" 4 | mv -ft disabled {basevotes,funcommands,funvotes,nextmap,playercommands,sounds}.smx 5 | -------------------------------------------------------------------------------- /tf2/server/tf/cfg/balance.cfg: -------------------------------------------------------------------------------- 1 | // Damage 2 | sm_cvar tf_damage_lineardist 0 // No damage falloff formula 3 | tf_damage_disablespread 1 // Disable random damage falloff 4 | sm_cvar tf_damage_range 0.5 // Damage falloff randomness 5 | tf_use_fixed_weaponspreads 1 // Fixed weapon spread 6 | tf_weapon_criticals 0 // Disable random crits 7 | tf_weapon_criticals_melee 2 // Melee weapons should have random crits 8 | sm_cvar tf_weapon_criticals_distance_falloff 0 // Crits damage fall off 9 | sm_cvar tf_weapon_minicrits_distance_falloff 1 // Minicrits have damage falloff 10 | sm_cvar tf_damageforcescale_other 6.0 // Damage force scale 11 | 12 | // Stalemates 13 | mp_stalemate_enable 1 14 | mp_stalemate_meleeonly 0 15 | 16 | // Respawn time 17 | sm_cvar spec_freeze_traveltime 0.01 // No freeze time to artificially delay respawn 18 | sm_cvar spec_freeze_time 0 // ^ 19 | mp_respawnwavetime 3 // Start with short respawn time 20 | 21 | // Disable crit stuff 22 | tf_ctf_bonus_time 0 // No crits on cap 23 | mp_holiday_nogifts 1 // No gifts 24 | tf_spells_enabled 0 // No spells 25 | tf_arena_first_blood 0 // No crits on first blood 26 | 27 | // === SCOUT === 28 | // Stunball buff 29 | sm_cvar sv_proj_stunball_damage 53 // Make stunball worth it 30 | sm_cvar tf_scout_bat_launch_delay 0 // No delay 31 | sm_cvar tf_scout_stunball_base_duration 7.5 32 | //sm_cvar tf_scout_stunball_base_speed 3000 // How fast Scout's balls travel, max is 3500 33 | 34 | //sm_cvar tf_scout_energydrink_activation 1 // How long it takes Scout to drink 35 | //sm_cvar tf_scout_energydrink_consume_rate 25 // How fast Scout consumes drink charge meter 36 | //sm_cvar tf_scout_energydrink_regen_rate 1 // How fast Scout regens drink charge 37 | 38 | // Fan o War 39 | sm_cvar tf_dev_marked_for_death_lifetime 30 // Fan o War duration 40 | 41 | // BFB 42 | sm_cvar tf_scout_hype_pep_max 100 // Max possible boost 43 | sm_cvar tf_scout_hype_pep_min_damage 10 // 10 shots 44 | sm_cvar tf_scout_hype_pep_mod 0.5 // Medium shot fills 45 | 46 | sm_cvar tf_scout_air_dash_count 2 // How many air jumps scout (double jump) can perform 47 | 48 | // === SOLDIER === 49 | sm_cvar tf_dev_health_on_damage_recover_percentage 1.75 // Concheror 175% life steal 50 | sm_cvar tf_whip_speed_increase 110 // Speed increase for disciplinary action 51 | 52 | sm_cvar tf_damagescale_self_soldier 0.5 // damage from blast jump 53 | sm_cvar tf_damageforcescale_self_soldier_rj 12 // Scale to damage 54 | sm_cvar tf_damageforcescale_self_soldier_badrj 6 // Not in air = no RJ 55 | 56 | sm_cvar tf_parachute_aircontrol 3.5 // Air control multiplier for BASE Jumper 57 | sm_cvar tf_parachute_deploy_toggle_allowed 0 // Toggle for BASE Jumper 58 | sm_cvar tf_parachute_gravity 0.2 // Gravity multiplier for BASE Jumper 59 | sm_cvar tf_parachute_maxspeed_onfire_z 0 // Max falling speed when on fire with BASE Jumper 60 | sm_cvar tf_parachute_maxspeed_xy 450 // Max horizontal speed 61 | sm_cvar tf_parachute_maxspeed_z -100 // Max falling speed with BASE Jumper 62 | 63 | tf_bison_tick_time 0.01 // More bison ticks 64 | 65 | // === PYRO === 66 | // Dragons fury rework 67 | sm_cvar tf_fireball_burn_duration 3 // Normal burn duration 68 | sm_cvar tf_fireball_burning_bonus 1.144 // burning dmg mult 69 | sm_cvar tf_fireball_damage 46 // Balance for rapid fire 70 | sm_cvar tf_fireball_hit_recharge_boost 2 // speed bonus 71 | sm_cvar tf_fireball_airblast_recharge_penalty 3 // Rapid airblast 72 | sm_cvar tf_fireball_radius 35 // More forgiving 73 | sm_cvar tf_fireball_distance 900 // ^ 74 | 75 | // Airblast adjustments 76 | sm_cvar tf_airblast_cray_pitch_control 1 // Control pitch 77 | sm_cvar tf_airblast_cray_ground_minz 100 // Min vertical 78 | sm_cvar tf_airblast_cray_lose_footing_duration 0.9 // Switch speed 79 | sm_cvar tf_airblast_cray_power 350 // Airblast impulse 80 | sm_cvar tf_airblast_cray_power_relative 1 // Inherit pyro movement 81 | sm_cvar tf_airblast_cray_reflect_coeff 1 // Cancel out bombs 82 | sm_cvar tf_airblast_cray_reflect_cost_coeff 0 // Still use base impulse against bombs (consistency) 83 | sm_cvar tf_airblast_cray_reflect_relative 1 // Compare victim and pyro velocities, for consistency for the attacker 84 | sm_cvar tf_airblast_cray_stun_duration 0.1 // Slow for initial 85 | sm_cvar tf_airblast_cray_stun_amount 0.5 // 86 | sm_cvar tf_movement_aircurrent_aircontrol_mult 0.25 87 | sm_cvar tf_movement_aircurrent_friction_mult 0.75 88 | sm_cvar tf_movement_lost_footing_friction 0.1 89 | sm_cvar tf_movement_lost_footing_restick 50 90 | 91 | // Flamethrower balancing 92 | sm_cvar tf_flamethrower_burstammo 10 // How much ammo airblast uses 93 | //sm_cvar tf_flamethrower_float 0 // No upwards float 94 | //sm_cvar tf_flamethrower_maxdamagedist 6000 // Always apply 100% damage 95 | //sm_cvar tf_flamethrower_drag 1 // No drag 96 | //sm_cvar tf_flamethrower_velocity 2500 // Faster flame travel 97 | //sm_cvar tf_flamethrower_flametime 0.4002 // Adjust distance due to drag and velocity 98 | //sm_cvar tf_flamethrower_vecrand 0 // Disable flamethrower particle direction randomness 99 | 100 | // Thermal Thruster Rebalancing 101 | sm_cvar tf_rocketpack_airborne_launch_absvelocity_preserved 1 // Preserve speed with thermal thruster 102 | sm_cvar tf_rocketpack_launch_absvelocity_preserved 1 // ^ 103 | sm_cvar tf_rocketpack_cost 25 // More charges 104 | sm_cvar tf_rocketpack_delay_launch 0 // No delay 105 | sm_cvar tf_rocketpack_launch_delay 0 // ^ 106 | sm_cvar tf_rocketpack_toggle_duration 0 // ^ 107 | sm_cvar tf_rocketpack_impact_push_max 400 // No randomness 108 | sm_cvar tf_rocketpack_impact_push_min 400 // ^ 109 | sm_cvar tf_rocketpack_launch_push 500 // More force 110 | sm_cvar tf_rocketpack_refire_delay 0.7 // Refire delay (balanced based on need) 111 | 112 | // Give pyro better blast jumping 113 | sm_cvar tf_damageforcescale_pyro_jump 12.5 114 | 115 | // === DEMO === 116 | sm_cvar tf_grenadelauncher_livetime 0.75 // Grenade arm time 117 | sm_cvar tf_sticky_radius_ramp_time 0.5 // Ramp time 118 | sm_cvar tf_sticky_airdet_radius 0.5 // Radius penalty 119 | 120 | // QoL for sticky traps? 121 | sm_cvar tf_pipebomb_force_to_move 100 // Pretty much always move sticky bombs 122 | sm_cvar tf_grenade_force_sleeptime 5 // time for stickies to settle 123 | 124 | // Demoknight 125 | sm_cvar tf_max_charge_speed 1350 // Demoman charge speed 126 | sm_cvar tf_demoman_charge_drain_time 1 // A bit longer distance, faster time overall 127 | sm_cvar tf_demoman_charge_regen_rate 15 // How long it takes for shield to recharge 128 | sm_cvar tf_meleeattackforcescale 72 // Melee physics force 129 | 130 | // Loose Cannon mark for death 131 | sm_cvar tf_double_donk_window 10 // Window for getting a double donk 132 | 133 | // === HEAVY === 134 | sm_cvar tf_maxhealth_drain_deploy_cost 10 // Max health lost on GRU deploy 135 | sm_cvar tf_maxhealth_drain_hp_min 200 // Minimum max health from GRU 136 | 137 | // === ENGIE === 138 | // Make engie faster 139 | sm_cvar tf_obj_gib_velocity_max 923.76 // Building gibs velocity max (random) 140 | sm_cvar tf_obj_gib_velocity_min 923.76 // Building gibs velocity min (random) 141 | sm_cvar tf_obj_gib_maxspeed 800 // Building gibs speed limit 142 | sm_cvar tf_fastbuild 1 // 2 second build time 143 | sm_cvar tf_construction_build_rate_multiplier 0.1f // Each engie adds to the multiplier for 1 second 144 | sm_cvar tf_cheapobjects 1 // Free buildings 145 | sm_cvar tf_sentrygun_damage 32 // Double sentry gun damage 146 | sm_cvar tf_sentrygun_mini_damage 16 // ^ 147 | sm_cvar tf_sentrygun_metal_per_rocket 1 // Ammo is uninteresting 148 | sm_cvar tf_sentrygun_metal_per_shell 1 // ^ 149 | sm_cvar tf_obj_build_rotation_speed 800 // How fast building blueprints rotate 150 | sm_cvar obj_damage_factor 1.67 // Hurt buildings more (one shot with rocket lvl 1) 151 | sm_cvar obj_child_damage_factor 0.4175 // Same sapper damage? 152 | sm_cvar tf_obj_upgrade_per_hit 50 // Metal per hit for upgrade 153 | 154 | // === MEDIC === 155 | sm_cvar tf_vaccinator_uber_charge_rate_modifier 0.5 // Longer to get that vaccinator uber 156 | sm_cvar weapon_medigun_resist_num_chunks 2 // Only two vaccinator ubers 157 | sm_cvar tf_invuln_time 0 // You have to commit. 158 | sm_cvar weapon_medigun_charge_rate 26 // Faster ubers 159 | sm_cvar weapon_medigun_chargerelease_rate 6 // Uber duration 160 | sm_cvar tf_max_health_boost 1.35 // Overheal less... 161 | sm_cvar tf_boost_drain_time 18 // but drain slower (more mobile Medic) 162 | 163 | // === SPY === 164 | // Dead ringer rework (speed oriented) 165 | sm_cvar tf_feign_death_activate_damage_scale 0.0001 // Tank initial hit 166 | sm_cvar tf_feign_death_damage_scale 1.05 // Transition to greater resist over time 167 | sm_cvar tf_feign_death_duration 10 // Play dead + damage mod 168 | sm_cvar tf_feign_death_speed_duration 5.5 // Speed buff for longer 169 | 170 | // Cloak rework 171 | sm_cvar tf_spy_cloak_consume_rate 13.5 // Consume faster (punish for cloaking) 172 | sm_cvar tf_spy_cloak_regen_rate 12.5 // Regen faster (reward for no cloaking) 173 | sm_cvar tf_spy_invis_time 1 // Cannot bail out as fast 174 | sm_cvar tf_spy_invis_unstealth_time 0.9 // Faster uncloak 175 | sm_cvar tf_spy_cloak_no_attack_time 0.7 // ^ 176 | sm_cvar tf_spy_max_cloaked_speed 400 // Spy can be as fast as scout 177 | sm_cvar tf_stealth_damage_reduction 0.6 // Ok, we'll give spy a bit of a break 178 | 179 | // Capture 180 | sm_cvar mp_capdeteriorate_time 100 // Rate of decay (a bit slower than normal) 181 | sm_cvar mp_blockstyle 1 // Reset or block 182 | sm_cvar mp_capstyle 1 // Fixed players to cap, or increasing cap rate with more players 183 | sm_cvar tf_caplinear 1 // Cap all points in any order or cap points in order 184 | 185 | // Movement 186 | sm_cvar sv_accelerate 10 187 | sm_cvar sv_airaccelerate 10 188 | sm_cvar sv_bounce 0 189 | sm_cvar sv_footsteps 1 190 | sm_cvar sv_friction 4 191 | sm_cvar sv_maxspeed 999 // No clamp 192 | sm_cvar sv_maxunlag 0.3 // 200ms + 30.3ms interp + 50ms fudge factor 193 | sm_cvar sv_maxvelocity 3500 194 | sm_cvar sv_rollangle 0 195 | sm_cvar sv_rollspeed 200 196 | sm_cvar sv_stepsize 18 197 | sm_cvar sv_stopspeed 100 198 | sm_cvar sv_suppress_viewpunch 1 // Stop view kick (buff sniper after the hitscan nerf) 199 | sm_cvar sv_wateraccelerate 10 // Water acceleration 200 | sm_cvar tf_clamp_back_speed 0.95 // How much slower going back is 201 | 202 | // Bomb 203 | sm_cvar tf_deploying_bomb_delay_time 2.1 // Delay before starting to deploy 204 | sm_cvar tf_deploying_bomb_time 2.1 // How long it takes for bomp to tip over 205 | 206 | // Payload 207 | // tf_escort_recede_time 30 // Time before cart starts moving back 208 | // tf_escort_recede_time_overtime 5 // Overtime timer for payload 209 | 210 | // Ammo pack speeds 211 | sm_cvar tf_weapon_ragdoll_velocity_min 0 // Make velocity inheritance not random 212 | sm_cvar tf_weapon_ragdoll_velocity_max 0 // ^ 213 | sm_cvar tf_weapon_ragdoll_maxspeed 400 // Cap speed 214 | 215 | // sm_cvar tf_dropped_weapon_lifetime 30 // How long dropped weapons last 216 | 217 | // sm_cvar tf_base_boss_max_turn_rate 25 // Halloween boss turn rate 218 | // sm_cvar tf_base_boss_speed 75 // Halloween boss movement speed 219 | -------------------------------------------------------------------------------- /tf2/server/tf/cfg/info.cfg: -------------------------------------------------------------------------------- 1 | hostname comfig fortress 2 | tv_name comfig fortress (STV) 3 | tv_title comfig fortress 4 | sv_contact support@mastercomfig.com 5 | sv_region 0 6 | -------------------------------------------------------------------------------- /tf2/server/tf/cfg/mapcycle.txt: -------------------------------------------------------------------------------- 1 | cp_dustbowl 2 | pl_badwater 3 | cp_badlands 4 | cp_gorge 5 | cp_gullywash_final1 6 | ctf_foundry 7 | koth_king 8 | pl_hoodoo_final 9 | koth_sawmill 10 | koth_badlands 11 | koth_lakeside_final 12 | cp_process_final 13 | cp_vanguard 14 | cp_powerhouse 15 | pl_swiftwater_final1 16 | cp_foundry 17 | pl_upward 18 | pl_goldrush 19 | cp_granary 20 | pl_thundermountain 21 | ctf_thundermountain 22 | ctf_turbine 23 | cp_snakewater_final1 24 | cp_sunshine 25 | pl_barnblitz 26 | ctf_gorge 27 | koth_nucleus 28 | cp_metalworks 29 | koth_viaduct 30 | -------------------------------------------------------------------------------- /tf2/server/tf/cfg/motd.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |