Maintains a timestamp of when each profile was last active on the server.
Timestamp is refreshed on two events: `game/start and `game/keepalive`
Timestamp is used to determine if a profiles hideout should be processed. If a profile has a timestamp older than 90 minutes, it is not processed. (could be set lower but its a conservative value)
This has the side effects of not adjusting the `sptUpdateLastRunTimestamp` property, resulting in `saveProfile()` not running for every profile.
My testing shows a 20x perf increase for every profile in SPT not in use.
Service could likely be used in other scenarios to avoid doing unnecessary work
Original gift required a purchase, not a code, so code "KONTOROVICH" picked due to the author's name
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/263
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Fixes medical items not stacking correctly when there was multiple of the same item with different resource values
Added additional item types to be force-stacked
Added backpack item limit
Sligfhtly reduce item limit to account for items now stacking
This will need merged with: https://dev.sp-tarkov.com/SPT-AKI/Modules/pulls/90
Added
- IRelease interface
- betaDisclaimer: Beta text to be shown in the client
- betaDisclaimerTimeoutDelay: delay before the client exits if `OK` isnt pressed
- releaseSummary: a place to add release notes shown on first run, or if version has changed.
- new route for the client to request beta and changelog information
Im not the most familiar with the server, so if any of this needs moved to a different class or a new class made for it, ping me and let me know and I'll adjust it accordingly.
Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/249
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
Adjust code to filter out all wearable equipment that has slots
Add +1 to items that are always-stackable - ensures items that have no key in `itemStackSizeOverrideMinMax` get incremented
Addresses: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/443
Re-added the ability to keep pocket items on death. The reason for the naming is to not confuse the root `Pockets` item. Where as `PocketItems` is a better descriptive fit for the behaviour.
New property in lostondeath.json -> `equipment.PocketItems` default `true` to discard items in pockets as normal on death.
Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/246
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
In relation to this QoL issue: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/547
This PR allows us to prevent fence selling duplicate items by parentId.
It adds a new property to `trader.json` `fence.preventDuplicateOffersOfCategory` its an array that takes parentIds. The scope of this PR only extends to ammo and ammo boxes. It can be expanded upon in the future with no code changes should the need arise.
The reason for this change is because currently fence can have duplicate stacks of identical ammo with different prices, which makes no sense. If you have any questions feel free to ping me on discord.
Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/245
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
Added % chance to have loot to config
Added currency added weigfht system to config (only roubles by default)
Added allowed wallet types array to config
Added WZ wallet to pool of wallets to add money to
Fixed bug where itemCount type was incorrect
Allows modders to blacklist entire categories from ragfair in relation to https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/525
new properties under `RagfairConfig.dynamic.blacklist`
`enableCustomItemCategoryList` - this enables the custom custom category blacklist
`customItemCategoryList` - this is an array to take a list of parent id's
I tested it to confirm its working, will need some further testing.
Co-authored-by: Corey <dirtbikercj@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/244
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
Remove a tpl from loot pool once an item limit has been reached - prevents it being picked over and over
Remove loot data from pmc jsons as its generated dynamically, adding data into jsons now acts as an override for the dynamic generation
Reduced rouble max count to 1 for PMCs
Split PMC loot caches by side (usec/bear)
All loot is now weighted - weights come from offline-live bot dumps
Removed `lootNValue` - loot is no longer picked by its value
Regenerated bot loot files - i saw some additional weapons get added to scavs
Reduce key listing cap to 15k
lower key price the less uses it has
Increase current durability cap of armor to 50% from 1%
Reduce jewlery cap to 40k from 50k (removes gp coins and golden necklace)
Also move the relaxation key single spawn limit to Streets instead of shoreline
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/231
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>