Level Rewards 1.1.0

Gives random rewards when leveling up.

This mod sends you random rewards when you level up and can be used with fresh or existing profiles. Items and amount of items are randomly picked based on the Trader and/or options you configure.

  • For SPT-AKI 3.7.1 : No support will be provided on previous versions.
  • If you are updating, remove all old versions of this mod first. Backup as needed.

Disclaimer

This mod makes a small modification to your profile(s) to track your level vs. last level. It does this by adding LevelRewards.LastLevel to your profile. While I have had zero issues while testing, it is always best to backup your profile if you have concerns. Alternatively, you can use the DontTouchMyProfile config option to write to a separate file (src/lastlevel/PROFILEID_NAME.json). If you use DontTouchMyProfile and later update SPT-AKI or Level Rewards, it would be up to you to also backup the file mentioned so you dont get flooded with rewards when migrating your profile to the new version. Just wanted to give everyone options.

This mod also runs on a the route of items/moving to check you level and give rewards. Moving items in your stash or buying something will trigger the route and the mod, thus giving your rewards. This is typically only an “issue” when skipping levels as you wont see the messages come through until you move/buy something.

Install

  • Extract/UnZip to folder in your SPT-AKI Directory
  • Configure the mod via Config (Default Config is: ENABLED)
  • Launch SPT-AKI

Support

  • For issues, errors or installation problems, please use the support thread. If the comments section is used for these, I will ignore it.

Version

  • 1.1.0 (SPT-AKI 3.7.1)
    • Code Overhaul
    • EnableSkipLevelRewards fix (missing levels). Read the updated config description for a better understanding of this feature.
    • Added LevelBasedRewards (WIP/BETA) Limited support if this is enabled until final version but I am open to suggestions on the balancing of the items. This takes play time to really test and when most of my time was spent on the coding, it’s tough for me to judge. Have at it.

Config

  • src/config/main.json
    • Mod is ENABLED by default. Recommended options are set by default.
    • Some options have changed, please review to ensure it fits your play style.
Option Values Description
LevelRewardsEnabled true false Enables/Disables mod
LevelBasedRewards true false Utilizes your level to determine what items are available to you. Does not work when LimitRewardsToTrader is enabled. This is a WIP and really just testing right now to see how it balances out.
EnableGiftItems true false Enables/Disables gift sets.
GiftItemChancePercentage number The percentage chance you will receive Gifts. Default is 10% of the time.
EnableSkipLevelRewards true false Enables/Disables rewards for any skipped levels. Mainly for migrating a profile that you never used with this mod and want the rewards from all previously gained levels. Also good for profile editor leveling on fresh profiles (Level 1) to gain rewards for each level skipped starting from level 1. ie. Level 1 manually edited to Level 20 profile will give 19 rewards. I recommend caution when using this depending on how high your level is as it will flood your messages and could cause issues or delays.
RandomTrader true false Enables/Disables Rewards sent from a random trader. System is default if set to false. Locked traders (Jaeger etc.) will be excluded until unlocked. If you have any custom traders the Enum must match base._id to work properly. This is dependent on the trader creator.
CustomTrader true false Enables CustomTraderId to be used if you have a specific Custom Trader that you want to give the rewards. Enum must match base._id to work properly. This is dependent on the trader creator.
CustomTraderId string Enter the Id of the Custom Trader to be used. Only works when CustomTrader is true. Enum must match base._id to work properly. This is dependent on the trader creator.
LimitRewardsToTrader true false If RandomTrader is true, and this option is also true it will limit the items you receive to the items that the selected Trader offers for sale at your current Loyalty level. Fence will be excluded from the trader list for RandomTrader if this is enabled.
RewardsFoundInRaid true false Enables/Disables reward items being marked as Found In Raid.
RewardTimeOutInDays number Sets the timeout in days for you receive the rewards from the trader once they have been sent. Default is 3. Only affects new messages and any current messages with rewards not claimed will have the original timeout if this is changed.
DontTouchMyProfile true false If enabled, it will not modify your profile to track your last level reward and instead write to a new file (src/lastlevel/PROFILEID_NAME.json). Enable this if you have any concerns about the mod touching your profile(s). If you used this mod Pre 1.0.2 it will also remove the original modifications to your profile from this mod. Toggling this on and off will revert the changes made for each option. See disclaimer above for more info.
RewardBlackList itemId[] If there are specifc items that you never want to be rewarded, enter the item ID in the list. Quest items, Golden Zibbo for example, are already excluded from rewards. EnableGiftItems is excluded from this option. Use the item finder to assist with finding the IDs of what you want to blacklist. https://db.sp-tarkov.com/search
LevelRewardsDebug true false Displays log messages in the server window for various functions.
  • src/config/rewards.json
