Skip to content
naydef edited this page Jul 31, 2021 · 19 revisions

Freak Configuration

There are several variables to consider when making a custom boss for Freak Fortress 2.

The required variables are:

  • name
  • class
Class Number
scout 1
sniper 2
soldier 3
demoman 4
medic 5
heavy 6
pyro 7
spy 8
engineer 9

Note: From Freak Fortress 1.11.0 onward you can now just type the name of the class! No more confusing numbers.

  • model
  • ragedist Note: From Freak Fortress 1.11.0 the rage distance can use a formula.
  • description_en

The optional variables are:

  • health_formula (def. ((760+n)*(n-1))^1.075)
    • n (or x) means the number of players on the non-boss team
    • + means "addition"
    • - means "subtraction"
    • * means "multiply by"
    • / means "divide by"
    • ^ means "to the power of"
  • lives (def. "1")
  • maxspeed (def. "340")
  • sound_block_vo (def. "0") - Blocks class's normal lines
  • companion (def. "") - You can have a max of 3 bosses this way
  • ragedamage (def. "1900")
  • blocked (def. "0")

Boss Weapons

The boss needs weapons or else it will be a (pretty useless) civilian.

Item indexes are listed here, and weapon attributes are listed here.

Mandatory variables:

  • name
  • index

Optional variables:

  • show (def. "0")
  • attributes (def. "")

Note: All weapons are given the attributes +200% damage bonus and +2 capture rate.

"weapon1"
{
	"name"				"tf_weapon_wrench"
	"index"				"197" 
	"show"				"1"
}

This will give the hale a wrench with +200% damage bonus and +2 capture points.

Boss Abilities

By default, Freak Fortress 2 allows up to a maximum of 32 abilities, so go wild and make your boss as overpowered as possible.

Abilities are activated through sub-plugins. FF2 has several core subplugins that are included in the default download.

Slot system

	<Slot> - <Description>
	-2 - Invalid slot(internally used by FF2 for detecting missing "arg0" argument). Don't use!
	-1 - When Boss loses a life (if he has over 1)
	0 - Rage
	1 - Used by charging brave Jump. Fired every 0.2s
	2 - Demopan's charge of targe, projectiles etc.
	3 - Weighdown
	4 - Killed player (not used for sounds)
	5 - Boss killed (not used for sounds)
	6 - Boss backstabbed (not used for sounds)
        7 - Boss market gardened (not used for sounds)
	8..10 - Reserved.
	
 	11..2^31−1 - Available for general use


Note: Slots 8-10 inclusive not implemented. They are reserved for future use. You should not use negative slots at all. They are ugly anyway. The only useful negative slot is -1.
"ability1"
{
	"name" "rage_uber"
	"arg1"	"10.0"
	"plugin_name"	"default_abilities"
}

This will give the boss invulnerability when it rages.

"ability1"
{
	"name" "rage_uber"
	"arg0" "-1"
	"arg1"	"10.0"
	"plugin_name"	"default_abilities"
}

This will give the boss invulnerability when it loses a life.

More information for the default abilities subplugin can be found in default_abilities.ff2.

Hale Sounds

Sounds are all optional, here are the keys for the sounds:

  • sound_begin - The list of possible sounds played at the start of the round
  • sound_kspree - The list of possible sounds played when the boss is on a killing spree
  • sound_win - The list of possible sounds played when the boss wins the round
  • sound_death - The list of possible sounds played when the boss dies
  • sound_lastman - The list of possible sounds played when there's only one RED player left alive
  • sound_hit - The list of possible sounds played when the boss kills someone
  • sound_kill_
    • sound_kill_scout - The list of possible sounds played when a Scout gets killed by the boss
    • sound_kill_soldier - The list of possible sounds played when a Soldier gets killed by the boss
    • sound_kill_pyro - The list of possible sounds played when a Pyro gets killed by the boss
    • sound_kill_demoman - The list of possible sounds played when a Demoman gets killed by the boss
    • sound_kill_heavy - The list of possible sounds played when a Heavy gets killed by the boss
    • sound_kill_engineer - The list of possible sounds played when an Engineer gets killed by the boss
    • sound_kill_medic - The list of possible sounds played when a Medic gets killed by the boss
    • sound_kill_sniper - The list of possible sounds played when a Sniper gets killed by the boss
    • sound_kill_spy - The list of possible sounds played when a Spy gets killed by the boss
  • sound_kill_buildable - The list of possible sounds played when a sentry/dispenser/teleporter gets destroyed by the boss
  • sound_stabbed - The list of possible sounds played when the boss is backstabbed
  • sound_ability - The list of sounds played when abilities are being used
  • catch_phrase - The voice lines of the boss
  • sound_bgm - The background music/theme for the boss
  • sound_precache - The list of sounds that needs to be precached

Sounds for abilities

