github sp-tarkov/build v3.9.0
SPT 3.9.0 (30626)

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

Requires EFT 0.14.9.30626 (released 27th June 2024)

Release notes

3 months of work from over 30 contributors. 3.9.0 went through over 15 client versions while being created.

Automatic install instructions (Recommended)

https://dev.sp-tarkov.com/SPT/Issues/wiki/Installing-SPT-with-the-installer

Mod compatibility

  • Incompatible with 3.8.x mods

Profile compatibility

  • Incompatible with 3.8.x profiles

Manual install instructions

https://dev.sp-tarkov.com/SPT/Issues/wiki/Manual-Install-Instructions

Upgrading from 3.8.x

  • Not possible to upgrade

Changes

EFT CHANGES

  • Unheard profile
  • New PMC outfits
  • Added Ref Trader (Partially implemented in SPT)
  • Adjustments to sound system
  • Added BTR-82A to Woods
  • Added first iteration of seasons system
  • New trader barters
  • Body hitbox penetration rework
  • Armor penetration rework
  • New sandbox map for level 20+
    • Better loot
    • Kollontay boss
  • Significantly reduced fog on all maps
  • GP coins are now a currency and stack to 20
  • New achievements
  • Reduced inertia
  • Removed Found In Raid requirement for listing items in flea market
  • Enabled Spring season

ADDED

  • New Server and Launcher icons from competition winner (Rasdow) 41b047e436
  • Regenerated map loot using 3.5 months worth of data dumps
  • Added quests Easy Money. Part 1, Easy Money part 2, Balancing Part 1, Balancing Part 2, A Key to Salvation, Gendarmerie District Patrol, Test Drive Part 3 and Hustle
  • Item/quest/trader icons are now stored separately from live inside the SPT folder (spt/user/sptAppData) SPT/Modules#133
  • Added TarkovTV gift codes KILLA, BITCOIN, GROUNDZERO2, OBDOLBOS, THICC 910189d425
  • Added Tournament profile (Unique secure container + flea and fence ban) eba65cdd83
    • Added tournament profile gift code. Send TOURNAMENTGIFT to SPT on friend list 885a2abcab
  • PMCs will sometimes send player a pity gift code if they die and feel bad e0717daa99
  • Added per-location static loot 57557d6063
    • Each maps containers are filled with loot data generated using only that map
    • Results in more live-accurate loot being found
  • Added new data structure for sandbox_high 3e99f6761f
  • Added system to set the minimum level of a generated bot on a map 297e35a1ff
    • Utilized by sandbox_high to prevent PMCs below level 20 appearing
  • Added system to set max level of a generated bot on a map 06b35ddde8
    • Utilized by sandbox to prevent PMCs above level 20 appearing
  • Added Unheard profile preset 0d00fb5370
  • Added different redeem times for mail rewards based on profile type 597ea96f34
  • Added support for Mark of the Unheard insurance return time buff bf528fd1de
  • Added gift code HIDEOUTCAT, rewards Mr Kerman's cat hologram 7f0d740a17
  • Added system to purchase all clothing from trader on profile creation - enabled for Tournament profile
  • Added new lootable item blacklist and added checks to bot and map loot generator code 0574392f28
  • Added ability for quests to reward achievements e5398f5e4d
  • Added Ironsights to SMG attachment whitelist 7c1613c331
  • Added M48 Tactical Kukri to PMC loot blacklist 020c30d55b
  • Added Cultist top to PMC clothing pool 8f3a065e2d
  • Added masterMod (barrels/pistol grips/handguards/receivers) item types to single stack only when listed on ragfair 158258a398
  • Added additional skills to Commando chat bot 01d3864105
  • Added menu during game load that displays bundle loading progress d9747c16cc
  • Added Mr Kerman's cat hologram to reward blacklist 06cc13c941
  • Added WIP ability to convert all scavs into bosses
  • Added additional PMC names (modders + 3.9.0 contributors / translators)

