Programming Game

  • Game
  • Resources
  • Docs

Updates to trade mechanics, lots of bug fixes

August 16, 2025 - v0.3.0

Updates to trade mechanics, lots of bug fixes

Lots of client updates improving the api for trading and interacting with storage. New trade recipes, lots of bug fixes, some server performance improvements.

New Features

  • Added crafting recipes for copperSword, copperGreatSword, and copperShield
  • The trade object defined on players now automatically updates when they can no longer fulfill the trade.
    • This should trigger whenever you drop, buy, sell, respawn, use, eat, deposit, equip, or craft/setSpellStones.

Miscellaneous

  • Buying, selling, setting trade, and interacting with storage now consume your global cooldown.
    • To prevent abuse, only the players calling .buy and .sell will incur a global cooldown. Players buying/selling with other players via previous setTrade calls will not incur a global cooldown.
  • Eating now consumes the global cooldown, this happens even if you fail to eat.
  • Reduce trade (buy, sell, deposit, withdraw) range from 4 meters to 2 meters.
  • Reduce acceptQuest and turnInQuest range from 4 meters to 2 meters.
  • Imps now drop tatteredCottonCloth instead of tatteredLinenCloth.
  • Marked some internal testing items as deprecated, these will never be obtainable within the game.
  • Minor server performance improvements.

Breaking Changes

  • Updated buy and sell client api to accept a map of items that you want to buy/sell instead of the requiring an until field.
    • You can now buy (or sell) as many items as you want in a single transaction.
    • SellIntent and BuyIntent are also deprecated in favor of SellItemsIntent and BuyItemsIntent
  • use no longer takes an until parameter, the client will now keep track of this and send it to the server as needed.
  • eat no longer takes an until parameter, the client will now keep track of this and send it to the server as needed.
  • unit.trades.offers and unit.trades.wants are now deprecated in favor of unit.trades.buying and unit.trades.selling
    • The previous fields only allowed for prices, the new fields allow for both quantity and price.
    • The client/server api has been updated, older clients will default to a quantity of 1 for both buying and selling.
    • trades.offers and trades.wants will remain in the game for backwards compatibility reasons, but will be removed in the future.
  • cast, use, attack, and useWeaponSkill now take Unit based targets instead of id based targets.
  • drop now takes an object { item, amount }, previously took item, until.

Bug Fixes

  • Fixed an issue with item duplication related to buying from other players.
  • Fixed an issue where vendors would sell items for their sellToVendor price.
  • Fixed an issue where buy/sell would move a player closer to their target even if outside of vision range.
  • Fixed a bug where client would update inventory incorrectly when un-equipping items.
  • Fixed a bug where clients would misattribute updatedTrade events to themselves instead of the acting unit.
  • Fixed bugs related to quests misattributing events to the current player instead of the acting unit.
  • Fixed a bug where you could drop more items than you're holding.
  • Fixed a UI issue with turn in steps not rendering as completed.