This repository contains the source code and assets for TF2Ware Ultimate.
host_timescale
requires the use of sv_cheats
on dedicated servers, which is obviously problematic.
To workaround this, the plugin will block all cheat commands while the map is active (unless ware_cheats
convar is set to 1).
Optionally, the plugin will also partially strip cosmetics/non-melee weapons (loadoutwhitelister_enable
convar) by default.
This is used as an optimization for high player servers, as constantly loading all cosmetics and weapons causes heavy lag.
The whitelister will only allow hat cosmetics, which is a good middleground for allowing some player customization while preventing big stutters.
Make sure you have SourceMod installed. This is not covered here, there are plenty of guides online.
Download the latest release. Extract it into your addons
folder.
The plugin will automatically enable and disable itself when it detects the map name contains tf2ware_ultimate
.
TF2Ware Ultimate loads its settings from the tf/scriptdata/tf2ware_ultimate
folder. These settings will be generated on first launch of the map, if not present already.
Admin commands are supported (see: !ware_help
in chat for commands). Listen server hosts can also use these commands.
The following events are sent by the gamemode if you would like to catch them.
The unused event player_rematch_change
is repurposed to allow VScript -> SourceMod communication, please see ListenerVScript
in tf2ware_ultimate.sp
for an example.
minigame_start
name
: english name of the minigame (can change depending on submode)file_name
: internal minigame file name (doesn't change)players_valid
: string with list of player indices that are participating. each byte is the player indexis_boss
: true if boss, false otherwise
minigame_end
name
: english name of the minigame (can change depending on submode)file_name
: internal minigame file name (doesn't change)players_passed
: string with list of player indices that won the minigame. each byte is the player indexplayers_valid
: string with list of player indices that are participating. each byte is the player indexis_boss
: true if boss, false otherwise
game_over
players_won
: string with list of player indices that won the game. each byte is the player indexplayers_score
: string with a list of all player's score (sorted by their entity index). each byte is the player's score, including bonus. length isMaxClients
players_bonus
: same as above but each byte is the bonus score. length isMaxClients
max_possible_score
: maximum possible score to achieve, not including bonusesspecial_round_name
: english name of the special round (can change depending on submode), blank if no special roundspecial_round_file_name
: internal special round file name (doesn't change), blank if no special round
bonus_points
minigame_name
: english name of the minigame this was awarded in (could be blank)minigame_file_name
: internal file name of the minigame this was awarded in (could be blank)players_awarded
: string with list of player indices that were given the bonus
Pull requests to add new minigames, bossgames, special rounds or themes are welcome. Getting started with contributing is easy - see here for more information.
- ficool2 - Lead programmer and map porting
- pokemonPasta - Programmer, themes, map porting, trailer
- OctatonicSunrise - Logo, trailer renders
Type !ware_credits
in chat for a full list of contributors in console.