MODIFIED

  • Regenerated all bot data using new dumps 5d4fb70e47
  • Updated trader and quest data 8f4919a9c7
  • Reduced low level sandbox max level to be 20 d6cd99b8ab
  • Adjusted sendInsuredItems() to use the globals property Insurance.MaxStorageTimeInHour 65e2b87190
  • Improved how handbook and flea prices are cached fcabd68dfc
  • Improved locale text for modloader-outdated_sptversion_field
  • Localized many additional error and warning messages 139b139581 a48e130f1b
  • Attempted to reduce times weapon spawns with a large gas block that obscures optics cd965bb733
  • Adjusted followerBoar generation weights b29d5f957d
  • Adjusted seasonal start times e38ad6dc3e ff39d733e9
  • Updated unheard profiles to have 72 hours to open mail 597ea96f34
  • Improved accuracy of flea offer data 4081508bf3
  • Improved how PMC difficulty values are generated to improve PMC vs PMC interactions 6623a86d0f
  • Improved insurance calculation accuracy 82c6add9ab
  • Removed duplicate PMC names 1c8805c365
  • Localized many warnings and errors throughout the server into various languages
  • Updated SaveServer.load() to log the total time taken to load profiles on server started instead of per profile 5bd49ded59
  • Adjusted PMC weapon choices at low and high levels 3341faacdf
  • Server will now show an error when a config file cannot be correctly read due to typos b645e6f51b
  • Gift system changes:
    • Gifts can be received multiple times (configurable) 75a34f5ca2
    • Stash expansion gift can be used 5 times
    • Dev balaclava gift can be used 5 times
    • Prapor day1/2 gift can be used 5 times
  • Updated Revenge values for bots dd8824a042
  • Updated hideout tick calculation to check if crafts hideout area needs power or not 86380e845a
  • Updated PMC game version weights 6f646d03e8
  • Adjusted PMC loot generation to allow for 1x2 sized items to be added to the pocket pool to account for UhD bots' large pockets 928f9068a3
  • Added all dogtags to rewardItemBlacklist d0aca73611
  • Adjusted how sell chance % is calculated for player flea offers for items below max durability cf5411336f
  • Gift boxes no longer reward items on the reward item blacklist 7891db84de
  • Reduced occurrences when bots fly upwards on death cd190061cf
  • Updated createRandomLoot() to make use of rewardItemBlacklist blacklist 7891db84de
  • Plates in armors listed by Fence now have individual chances to be removed before listing based on plate protection level
    • Higher level plates have a higher chance of being removed

FIXED

  • FixeddrawAmmoTpl() failures killing loot generation when cartridge data cannot be found inside staticAmmoDist bddf87a4e2
  • Expanded fallback of client locale handling to include the region code (now Handles Czech and Korean locales) adab18e3fb
  • Fixed an issue where getting difficulty settings of a bot type that doesn't exist would error 1d8bc4537c
  • Fixed Commando friend giving items with missing inserts 7dc17acb97
  • Fixed issue with server failing to generate a green flare as its a weapon without a default preset f581b8ff2a
  • Fixed PenetrationDamageMod being a required property fcabd68dfc
  • Fixed swapItem() not supporting scav items 66cac910c3
  • Fixed the Mod Dependency Installer throwing an error when spaces are found on the mod path d437b5b922
  • Fixed context menu appear in middle of screen when clicking a pmc flea seller 37f4a23acf
  • Fixed Bloodhounds lacking soft-inserts inside their Ops-Core FAST MT Super High Cut helmet 81bb920b16
  • Fixed quest items placed as part of an objective being returned as insurance c0d3c5384f 6ae825ee6a
  • Fixed sendGiftToPlayer() not correctly sending profile change events e505f86137
  • Fixed profileChangeEvent() Skill failing when invalid skill passed in aa03a002ed
  • Fixed issue with redeemProfileReward() not correctly levelling up traders, causing player to only see level 1 trader items until a restart ef8307540b
  • Fixed getLocalesGlobal() not correctly falling back to English when desired locale not found e2dd677b40
  • Fixed Prapor day 1/2 gifts not being sent ca642b94a7
  • Fixed PMCs not sending post-raid messages sometimes 2a9cbab762
  • Added flea sorting by barter item 836910c1d5
  • Fixed EoD PMCs not having their memberCategory set to the correct value d315414136
  • Fixed Prapor starting gifts not sending 5d0cfd7971
  • Fixed accepting/completing Network Provider - Part 2 causing a server error 836df0ce9d
  • Fixed non-stackable items being stacked for gift PraporGiftDay2 bc31d47efa
  • Fixed fence assort generation system not removing armor plates when instructed

