(Note: all of these are on v1075 SDK)
Category: Code
Reproducibility: Always
Summary: You cannot pick up a second pistol if ammo is full on your single pistol and instead get a "Your ammo is full" message.
Description: The offending code is in KFGame.KFWeapon function DenyPickupQuery() (about line 1579). This function checks for pickups with which to give ammo. However, it does not account for dual weapons and as such it prevents picking up the second pistol if your single pistol ammo is full. It should allow the pistol to be picked up regardless of ammo.
Online/Offline: Both
Category: Code
Reproducibility: Always
Summary: You cannot pick up Crossbow bolts or Eviscerator sawblades if your spare ammo is full but the magazine is not.
Description: Again, the problem code is in KFGame.KFWeapon function DenyPickupQuery() (about line 1579). The offending lines are the two that check for full ammo (about lines 1590 and 1594):
The issue is that these lines check for MagazineCapacity[0]. They should instead check for AmmoCount[0], like so:
Online/Offline: Both
Category: Code
Reproducibility: Always
Summary: Using the KillBots cheat command also kills the cart in Santa's Workshop.
Description: The issue is in KFGame.KFAIController_ScriptedPawn. Its superclass KFAIController has bIsPlayer set to true, but unlike KFAIController_Monster, KFAIController_ScriptedPawn does not set bIsPlayer to false in its defaultproperties block, which it should.
Online/Offline: Both
Category: Code
Reproducibility: Always
Summary: Bloat mines from AI Bloats are not properly cleaned up from their gameplay pool upon destruction.
Description: The offending code is in KFGameContent.KFProj_BloatPukeMine function Destroyed() (about line 478). This function is supposed to remove the Bloat mines from the gameplay pool manager. The issue is at about line 482, with this check:
This is different from the conditions required to put an AI Bloat mine into the pool, which is at about line 99 in PostBeginPlay():
To fix this, add the IsAIProjectile() check to the removal code in Destroyed().
Online/Offline: Both
Category: Editor
Reproducibility: Always
Summary: The BrewContent commandlet has not worked properly for the last few versions. It instead exits out right away (at least when trying to brew code packages; I haven't checked maps).
Description: Looking through the logs from a recent attempt to brew code, I found several error lines like this:
I suspect that something changed in the BrewContent commandlet a few versions ago such that it no longer checks in the My Documents\My Games\KillingFloor2 folder and now checks the game folder instead. Extra Note: I have KF2 and the My Documents folder on different drives, but it always worked before so I don't think that's the problem. I'm just mentioning it in case it is.
Online/Offline: Offline
Category: Code
Reproducibility: Always
Summary: Many weapons have unusual or unexpected group priorities, which may cause unintended ordering in the inventory.
Description: The variable in question is KFGame.KFWeapon variable GroupPriority. These need to be looked at as many of them are set far from what one would expect if this value was based on weapon tier alone, usually:
Online/Offline: Both
Category: Code
Reproducibility: Always
Summary: You cannot pick up a second pistol if ammo is full on your single pistol and instead get a "Your ammo is full" message.
Description: The offending code is in KFGame.KFWeapon function DenyPickupQuery() (about line 1579). This function checks for pickups with which to give ammo. However, it does not account for dual weapons and as such it prevents picking up the second pistol if your single pistol ammo is full. It should allow the pistol to be picked up regardless of ammo.
Online/Offline: Both
Category: Code
Reproducibility: Always
Summary: You cannot pick up Crossbow bolts or Eviscerator sawblades if your spare ammo is full but the magazine is not.
Description: Again, the problem code is in KFGame.KFWeapon function DenyPickupQuery() (about line 1579). The offending lines are the two that check for full ammo (about lines 1590 and 1594):
Code:
if( CanRefillSecondaryAmmo() && !Pickup.IsA('Projectile') )
{
bDenyPickUp =((SpareAmmoCount[0] + MagazineCapacity[0]) >= GetMaxAmmoAmount(0) && AmmoCount[1] >= MagazineCapacity[1]);
}
else
{
bDenyPickUp = ((SpareAmmoCount[0] + MagazineCapacity[0]) >= GetMaxAmmoAmount(0));
}
Code:
if( CanRefillSecondaryAmmo() && !Pickup.IsA('Projectile') )
{
bDenyPickUp =((SpareAmmoCount[0] + AmmoCount[0]) >= GetMaxAmmoAmount(0) && AmmoCount[1] >= MagazineCapacity[1]);
}
else
{
bDenyPickUp = ((SpareAmmoCount[0] + AmmoCount[0]) >= GetMaxAmmoAmount(0));
}
Category: Code
Reproducibility: Always
Summary: Using the KillBots cheat command also kills the cart in Santa's Workshop.
Description: The issue is in KFGame.KFAIController_ScriptedPawn. Its superclass KFAIController has bIsPlayer set to true, but unlike KFAIController_Monster, KFAIController_ScriptedPawn does not set bIsPlayer to false in its defaultproperties block, which it should.
Online/Offline: Both
Category: Code
Reproducibility: Always
Summary: Bloat mines from AI Bloats are not properly cleaned up from their gameplay pool upon destruction.
Description: The offending code is in KFGameContent.KFProj_BloatPukeMine function Destroyed() (about line 478). This function is supposed to remove the Bloat mines from the gameplay pool manager. The issue is at about line 482, with this check:
Code:
if( InstigatorController != none )
Code:
if( InstigatorController != none || IsAIProjectile() )
Online/Offline: Both
Category: Editor
Reproducibility: Always
Summary: The BrewContent commandlet has not worked properly for the last few versions. It instead exits out right away (at least when trying to brew code packages; I haven't checked maps).
Description: Looking through the logs from a recent attempt to brew code, I found several error lines like this:
Code:
[0011.76] Error: Error reading attributes for 'C:\Users\<Username>\SteamLibrary\steamapps\common\killingfloor2\Binaries\Win64\..\..\KFGame\Unpublished\BrewedPC\Script\UnofficialMod.u'
Online/Offline: Offline
Category: Code
Reproducibility: Always
Summary: Many weapons have unusual or unexpected group priorities, which may cause unintended ordering in the inventory.
Description: The variable in question is KFGame.KFWeapon variable GroupPriority. These need to be looked at as many of them are set far from what one would expect if this value was based on weapon tier alone, usually:
- < 25 for 9mm/Dual 9mm, Perk Knife, Syringe, Welder
- 25 for Tier 1
- 50 for Tier 2
- 75 for Tier 3
- 100 for Tier 4
- ??? for Tier 5 (no expected value that I could find, but likely at least 100)
- Berserker
- Road Redeemer - 100 (50)
- Fire Axe - 100 (50)
- Katana - 100 (50)
- Battle Axe - 85 (???)
- Field Medic
- HM-501 Assault Rifle/Grenade Launcher - 50 (???)
- Demolitionist
- M79 - 75 (50)
- M16/M203 - 50 (75)
- M32 - 75 (???)
- Firebug
- Spitfires - 15 Single/35 Dual (???/50) (See P.S. below)
- MAC-10 - 60 (75)
- Husk Cannon - 75 (100)
- Gunslinger
- Single pistols - Varies (15 for 1858 to 30 for .500 Magnum) (??? to ???) (See P.S. below)
- Dual pistols - Varies (35 for Dual 1858s to 50 for Dual .500 Magnums) (25 for 1858s, 50 for 1911s, 75 for Desert Eagles, 100 for .500 Magnums and AF-2011A1s)
- SWAT
- MP7 - 50 (25)
- UMP - 90 (75)
- HZ-12 - 55 (50)
- MP5 - 60 (50)
- P90 - 80 (75)
- Zweihander - 85 (75)
- M99 - 100 (???)
- Doomstick - 110 (100)
- Bone Crusher - 110 (100)
- Static Strikers - 110 (100)
Online/Offline: Both