"sound_ability"
{
	"1"	"saxton_hale\lolwut_2.wav"
	"slot1"	"1"
	"2"	"saxton_hale\vagineer_responce_rage_1.wav"
	"3"	"saxton_hale\vagineer_responce_rage_2.wav"
	"4"	"saxton_hale\vagineer_responce_jump_1.wav"
	"slot4"	"1"
	"5"	"saxton_hale\vagineer_responce_jump_2.wav"
	"slot5"	"1"
}

Boss Downloads

There are 3 types of downloads:

  • mod_download - The list of model downloads, where are required model files will be downloaded (.mdl, .physx, etc...)
  • mat_download - The list of material downloads, where are required material files be downloaded (.vmt, .vtf)
  • download - The list of single file downloads (.mp3, .wav, etc...)
"mod_download"
{
	"1" "models/player/saxton_hale/saxton_hale"
}
"mat_download"
{
	"1" "materials/models/player/saxton_hale/eye"
	"2" "materials/models/player/saxton_hale/hale_body"
}
"download"
{
	"1" "materials/models/player/saxton_hale/eyeball_l.vmt"
	"2" "materials/models/player/saxton_hale/hale_body_normal.vtf"
	"3" "sound/saxton_hale/saxton_hale_responce_start1.wav"
}

This will force the player to download the following files:

  • models/player/saxton_hale/saxton_hale.dx80.vtx
  • models/player/saxton_hale/saxton_hale.dx90.vtx
  • models/player/saxton_hale/saxton_hale.mdl
  • models/player/saxton_hale/saxton_hale.sw.vtx
  • models/player/saxton_hale/saxton_hale.vvd
  • materials/models/player/saxton_hale/eye.vmt
  • materials/models/player/saxton_hale/eye.vtf
  • materials/models/player/saxton_hale/hale_body.vmt
  • materials/models/player/saxton_hale/hale_body.vtf
  • materials/models/player/saxton_hale/eyeball_l.vmt
  • materials/models/player/saxton_hale/hale_body_normal.vtf
  • sound/saxton_hale/saxton_hale_responce_start1.wav

TODO Example

