[KFPatcher.Mut]
# ======================================= KFGameType =======================================
List=(Info="move after game ends, prints Pat health",Replace="KFMod.KFGameType.CheckEndGame",With="stub_GT.CheckEndGame")
List=(Info="Zed Time: disable gametype tick",Replace="KFMod.KFGameType.Tick",With="stub_GT.Tick")
List=(Info="Zed Time: main control function",Replace="KFMod.KFGameType.DramaticEvent",With="stub_GT.DramaticEvent")
List=(Info="Zed Time: altered so it won't it",Replace="KFMod.KFGameType.DoBossDeath",With="stub_GT.DoBossDeath")
List=(Info="no more late joiner text shit",Replace="KFMod.KFGameType.PreLogin",With="stub_GT.PreLogin")
List=(Info="fix killzeds log spam",Replace="KFMod.KFGameType.KillZeds",With="stub_GT.KillZeds")
List=(Info="fix gamelength from cmdline, log monstercollection",Replace="KFMod.KFGameType.InitGame",With="stub_GT.InitGame")
List=(Info="camera fix after pat kills",Replace="KFMod.KFGameType.MatchInProgress.Timer",With="stub_GT.MatchInProgress.nTimer")
List=(Info="no more wave switch lags",Replace="KFMod.KFGameType.MatchInProgress.CloseShops",With="stub_GT.MatchInProgress.CloseShops")
List=(Info="all traders feature + broadcast",Replace="KFMod.KFGameType.MatchInProgress.OpenShops",With="stub_GT.MatchInProgress.OpenShops")
List=(Info="disable greylisting",Replace="KFMod.KFGameType.UpdateGameLength",With="stub_GT.UpdateGameLength")
List=(Info="disable greylisting",Replace="KFMod.KFGameType.AddNamedBot",With="stub_GT.AddNamedBot")
List=(Info="disable greylisting",Replace="KFMod.KFGameType.AddBots",With="stub_GT.AddBots")
List=(Info="disable greylisting",Replace="KFMod.KFGameType.PostLogin",With="stub_GT.PostLogin")

# ======================================= GameRule =======================================
List=(Info="no more game end when players leave the lobby",Replace="Engine.GameRules.CheckEndGame",With="stub_Rule.CheckEndGame")

# ======================================= Pawns =======================================
# List=(Info="KFHumanPawn: remove perk specific loadouts",Replace="KFMod.KFHumanPawn.AddDefaultInventory",With="stub_Pawn.AddDefaultInventory")
List=(Info="KFPawn: allows players to shop whenever",Replace="KFMod.KFPawn.CanBuyNow",With="stub_Pawn.CanBuyNow")
List=(Info="KFPawn: dosh and PRI none fixes",Replace="KFMod.KFPawn.TossCash",With="stub_Pawn.TossCash")
List=(Info="KFPawn: Soundgroup none fix",Replace="KFMod.KFPawn.GetSound",With="stub_Pawn.GetSound")
List=(Info="xPawn: weapon == none fix in serverchangedweapon",Replace="xGame.xPawn.ServerChangedWeapon",With="stub_Pawn.ServerChangedWeapon")

# ======================================= Controllers =======================================
List=(Info="no more 'you will become %perk' spam, unlimited perk swap",Replace="KFMod.KFPlayerController.SelectVeterancy",With="stub_PC.SelectVeterancy")
# List=(Info="voice message fix",Replace="KFMod.KFPlayerController.SendVoiceMessage",With="stub_PC.SendVoiceMessage")
List=(Info="fixed spectator join message",Replace="KFMod.KFPlayerController.JoinedAsSpectatorOnly",With="stub_PC.JoinedAsSpectatorOnly")
List=(Info="fixed spectator join message",Replace="KFMod.KFPlayerController.BecomeSpectator",With="stub_PC.BecomeSpectator")
List=(Info="0 delay suicide",Replace="Engine.PlayerController.Suicide",With="stub_PC.Suicide")
List=(Info="voice message fix",Replace="Engine.PlayerController.AllowVoiceMessage",With="stub_PC.AllowVoiceMessage")

