Commit Graph

1419 Commits

Author SHA1 Message Date
DrakiaXYZ d2e2f04c93 Merge 4.0.3 changes to main (#674)
* Fix exception sometimes thrown on save
- Switch back from File.Rename to File.Move, as Rename is throwing exceptions on some users systems

* Change BTR skin to tarcola during Christmas event

* Added comment

* Remove unused using

* Add wipe Response model

* formatting and add Wipe Endpoint to V2

* Format Style Fixes

* Merge pull request #669 from sp-tarkov/Assembly-ref-validation

Validate core assembly reference when loading mods

* removed zombies from customs and interchange + increased infection across other maps that have zombie kill quests

* Don't apply hostility changes to maps without zombies during halloween

`ReplaceBotHostiltiy` has optional map whitelist param

* Updated hostility values for maps with infection:
bosses = hostile to player not to pmc bots
followers = hostile to player not to pmc bots
pmcs = hostile to player + always hostile to scavs
scavs = hostile to player and pmc bots
raiders = hostile to player and pmc bots

Adjusted infection rates to just maps with zombie kill quests

* Format Style Fixes

* Added missing values for event bosses

* Format Style Fixes

* Added missing values for `ravangezryachiyevent`
Fixed preset typo `bossTagillaAgro`

* Format Style Fixes

* Flagged `Night of The Cult` as halloween quest

* Fixed incorrect logic

* Enabled `Night of The Cult` bosses to spawn

* Format Style Fixes

* Addd a new ReleaseCheckService to notify users of updates (#670)

* Addd a new ReleaseCheckService to notify users of updates
- Pulls the latest release from GitHub API to compare the tag against the users current SPT version
- Runs at the very end of the startup process to avoid being pushed off screen by mod logging
- Only notifies of patch version increments, not major or minor increments
- Links the release notes so users can Ctrl+Click to open directly to the upgrade page
- Is run on its own thread, and discards all errors, so as to not impact users without an internet connection or ability to access GitHub

* Formatting

* Use record for the ReleaseInformation class

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>

* ProfileDataService changes:

Added `ClearProfileData()`
Replaced filepath access with `Path.Combine`
Reduced various sources of duplication

* Adjusted `Goons` spawn chance to 20% across `Customs/Lighthouse/Woods/Shoreline`

* Account for compound items in DialogHelper.GetMessageItemContents

* Generate weapon/armor price based on the child item price total

* Added halloween event bosses to april event

* Flagged infected spawns as `ForceSpawn` and ``

* Add migration for invalid pockets

* Default assign IEnumerable

* Post raid effect fixes:
When exiting raid with severe muscle pain, prevent client instructing server to add mild muscle pain
When exiting a raid with effect that has a timer, decrease timer value by amount of time spent in raid

* Updated nuget packages

* Fixed player scav not having correct HP values on limbs #642

* Remove unused record

* Revert "Updated nuget packages"

This reverts commit f6d9d461a6.

* Added `IMP mine detector` to reward and flea blacklist

* Fixed weapon builds not overwriting existing #654

Cleaned up `SaveWeaponBuild` and `SaveEquipmentBuild`

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
Co-authored-by: CWX <CWXDEV@outlook.com>
Co-authored-by: sp-tarkov-bot <singleplayertarkov@gmail.com>
Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Co-authored-by: Tyfon <29051038+tyfon7@users.noreply.github.com>
Co-authored-by: Archangel <jesse@archangel.wtf>
2025-10-31 14:55:07 -07:00
DrakiaXYZ 60acb23d72 Move cooldown check inside the lock for better thread safety (#663)
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
2025-10-26 17:27:30 +00:00
DrakiaXYZ 4e73778920 Fix multiple backups running at once
- Backups now have a cooldown, default of 30 seconds
- Backups now have a lock, in the event of a TOC/TOU race condition, the lock will stop duplicate backups
2025-10-26 10:17:26 -07:00
sp-tarkov-bot aa3bda6578 Format Style Fixes 2025-10-26 08:50:45 +00:00
GrooveypenguinX 07aa4c8977 Implemented Modded Trader Customization Services (#660)
Co-authored-by: GrooveypenguinX <jakechase2110@gmail.comX>
Co-authored-by: Chomp <27521899+chompDev@users.noreply.github.com>
2025-10-26 08:49:39 +00:00
DrakiaXYZ d375879a3a Fix post-raid health (#661)
* Fix post-raid health
- Re-add death penalty for limbs
- Correctly set body part HP to 1 for cursed death only
- Use the server profile body part max HP for calculating penalties
- Never modify the body part max HP on the profile
- Remove ResetMaxLimbHp as it's unnecessary if we never update max HP elsewhere

* Formatting

* Remove unnecessary null coalescing

* Stupid formatting

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
2025-10-26 08:47:40 +00:00
DrakiaXYZ a524dc47dd Merge pull request #658 from DrakiaXYZ/fix-savecontention
Fix potential file access contention in SaveProfileAsync
2025-10-25 21:43:14 +00:00
Cj a608b33f38 Merge branch 'develop' into develop 2025-10-24 19:03:17 -04:00
Tyfon dae5da9399 Adjust when Dialogue.AttachmentsNew is changed 2025-10-24 15:48:00 -07:00
Chomp a46e26725f Hardened GetRandomizedResourceValue when GetPercentOfValuereturns values below 1 2025-10-24 21:59:04 +01:00
Chomp 7bf0ecc78e Remove eft version tag from watermark 2025-10-23 20:23:05 +01:00
sp-tarkov-bot 776f09c470 Format Style Fixes 2025-10-23 16:24:33 +00:00
Archangel 0038e19489 Add new migration 2025-10-23 18:23:19 +02:00
Chomp f702c4f85f Fixed AllExtracts json issue 2025-10-23 14:35:19 +01:00
Archangel f3b2af7ccc Remove dupe unused props 2025-10-23 08:06:32 +02:00
DrakiaXYZ 47089afdd1 Further attempt to resolve profile corruption issues (#650)
* Further attempt to resolve profile corruption issues
- FileUtil now uses File.Replace and does a sync flush
- Add restore capabilities to BackupService
- If loading a profile fails, attempt to restore from the most recent backup
- Trigger a backup creation on raid start, raid end, and game close
- Load profiles before starting the backupService to avoid backing up corrupt profiles

* - Switch async calls to .GetAwaiter().GetResult() for better exception handling

---------

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
2025-10-23 07:49:24 +02:00
Chomp 88e5e9e748 Improved error handling inside HandleMusclePain() 2025-10-21 19:01:24 +01:00
Chomp 813e00479d Validate filename is mongoId before we load it as profile #648 2025-10-21 16:52:23 +01:00
DrakiaXYZ aa8911f5aa Add sanity checks to CustomItemService's AddToLocaleDbs method 2025-10-20 12:17:50 -07:00
Chomp 94d2a8d233 Lock existence check to prevent bots being generated without loot 2025-10-20 17:34:06 +01:00
Chomp 97a41369d9 Improved comment 2025-10-20 15:37:24 +01:00
Chomp fd4d1583fd Merge branch 'develop' into disable-gc-requests 2025-10-20 11:59:57 +00:00
Chomp 9fa0c51cee Improved how offers are gathered prior to iteration 2025-10-20 12:59:28 +01:00
Chomp 8aa29bf22b Merge branch 'disable-gc-requests' of https://github.com/sp-tarkov/server-csharp into disable-gc-requests 2025-10-20 11:20:39 +01:00
Chomp af9160c94d Use specific exception 2025-10-20 11:20:14 +01:00
clodanSPT 18e6d9174b Merge branch 'develop' into disable-gc-requests 2025-10-20 12:15:16 +02:00
Chomp 353b8f54bb Added functionality to reduce non-damaged limb hp to 20% on pmc death when player is 'cursed' #640 2025-10-20 11:06:29 +01:00
Alex 3972e14840 Added NoGCRegion feature 2025-10-20 11:05:58 +01:00
Chomp dc2579c86d Skip init Offers as its immediately int on the line below 2025-10-20 09:56:32 +01:00
Cj f3f91e37b7 remove unused record 2025-10-20 04:22:49 -04:00
Alex f935eb82b9 Added setter to ExtensionData properties 2025-10-20 09:09:04 +01:00
ozen-m ab62b070a8 Fix insurance removes stored item and fix drawn element not being removed (#639)
* Exclude items stored inside root item (e.g. armored rigs) when processing regular items

* Remove draw element when whitelist is null

* Simplify null check
2025-10-19 20:23:31 -07:00
Cj 37c900c8aa Always overwrite locales instead of reporting an error if the key exists 2025-10-19 16:40:45 -04:00
Chomp 832e9e4b7c Generate item prices before generating offers that use price data - Fixes offers being generated using stale prices, then corrected once they expire and get regenerated #641 2025-10-19 21:37:21 +01:00
Cj fd47c47c3e Remove potential for deadlock in ProfileDataService 2025-10-19 01:13:46 -04:00
Cj 80b49eb077 Write profile data json indented 2025-10-19 00:28:45 -04:00
Cj 4f73860e66 Fix ProfileDataService adding the string to the cache instead of the object 2025-10-19 00:09:27 -04:00
DrakiaXYZ a5fe584cee - Pass through main exception on json deserialization failure
- Fix below to above
2025-10-18 11:13:10 -07:00
DrakiaXYZ 5a6f560736 Harden config loading against exceptions
- Extra files in the `config` folder are now skipped
- Exceptions deserializing now output what file failed and the exception more clearly
2025-10-18 11:07:07 -07:00
Yuri 954eee5251 Fix daily quest always generating one quest type on replace. 2025-10-18 04:09:00 -05:00
Chomp 4ce5512d7d Added BotConfig.ReplaceScavWith to allow adjustment of scavs into other bot types 2025-10-17 10:53:25 +01:00
Chomp 2604db86e6 Fixed nullref error in FixProfileBreakingInventoryItemIssues due to BSG typo 2025-10-17 09:05:09 +01:00
DrakiaXYZ a98a5ce8a1 Discard duplicate item locale entry instead of throwing an exception 2025-10-16 18:19:08 -07:00
Chomp e9a6b5953d Flagged BotLocationModifier.AdditionalHostilitySettings as nullable 2025-10-16 21:09:34 +01:00
Chomp b23832267c Fixed sort by name not working due to it being really slow #625 2025-10-16 18:23:26 +01:00
Chomp 13f370f0dc Fixed nullref inside GetItemMinAvgMaxFleaPriceValues 2025-10-16 16:29:47 +01:00
Chomp 697e07456d Persist PMC stats on prestige 2025-10-16 15:55:49 +01:00
Archangel 0e548aa080 UnmappedMemberHandling on debug builds only 2025-10-16 12:34:03 +02:00
DrakiaXYZ 2d0713d94e Offset PMC spawns to start of raid when using a simulated raid start 2025-10-15 18:15:28 -07:00
Chomp b15892b256 Fixed nullref inside ChargePlayerTaxFee #620 2025-10-15 20:29:02 +01:00