File information

Last updated

Original upload

Created by

Deceptious

Uploaded by

deceptious

Virus scan

Safe to use

About this mod

Custom in-world vendor support via simple TweakDB/TweakXL records

Requirements
Permissions and credits
Changelogs
Donations
Basics:
Custom in-world vendor support via simple TweakDB/TweakXL records

Custom vendors features:
  • Customisable workspot - the animation/idle that the vendor has
  • Customisable character/appearance - who the NPC is and what they look like
  • Customisable vendor name - what they appear as when scanned and on their prompt
  • Customisable stock - can either be a list of items, or a predefined Vendor (either base game or modded)
  • Customisable map/minimap icon - 8 icons to choose from, with the option for none (AutoFixer has its own category in the map filter, not with the other vendors)
  • Customisable position/rotation - where in the world the NPC will be found
Vendor will look at the player when in close proximity to them, V has a voiceline for speaking to them the first time they approach them each time.
(VO has a shared distance based cooldown, so if multiple vendors are very close to each other you only say the line once until moving away from the first vendor you said it to)

How to "use" the mod?
[USER]
Simply have it installed, along with any mods* that use it!
There is no need to go anywhere or do anything else, ArchiveXL activates the vendor logic itself.
*This [VendorsXL] mod does not add any vendors itself!! It is for other modders to create/add new vendors for their mods/stores

How to "use" the mod? [MODDER]
Simply include with your mod a new tweak, based on the template, with a unique name and customised values
This can even be included in existing .yaml files.

The name of the tweak must be unique, but all the other values can be shared (try not to put your vendors on top of each other, though...)
Make sure your yaml file/folder is named such that it doesn't load before '##########VendorsXL' or your tweak won't load correctly.

Display Name can be any existing, or new, LocKey - but you would have to create the new LocKey yourself as part of your mod.
Workspot can be any workspot, but it is your responsibility to pick one that your character/entity supports. It doesn't have to be standing, either.
Entity and appearance can be any existing, or modded, entity and appearance - these values can be found in the same variables in existing Character records in the tweak database.
(Mod is only assumed to work with humanoid characters, non humanoids may not work - I couldnt get base game Brendan to work...)

See the files section for an optional zip containing the template (shown below) as well as an Example yaml with 3 vendors setup in it (these are setup in the carpark just outside the Stadium entrance)

The template, included in the mod files section:
Character.<your unique atelier/mod/id name>:
  $base: Character.vendorsxl_base
  #Entity and appearance setup for your vendor/npc [default is the Kabuki Gun Vendor]:
  appearanceName: None
  entityTemplatePath: base\open_world\characters\vendors\wat_kab_gun_trainer_01.ent
 
  #Naming [default is 'Vendor']:  
  displayName: LocKey#15525
 
  #Workspot file [default is standing using a tablet]:
  holocallInitializerPath: base\workspots\common\ground\generic__stand_ground_tablet__use__01.workspot
 
  #Location data [REQUIRED]
  bossHealthBarThresholds: [<x>, <y>, <z>, <i>, <j>, <k>, <r>]
#Position datax,   y,   z,
#and Rotation data (quaternions)        i,   j,   k,   r
#Example: [-1286.9, -1686.1, 44.2, 0.0, 0.0, -0.615, -0.787]
#CET Command to get these values where V is standing:
#print(GetPlayer():GetWorldPosition()) print(GetPlayer():GetWorldOrientation())
 
  #Your vendors items, edit and expand:
  items:
- Items.<first>
- Items.<second>
- Items.<third>
#Example: - Items.CasualShoes_07_rich_02
 
  #Existing Vendor ID; change if you wish to use an existing game vendor inventory, NOT your own.
  #Do not edit if using custom stock/items above.
  vendorID: Vendors.vendorxl_custom
 
  #Mappin icon on maps, default: Clothing
  forcedTBHZOffset: 1
  # 0: No mappin /  hidden
  # 1: Clothing
  # 2: Guns
  # 3: Food
  # 4: Bar
  # 5: Melee
  # 6: Medical
  # 7: Junk
  # 8: Netrunner
  # 9: AutoFixer


Ko-Fi link:
Really like my mod(s)?: Ko-Fi: Deceptious

Installation?
Simply unpack the main .zip file into the "Cyberpunk 2077" folder so that the .archive, and .archive.xl, files end up in the "Cyberpunk 2077\archive\pc\mod" folder.
This will result in the VendorsXL folder and contained file being in the "Cyberpunk 2077\r6\scripts" folder.
This will also result in the ##########VendorsXL folder and contained file being in the "Cyberpunk 2077\r6\tweaks" folder.
The #'s for the folder and file are important as certain tweaks defined in there MUST load before any other mods.

Requirements:
TweakXL, ArchiveXL, and Red4ext
Codeware and Redscript

Uninstall?
Simply delete the VendorsXL folders from the "Cyberpunk 2077\r6\tweaks" and "Cyberpunk 2077\r6\scripts" folders.
You can also delete the VendorsXL.archive.xl file from the "Cyberpunk 2077\archive\pc\mod" folder.
On its own the VendorsXL.archive file is totally begign, but removing it, once it is working in a save, might prevent the mod working properly on that save in future if reinstalled later.

Languages
All languages supported, the mod itself does not use custom text except for a single error popup that is hard coded and not part of the normal operation of the mod.

Compatibility risks:
None expected, all content is custom, no edits to existing files.
If the mod is wildly popular and lots of modders start to use it very quickly then it may run out of vendor clost (0.9.0 limited to 50), going over 50 will not break anything other than some vendors will not appear.
There is a warning included in the game that will popup if your game goes over 50, at which point I will have to expand it if I didn't already!

Issues/limitations:
0.9.0 limited to 50 vendors, I can/will expand this!
Installing new/different VendorXL vendors mods can change the order that they load in...
Which can mix up their inventories for this reason their inventory refresh is set to 1 in game hour. Using an existing vendor may change this back to something like 24h in game hours: If you see a vendor with the incorrect/unexpected inventory you can skip time for it to refresh and fix itself.
They can also mix up their workspot items, if you see such a vendor with the wrong item attached to a hand or something this will fix when you have left the area and they have respawned.
V's VO isn't feasible to customise, which is why I made it something generic, so it works for any store type.
NPC can't really be given any VO as their gender and entire character are both customisable

Bugs
If anyone finds any bugs beyond what's listed in in Issues/Limitations, please let me know!