"character"
{
	//Required keys
	"name"					"Example of a Boss"				//Displayed name of a boss
	"class"					"9"								//9 is engineer.
	"model"					"models\player\engineer.mdl"	//Model of this boss
	"ragedist"				"400.0"							//Default distance for rage abilities
	
	"description_en" 		"The best Boss ever"			//Description of this Boss
	"description_ru"		"—амый лучший босс"				//The same description, but in other languages. (en - English, ru - Russian...)
	
	//Optional keys (with default values)
	"health_formula"		"((760+n)*n)^1.04"				//Formula of Max (Start) Health of boss. Be careful when you use "lives" over 1!
	"lives"					"1"								//Boss will be "respawned" (actually, he doesn't die) until he has lives. Max HPs is a SUMMARY of _ALL_ lives.
	"maxspeed"				"340"							//Max Speed of Boss. Can not be over 520
	"sound_block_vo"		"0"								//"1" blocks class's normal lines (Engineer's lines for Vagineer, for example)
	"companion"				""								//_Name_ of a companion's boss. Also he can have his own companion, then there will be THREE bosses.
	"ragedamage"			"1900"							//Boss must take this amout of damage to fill his rage meter
	"blocked"				"0"								//This boss can not be randomly called. Use it for companion bosses, like Seeldier for Seeman.
	
	
	
	"weapon1"												//Plz try to put MAIN weapon as 1st
	{
		//required
		"name"				"tf_weapon_wrench"				//Classname of boss' weapon
		"index"				"197"							//Index of boss' weapon. You can take both in "team fortress 2 content.gcf\tf\scripts\items\items_game.txt"
															//Weapon with index<=3 or 734 is VISIBLE. Over 30 is not.
		//optional
		"show" "1" //forces the weapon to show, the weapon will only show up if the hale player has the weapon
		"attributes"		""								//Additional attributes of boss' melee weapon like "attribute1 ; value1 ; attribute2 ; value2" . For example, "40 ; 1" is hidden "no crit" attribute.
	}
	//Optional keys too
	"weapon2"
	{
		"name"				"tf_weapon_wrench"
		"index"				"197"
	}
	//etc
	//You can put more weapons (but for different slots)
	
	
	"ability1"												//You may use 16 abilities
															//See ff2_1st_set_abilities.ff2 and default_abilities.ff2 in the FF2-Official wiki to get more info about abilities.
	{
		"name" "rage_uber"
		//"arg0" "0" 	//default value						//Ability slot
		"arg1"	"10.0"
		"plugin_name"	"default_abilities"
	}
	"ability2"
	{
		"name" "charge_weightdown"
		"arg0"	"3"
		"plugin_name"	"default_abilities"
	}
	"ability3"
	{
		"name" "charge_bravejump"
		"arg0"	"1"
		"arg1"	"1.5"
		"arg2"	"5"
		"plugin_name"	"default_abilities"
	}
	"ability4"
	{
		"name" "rage_stun"
		"arg1"	"5.0"
		"plugin_name"	"default_abilities"
	}
	"ability5"
	{
		"name" "rage_preventtaunt"
		"plugin_name"	"default_abilities"
	}
	"ability6"
	{
		"name" "rage_stunsg"
		"arg1"	"8.0"
		"plugin_name"	"default_abilities"
	}
	
	
	//Optional keys
	//All sound_* keys precache their lines.
	"sound_begin"												//"Let's get dangerous!" Line in mini-setup.
	{
		"1" "saxton_hale\vagineer_responce_intro.wav"
		"2" "saxton_hale\lolwut_1.wav"
		//You can put more, unlimited
	}	
	"sound_kspree"												//When boss does 3 kills in ten or less seconds.
	{
		"1"	"saxton_hale\lolwut_4.wav"
		"2"	"saxton_hale\vagineer_responce_taunt_1.wav"
		"3"	"saxton_hale\vagineer_responce_taunt_2.wav"
		"4"	"saxton_hale\vagineer_responce_taunt_3.wav"
		"5"	"saxton_hale\vagineer_responce_taunt_4.wav"
		"6"	"saxton_hale\vagineer_responce_taunt_5.wav"
		"7"	"saxton_hale\lolwut_3.wav"
	}
	"sound_win"													//When boss wins
	{
		"1"	"saxton_hale\vagineer_responce_taunt_5.wav"
	}
	"sound_death"												//When boss dies
	{
		"1" "saxton_hale\vagineer_responce_fail_2.wav"
		"2" "saxton_hale\vagineer_responce_fail_1.wav"
	}
	"sound_hit"													//When boss kill someone
	{
		"1"	"saxton_hale\lolwut_5.wav"
	}
	"sound_ability"												//When boss uses ability
	{
		"1"	 "saxton_hale\lolwut_2.wav"							//This is number of line
		"slot1"	"1"												//This is number of ability slot for this line (for example, 0 is rage and it's defalut value)
		"2" "saxton_hale\vagineer_responce_rage_1.wav"
		"3" "saxton_hale\vagineer_responce_rage_2.wav"
		"4" "saxton_hale\vagineer_responce_jump_1.wav"
		"slot4"	"1"
		"5" "saxton_hale\vagineer_responce_jump_2.wav"
		"slot5"	"1"
	}	
	"catch_phrase"												//All default character's (like Engineer for Vagineer) lines replaced with THIS line. Set "sound_block_vo" to "0" if you need it
	{
		"1" "vo/engineer_jeers02.wav"
	}
	"sound_bgm"													//Background Music
	{
		"path1"	"saxton_hale/the_millionaires_holiday.mp3"		//path to 1st track
		"time1"	"131"											//length of 1st track
		"path2"	"saxton_hale/rick_roll.mp3"
		"time2"	"99"
	}
	"sound_precache"											//Just precache sounds
	{
		"1" "saxton_hale\vagineer_responce_jump_42.wav"
	}
	
	//Optional keys again, for downloadlist
	"mod_download"												//Downloads: ".mdl", ".dx80.vtx", ".dx90.vtx", ".sw.vtx", ".vvd"
	{
		"1"	"models\player\saxton_hale\vagineer_v134"
	}
	"mat_download"												//Downloads: ".vtf", ".vmt"
	{
		"1" "materials\freak_fortress_2\ninjaspy\spy_black"		
	}
	"download"													//Downloads these files
	{
		"1" "sound\saxton_hale\vagineer_responce_intro.wav"
		"2" "sound\saxton_hale\lolwut_3.wav"
		"3" "sound\saxton_hale\lolwut_4.wav"
		"4" "sound\saxton_hale\vagineer_responce_taunt_1.wav"
		"5" "sound\saxton_hale\vagineer_responce_taunt_2.wav"
		"6" "sound\saxton_hale\vagineer_responce_taunt_3.wav"
		"7" "sound\saxton_hale\vagineer_responce_taunt_4.wav"
		"8" "sound\saxton_hale\vagineer_responce_taunt_5.wav"
		"9" "sound\saxton_hale\vagineer_responce_taunt_5.wav"
		"10" "sound\saxton_hale\vagineer_responce_fail_1.wav"
		"11" "sound\saxton_hale\vagineer_responce_fail_2.wav"
		"12" "sound\saxton_hale\lolwut_2.wav"
		"13" "sound\saxton_hale\vagineer_responce_rage_1.wav"
		"14" "sound\saxton_hale\vagineer_responce_rage_2.wav"
		"15" "sound\saxton_hale\vagineer_responce_jump_1.wav"
		"16" "sound\saxton_hale\vagineer_responce_jump_2.wav"
		"17" "sound\saxton_hale\lolwut_5.wav"
		"18" "sound\saxton_hale\lolwut_0.wav"
		"19" "sound\saxton_hale\lolwut_1.wav"
	}
}