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
andHustle
- Item/quest/trader icons are now stored separately from live inside the SPT folder (spt/user/sptAppData) SPT/Modules#133
- Added
TarkovTV
gift codesKILLA, 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 list885a2abcab
- Added tournament profile gift code. Send
- 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
- Utilized by
- Added system to set max level of a generated bot on a map
06b35ddde8
- Utilized by
sandbox
to prevent PMCs above level 20 appearing
- Utilized by
- Added
Unheard
profile preset0d00fb5370
- Added different redeem times for mail rewards based on profile type
597ea96f34
- Added support for
Mark of the Unheard
insurance return time buffbf528fd1de
- Added gift code
HIDEOUTCAT
, rewardsMr 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 whitelist7c1613c331
- Added
M48 Tactical Kukri
to PMC loot blacklist020c30d55b
- Added
Cultist top
to PMC clothing pool8f3a065e2d
- Added
masterMod (barrels/pistol grips/handguards/receivers)
item types to single stack only when listed on ragfair158258a398
- Added additional skills to
Commando
chat bot01d3864105
- Added menu during game load that displays bundle loading progress
d9747c16cc
- Added
Mr Kerman's cat hologram
to reward blacklist06cc13c941
- 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 20d6cd99b8ab
- Adjusted
sendInsuredItems()
to use the globals propertyInsurance.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 weightsb29d5f957d
- 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 profile5bd49ded59
- 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
- Gifts can be received multiple times (configurable)
- Updated
Revenge
values for botsdd8824a042
- 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
blacklist7891db84de
- Reduced occurrences when bots fly upwards on death
cd190061cf
- Updated
createRandomLoot()
to make use ofrewardItemBlacklist
blacklist7891db84de
- 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
- Fixed
drawAmmoTpl()
failures killing loot generation when cartridge data cannot be found insidestaticAmmoDist
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 inserts7dc17acb97
- Fixed issue with server failing to generate a green flare as its a weapon without a default preset
f581b8ff2a
- Fixed
PenetrationDamageMod
being a required propertyfcabd68dfc
- Fixed
swapItem()
not supporting scav items66cac910c3
- 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 theirOps-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 eventse505f86137
- Fixed
profileChangeEvent()
Skill
failing when invalid skill passed inaa03a002ed
- Fixed issue with
redeemProfileReward()
not correctly levelling up traders, causing player to only see level 1 trader items until a restartef8307540b
- Fixed
getLocalesGlobal()
not correctly falling back to English when desired locale not founde2dd677b40
- Fixed
Prapor
day 1/2 gifts not being sentca642b94a7
- Fixed PMCs not sending post-raid messages sometimes
2a9cbab762
- Added flea sorting by barter item
836910c1d5
- Fixed
EoD
PMCs not having theirmemberCategory
set to the correct valued315414136
- Fixed
Prapor
starting gifts not sending5d0cfd7971
- Fixed accepting/completing
Network Provider - Part 2
causing a server error836df0ce9d
- 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 toDatabaseServer
for accessing dbe78087818f
7cdac4e38b
584eade530
- Added ability to flag a profile template as flea banned via the
fleaBlockedDays
propertyca737d2f62
- Updated routers to be asynchronous
2172c29640
- Added support for new endpoint
client/game/mode
001def56a5
- Reworked bot generation to be asynchronous
2172c29640
- Added
locationSpecificPmcLevelOverride
topmc.json
- Added new
ICloner
interface to replacejsonUtil.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 onserverSupportedLocales
instead just use the tables for validity checkingadab18e3fb
- Extracted code into their own functions from
generateBotsFirstTime()
andreturnSingleBotFromCache()
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#127311acf54cd
- Refactored 2 functions
generateModsForWeapon()
andchooseModToPutIntoSlot()
to reduce their parameter countcd965bb733
- Weapon generation now tracks if iron sights/optics were added, stored in
IWeaponStats
cd965bb733
- Added
getPmcNicknameOfMaxLength()
tobotHelper
4081508bf3
- Moved difficulty-related into
BotDifficultyHelper
6623a86d0f
- Made
typeBeingEdited
property inaddBotToEnemyList()
optional6623a86d0f
- Added
validateTraderStandingsAndPlayerLevelForProfile()
toTraderHelper
ef8307540b
- Added
disableLootOnBotTypes
property tobot.json
config to allow disabling loot on bots by their type673256e5fa
- Removed
insuranceMultipler
fromconfig/insurance.json
, no longer necessary82c6add9ab
- Updated
_proto
insideITemplateItem
to be nullableedbb6cec19
- Added
ItemType
enum for_type
property inITemplateItem
edbb6cec19
- Enabled no implicit nulls in server and fixed various issues that arose
aee391ec1d
- Added
getTrader()
7cdac4e38b
- Added
IHideout
interfaced6f7374a9a
- Added
ITemplates
interface3d4447c978
- Expanded
getItemName()
to return short name when full name is not foundb7a9296fac
- Improved
EventOutputHolder
to store event data persessionId
to ensure cross-talk between multiple profiles does not occur97efad0a79
a1955d4e7e
- Renamed module class
SptBotsPrePatcher.cs
toSptPrePatcher.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 timestampaebe1ab606
- Expanded
GiftService
to include methods to get gift by id / all gifts / all gift idsca642b94a7
- Added
maxToSendPlayer
property toIGiftsConfig
- Added
commandUseLimits
dictionary property toICoreConfig
- Renamed
timestampAccepted
totimestampLastAccepted
inReceivedGift
- Added
current
property toReceivedGift
(count of how many times gift has been given) - Added
TraderHelper.getAccountTypeAdjustedTraderPurchaseLimit()
to assist with working out correct value of tradersupd.BuyRestrictionMax
property when player is EoD/Uf263f8b0cb
- Added ARMOR_PLATE type to getItemSkillType() check
f475d4f6f3
- Refactored
repeatableQuestRewardGenerator.generateReward()
bb4bfc6dcb
- Added craft count check to
findAndAddHideoutProductionIdToProfile()
ccb351a2dd
- Added
itemHelper.getItemFromPoolByTpl()
anditemHelper.hasItemWithTpl()
3327bc916a
- Added
itemTpl
enumedfe995c52
- Added additional
Skill
enum values01d3864105
- 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