LARrE: The Linear Articulated Rail Entity

Date: Sat, 16 Nov 2024
Stationeers Game Banner
Genre: Action, Indie, Simulation, Early Access
Developer: RocketWerkz
Release Date: Tue, 12 Dec 2017

A New System



The Stationeers team often plans updates around polishing and iterating on features and systems that either need the most amount of work to be fun, or conversely, the most fun systems that can be expanded to have even more gameplay. Well, today is an example of us adding a cool new feature, that wasn't explicitly required, but fits the game well by allowing cool new structure system that can interact with other aspects of the game.



LARrE, the Linear Articulated Rail Entity is a track mounted robotic arm. The arm moves from its dock along placed tracks towards station track pieces, which are addressable by their index. When activated, it behaves just like a Harvie, picking up, or putting down an item, or for plants, harvesting fruit, or seeds, and clearing the crop if it's not harvest able. Other than planter trays, LARrE is currently only allowed to place items into import chute bins, and he can take items from the new export chute bins.

In the future we may add other robotic arms to this system. Things we've discussed include allowing arms to place canisters into refill stations, or use water bottle fillers, or arm variants that can activate buttons, or read logic from nearby devices. Also allowing an arm to read genetic plant data, use appliances like microwaves and giving LARrE a Harvie-like emotive face have also been discussed





Export Chute Bin



We've added a new chute bin, the Export Chute Bin, to allow items leaving chute networks to be slightly more controllable to players (and LARrE). In the process we've also renamed the existing Chute Bin to Chute Import Bin.





Workshop LARrE example



We've also uploaded a level to the workshop with a LARrE setup. It has an IC which demonstrates using the stack to pair plant tray device references with their station index.

https://steamcommunity.com/sharedfiles/filedetails/?id=3284424035



Your support makes these updates possible



https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/


Included in these changelogs are a large amount of changes related to a new helper hint system that is not yet live in this build.