# ======================================= Weapons =======================================
# List=(Info="fix for nade exploits",Replace="KFMod.FragFire.DoFireEffect",With="stub_FragFire.DoFireEffect")
List=(Info="fix sounds array errors",Replace="KFMod.Nade.Explode",With="stub_Nade.Explode")
List=(Info="fix accessed none Inventory for destroyed weapon pickups",Replace="KFMod.KFWeaponPickup.Destroyed",With="stub_KFWeaponPickup.Destroyed")
List=(Info="fix accessed none IgnoreActors ! and replace all copy paste code with 1",Replace="KFMod.MK23Fire.DoTrace",With="stub_DualiesFire.DoTrace")
List=(Info="fix accessed none IgnoreActors ! and replace all copy paste code with 1",Replace="KFMod.DualMK23Fire.DoTrace",With="stub_DualiesFire.DoTrace")
List=(Info="fix accessed none IgnoreActors ! and replace all copy paste code with 1",Replace="KFMod.DeagleFire.DoTrace",With="stub_DualiesFire.DoTrace")
List=(Info="fix accessed none IgnoreActors ! and replace all copy paste code with 1",Replace="KFMod.DualDeagleFire.DoTrace",With="stub_DualiesFire.DoTrace")
List=(Info="fix accessed none IgnoreActors ! and replace all copy paste code with 1",Replace="KFMod.Magnum44Fire.DoTrace",With="stub_DualiesFire.DoTrace")
List=(Info="fix accessed none IgnoreActors ! and replace all copy paste code with 1",Replace="KFMod.Dual44MagnumFire.DoTrace",With="stub_DualiesFire.DoTrace")
List=(Info="fix accessed none from DropFrom and replace all copy paste code with 1",Replace="KFMod.DualDeagle.DropFrom",With="stub_DualPistol.DropFrom")
List=(Info="fix uber damage exlpoit",Replace="KFMod.PipeBombProjectile.TakeDamage",With="stub_Pipe.TakeDamage")
List=(Info="no detonation on dead players, npc",Replace="KFMod.PipeBombProjectile.Timer",With="stub_Pipe.Timer")
List=(Info="fix sounds array errors",Replace="KFMod.PipeBombProjectile.Explode",With="stub_Pipe.Explode")
List=(Info="Pipe: Assets",Replace="KFMod.PipeBombProjectile.PreloadAssets",With="stub_Pipe.PreloadAssets")
List=(Info="Pipe: Assets",Replace="KFMod.PipeBombProjectile.UnloadAssets",With="stub_Pipe.UnloadAssets")
List=(Info="Syringe: 50 heals when last alive player",Replace="KFMod.Syringe.HackClientStartFire",With="stub_Syringe.HackClientStartFire")
List=(Info="LAWProj: RepInfo none fixes",Replace="KFMod.LAWProj.ProcessTouch",With="stub_LAWProj.ProcessTouch")
List=(Info="LAWProj: team detonation fixes",Replace="KFMod.LAWProj.TakeDamage",With="stub_LAWProj.TakeDamage")
List=(Info="M79GrenadeProjectile: team detonation fixes",Replace="KFMod.M79GrenadeProjectile.TakeDamage",With="stub_LAWProj.TakeDamage")
List=(Info="allows players to use double variants of weapons",Replace="KFMod.KFWeapon.HandlePickupQuery",With="stub_DualPistol.HandlePickupQuery")
List=(Info="allows players to use double variants of weapons",Replace="KFMod.KFPlayerController.IsInInventory",With="stub_PC.IsInInventory")

