Trader Overhaul
The previous trader updates changed the way you contact and summon traders, and this update finally changes who the traders are, and what they trade. We've done a complete overhaul on how the traders and their wares are defined. Previously, traders and their goods and prices were programmatically generated, but this is now all hand authored. These changes were all designed with mod support in mind, and modders can create new unique traders easily.
Traders now, in general, only trade more basic items rather than fully manufactured goods. They also don't buy and sell the same things, but rather they will buy items that make thematic sense. For example, the alloy trader sells alloys but wants to buy ores. Traders will also occasionally want to sell or buy special items.
New Trader Types
There are currently 5 unique traders, each buying and selling their own unique set of goods. Higher Tier versions of the traders will trade a wider variety of items.
They are:
- Ore Trader: More Ore Less
- Alloy Trader: All Alloys
- Hydroponics Trader: Green Futures
- Gas Trader: Gas For Less
- Construction Trader: Build INC
Gas Trading
With two new landing pad modules you can now load gas and water into your landing pad storage allowing you to sell it to the traders. Hovering over the gas icon will display a tooltip letting you know the exact conditions of the gas mixture that the trader will accept.
The landing pad has a single storage atmosphere. The capacity of this storage atmosphere is expandable but is not intended as long term storage and you will need to purge it before loading in a new gas mix to sell, otherwise it will mix with the existing one.
New Trader UI
Since the traders are more bespoke and sell a more well defined set of goods a new UI was required to display this information in a better way. The UI is designed to provide a better trading experience. The buy and sell sections are separated into their own tabs, and each trade item is made larger and easier to parse.
How you complete trades has changed as well, previously you would select everything you wish to buy and sell and then submit your trade. Now you simply buy and sell as you go for each item.
What's Next?
We have one more trading update to come. In the next update you'll see us leveraging all the features and improvements we've made in the last four updates to finalize and polish the trading game loop. Traders with different size and environmental requirements will require you to set up your landing pad in different ways and encourage you to have multiple landing pads that meet these different requirements.
Your support makes this possible
Over the last year, we’ve completely refactored the net code making multiplayer more stable, we’re continuing to improve the connectivity, and we’ve improved some big systems to allow us to bring you better content and new game loops. All this while transitioning to a weekly update cycle.
All the community support, feedback, and involvement have made this possible. So thank you!
If you like the progress we have made, please consider taking a moment to leave a positive review. This makes a huge difference to the project. We've been working hard for the last five years, and feel confident the game has substantially improved over this time. Many projects steer clear of the hard tasks, and we are proud to have taken them on.
Additionally, you can support us by purchasing DLC that we've made to allow those who enjoy the game to support us, and in return get something a little fun to use in-game.
https://store.steampowered.com/app/2089290/Stationeers_Human_Cosmetics_Pack/
https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/
https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/
Change Log v0.2.3809.18408
- Fixed Re-generating trader data during load could cause a ReferenceId clash. This step has been moved to after load is completed.
- Changed Moved re-registration step of loaded items that had a ReferenceId clash to after save has fully loaded.
- Fixed Calling a trader into land will stall and error out the interrogation of another trader. Thanks: Freeze (discord).
- Removed Debug logging on TraderShuttle.cs
- Changed TraderData hashing algorithm to be more robust.
- Added x100 mole to the custom names of all gas trades that deal with a modified quantity of 100
- Fixed mouse clicks not responding correctly on some objects after departing trader. Mouse state should now be reset correctly when closing trader window.
- Fixed added missing custom thumbnails for some sell data instances on trader ui
- Fixed Collision error on trader data Checksum.
- Fixed Null error on loading Motherboard.
- Fixed Refrigerated Vending Machine throws error when stacking plants.
- Fixed Refrigerated Vending machine not handling genetics data correctly when stacking or splitting stacks of plants.
- Fixed Incorrect material on Large Hanger Door buildstate0.
- Fixed NRE when getting custom colored thumbnails
- Fixed bug around selling consumables
- Changed thermal plants to require T3 trader, and only have a chance to appear
- Added SunPathTraceWorldAtmos bool in LightManager.
- Added Support for traders to sell items with Custom Names and Custom Colors.
- Fixed Gas trader sells bottled water in liquid canister (was previously selling it in gas canister).
- Added CustomColor and CustomName Implementation for TradableItem.
- Fixed water bottles not correctly watering plants
- Added missing item types for some trader data
- Added Liquid input piece to landingpad kit.
- Fixed SelectData not initialising on trader buys.
- Fixed sell quantities of steam for gas trader.
- Fixed ItemHydroponicTray kit has null entry.
- Added missing gamestring and fixed some missing icons on trade items
- Added CustomToolTipKey attribute to override tooltips on trade items when desired
- Added more generic consumable buys to various traders
- Added more flavour item requests from various traders
- Added trader console command for regenerating trader contacts
- Added mixed gas icon
- Fixed bug where bought stackables would not spawn with the correct stack size
- Added TradeResultMessageFromServer to allowed to process list for clients.
- Changed TradeQuantityAction now only executes on consumables that are not ingots. quantity actions on ingots and stackables will be handled elsewhere.
- Created random gas icon
- Added Checksum validation for traderData when generating traders from seed when loading or joining. On validation fail when loading the trader data will be regenerated. On Validation fail on join the client will disconnect.
- Added thumbnails for gas trades
- Fixed some trade items not having names
- Removed some unneeded validation code
- Made the child item condition tooltip use the prefab display name
- Added reagent tooltip changes to autogeneration in worldmanager
- Added GameStrings for TraderCanvas.
- Added If the base data of a saved trader has changed, that traders inventory will be regenerated. This is required to happen as trader inventory is generated from a seed and presumed to be determinative when loading and joining.
- Added GameStrings for new trading UI.
- Allowed for the selling of gas in bulk amounts
- Tweaking tradeables data to fix reagent selling
- Added code support for excluding items from a trader inventory based on trader tier.
- Added Verification step when loading serialized trader data that doesn't match current Trader data.
- changed remaining gas buys to be 100 mole increments
- changed ore trader extra purchases
- changed some xml whitespace issues
- Disabled buy button when you have insufficient credits
- Fixed condition tooltips not including child conditions
- Fixed tooltips not showing for reagents
- Added Serialization for traderDataInstances. Traders saved prior to this version will be regenerated with new a traderDataInstance on load.
- Fixed issue where items in a select weren't being initialised properly
- Added ability to repair AimEE (mining robot). For now using Duct Tape (requested credit: Keramane via steam).
- Added ability to deconstruct AimEE (mining robot) into its source kit using a drill (requested credit: Keramane via steam).
- Added Networking Calls for clients buying and selling to trader.
- Added GetQuantity on GasMixture returns totalMoles.
- Fixed error in TraderData Write() method.
- Added hydroponics trader buying produce.
- Reduced trader name pools to a single entry each
- standardized seed kit names
- Fixed trader ui tooltips not taking into account actions/conditions on BuyItem/SellItem
- Fixed actions on SellItem not being processed on trade completion
- Made refreshing the trader ui not zero out buy/sell amounts
- Refreshing trader ui will now not recreate all the items
- Added Handling for clients to request a buy or sell from a trader.
- Fixed Tablet showing incorrect energy radiated and convected values for pipe networks. Thanks Freeze, Discord.
- Made tooltip wording a little nicer on trader ui
- Added Implemented Ireferencable on TraderDataInstance and TransactionDataInstance.
- Changed refactored buyItem and SellItem methods to prepare for server-side logic.
- added construction trader alloy purchases
- Fixed Error when removing an element from a landingPad network.
- Changed If a landingPad network is saved without an atmosphere the game will create a new one for it on load and print an Action message in the console.
- further addition of new trader data, mainly Gas, Hyrdroponics, and construction.
- Added processing overlay when trade is waiting for atmosphere changes to propagate
- Added TraderData now syncing to Clients.
- Added TraderDataInstance generation now deterministic via seed.
- Fixed Error when creating new custom world (beta only).
- Fixed Entities not using the internal atmosphere of the new cryotubes when inside them.
- New trader ui will now appear when talking to trader
- Stationpedia links now correctly added to trade items
- Removed deprecated trading systems code.
- Removed Reference to old trading panel in scene.
- Added Read and Write methods for TraderDataInstance.
- Added error popups on trader UI for a few edge case scenarios
- Added tooltips to trader UI
- added some ore and alloy trader first pass values
- Fixed World Conditions now prevent a traderData from adding a buy or sell to a trader instance if the world condition is not met.
- Changed Syntax of WorldCondition Data.
- Added Generic Buy and Sell data can now be added at the game data level.
- Added A buy or sell data can be referenced in the trader data by a unique Id so as to avoid duplicate data across traders.
- Added Tier requirement of a transactionData can be added as an attribute.
- Added more functionality to trader UI to support buying and selling of different types of items
- Added liquid input module for landing pad
- Added gas input module for landing pad
- Added error print when TradableItem name is not a valid prefab.
- Fixed SleeperLeft and SleeperRight not using correct atmosphere for player breathing. They were using the external atmosphere instead of the sleeper internal atmosphere.
- Added Chance Element to TransactionData.
- Allow for player to buy gas from trader, gas will now be created correctly in landing pad gas storage
- Fixed mouse not unlocking when closing trader ui
- Added Explicit logic for applying a gasMix trade action.
- Added Todo notes to TradeDataHelper.
- Updated Reagents.cs
- Fixed spelling error in tradeables.xml
- Changed Reagents now authored as xml attributes for ReagentAction.
- Added behaviour to Execute functions for existing trade actions.
- Added OnSold() method to SellDataInstance. This should be called for each ITradable that is created when sold by the trader.
- Updated Reagents.cs generation script and regenerated reagents.cs
- Added sold out overlay to trader ui
- Fixed Item TradeCondition did not support multiple nested Items.
- Added HasChildItem returns a reference to the found item as ITradable.
- Connecting trader UI to back end plus a few small NRE fixes
- Fixed Error on game launch.
- Fixed SellDataInstance still using list of items.
- Changed IQuantity to Inherit from ITradable.
- Added methods for checking whether an iTradable meets buy conditions.
- Changed a traders buy or sell can now only contain one discrete item nested items are still supported.
- Small clean up trader contact code
- Implemented ITradable on Item & GasMixture.
- Added Methods to Evaluate a gasMix and list of items to fulfil a trader buy order.
- Integrating new trader ui with backend
- Fixed Error in XmlSaveLoad.
- Cleaned up trader contact code
- Added evaluation methods for Trader buying conditions.
- Changed Trader initialisation method also initialises conditions and actions.
- Updated traders to use the new data for their names
- combined station and trader contact in to single class and removed concept of contact type
- Fixed randomizer not being initialised correctly when loading game
- Added nullcheck to selldata
- Added Thumbnail to trading data
- Added new trader data to existing traders
- Implemented first pass of processing and storing new trader data
- Added sold out text to trader ui
- Added stationpedia button to new trader ui
- Spelling fix on tab well editor button
- Added tab well prefab and added it to the trader screen
- Renamed Trading Class to TradingHandler to prevent class with Trading namespace.
- Added Revised Trader Data Framework.
- Added 3 example traders to tradables.xml
- Added new trader UI first pass
- Moved ui tooltip and alerts panel to its own canvas
- Fixed An error in gas trader data.
- Added Example Trader Data for Ore, Gas and Hydroponics trader to tradables.xml
- Removed Un-needed files from 1st pass of trader data frame-work.
- Fixed temperature gamestring being created with the wrong key
- Fixed invalidcastexception caused when placing landingpads next to some structures
- Fixed logic motherboard causing error when clients are joining if there is a bad device reference present
- Added Data Framework for authored traders to support trader economic rebalance.