Vendor

Updated May 25, 2026

The Vendor system adds trading behavior to actors through AC_CH_Vendor. Vendors use the Inventory and Item Allocator systems for stock, item values, restocking, and trade-list setup.

For shared setup guidance, see the Migration Guide and Integration Guide. Use the System Atlas to look up functions, variables, events, components, and ownership references. Use this page for Vendor-specific component setup, pricing, and trade-list configuration.

Prerequisites

Read the Inventory documentation first so the container system is clear. Also read the Item Allocator documentation because vendors use AC_Item_Allocator for inventory generation and restocking behavior.

Related Videos

Some videos may have been recorded before V4. The same principles still apply, but asset names, component names, and folder locations may differ. Treat the current written documentation and V4 names as the source of truth.

  • Make your own loot chests and vendors
    Play
  • Confirmation Dialogue On Trades Devlog
    Play

AC_CH_Vendor

AC_CH_Vendor handles all trading functionality. Add this component to any actor that should behave as a vendor.

AC_CH_Vendor screenshot

SettingPurpose
Trade ListData table containing items for sale. It uses the same structure as Item Allocator loot tables.
Buy MultiplierPercentage of item value the vendor pays when buying from the player.
Sell MultiplierPercentage of item value the vendor charges when selling to the player.
Not Interested CategoriesCategory enum values the vendor will not purchase.
Currency ItemReference to the currency item in DT_Items.

AC_CH_Vendor screenshot

Currency and Pricing

When counting player currency, the vendor gets all items of the configured currency type, multiplies each stack amount by base value, and returns the total currency value.

Prices use this formula:

Price = Base Value * Multiplier * Quantity

TermSource
Base ValueItem value from DT_Items.
MultiplierBuy Multiplier or Sell Multiplier from AC_CH_Vendor.
QuantityNumber of items being traded.

Create a Basic Vendor

  1. Create a new Blueprint actor, such as BP_Vendor_General.
  2. Add a visual representation for the vendor, such as an NPC mesh or shop stall mesh.
  3. Add AC_Inventory.
  4. Add AC_Item_Allocator.
  5. Add AC_CH_Vendor.
  6. Create a trade-list data table using the loot/trade table struct, such as DT_TradeList_General.
  7. Add the items the vendor should sell.
  8. Assign the trade list to AC_CH_Vendor.
  9. Configure buy and sell multipliers.
  10. Optionally configure not-interested categories and restocking behavior.

Configure Trade List Items

For each item in the trade list:

  1. Add a row with the item name.
  2. Set the Item Row reference from DT_Items.
  3. Configure Loot Table Info.
  4. Set the chance of spawning in vendor inventory from 0.0 to 1.0, where 1.0 means always in stock.
  5. Set Minimal Amount to restock and Maximum Amount to restock.
  6. Set Maximum Stock.

Configure Pricing

Set base item values in DT_Items, then tune vendor multipliers on AC_CH_Vendor.

SetupBuy MultiplierSell MultiplierResult
Typical0.51.0Vendor pays half value and sells at full value.
Player-Friendly0.71.0Vendor pays more while keeping normal sell prices.
Challenging0.31.5Vendor pays less and sells above base value.

Optional Configuration

Not Interested Categories controls what the vendor refuses to buy. A general store can leave this empty. A weapon vendor might reject Consumables.

For restocking, enable Has Reallocation on AC_Item_Allocator and set Reallocation Time.