This is just another catch for people trying to run outdated trader mods, will use default refresh time instead of returning null for the trader update seconds.
Lets users know in the console right off the bat that there's a problem with the trader
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/307
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
- Updates the Server project README to include additional information about installation, development, and contribuation guidelines.
- Moves the feature list to a dedicated FEATURE.md file (linked from the README.md).
- Reviewed the FEATURES.md file to clean it up a little bit.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/306
Co-authored-by: Refringe <me@refringe.com>
Co-committed-by: Refringe <me@refringe.com>
This change limits the number of Labs Access Cards that can spawn on on Glukhar and his guards to one. We had a report of three spawning on Glukhar, and two spawning on one of his guards, all in the same raid.
The handbookPriceRoubles member of base class NewItemDetails was never used to create the new item.
Co-authored-by: Refringe <me@refringe.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/301
Co-authored-by: micyael <micyael@noreply.dev.sp-tarkov.com>
Co-committed-by: micyael <micyael@noreply.dev.sp-tarkov.com>
Fixes a number of Biome linting issues:
- Variable implicitly has the any type.
- Use a function type instead of a call signature.
- Reassigning a function parameter is confusing.
- Suppression comment is not being used
This prevents weapons from getting the default mods for their base preset when they won't fit other required mods.
This was observed on the AK-74M, where the weapon generator would choose the VDM CS gas tube, which is incompatible with the default AK-74 polymer handguard (6P20 Sb.9).
When this occurs, the generator will bypass the default mod selection and instead choose from the loot pool assigned to the handguard in the bot configs.
https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/596
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/299
Co-authored-by: Brent <wiggyvidyadev@gmail.com>
Co-committed-by: Brent <wiggyvidyadev@gmail.com>
Also make `generateDynamicPrices` public to match the static method, and allow mods to refresh the cache
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/298
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
This is primarily to stop confusion when a user overwrites their `aki_data` folder with an old version, the data shown in logs/server console is now based on compile time data instead of runtime data.
- New build.json file added to the `obj/ide/` folder that gets populated with the build data on build
- Moved asset copying prior to packaging, so that `obj/ide/build.json` is available at package time
- Updated all references of core.commit, and core.buildTime to use globalThis
- Updated all references of core.akiVersion to use globalThis with a fallback if not found (When running in VSCode for example)
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/297
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Two lines changed - removed two sets of quotation marks for int-typed variables
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/296
Co-authored-by: haze <haze@noreply.dev.sp-tarkov.com>
Co-committed-by: haze <haze@noreply.dev.sp-tarkov.com>
Update missed property to use new IP config value
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/295
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Adds missing weapon and ammo types to enums for generated types.
Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/290
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
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
- Allow fixing the profile even if it has no items in the inventory
- Refactor weapon build fixing so we can re-use it for equipment builds, switch both to be a .filter() call
- Add magazine build fixing, also as a .filter() call
- For any fix that iterates over an array and splices, use Object.entries to create an in-place shallow copy of the array, so we don't skip entries
- Reverse the order of the removeOrphanedQuests loop so we don't skip entries
- Updates the tests for insuranceController methods for v3.8
- Updates the profileInsurance fixture with updated insurance packages for v3.8
- Updated the profileInsurance factory to remove outdated references as of v3.8
- Made the sessionId parameter for generateBotNickname optional and marked it as deprecated, to be removed in v3.9. It wasn't being used.
- Refactored the tests for the generateBotNickname method in the BotGenerator class. Mostly to bring it inline with v3.8 changes to the structure of botGenerationDetails.
- Removes unused code from getRepairableItemQualityValue in itemHelper
- Updated tests for getRepairableItemQualityValue to no longer assume a special calculation for armour
- Added tests for adoptOrphanedItems (moved from insuranceController)
This changes the `RagfairPriceService.getDynamicOfferPriceForOffer()` method to handle the logic surrounding collecting prices for items in offers, while offloading the individual price generation to a new method. The new method, `RagfairPriceService.getDynamicItemPrice()`, is responsible for generating a price for either an item template, or optionally an offerItems collection. This change also allows `getDynamicItemPrice()` to be used elsewhere in the code-base to gather more "realistic" pricing for specific item templates.
Fixes an edge-case where unreasonable prices would only be adjusted on the first item within an offer.
Includes some tests.
Related to #618. This will allow the insurance system to use this method to get better pricing for items.
This change was originally made in master branch, between the time v3.7.6 and v3.8.0 were released. Due to the way that v3.8.0 was merged into master, and the fact that this change was never merged into v3.8.0, it had to be cherry-picked and have some conflicts resolved. I gave it my best and I would love some help testing it before it's merged for v3.8.1.
Conflicts:
- project/package.json
- project/src/helpers/Dialogue/Commando/SptCommands/GiveSptCommand.ts
Resolved by Refringe <me@refringe.com>
Original PR: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/182
Original Commit: 9846adc68b
Original Message:
- Added give by name
- Refactored Commando so its abstracted, that way modders can use it too! :)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/182
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/283
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>