Bronzeman Mode 1.1.2

Please do not ask when mod authors will update their mods to 3.9.X
Bothering mod authors will lead to warnings and repeat offenses will lead to eventual bans.

Challenge mode - Lock yourself out of purchasing any items from Traders/Flea until you extract them from a raid.

Tarkov Bronzeman mode

Inspired by Gudi's OSRS gamemode of the same name, Bronzeman mode is a gamemode that requires players to have "earned" an item through normal means before being able to purchase it.


Upon installing this mod you'll notice that the traders are no longer willing to sell you anything. Once you've successfully completed a raid you will "unlock" all of the items you've extracted with, and will now be able to purchase them from traders.

Configuration Options

  • `unlocks.raidRunThrough`, if true allows you to unlock items even if the raid was a "Run Through".
  • `unlocks.raidDeath`, if true allows you to unlock items even if you died/were MIA.
  • `unlocks.inventory`, if true will unlock any items already in your player inventory.
  • `unlocks.quests`, if true unlocks any items receieved as quest rewards.
  • `unlocks.foundInRaidOnly`, if true will only unlock "Found in raid" items. Affects both raids and inventory unlocks.
  • `hideItems`, if true will remove locked items from trader inventories, if false will set their stock to 0 instead.
  • `allTraders`, if true all traders (including those from mods) are affected, to configure only specific traders use the next option.
  • `traders`, a list of trader IDs to restrict. (Default traders can be found in Aki_DataServerdatabase raders)
  • `includeRagfair`, if true will also restrict the flea market/ragfair.
  • `ignoreItems`, items that can be purchased without being unlocked, useful for quest items i.e. the MS200 marker.
  • `requireUnlockComponents`, if true you'll have to have unlocked every item on a weapon, in a bag, etc. in order to purchase it.
  • `debug`, if true will display additional debug information in the AKI Server window and in `user/logs`
  • Version 1.1.2

    Fixes:

    • Set the amount of items in player made flea market offers to 0 for locked items
      • These offers can be filtered conveniently by setting Filters -> Quantity From to 1 or more in the flea market
    • Fixes as issue that where the mod would fail when handling the rewards from repeatable (daily/weekly) quests (thanks to frugyman)
    • Actually use the unlocks.inventory setting that was missed when porting to 1.0.0
  • Version 1.1.1

    Features:

    • Fixes an issue where the mod would attempt to unlock items from the inventory of a newly created profile before it was fully created
  • Version 1.1.0

    Features:

    • Introduce new `ignoreCategories` list of settings that make whole categories of items available without being unlocked.
  • Version 1.0.0

    Features:

    • Update to SPT AKI 3.8!
    • Complete rewrite from scratch to reflect the new standard for modding
    • Added `debug` option to print verbose logging, Please use this when reporting issues, issue template TBC
    • Flea market offers are now disabled instead of removed when the player hasn't unlocked them yet
  • Version 0.2.0

    Features:

    • Rewrite of the unlock config items, they're now held under `unlocks` for a bit of clarity. Docs have been updated to reflect this.
    • Add `unlocks.quests` to allow unlocking of items recieved as quest rewards
    • Add `unlocks.foundInRaidOnly` to restrict unlocking of items to those found in raid.
      • Note: `unlocks.raidRunThrough` is superseded by this, as any items from a runthrough are marked as not found in raid (unless changed by another mod)
    • Minor rewrites and logging changes.
  • Version 0.1.1

    Bugfix:

    • Fixed an issue trying to unlock items from a profile without any.
  • Version 0.1.0

    Features:

    • Add unlockFromInventory to automatically unlock any items in a players stash on startup/profile load.
    • Add hideItems to allow you to either hide locked items or set their trader stock to 0.
      • I've tried a few ways to also have "out of stock" trades on flea market/ragfair but it seems AKI stops generating new trades if the stock is set to 0.


  • Version 0.0.4

    Bugfix:

    • Fixed an issue saving unlocked items when leaving a raid.
  • Version 0.0.3

    Bugfix:

    • No longer crash when loading trades/offers if the account hasn't yet completed a raid.
  • Version 0.0.2

    Added additional logging:

    • Message on mod load

    [INFO] Loading: Bronzeman : v0.0.2

    • Message when removing trades from a trader

    [INFO] [bronzeman] Removing trades for trader 54cb50c76803fa8b248b4571

    [INFO] [bronzeman] Removed 123 locked trades

    • Message when removing offers from ragfair/flea market

    [INFO] [bronzeman] Removing flea market offers

    [INFO] [bronzeman] Removed 529 locked offers

  • Hello, I just wanted to know if this mod will be updated for 3.9.x or if anyone has a similar mod?

    • hi, i did a port for myself, it works with no problem for now. I upload it on monday.

    • thank you for your work and hope that everything works perfectly

    • But i have to learn how to upload it first :| , i thought there would be a file upload menu in my profile...

  • hi

    I would love to play with this mod for a hardcore run, is there a chance this will be updated for 3.9. I just finished my goal on 3.8 right before 3.9 rolled out.

  • Just came here to say that I love your mod! I use this mod alongside with Hardcore rules mod, without trades disabled.

    Also, I managed to find a way to get checkmarks for not yet unlocked items, utilizing the player flea wish list and MoreCheckmarks mod. I will try to that published somehow :)

    • that sounds interesting, perhaps you could share how you did it at least in the meantime?

    • Hey! Got your message on Discord, I think the wishlist idea is a great option. I did want to extend the MoreCheckmarks mod, but what you've done looks like a good alternative without having to dive into client mods (which I don't really have time to get back into atm).


      If you wanna Pull Request it into the GitHub repo I can have a look.

      Heart 1
  • Hi
    About a year ago I found your mod and I liked the idea.

    But since it was abandoned, I, inspired by it, began to study modding and created my own variation.

    Since then, I have been writing mods for SPT for myself and a small community of one assembly, and I finally decided to put them in the public domain.

    Do you mind if I post my version, citing your mod as the inspiration?

    • Hey-o, I know this was quite some time ago, but of course! I don't own the idea and any code I produce is going under Unlicense so it's free to use as anyone sees fit. Drop me a link if you do as I'd love to check it out.

  • This is a really cool idea, adding just one more way to feel like every raid is a step of progression further.


    One question though, is there any way to tell, while you're in a raid, if you've "catalogued" an item yet or not? I'd quickly lose track of what I have and haven't brought home in a mod like this.

    • Hi, unfortunately there isn't a way to keep track of that at this time. Since it's a server side mod there's limits on what can be achieved. I was thinking of doing something similar to the ItemInfo mod, where I could add an icon to the item name and/or some details in the description. Also potentially looking at making it compatible with the MoreCheckmarks mod to show on checkmark hover.


      For now though sadly no, hopefully I'll get some time to look at it in the future.

    • Thanks for the heads up, very understandable. I hope it does become more feasible to implement at some point but already a fantastic feature, cheers.

    • Could it be possible to make us have to examine an item we don't have unlocked, but after the raid ends, if you don't have the criteria to 'unlock' the item (like extracting with the item), then you have to re-examine the same item whenever you find it again. So the 'knowing' if an item is unlocked would be whether you have it examined forever.


      Sure, people would get a few experience re-examining an item, but I don't think it would be the end of the world.

  • Hey! I love the mod! Before your mod I needed to go in profile editor and unexamine every item one by one and just not buy those I didnt examine in raid. Only gripe I have is that it seems to not unlock item not fir (item looted from pmc) Is there a option to enable no fir item to unlock? Ive seen the unlock.raiddeath setting but im wondering if it just unlock item as soon you have them in your inventory? If so, I wont enable it. Unlock.inventory is enable. Thanks for your mod!

    • Hi, glad you like it! The setting you're looking for is unlocks.foundInRaidOnly - disabling that means any items (either already in your hideout inventory or extracted later) will be unlocked.

    • Bruh sorry for my dumb ass haha. Didnt see it when I looked up. Thank you for answering!!

  • I accepted a daily reward quest from peacekeaper, And suddenly I couldn't accept the reward, game bugged, so I had to Alt+F4. And this is what came up.


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

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

    at QuestHelper.getQuestRewardItems (C:\snapshot\src\helpers\QuestHelper.ts:388:36)

    at BronzemanQuestCallbacks.completeQuest (B:\spt 380 og\user\mods\kcy-bronzeman-1.1.1\src\mod.ts:357:40)

    at QuestItemEventRouter.handleItemEvent (C:\snapshot\src\routers\item_events\QuestItemEventRouter.ts:43:44)

    at ItemEventRouter.handleEvents (C:\snapshot\src\routers\ItemEventRouter.ts:42:29)

    at ItemEventCallbacks.handleEvents (C:\snapshot\src\callbacks\ItemEventCallbacks.ts:26:52)

    at RouteAction.action (C:\snapshot\src\routers\static\ItemEventStaticRouter.ts:16:52)

    at ItemEventStaticRouter.handleStatic (C:\snapshot\src\di\Router.ts:47:63)

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

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

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

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

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

    at QuestHelper.getQuestRewardItems (C:\snapshot\src\helpers\QuestHelper.ts:388:36)

    at BronzemanQuestCallbacks.completeQuest (B:\spt 380 og\user\mods\kcy-bronzeman-1.1.1\src\mod.ts:357:40)

    at QuestItemEventRouter.handleItemEvent (C:\snapshot\src\routers\item_events\QuestItemEventRouter.ts:43:44)

    at ItemEventRouter.handleEvents (C:\snapshot\src\routers\ItemEventRouter.ts:42:29)

    at ItemEventCallbacks.handleEvents (C:\snapshot\src\callbacks\ItemEventCallbacks.ts:26:52)

    at RouteAction.action (C:\snapshot\src\routers\static\ItemEventStaticRouter.ts:16:52)

    at ItemEventStaticRouter.handleStatic (C:\snapshot\src\di\Router.ts:47:63)

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

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

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

    • might be also the fact that Im running a LOT of mods too xD

    • Hi, there is a bug with repeatable quest handling. I'm looking into it and should have a new version up today. Thanks for the report

    • Fixed in v1.1.2, thanks again

    • Thanks to you! Also, I appreciate the credit for finding that bug, make me feels it was all worth it since that update was quite fast xD


      Edit: Oh snap! That was one thing I forgot to mentionà


      ''Set the amount of items in player made flea market offers to 0 for locked items''

      • These offers can be filtered conveniently by setting Filters -> Quantity to 1 or more in the flea market

      Good thing to see that here now! This mod is going to be great already in a few update with finding/fixing bug. Keep up the good work!

  • not sure if its relevant or not but since i added your mod to my collection of 81 mods including yours my game seems to lock up/freeze for a few seconds every now and then.

    • Hi, are you doing anything specific when these freezes happen? The mod should only be processing when doing the following actions:

      • Once when opening Tarkov (unless unlocks.inventory is false)
      • When loading/refreshing a trader (if the trader is in the traders list or allTraders is true)
      • When opening/searching the flea market (unless includeRagfair is false)
      • When accepting a quest reward (unless unlocks.quests is false)
      • When leaving a raid

      Does is sound like it's happening around these times, or just randomly?

    • from what iv seen it happens when looting items iv also noticed that it's not unlocking the items after iv looted them and got out of raid

    • If you set the `debug` config option the mod will explain after raid why certain items are/aren't. Details will appear in the SPT AKI server window and the log file. If that doesn't explain it if you send me your server log after a session with what items you were expecting and what mods you've got I'll take a look.


      As far as lag when looting items, assuming you mean in-raid the mod won't be active so I'd look elsewhere 8o

      Heart 1
  • so this might be on my part as i'm running 81 mods including this one but it'll allow you to put what bronzeman conflicts with


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

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

    at BronzemanMod.checkInventory (N:\3.8.0\user\mods\kcy-bronzeman-1.0.0\src\mod.ts:295:68)

    at BronzemanMod.initPlayer (N:\3.8.0\user\mods\kcy-bronzeman-1.0.0\src\mod.ts:259:14)

    at GameController.result.gameStart (N:\3.8.0\user\mods\kcy-bronzeman-1.0.0\src\mod.ts:58:31)

    at GameController.result.gameStart (N:\3.8.0\user\mods\RaidOverhaul\src\Refs\Utils.ts:365:35)

    at GameController.gameStart (N:\3.8.0\user\mods\WTT-PackNStrap\src\mod.ts:125:35)

    at GameCallbacks.gameStart (C:\snapshot\src\callbacks\GameCallbacks.ts:62:29)

    at RouteAction.action (C:\snapshot\src\routers\static\GameStaticRouter.ts:36:43)

    at GameStaticRouter.handleStatic (C:\snapshot\src\di\Router.ts:47:63)

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

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

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

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

    at BronzemanMod.checkInventory (N:\3.8.0\user\mods\kcy-bronzeman-1.0.0\src\mod.ts:295:68)

    at BronzemanMod.initPlayer (N:\3.8.0\user\mods\kcy-bronzeman-1.0.0\src\mod.ts:259:14)

    at GameController.result.gameStart (N:\3.8.0\user\mods\kcy-bronzeman-1.0.0\src\mod.ts:58:31)

    at GameController.result.gameStart (N:\3.8.0\user\mods\RaidOverhaul\src\Refs\Utils.ts:365:35)

    at GameController.gameStart (N:\3.8.0\user\mods\WTT-PackNStrap\src\mod.ts:125:35)

    at GameCallbacks.gameStart (C:\snapshot\src\callbacks\GameCallbacks.ts:62:29)

    at RouteAction.action (C:\snapshot\src\routers\static\GameStaticRouter.ts:36:43)

    at GameStaticRouter.handleStatic (C:\snapshot\src\di\Router.ts:47:63)

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

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

    • Hi, this looks to be an issue with loading the mod on a fresh profile. I've created an updated version with a fix (1.1.1) and tested it, thanks for letting me know!

      Heart 1
    • appreciate the speedy fix! can't wait to see what other mods you'll make in the future! <3

  • oh yeah it's back!

    Heart 1
  • Ammo packs that are bought cannot be unloaded. Also should have an option to allow ammunition in general to be bought from traders.

    • Hi, this mod shouldn't have any effect on the ability to unload ammo packs. I've loaded up a test profile and confirmed no issue on my end. If possible could you upload your server log (Tarkov Folder/user/logs/server-TODAYS_DATE.log)? I'll be happy to take a look once I'm off work.


      You can currently allow individual items by adding them to the `ignoreItems` list in the config.json file of this mod (by ID, use https://db.sp-tarkov.com/ to look up IDs). I do plan on adding the ability to add whole categories to a similar list soon.

    • Thanks for the new update allowing categories to be whitelisted. Not sure about the ammo pack issue, it disappeared after restart.

  • the concept of this mod is great, you should really consider updating it to the latest version or maybe if you don't have time let someone else manage the mod until you can do it yourself again

  • Any plans on updating this mod to 2.0?

    • I submitted an update to the mod author on Github because I really wanted to try this mod, haha.

      I'm not sure how active they are here right now, but if you don't want to wait you can download the mod with the fix applied from here: Github


      Just click the green "Code" button then download zip.

    • Thank you so much ! <3

    • Notloc's update seems to still be working as of 2.1.2, although quests are no longer updated instantly once you turn them in. It takes a client restart to show the updated trader rep and allow you to see the next quest to accept.

  • Can you add parent id's into the ignoreItems section? For example, I would like it to ignore ALL keys or ALL containers.

  • How does this mod treat rewards from quests? Do you still have to find another copy in raid?

    • Hey, so currently the mod won't unlock those no. It should unlock everything in your inventory on startup. I'll take a look at having it unlock items from other means (quests, hideout, etc.) and maybe add some config for how to unlock. I'm think for a more "hardcore" experience it may be a good idea to unlock from FIR items only as well.

    • Hey again, just letting you know that I've just added version 0.2.0 which adds unlocking of quest rewards, as well as limiting for found in raid items only for that additional challenge.

    • Oh wow. That is awesome! Thanks!

      Like 1
  • I dont mean to be an annoyance but could you package the files in a child of the zip instead of themselves being children? Other than that small gripe loving what you've done.

    • Hey there, just to clarify do you mean having the files within a folder in the zip? i.e. `aki-bronzeman.0.1.1.zip/package.json` would become `aki-bronzeman.0.1.1.zip/aki-bronzeman/package.json` .


      Makes sense to me as I'm pretty sure the other mods I've downloaded are that way, I'll upload future versions in that format.

    • Yes you are exactly right, it honestly doesn't matter too much its just nice to have. Also prevents anyone from having to find the files they just unzipped and delete/put them in a folder of their own.

      Like 1
  • Hey friend :)


    0,0,4 was working beautifully, but now with your latest version im getting this error:


    Thanks 1
    • Huh, guess you've got a player profile that has no items array in it. I'll make the whole check optional, cheers again for the point out!


      Edit: Should be fixed with 0.1.1, I tested on a profile by deleting the items array from it's JSON.

      Thanks 1
    • That was it, man! Sorry for the hard work. ;)


      Amazingly fun mod btw. Loving it so far.

  • Hi! Loving the idea of this mod. I have the config set that it's using the traders as a whitelist which is empty and only filtering the flea market. Seems like that's working fine. Fresh EOD account, no raids run yet.


    Finished a quick raid to test if it unlocked flea market items I extracted with, and I got a lockup on the black screen before the post-raid screen after extracting.


    Code
    TypeError: profile.bronzemanItems.contains is not a function
        at Object.saveRaidProgress [as Bronzeman] (A:\Games\SPT\client_0.12.11.0.13284\user\mods\aki-bronzeman\package.js:37:65)
        at Function.getResponse (A:\Games\SPT\client_0.12.11.0.13284\obj\bundle.js:55991:57)
        at Function.sendResponse (A:\Games\SPT\client_0.12.11.0.13284\obj\bundle.js:56231:29)
        at Inflate.cb (A:\Games\SPT\client_0.12.11.0.13284\obj\bundle.js:56291:22)
        at Inflate.zlibBufferOnEnd (zlib.js:153:10)
        at Inflate.emit (events.js:315:20)
        at endReadableNT (internal/streams/readable.js:1327:12)
        at processTicksAndRejections (internal/process/task_queues.js:80:21)


    I'm using AKI version 2.0.0 R6, so it could definitely be a compatibility thing if you don't see this on your end, just wanted to let you know that this might be an issue in the upcoming version!


    Super awesome concept, definitely will use as soon as it's all compatible and good to go!

    • Hey! Glad to hear you like the idea. Apologies for that, I'll have a fix up for it in a moment, just want to test all the functionality on a fresh account on my end.


      Edit: Should be fixed now in 0.0.4

  • Hey man, love the idea.


    But I don't think it's working. When I add the mod and buy something from traders, they are still allowing me.


    It's not even showing up on console as being loaded. All my other mods load fine.


    ┌──────────────────────────────────┐

    │ SPT-AKI 1.6.0 │

    https://www.guilded.gg/senkospub

    │ │

    │ This work is free of charge │

    │ Commercial use is prohibited │

    └──────────────────────────────────┘

    Server: executing startup callbacks...

    [INFO] Importing database...

    ModLoader: loading mods...

    [INFO] Loading: basuro-zerotimes

    [INFO] Loading: AllMissingKeys : 2.3.1

    [INFO] Loading: Lua-FixInsuranceRemove For 1.6.0

    [INFO] Senko-FixItemSell For 1.6.0

    [INFO] Loading: VeryGery-SellToFleaMarket

    [SUCCESS] Started webserver at https://127.0.0.1:443

    [SUCCESS] Started websocket at wss://127.0.0.1:443

    [ERROR] TarkovMarket: Failed to update prices. Trying again in 1 minute

    Generator: 57.565 fuel left on tank slot 1

    [DEBUG] Saved profiles

    [DEBUG] Saved profiles

    • Hey, glad you like the concept and sorry to hear it's not working.


      I'll take a look just now as I'm guessing it's a conflict with one of the other mods. If you fancy trying to figure it out on a fresh account and adding your mods in one by one that could be a great help.

    • Hi again. I've added a new version of the mod with some additional logging. I'd unintentionally removed the "loading" message when I was tidying up the code for release.


      I'm still going to try out your mods but do let me know if you're still having issues.


      Edit: Tested with the following mods that I spied from your list and it's working on my end:

      • VeryGery-SellToFleaMarket (3.2.0)
      • Senko-FixItemSell (1.0.0)
      • Ereshkigal-AllMissingKeys (2.3.1)
      • basuro-zerotimes (1.0.1)
      • Lua-FixInsuranceRemove (1.0)
    • Hm, now I'm getting this error message when opening any trader:


      [INFO] [bronzeman] Removing trades for trader 5ac3b934156ae10c4430e83c

      [ERROR] Trace:

      TypeError: Cannot read property 'includes' of undefined

      at Object.getTraderAssort [as Bronzeman] (F:\Games\speftmods\aki-bronzeman-0.0.2\package.js:64:41)

      at Function.getResponse (F:\Games\eft_BE_2.0.0\obj\bundle.js:56002:62)

      at Function.sendResponse (F:\Games\eft_BE_2.0.0\obj\bundle.js:56231:29)

      at Inflate.cb (F:\Games\eft_BE_2.0.0\obj\bundle.js:56266:22)

      at Inflate.zlibBufferOnEnd (zlib.js:153:10)

      at Inflate.emit (events.js:315:20)

      at endReadableNT (internal/streams/readable.js:1327:12)

      at processTicksAndRejections (internal/process/task_queues.js:80:21)

      [ce57de797e468c0c9be0d7e2][127.0.0.1] /launcher/profile/info

      [DEBUG] Saved profiles

    • Bugger, I see why that is. If you want a quick fix just complete any raid, I'll fix the bug on my end just now. Appreciate the assistance :)


      Edit: Fixed in 0.0.3

      Thanks 1
  • Damn, that's a really cool idea!

    • Thanks! ^^