# ======================================= Zeds =======================================
List=(Info="Husks: fix none calls for toggleaux function",Replace="KFChar.ZombieHusk_HALLOWEEN.SpawnTwoShots",With="stub_Z_Husk.SpawnTwoShots")
List=(Info="Husks: fix none calls for toggleaux function",Replace="KFChar.ZombieHusk.SpawnTwoShots",With="stub_Z_Husk.SpawnTwoShots")
List=(Info="Sirens: fixed instigator call in takedamage and no more damage while dead / decapped",Replace="KFChar.ZombieSiren.SpawnTwoShots",With="stub_Z_Siren.SpawnTwoShots")
List=(Info="Sirens: fixed instigator call in takedamage and no more damage while dead / decapped",Replace="KFChar.ZombieSiren.HurtRadius",With="stub_Z_Siren.HurtRadius")
List=(Info="Sirens: fixed instigator call in takedamage and no more damage while dead / decapped",Replace="KFMod.KFMonster.TakeDamage",With="stub_Monster.TakeDamage")
List=(Info="Sirens: fixed instigator call in takedamage and no more damage while dead / decapped",Replace="KFChar.ZombieBloat.SpawnTwoShots",With="stub_Z_Bloat.SpawnTwoShots")
List=(Info="KFMonster: controller == none fix when you kill zeds before they fall into stun",Replace="KFMod.KFMonster.FlipOver",With="stub_Monster.FlipOver")
List=(Info="FP: do not spin",Replace="KFMod.FleshPoundAvoidArea.Touch",With="stub_FPAvoidArea.Touch")
List=(Info="FP: do not spin",Replace="KFMod.FleshPoundAvoidArea.RelevantTo",With="stub_FPAvoidArea.RelevantTo")
List=(Info="Boss: no burn skin",Replace="KFChar.ZombieBoss.FireMissile.AnimEnd",With="stub_Z_Boss.FireMissile.AnimEnd")
List=(Info="Boss: part 1 controller none fixes",Replace="KFChar.ZombieBoss.MeleeDamageTarget",With="stub_Z_Boss.MeleeDamageTarget")
List=(Info="Boss: part 2 controller none fixes",Replace="KFChar.ZombieBoss.ClawDamageTarget",With="stub_Z_Boss.ClawDamageTarget")
List=(Info="Boss: headshot fix on his machinegun state",Replace="KFChar.ZombieBoss.FireChaingun.TakeDamage",With="stub_Z_Boss.FireChaingun.TakeDamage")
List=(Info="SCRAKE ANIM FIX TEST!!!",Replace="KFMod.KFMonster.IsHeadShot",With="stub_Z_Scrake.IsHeadShot")
List=(Info="KFMonster: zed corpse collision fix #1",Replace="KFMod.KFMonster.PlayDying",With="stub_Monster.PlayDying")
List=(Info="KFMonster: zed corpse collision fix #2",Replace="KFMod.KFMonster.ZombieDying.BeginState",With="stub_Monster.ZombieDying.BeginState")
List=(Info="KFMonster: limit attacks per time",Replace="KFMod.KFMonster.MeleeDamageTarget",With="stub_Monster.MeleeDamageTarget")

#======================================= Shop Volume =======================================
List=(Info="ShopVolume: MyTrader: fix accessed none",Replace="KFMod.ShopVolume.Touch",With="stub_ShopVolume.Touch")
List=(Info="ShopVolume: MyTrader: fix accessed none",Replace="KFMod.ShopVolume.UnTouch",With="stub_ShopVolume.UnTouch")
List=(Info="ShopVolume: MyTrader: fix accessed none",Replace="KFMod.ShopVolume.UsedBy",With="stub_ShopVolume.UsedBy")
List=(Info="ShopVolume: fix bound check for Touching",Replace="KFMod.ShopVolume.BootPlayers",With="stub_ShopVolume.BootPlayers")

#======================================= Doors =======================================
List=(Info="forces zeds to actually ignore doors instead of just standing at them if bZombiesIgnore is true",Replace="KFMod.KFDoorMover.Tick",With="stub_Door.Tick")

#======================================= Voting Handler =======================================
List=(Info="KFMapVoteV2: prevents spectators from fucking voting!!!",Replace="KFMapVoteV2.KFVotingHandler.TallyVotes",With="stub_VotingHandler.TallyVotes")
List=(Info="KFMapVoteV2: prevents spectators from fucking voting!!!",Replace="KFMapVoteV2.KFVotingHandler.SubmitMapVote",With="stub_VotingHandler.SubmitMapVote")

#List=(Info="CSD replacement",Replace="Engine.GameInfo.GetServerDetails",With="stub_GT.GetServerDetails")
#List=(Info="CSD replacement",Replace="Engine.GameInfo.GetServerPlayers",With="stubGT.GetServerPlayers")
#List=(Replace="KFMod.KFMonster.GetOriginalGroundSpeed",With="stub_ZScrake.GetOriginalGroundSpeed")
#List=(Replace="KFChar.ZombieScrake.RunningState.EndState",With="stub_ZScrake.EndState")
#List=(Replace="KFChar.SawZombieController.DoorBashing.EndState",With="stub_ZScrakeCtrl.EndState")
#List=(Replace="KFMod.ShotgunBullet.ProcessTouch",With="stub_PShotgun.ProcessTouch")
#List=(Replace="KFChar.ZombieScrake.SawingLoop.GetOriginalGroundSpeed",With="stub_FPAvoidArea.GetSpeedSawing")

[KFPatcher.o_Settings]
sAlive="^y[#h hp] ^y[#k kills]^w"
sDead="^o[Dead] ^y[#k kills]^w"
sSpectator="^o[Spectator]"
sReady="^g[Ready]"
sNotReady="^g[Not Ready]"
sAwaiting="^g[Awaiting]"
sTagHP="#h"
sTagKills="#k"
fRefreshTime=5.0
bShowPerk=True
bAllowZedTime=False
bAllTradersOpen=True
bAllTradersMessage="^wAll traders are ^ropen^w!"
bBuyEverywhere=True