Requires EFT 0.13.5.3.26535 (released 10th October 2023)
Hotfix 2023/12/06
- Added missing locales for new
The Punisher - Harvest
quest - Fixed flea categories not showing the correct value sometimes
- Fixed the launcher sometimes allowing you to reach the profile screen without being connected to the server
- Silenced a warning message that appears when generating loot for streets
Release notes
This release has two main areas of focus, bug fixes and scav raid improvements.
We wanted to improve the simulation of scav raids to make them more live-like. We've made raids shorter to simulate joining part-way through. The loot that spawns is reduced by an amount relative to how short the raid is. Shorter raid = less loot.
We've also modified the bot spawns to remove those that would have occurred prior to when the player joined.
A big thanks to DanW for his contributions on this system.
For bug fixes, you can find them listed below.
Automatic install instructions (Recommended)
https://dev.sp-tarkov.com/SPT/Issues/wiki/Installing-SPT-with-the-installer
Mod compatibility
- Server mods made for
3.7.1
and above should be compatible - Client (BepinEx) mods made for
3.7.1
and above are compatible
Profile compatibility
- 3.7.x profiles are compatible
- 3.6.x profiles are compatible
Manual install instructions
https://dev.sp-tarkov.com/SPT/Issues/wiki/Manual-Install-Instructions
Upgrading from 3.7.1 and above / Migrating existing profiles to SPT 3.7.4
https://dev.sp-tarkov.com/SPT/Issues/wiki/Installing-with-existing-profile
- If you have
3.7.1
or above installed, you can copy the contents of the release zip below into your existing SPT folder. Make sure server/launcher are not running and to overwrite all files
Changes
Added
- Add scav raid start time simulation
- Scav raids have a high likelihood of being shorter than a PMC raid
- Loot being taken by other players is simulated, the later you start the less loot there is
- Raid exits may not be available (e.g. trains)
- Added new event quest
The Punisher - Harvest
- Added
Peacekeeper
ammo assort purchases upon completion ofThe Punisher - Harvest
(needs event quests enabled viaquest.json/showNonSeasonalEventQuests
) - Added
PP-91-01 "Kedr-B" 9x18PM submachine gun
to PMC weapon pool - Added chance PMCs spawn at start of
Reserve
raid in random zones throughout map
Changes
- Profiles made with the same minor version do not show warning/orange color change in launcher
- Removed quest started message when accepting a repeatable quest (now matches live behavior)
- Improved handling of failed quests being restarted
Fixes
- Fixed a
Cannot read properties of undefined (reading 'filter')
error when exiting a scav raid for some players - Fixed an issue where bots with certain weapons (SKS) with a large magazine (drums) would be generated without additional magazines
- Fixed bots having an inventory full of grenades when generated with the
Milkor M32A1
instead of the intended 2-5 - Fixed game not starting when profile doesn't have the weapon-stand stash in its inventory
- Fixed the following weapons being generated without the correct amount of ammo in their chambers:
- MP-43 12ga sawed-off double-barrel shotgun
- MP-18 7.62x54R single-shot rifle
- Fixed bug where setting
ragfairConfig.purchasesAreFoundInRaid
true would make trader purchases from flea alsofound in raid
Modders
- Method
addItemWithChildrenToEquipmentSlot()
now has additional possible return values- UNKNOWN - Generic catch-all error when none of the others apply (this used to be the NO_SPACE error)
- NO_CONTAINERS - Bot has no containers specificed to add item into
process()
inExternalInventoryMagGen
now:- Handles the edge case of a weapon with a default internal magazine but weapon uses external magazine
- Has infinite loop detection if unable to add magazine to bot after 5 attempts
- Added method
getRandomExternalMagazineForInternalMagazineGun()
toExternalInventoryMagGen
- Most code locations that call
addItemWithChildrenToEquipmentSlot()
now log failure reason - Optimized
addAmmoIntoEquipmentSlots()
, if it fails because of lack of space or has no containers to add to, break out of loop and skip trying to add remaining ammo - Correctly return number from
getRandomizedMagazineCount()
instead of string - Added
SPRING_DRIVEN_CYLINDER
toBaseClasses
- When profile is flagged for
wipe
, dont run profile fixing code duringgameStart()
- Player scav brain weights can be altered in
configs/bot.json/playerScavBrainType
- Scav raid time reduction weights/various values can be adjusted per map in
configs/location.json/scavRaidTimeSettings
- Added
clearValues() to
ApplicationContext` - Added new
RAID_ADJUSTMENTS
type toContextVariableType
- Edited parameter
desiredSlotId
onaddCartridgeToChamber()
, now expects a list of chamber ids, e.g.patron_in_weapon_000
instead of just one, function now adds cartridge to all chambers found with passed in Ids - Added class
RaidTimeAdjustmentService
- Added new server endpoint
singleplayer/settings/getRaidTime
- Added config property
fixProfileBreakingInventoryItemIssues
tocore.json
- Added function
fixProfileBreakingInventoryItemIssues()
toGameController
- Cleaned up
acceptQuest()
inQuestController
- Changed various places in code where
profileChanges.repeatableQuests
additions were overwriting existing data instead of pushing - Moved
TraderData
interface fromIBotBase
intoIItemEventRouterBase
- Added
RaidTimeUtil
toAki.SinglePlayer.Utils.InRaid
with the following methods available for client mods:GetRemainingRaidSeconds()
: Returns the remaining seconds in the raidGetRaidTimeRemainingFraction()
: Returns the fraction of remaining raid time relative to the original escape time for the map. For example, if you spawn into Customs as a Scav with 20 min remaining in the raid, this will be 0.5.GetSecondsSinceSpawning()
: Returns the seconds that have elapsed since you spawned into the mapGetElapsedRaidSeconds()
: Returns the total seconds that have elapsed in the raid relative to the original escape time for the map. For example, if you spawn into Customs as a Scav with 20 min remaining in the raid, this will be 1200.
- Added
RaidChangesUtil
toAki.SinglePlayer.Utils.InRaid
with the following properties describing time changes made to raids:RaidChangesAppliedUtcTime
: The UTC time when changes made to the raid (if any) were completedHaveChangesBeenApplied
: Returnstrue
if all time changes for the raid have been completedIsScavRaid
: If the raid is a Scav runLocationId
: The ID of the map selected for the raidOriginalEscapeTimeMinutes
: The original escape time for the map before changes are made for Scav runs. This value may be modified by mods, so it isn't necessarily the escape time for the map in EFT.OriginalEscapeTimeSeconds
:OriginalEscapeTimeMinutes
converted to secondsNewEscapeTimeMinutes
: The "new" escape time selected by SPT for the map. This will be the time remaining when you spawn into the raid, so it will typically be less thanOriginalEscapeTimeMinutes
for Scav runs. For PMC raids, this will be the same asOriginalEscapeTimeMinutes
.NewEscapeTimeSeconds
:NewEscapeTimeMinutes
converted to secondsRaidTimeReductionMinutes
: The difference between the original escape time for the map (OriginalEscapeTimeMinutes
) and the "new" one (NewEscapeTimeMinutes
). This will be 0 for PMC raids.RaidTimeReductionSeconds
:RaidTimeReductionMinutes
converted to secondsSurvivalTimeReductionSeconds
: The reduction in the server database valueglobals.config.exp.match_end.survived_seconds_requirement
, which is the time you must stay in the raid to get a "Survived" status (unless you get enough experience in the raid).survived_seconds_requirement
is normally 7 minutes (420 seconds), and it is reduced by this value if you spawn into the map late for a Scav run. For example, if you spawn into Customs with 35 min remaining, this value will be 300. Therefore, you need to wait 2 min (420 - 300 = 120 seconds) to extract with a "Survived" status.
Modder guidance
https://dev.sp-tarkov.com/SPT/Issues/wiki/Modding-Info
Known SPT issues
https://dev.sp-tarkov.com/SPT/Issues/wiki/Known-SPT-issues
Known NON-SPT issues
https://dev.sp-tarkov.com/SPT/Issues/wiki/Known-non-SPT-issues
Zip hash
Release Hash: aIIOeq2IizsF4lgCyNw5pw==
Thanks
DanW
DrakiaXYZ
Refringe
Everyone who took the time to report a bug on the issue tracker