MODDERS

  • Added support for adjustable mail return times based on profile type of player 597ea96f34
  • Added ability to insert custom text into the server watermark at the bottom via core.json config f68827bdc2
  • Added DatabaseService as safer alternate to DatabaseServer for accessing db e78087818f 7cdac4e38b 584eade530
  • Added ability to flag a profile template as flea banned via the fleaBlockedDays property ca737d2f62
  • Updated routers to be asynchronous 2172c29640
  • Added support for new endpoint client/game/mode 001def56a5
  • Reworked bot generation to be asynchronous 2172c29640
  • Added locationSpecificPmcLevelOverride to pmc.json
  • Added new ICloner interface to replace jsonUtil.Clone() f8d1227dfd
  • Removed locale check from give command (Now handled in localeService) https://dev.sp-tarkov.com/SPT/Server/compare/master...3.9.0-DEV
  • Rewrote LocaleService.getPlatformForClientLocale() to not depend on serverSupportedLocales instead just use the tables for validity checking adab18e3fb
  • Extracted code into their own functions from generateBotsFirstTime() and returnSingleBotFromCache() 81c7b8751b ed6e81ab52
  • Added WebSocket handlers for new connections and messages received through the default EFT socket SPT/Server#339
  • Restructured Notification interfaces f147bb64eb
  • Removed docker files from server 493a54759b
  • Renamed SPT DLLs to improve consistency 5a828f9bb7 SPT/Modules#127 311acf54cd
  • Refactored 2 functions generateModsForWeapon() and chooseModToPutIntoSlot() to reduce their parameter count cd965bb733
  • Weapon generation now tracks if iron sights/optics were added, stored in IWeaponStats cd965bb733
  • Added getPmcNicknameOfMaxLength() to botHelper 4081508bf3
  • Moved difficulty-related into BotDifficultyHelper 6623a86d0f
  • Made typeBeingEdited property in addBotToEnemyList() optional 6623a86d0f
  • Added validateTraderStandingsAndPlayerLevelForProfile() to TraderHelper ef8307540b
  • Added disableLootOnBotTypes property to bot.json config to allow disabling loot on bots by their type 673256e5fa
  • Removed insuranceMultipler from config/insurance.json, no longer necessary 82c6add9ab
  • Updated _proto inside ITemplateItem to be nullable edbb6cec19
  • Added ItemType enum for _type property in ITemplateItem edbb6cec19
  • Enabled no implicit nulls in server and fixed various issues that arose aee391ec1d
  • Added getTrader() 7cdac4e38b
  • Added IHideout interface d6f7374a9a
  • Added ITemplates interface 3d4447c978
  • Expanded getItemName() to return short name when full name is not found b7a9296fac
  • Improved EventOutputHolder to store event data per sessionId to ensure cross-talk between multiple profiles does not occur 97efad0a79 a1955d4e7e
  • Renamed module class SptBotsPrePatcher.cs to SptPrePatcher.cs
  • Stored free daily quest resets in profile per-daily-type 7842167595
  • Updated various node packages dcf816702e
  • Introduced Set to speed up calls to isItemBlacklisted() 5b4b0c1471
  • Data from itemFilterService is cloned before being returned dde78b30eb
  • Updated getItemPrices() to return each traders next refresh timestamp aebe1ab606
  • Expanded GiftService to include methods to get gift by id / all gifts / all gift ids ca642b94a7
  • Added maxToSendPlayer property to IGiftsConfig
  • Added commandUseLimits dictionary property to ICoreConfig
  • Renamed timestampAccepted to timestampLastAccepted in ReceivedGift
  • Added current property to ReceivedGift (count of how many times gift has been given)
  • Added TraderHelper.getAccountTypeAdjustedTraderPurchaseLimit() to assist with working out correct value of traders upd.BuyRestrictionMax property when player is EoD/U f263f8b0cb
  • Added ARMOR_PLATE type to getItemSkillType() check f475d4f6f3
  • Refactored repeatableQuestRewardGenerator.generateReward() bb4bfc6dcb
  • Added craft count check to findAndAddHideoutProductionIdToProfile() ccb351a2dd
  • Added itemHelper.getItemFromPoolByTpl() and itemHelper.hasItemWithTpl() 3327bc916a
  • Added itemTpl enum edfe995c52
  • Added additional Skill enum values 01d3864105
  • Added additional event names to NotificationEventType e65b75261f
  • Fixed InventoryHelper.canPlaceItemInContainer() result being reversed

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: xMxXRZhzkB5KhMgjkkqBDA==

Thanks

Tyfon
Alex
paulov
DrakiaXYZ
Refringe
TheSparta
Kaeno
IsaacSin
nader
Valens
ShadowXtrex
Gyozone
vo1ter
Karthel
oidnacbdnjidbha
ClaudioIonck
SilverParsnip
zerowindy9406
bunray
clmove
Brollgarth
Priv_P
BlackDeathGER
openingspark860
Scuvy
TetrisGG
Rasdow
Bandit
rayleefx
matt5brasil
HalfPotato
Clownmaster1995
gamesensical

Don't miss a new build release

NewReleases is sending notifications on new releases.