github sp-tarkov/build v3.7.4
SPT 3.7.4 (26535)

latest releases: 3.11.4, 3.11.3, 3.11.2...
9 months ago

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 of The Punisher - Harvest (needs event quests enabled via quest.json/showNonSeasonalEventQuests)
  • Added PP-91-01 "Kedr-B" 9x18PM submachine gunto 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 also found 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() in ExternalInventoryMagGen 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() to ExternalInventoryMagGen
  • 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 to BaseClasses
  • When profile is flagged for wipe, dont run profile fixing code during gameStart()
  • 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 to ContextVariableType
  • Edited parameter desiredSlotId on addCartridgeToChamber(), 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 to core.json
  • Added function fixProfileBreakingInventoryItemIssues() to GameController
  • Cleaned up acceptQuest() in QuestController
  • Changed various places in code where profileChanges.repeatableQuests additions were overwriting existing data instead of pushing
  • Moved TraderData interface from IBotBase into IItemEventRouterBase
  • Added RaidTimeUtil to Aki.SinglePlayer.Utils.InRaid with the following methods available for client mods:
    • GetRemainingRaidSeconds(): Returns the remaining seconds in the raid
    • GetRaidTimeRemainingFraction(): 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 map
    • GetElapsedRaidSeconds(): 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 to Aki.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 completed
    • HaveChangesBeenApplied: Returns true if all time changes for the raid have been completed
    • IsScavRaid: If the raid is a Scav run
    • LocationId: The ID of the map selected for the raid
    • OriginalEscapeTimeMinutes: 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 seconds
    • NewEscapeTimeMinutes: 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 than OriginalEscapeTimeMinutes for Scav runs. For PMC raids, this will be the same as OriginalEscapeTimeMinutes.
    • NewEscapeTimeSeconds: NewEscapeTimeMinutes converted to seconds
    • RaidTimeReductionMinutes: 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 seconds
    • SurvivalTimeReductionSeconds: The reduction in the server database value globals.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

Don't miss a new build release

NewReleases is sending notifications on new releases.