Change Log v0.2.5064.23017



  • Fixed possible null ref when saving SpawnActionData if the passed in player variable is null
  • Fixed bug where you could exit the lander before the door opens. Will not unlock just after the door pops off.
  • Updated burnt heavy cable model. Now, it looks more obviously burnt
  • Fixed plants being offset from their trays when far from origin. Also fixed plant sway speed being super fast when far from origin.
  • Fixed capsule's mesh overlapping problem between net and interior wall again.
  • Fixed lander capsule header in start conditions screen was showing up even if no lander is present such as in the asteroid map.
  • Fixed a bug on new world creation where some items would spawn with an incorrect custom name
  • Fixed spray gun lever animation speed was too slow
  • Fixed spawning items into slots with spawndata could cause errors if the slot location was unset.
  • Added Mods published via workshop menu will receive a default thumbnail if none is supplied (previously publish action would fail without providing any feedback as to cause of failure)
  • Added ProgressBar to Workshop publish action.
  • Fixed Jetpack keeps using gas when moving into a room when playing on a no-gravity world (Asteroids).
  • Refactored SpaceMapData and SpaceMapNodeData to inherit from DataCollection base class and Initialise in the same way.
  • Changed SpaceMaps are no longer required to be authored inside worldSettingData. They are now inside the base gamedata and worlds can subcribe to a spaceMap in a similar style to start conditions.
  • Added Prefab command (for running spawnPrefabs validation scripts).
  • Updated exceptions thrown by custom spawndata to identify when a prefab has an unsupported colour applied
  • Added WorldObjectives.xml containing draft WorldObjectivesData for building helper hints.
  • Fixed bug where you would respawn in a lander after dying and waiting for your body to decay
  • Refactored TradeCondition to Evaluate a Generic Type, renamed to ConditionData. ConditionData can now be extended to support WorldObjective Conditions.
  • Fixed Water Replenishment Trader buy would never evaluate as true.
  • Made clients not call WaitForDecay when a character dies.
  • Fixed decay timers being reset on load. Entities will now save their current decay time.
  • Made a few tweaks around bodies decaying. Now the first five human bodies will decay much slower. Subsequent bodies will decay at normal speed for performance reasons. If you take all the inventory items off a body, this will cause it to decay at normal speed.
  • Fixed DynamicSkeleton not calling base physics update which meant its positions for clients could be incorrect.
  • Fixed loaded control settings values not being reflected in the settings menu when restarting
  • Fixed flare gun not having the correct thumbnail when painted
  • Fixed LogicDial behaviour to fit with the behaviour of other dials in the game
  • Added InteractableCondition and ThingPrefabCondition classes.
  • Added Classes for WorldObjective and WorldObjectiveCollection with hooks for evaluation and added to gameData
  • Added Interactable Lookup to Thing (Keyed by InteractableType).
  • Added WorldObjectiveCollections to WorldSettingData.
  • Moved Data Condition child classes into their own files.
  • Fixed world objectives not initializing their conditions and triggers
  • Added BuildStateCondition.cs
  • Added ReagentCondition.cs
  • Added first pass on evaluating objective conditions. Actual evaluation call is commented out for now.
  • Added LogicCondition for WorldObjectives.
  • Added Profiler tags for HerlperHints evaluate Loop and added Lazy evaluate function for AB testing.
  • Added Tooltip method to WorldObjective.cs
  • Added saving and loading functionality for world objectives
  • Added PartialPressure option to GasCondition.
  • Fixed WorldObjectiveState Not having correct data pointer when created.
  • Added Data for Stations, Concepts and Trading Trees to WorldObjectives.xml
  • Added Room Atmosphere caching job. Each room now caches a read-only copy of its aggregate atmosphere data.
  • Updated GasCondition to handle PartialPressure and evaluate Rooms.
  • Added Room Condition
  • Added PressureCondition
  • Moved SEPERATOR constant to base class ConditionData.cs.
  • Added prototype improved harvie system. Is not currently included in the world manager and is subject to change.
  • Added ObjectiveCompleteCondition.
  • Cleaned up serialization logic for WorldObjectiveStates inline with project standards and implemented syncing to clients.
  • Refactored WorldObjectiveState to be Ireferencable.
  • Added PlantRecordCondition and PlantStatusCondition
  • Added PlayerCondition, GrowthStateCondition and TemperatureComparableCondition.
  • Added generic EnumReference class.
  • Hooked up triggered and completed variables on objective state - objectives should now appear and complete correctly
  • Fixed thing list being passed to world objective evaluation was sometimes incorrect
  • Cleaned up WorldObjectiveState collections initialisation.
  • Moved a number of classes out of ConditionData.cs into their own files.
  • Fixed ViewModel game for Helperhints not populated when loading
  • Fixed GasConditions not working for Rooms
  • Added AsString() overloads to GameString that take in a Stringbuilder.
  • Added background to helper hints panel. Made panel resize as you clear off items so as not to block other in-world raycasts.
  • Tweaked prototype harvie mesh
  • Enabled HelperHints on clients.
  • Fixed HelperHints will Initialize correctly on legacy saves.
  • Updated objectives panel background sprite
  • Fixed room objective sub-conditions not being appended to the hint text
  • Tweaked objectives layout slightly
  • Added more natural sounding text for the most common interactable conditions on the objectives panel.
  • Changed completed objectives have only their title crossed out rather than the entire text block.
  • Added ThingPrefabCondition can now be declared as a child of NetworkCondition (i.e check if these things exist together on a network of type)
  • Added MachineTier Attribute to BuildStateCondition.
  • Added NetworkCondition, SizeCondition and TraderContactCondition.
  • Adding Trading WorldObjective Tree to Mars WorldSetting.
  • Added hidden attribute to areaPowercontoller reversed Condition in BuildAndPowerAutolathe Objective.
  • Wording changed to OnOff interactable condition hints.
  • Added ConditionData and conditionDataCollections with the Hidden Attribute will not show in the helperHints.
  • Fixed room conditions evaluating false when the condition room type is unset but the room has a set type. Previously unset room type conditions would default to 'none'. Now they will default to 'undefined'. Undefined means the condition will accept any room type. Default means the room must be a default room.
  • Added an 'undefined' room type and renamed 'none' to 'default'. (These were not being used in many place and are not saved anywhere so felt it was safe to do so).
  • Split first build autolathe objective into a power objective and an autolathe objective.
  • Added if a ConditionCollection only has one visible child element the condition compare header will not show.
  • Changed Power world objective to require building of solid-fuel generator.
  • Fixed StartConditions using HardCoded GameString references. Modders will be able to localise any Names and Descriptions in start conditions by adding elements to the Element in the language xml.
  • Added WorldObjective strings to localisation
  • Added WorldObjectives now have an optional info element that will show when the item is expanded.
  • Added some additional info fields to some helper hints.
  • Fixed Centrifuge hint not getting triggered.
  • Fixed Helper-hints with no completion objectives would get crossed off immediately.
  • Added Support for stationpedia links in Localised Info text of helper hints.
  • Enabled HelperHints on Moon.
  • Added expand and collapse button to helper hints panel
  • Added helper hints panel into base scene
  • Improved wording of room size condition.
  • Added Concepts HelperHits Tree.
  • Added CustomNameCondition.
  • Changed Helper hints text tweaks for better legibility.
  • Added CablesBurn and smelt Ice helper hints.
  • Fixed Clients dismissing HelperHints would not propagate back to server.
  • Moved EvaluateObjectives into ServerTick
  • Changed BuildState Condition Tooltip text from "Must be completed" to "Must be fully constructed"
  • Tweaked helper hint panel position and toggle button to be similar to the stationpedia button on the top left
  • Added a new keybind for toggling helper hints (F2). The toggle ui default keybind will now be keypad * instead of F2. Renamed the toggle ui keybind to 'toggle ui visibility' to avoid conflicts from saved keybinds.
  • Updated helper hints button icon
  • Fixed Keep offline plyers alive objective would not complete if you placed left or right variant of sleeper.
  • Added separate entries in HelperhintsManager._IEvaluablesByType lookup for each network type (previously grouped all structure networks together which meant the Network conditions were slow to evaluate.
  • Optimised HelperHints Evaluation loop, adding separate collections for trigger objects and condition objects, reducing the total number of objects evaluated in each step.
  • Fixed prototype harvey not animating correctly for clients
  • Added HelperHints Command for helper hints debugging
  • Fixed Rockets that had their Target position set via logic during the final frames of the Landing animation step would explode.
  • Added dismiss all and show dismissed buttons to helper hints panel (wip)
  • Hooked up helper hint button logic and renamed the 'dismiss all' button to 'dismiss completed'
  • Added Altitude Logic Value to Rocket Avionics.
  • Changed dial control back to initial version
  • Changed HelperHints now only build string and apply to TMP instance when Dirty.
  • Added Labeller can now set Mode and Setting Values on Logic dial.
  • Changed ISettable to take in any logicType (It will default to Setting).
  • Removed mode from rail harvey. Will now perform actions contextually. Allowed rail harvey to apply fertilizer and clear plants.
  • Fixed incorrect name for capsule door wreckage
  • Updated rail harvey's dock mesh to remove mode switch. Added basic corner rail piece.
  • Added some unique HelperHints for Vulcan.
  • Fixed PressureCondition not working correctly when value was set to zero.
  • Fixed Pressure, Mole and Gas Conditions not always working with rooms.
  • Fixed PressureCondition Unit error in tooltip.
  • Fixed insulated canister storage could not be put inside a CardboardBox.
  • Changed Disposable carboard packages now insulate their items.
  • Changed Portable Generator fuel canister now spawns inside an insulated canister storage.
  • Added PortableAC Package to Survival supplies starting crate.
  • Tweaked rail harvey movement to allow the use of non-junction straight pieces
  • Made rail harvey arm rotate in the direction of its current rail
  • Updated chute export bin to animate when importing an object
  • Added chute export bin to the standard chute kit
  • Added thumbnails for rail harvey components.
  • Committed scene worldmanager changes as the scene was out of sync with the prefab
  • Set rail harvey kit to not spawnable and updated its paintable material
  • Set rail harvey components to spawnable
  • Tweaked rail harvey rotation around corners to avoid clipping when close to walls or frames
  • Fixed Incorrect tooltip in mining charge.
  • Minor changes to Autoland tooltip in Rocket UI to improve legibility. Changed name of "Optimal" Land Altitude to "Low".
  • Updated rail harvey name and description in english.xml
  • Added Sheets and cable coils now show on your screen when in the active hand (like tools).
  • Fixed LARrE dock placement cursor being inaccurate.
  • Added end cap to left side of LARrE dock to make it more clear you can't connect rails to that end.
  • Renamed Chute Bin to Chute Import Bin
  • Added Robot Arm rails now allow pipes and cables to be placed in the same grid if the open ends of both items are in different grids (in the same way that pipes and cables are able to be in the same grid)
  • Fixed some objects not being set as paintable if they spawn disabled.
  • Made LARrE drop held items on the ground if you activate while holding something but find no device built underneath.
  • Split LARrE components into a specific LARrE kit and a more general Linear Rail kit.
  • Added recipes for LARrE to electronics printer.
  • Updated meshes and thumbnails for linear rail kit and LARrE kit.
  • Updated max stack sizes for linear rail and LARrE kits.
  • Fixed Robot arm could add and remove items from closed bins
  • Changed ChuteExportBin will now close unless there is something in its bin slot.
  • Fixed KitLinearRail had 150sec build time, changed to 5sec.
  • Added Placeholder sounds to robot arm animation.
  • Added Plant,Clear and Harvest sounds to robot arm.
  • Fixed Many SmallGrid objects not blocking rails (due to incorrect SmallGridCollisionType).
  • Added RobotArm animation sound.
  • Fixed LARrE sounds not turning off when error-ed or switched off.
  • Fixed Broken gas canisters did not mix with the environment
  • Fixed Destroyed gas canisters didn't have their broken state serialized.
  • Changed reduced volume and radius of robot arm sound
  • Fixed error when trying to set diode slide scale to nan
  • Fixed Harvest sound playing when trying to harvest plant that isn't fully grown.
  • Fixed could not add fertiliser to hydroponics tray.
  • Fixed a number of issues with sounds not playing (or playing in the wrong location) when planting, clearing and harvesting plants.
  • Removed some unused depth cutouts on a few devices
  • Updated main menu scene to include landing capsule and remove rovers

Write your comment!