Option Description
Base Do Not Change This!
Dialogue You can edit/make your own dialogue messages here if you want. I may decide to localize the messages for each language but is not a priority right now. If you want to contribute to this, let me know.
Chance These are the gift sets I worked with ShadowXtrex (Lone_Simon’s - Welcome Gifts) on. You can add your own if you want but no support will be provided if modified. These are only used when EnableGiftItems is true

Mod Compatibility

  • Custom Traders will need to have their ENUM and base.id match to be part of the RandomTrader or CustomTrader features. This is dependent on the Custom Trader creator, not LevelRewards. A good/correct example is Food&Drink trader by Revingly.
  • No known issues with other mods. If you experience any issues specifc to another mod, please let me know so I can address it.

Credits

  • ShadowXtrex for the collaboration on the Lone_Simon’s - Welcome Gifts re-release.
  • Everyone in the modding community who has helped me learn everything
  • SPT-AKI dev team for this amazing creation
  • Version 1.1.0

    1.1.0 (SPT-AKI 3.7.1)

    • Code Overhaul
    • EnableSkipLevelRewards fix (missing levels). Read the updated config description for a better understanding of this feature.
    • Added LevelBasedRewards (WIP/BETA) Limited support if this is enabled until final version but I am open to suggestions on the balancing of the items. This takes play time to really test and when most of my time was spent on the coding, it’s tough for me to judge. Have at it.
  • Version 1.0.8

    1.0.8 (SPT-AKI 3.7.1)

    • Ammo stack size fix + some more randomness to it.
  • Version 1.0.7

    1.0.7 (SPT-AKI 3.7.1)

    • Added GiftItemChancePercentage config option
    • Added Ammo stack size compatibility for SVM (and other mods that modify the stock ammo stack)
    • Added more trader dialogs
    • Removed LevelRewardsDebugProbability config (not needed anymore)
  • Version 1.0.6

    1.0.6 (SPT-AKI 3.6.1+)

    • Fixed an issue with Custom Traders throwing errors when their Enum is not set or doesn't match the trader base._id
  • Version 1.0.5

    1.0.5 (SPT-AKI 3.6.1+)

    • 3.6.1+ Only moving forward. Use 1.0.4 for older versions of SPT-AKI.
    • Rework of Random Trader assignment
    • Updated messages to new the mail service versus depreciated Dialogs. Allows for easier control of who the message comes from and future compatibility. By default, rewards will now come from the System using a generic level up messages. Use RandomTrader if you prefer custom messages from traders.
    • Added CustomTrader and CustomerTraderId config options.
    • Added RewardTimeoutInDays config option.
  • Version 1.0.4

    1.0.4 (SPT-AKI 3.5.5)

    • Minor changes & SPT-AKI 3.5.5 Compatibility


    Work In Progress (Pending 1.0.5)

    • Better way to select # of items to give (current range is inconsistent and could have odd results for LimitRewardsToTrader depending on your Loyalty level) WIP
  • Version 1.0.3

    1.0.3 (SPT-AKI 3.5.3)

    • LimitRewardsToTrader now builds the traders full guns properly
    • Added guns to be built vs. receiver only - 10% chance (excluding LimitRewardsToTrader and EnableGiftItems - These are always built.)
    • Added a few more dialogues
    • Code cleanup (ish)


    Work In Progress (Pending 1.0.4/5)

    • Better way to select # of items to give (current range is inconsistent and could have odd results for LimitRewardsToTrader depending on your Loyalty level) WIP
  • Version 1.0.2

    1.0.2 (SPT-AKI 3.5.3)

    • Added DontTouchMyProfle config option
    • Added RewardsFoundInRaid config option
    • Added RewardBlackList config option
    • Added LimitRewardsToTrader config option
      • The idea behind this is, if RandomTrader is disabled (false), Fence is the one sending you everything because he has access to everything available in Tarkov. If RandomTrader is enabled (true) this will also be true for all traders except if LimitRewardsToTrader is enabled (true), then the randomly picked trader will send rewards from their available items based on your Loyalty Level.


    Work In Progress (Pending 1.0.3/4)

    • Guns are not built and only the receiver is given. WIP
    • Better way to select # of items to give (current range is inconsistent and could have odd results for LimitRewardsToTrader depending on your Loyalty level) WIP
    • More dialogues for Traders WIP
  • Version 1.0.1

    Initial Build

  • 1.1.0 (SPT-AKI 3.7.1)

    • Code Overhaul
    • EnableSkipLevelRewards fix (missing levels). Read the updated config description for a better understanding of this feature.
    • Added LevelBasedRewards (WIP/BETA) Limited support if this is enabled until final version but I am open to suggestions on the balancing of the items. This takes play time to really test and when most of my time was spent on the coding, it’s tough for me to judge. Have at it.


    Use the support thread to report issues.

  • When it comes to ammo stacks, any chance to make them scale with custom values? Should be adjustable in config of course :) I kinda miss my 3000 bullets being rewarded


  • 1.0.8 (SPT-AKI 3.7.1)

    • Ammo stack size fix + some more randomness to it.



    Use the support thread to report issues.

  • So for some reason, modded ammo when gifted is in 0 stack

    0stackbruh.jpg?ex=654e5378&is=653bde78&hm=eeff6044b4dfe4514d82ab1e664abe17eef94a32f5b0d733730c60af0ab0447b&

  • Any chance u can fix reward in case of multiple level up as for XP Multipliers using SVM?

    • I am not sure what you mean. You'll get a reward every level up.

    • Not if u end up levelling up from say 1-4 then it only gives level 4 and skips 2 and 3.

    • Use the support thread and provide me your profile please.

  • i love this mod but it has a major balance issue for example when i hit rank 4 i got the 6Sh118 im not looking a gift house in the mouth but that seems a tad jank to me

    • Thank you for your thoughts. While I am working on limiting it to your level there is the option of using RandomTrader and LimitRewardsToTrader to keep the rewards limited to your loyalty level of the trader giving you the reward.

  • 1.0.7 (SPT-AKI 3.7.1)

    • Added GiftItemChancePercentage config option
    • Added Ammo stack size compatibility for SVM (and other mods that modify the stock ammo stack)
    • Added more trader dialogs
    • Removed LevelRewardsDebugProbability config (not needed anymore)



    Use the support thread to report issues.

  • Dragging items back into the reward stash glitches the game out.

    • Please use the support thread if you are having issues.

  • Any possibility to edit the chance % for gift weapons in config? I know the debug mode for 100% exists, but being able to set own % value would be nice. Atm, I took a look by myself in the function.js and had ChatGPT help me :S


    I have noticed increasing stack sizes with SVM affects the amount of ammo rewarded (kinda funny getting several stacks of 2500-3000 bullets)


    Regardless, nice mod :thumbup:^^

    • I do plan to make it a config option for 1.0.7. For the stack sizes, it does pull the max stack size to make stacks so if you use SVM it could get wonky as you said. Something I can look at.


      Thank you!

    • Thanks for the reply!

  • 1.0.6 (SPT-AKI 3.6.1+)

    • Fixed an issue with Custom Traders throwing errors when their Enum is not set or doesn't match the trader base._id
  • There is currently an issue with my mod and some custom traders. Refer to the support thread for more information. I am working on a fix and will update the mod soon.



    EDIT: This is resolved in 1.0.6

    Heart 1
  • Getting this error:

    TypeError: Cannot read properties of undefined (reading 'unlocked')

    TypeError: Cannot read properties of undefined (reading 'unlocked')

    at getRandomTrader (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\logic\functions.js:47:39)

    at Object.getRewards (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\logic\functions.js:195:26)

    at Rewards.runLevelRewardsLogic (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\logic\levelrewards.js:91:40)

    at Object.action (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\mod.js:27:59)

    at StaticRouterMod.handleStatic (C:\snapshot\project\src\di\Router.ts:51:61)

    at HttpRouter.handleRoute (C:\snapshot\project\src\routers\HttpRouter.ts:72:62)

    at HttpRouter.getResponse (C:\snapshot\project\src\routers\HttpRouter.ts:44:30)

    at AkiHttpListener.getResponse (C:\snapshot\project\src\servers\http\AkiHttpListener.ts:145:38)

    at IncomingMessage.<anonymous> (C:\snapshot\project\src\servers\http\AkiHttpListener.ts:52:43)

    at IncomingMessage.emit (node:events:513:28)

    TypeError: Cannot read properties of undefined (reading 'unlocked')

    TypeError: Cannot read properties of undefined (reading 'unlocked')

    at getRandomTrader (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\logic\functions.js:47:39)

    at Object.getRewards (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\logic\functions.js:195:26)

    at Rewards.runLevelRewardsLogic (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\logic\levelrewards.js:91:40)

    at Object.action (C:\Users\Admin\Desktop\SPT 3.7.1\user\mods\TorturedChunk-LevelRewards-1.0.5\src\mod.js:27:59)

    at StaticRouterMod.handleStatic (C:\snapshot\project\src\di\Router.ts:51:61)

    at HttpRouter.handleRoute (C:\snapshot\project\src\routers\HttpRouter.ts:72:62)

    at HttpRouter.getResponse (C:\snapshot\project\src\routers\HttpRouter.ts:44:30)

    at AkiHttpListener.getResponse (C:\snapshot\project\src\servers\http\AkiHttpListener.ts:145:38)

    at IncomingMessage.<anonymous> (C:\snapshot\project\src\servers\http\AkiHttpListener.ts:52:43)

    at IncomingMessage.emit (node:events:513:28)

    • Please use the support thread and I will help troubleshoot.

      Thumbs Up 1
    • Did you ever get a solution to your problem?


      I am having the same issue, Never had an issue with this mod until now

    • A permanent fix is in the works. For now, either remove my mod or custom traders. Update will be available soon.


      Refer to the support thread for more information.

    • The issue I had was with the zenitco mod, but if you dont have that mod, do what TC said. I didnt have to mess with my other traders when i removed the zenitco mod

    • i have that zenitco mod to, and have the same issue , im go delete it for now and wait for further updates

  • There doesn't appear to be any delay on the rewards it says 7 days delay but the mod give reward after reward and way too much stuff. I thought it would be cool to get a few items here and there but these kits are insanely too good.


    Anyway to delay the gifts and reduce the rewards?

    • There is no delay. When you level, you get a reward. You can choose when to accept them for up to the default time of 3 days (unless you configured different.)


      If you are using SkipLevelRewards then you can get flooded with rewards for every level before you installed the mod.

    • Nah it's every level the gifts are just a bit overwhelming. Especially the early start. I was hoping there was an option to reduce the gifts in some way.


      Is it intended to give you more than an airdrop crate worth of gear?

    • It's a random number of items. An option is to set EnableGiftItems to false in the config. This will remove the larger gifts from being rewarded.


      Future plans are to add an option to limit the items and rarity of items based on level.

  • This is an amazing mod. I love it.

    One small suggestion: Can u scale the rewards to the level? I've got that heavy and big tier 6 armor (6b something) as a level 2 or 3 reward :D

    • Thank you!


      That is something I want to do for future builds.

      Thumbs Up 1
  • 1.0.5 (SPT-AKI 3.6.1)

    • 3.6.1+ Only moving forward. Use 1.0.4 for older versions of SPT-AKI.
    • Rework of Random Trader assignment
    • Updated messages to new the mail service versus depreciated Dialogs. Allows for easier control of who the message comes from and future compatibility. By default, rewards will now come from the System using a generic level up messages. Use RandomTrader if you prefer custom messages from traders.
    • Added CustomTrader and CustomerTraderId config options.
    • Added RewardTimeoutInDays config option.
  • Doesn't seem to work for me for whatever reason, I checked the settings being enabled and all but I haven't received anything for 8 level-ups. MIght be a mod incompatibility or something.

    • Please use the support thread and provide your profile and I'll help you out.

  • Good mod! Didn't seem to get anything for level 28 or 30 though :( I was looking forward to the rewards

    • Did you update to the last version. Same happened to me after updating.

    • Did either of you use EnableSkipLevel or was this just through normal leveling?

    • Cant seem to replicate the issue. Make sure you have read the ReadMe file and then mod is enabled. If you still have issues, head to the support thread so I can help.


      https://ibb.co/cF3t3m1

  • is it possible to tweak the amount of stuff i get as a reward... just got a shit ton of thinks ^^

    • This is in the works but right now its between 5 and 12 items + if you have gift items enabled it will give you those. If you don't want as much, try making EnableGiftitems to false in the config.

      Thumbs Up 1
  • Thanks for writing a fun mod! Love those fun concepts that are critical for absolutely softcore player. Looks like the forum is pretty realism and hardcore smh...

    Heart 1
  • So what does donttouchmyprofile do in monke terms? Lol

    • Basically it stores your Last Level since rewards in a file within the mod folder. It's really just an option for those that don't want my mod adding the same thing, to the profile itself.


      Functionality is the same except that if it is on (true) then when you backup your profile to move to an updated SPT-AKI, you need to also backup and move the file it created.


      Easiest way I can explain it. If you aren't worried about all that, leave it false.

  • Interesting mod. Thanks!

    Heart 1
  • When I launch the server it says Mod is missing package.json in red did I mess up?

  • Reaching level 2, Mechanic gifted me a decked-out M1A, two 50-rounders for it, an Item Case, two ammo cases and some other random parts alongside it all.


    Enabling all options was the right choice. :thumbup:

    Heart 2
  • I'm new to modding. How exactly do I activate the mod? You mentioned that the mod is deactivated by default. So how do I activate it?


    Thanks

    • Go to user/mods and find the folder for the mod, find the config file and right click and open with notepad. Edit Enabled: from false to true then save the file.

      Thumbs Up 2
  • ohh this reminds me elder scrolls online, they had the same thing : )

    good one !

    Heart 2
  • I just wanna say thanks for incorporating something I've had in my head for the past couple of months. I've been far too lazy to make or even request this mod. <3 godspeed sir

    Heart 1