Stable 3.5.5

Stable 3.5.5

What is up Depthians!

A massively, massive update to the Stable branch that holds roughly 8 months of tweaks, fixes and new additions!

Before we get started tho, if you do run into crashes, things not working correctly or not displaying correctly make sure you are not running any mods, that your mod folder is empty and that you are not subscribed to any mods on Steam.

If you have problems with launching or the game crashing:

  1. Remove or disable any mods
  2. Reverify the integrity of the game cache in steam.
  3. Reinstall the game.
  4. Check in discord in the feedback channels. Discord link:
  5. Raise a support ticket:

On to the update post. Unfortunately due to the character count and screenshot limitations from Reddit and Steam, details and changelogs will only be posted on our main site.

If you have been following Alpha and Beta branches then you can skip the change logs as this Stable is the final build we had running in Beta which is a copy paste job from our last beta post.

Key points of interest for those that have not been following Alpha and Beta is to read about the vehicle stability changes, APS shells can also be made within the turret UI, Custom propellers, Generic block setter and Generic block getter here: .

Beta 3.5.5

In the latest update to Alpha and in terms of new additions, we added the function to swap mimics to decorations. You can access this by pressing shift + E, you will also be able to utilise the damage debugging tool from there too.

You can search for a specific block from the inventory as a shortcut rather than opening up the build menu. You are also able to list all blocks and how many of which type of block your construct is using from the Block counter tab.

CRAMs have also undergone some love and attention in terms of eyecandy.

Neter now allows for a diplomacy victory, which is achieved when no factions are fighting each other and your relations with all of them is 75 or higher. This feature will be added to AotE and Glao in the future.


Numerous bug fixes


In 3.5.2 we added a new method to set up APS shells.
You can access the new APS shell setup by pressing Q on a turret, APS tab and then clicking on Access intakes. Please note this is a WIP so for now there is no need to create bug reports for this system.


Vehicle stability

Acceleration and evasion being very cheap, and having basically no downside is a very old FtD problem. It makes cannons unreliable, ships relatively weak and kiting disproportionately strong. The new stability mechanic adds a benefit for having a stable platform.


  • New stat: stability. Possible range is 0-100%, it’s based on the movement of the main construct in the last 3 seconds
  • Added a slider to the target prioritisation AI card, from -1000 to +1000 value for each 1% stability
  • Munition warner range is now a function of stability, instead of rotation rate. Varies between 20-110%, for 0-100% stability
  • All direct fire weapons gain 0.004° inaccuracy for each 1% stability below 100%
  • Missile laser target inaccuracy is rerolled every second, and the actual inaccuracy of the beam is interpolated to the new value over 1s Remote and lua missile error is increased by 0.1m for each 1%

4 values are tracked

  • Average velocity magnitude
  • Velocity magnitude change
  • Velocity rotation rate * velocity magnitude
  • Construct rotation rate

Example vehicles

  • Ships generally have 95-100% stability
  • Flyer moving in a straight line, at 220 m/s (~CJE practical limit) ~90%
  • Flyer circling at 2000m distance, 220 m/s speed ~75%
  • Flyer circling at 1000m distance, 220 m/s speed ~65%

The changes mean stable vehicles and fortresses gain a slight boost against projectile weapons. Faster, and especially more evasive vehicles have a harder time shooting down projectiles, and at long distances their weapon efficiency is noticeably reduced. Makes slow vehicles, cannons and IR/radar/sonar missiles more useful in general.

Custom Propellers

One of the first big changes is custom propellers.
We have created a very in-depth system for customising the look of the custom propellers and we also suggest updating your builds to the new custom propellers, as power usage and thrust have been tweaked.
You can remove blades and rotate any blade around the hub if you wanted to go for a 3 blade Y shape setup, yet keep the functionality of all 4 blades! The sliders are purely aesthetic only and will not change the performance of the custom propellers.

As you can see from the screenshot below, this is the default look until you start adjusting the overall shape via the sliders and also material type from the texture dropdown list.

After spending a little time getting used to the controls you can create something that may fit the style of your craft more.

To give a general overview of this UI, the top screenshot is where you set the general shape, blade orientation, size of the blade and material type.

The second screenshot above shows current nodes and where they are on the blade 0%, 25%, 75%, and 100% you can also insert nodes and set how far down the blade you want the node to be.

This propeller was created using a linear node setup. What that means is that the preset removed 3 nodes along the blade, unchecked one of the blades in the bottom section of the list and setting +/- 35 degrees to the side blades. Adding nodes along the blade gives you more points to adjust the blade thickness, rotation, width and shaping.

However, if you still want more customisation, you can always use the decoration system with Ctrl X on one of the blade segments and create something from multiple parts. (yellow decorated custom rudders)

While we are discussing propulsion, we do have a few new changes.

What you are seeing in the above screenshot has been added to all propulsion methods, auto-balancing and manual. Manual is the usual means of setting up a propulsion block to be strafe/forward/yaw/pitch… Auto-balancing on the other hand (imagine a thruster placed dedicated to looking after roll) auto-balancing can add a few points of thrust to assist in pitch or hover. Auto-balancing will automatically calculate the combination of propulsion required for smooth roll/pitch/yaw/strafe/hover/forwards motion.
Auto-balancing does not change the manual settings you have already stored, so you can turn it on and off without affecting things permanently.

Lastly, on the subject of propulsion, we have set up a function very similar to what was removed previously, which was the “always up” function and added a new method that will also assist the thrust pointing horizontal. You can choose manual control of pitch/yaw and set the two sliders up as needed as a permanent angle or, via the new breadboard component which we shall discuss next.

Generic block setter. (GBS)

This new component in breadboard allows you to interact with any block on the construct that can be manipulated. I’ll try to show a very basic example with a neon light.

The basic neon light has 6 attributes we can tweak within its UI: R,G,B, the intensity, the range and if it casts shadows on/off.

If we place down a number of neon lights we can tweak all of them at the same time via the GBS, however for this example we will name the neon light (Example1). If you keep the build cursor on the light and hit shift N, this will bring up the naming UI. You should see the tooltip of your light now has “? Name changed to “Example1” “.

Place down your mainframe and attach the AI breadboard to it. Scroll down to the GBS and click on the new component. You will see that the GBS has something already selected by default that it would interact with.

With the new module selected type the name we gave our neon light Example1 in the block name filter text box, check the dropdown list under block name filter and select neon light. You will know if everything is linked as you can see in the GBS module “LightFitting (#1) ” If it still reads #0 then you may have a typo in the filter text box or when you named the neon light.

You will also see the left side notches turn from white (requires input) to grey (not used). This indicates that the attributes tied to LightData: Intensity, requires one type of input and in this case it requires a number from 0 to 10. The other notches correspond to different input types which will be used for other settings if that block type and the attribute selected from the dropdown list allow it.

In order to keep things simple, let us insert a timer and give it a max of 5 seconds. We shall plug that into the topmost notch. (Don’t forget to mouse over each notch for a description as to what they require/do) If everything is working correctly your neon light should start to slowly get brighter and turn off once the timer resets and repeat.

In order to access the other attributes, we need a new GBS linked with the same name. This time we will check the dropdown list under the neon light label. Other block types can have quite the long list depending on the complexity of the block, you may also see (LOCKED) and this indicates that currently we have not enabled GBS to access these attributes. So please feel free to poke us and tell us what you need unlocked and why with hopefully some sort of example.

Select LightData: The colour, now you will see that all the notches are white. Mouse over these again and you will notice that each one represents the colour red, green and blue as well as other parameters. Drop 3 “Constant” components into the breadboard UI and attach one to the first notch. Set the constant component to something from 0.00 to 1 and as soon as you plug in your constant the light should be red if left with the default value of 1. Repeat this for the last two notches green and blue and set the colours as you wish. Try doing the same things again and setting up a method to turn on or off Lightshowdows 🙂

This was just a poor and easy example as you can use GBS with every block that has some tweakable options from spin blocks to turret blocks, from jets to engines, APS components, CRAMS etc… and the usual infinite amounts of trigger types that you can create via breadboard and more so now as we have created a logic gate component 😀 .



  • Projectiles avoidance fake-missiles now have velocity and lateral distance configuration
Animation Block
  • Added emotion control for the animation block (the droid model does not support this as it is aimed at a future character pack DLC)
  • Added IK control for the limbs of the avatars of the animation block. Added breadboard support for this.
  • Side drag is now the same as slopes, full drag instead of half.
  • Added an option to the APS menu to disable barrel retraction on firing
  • All constructs can have shells that do not need any ammo customiser blocks to use
  • Added an auto-balancing option to jet/huge jet/ion/huge ion/propeller/huge propeller/custom jet engine/propeller hub. Auto-balancing will automatically calculate the combination of propulsion required for smooth roll/pitch/yaw/strafe/hover/forwards motion.
  • Auto-balancing does not change the manual settings you have already stored, so you can turn it on and off without affecting things permanently
  • Auto-balancing updates when propulsion systems rotate, or when they become inoperable (i.e a submerged jet or a dead propeller)
  • Added a component that outputs the craft’s current stability
  • Lots of new Generic Block Setter and Generic Block Getter options
  • Added the necessary additions to generic block setter and generic block getter in order to automatically spawn blueprints and dock them to docking stations and monitor the health of docked vehicles
  • Added a new breadboard component that can theoretically ‘set’ any (whitelisted) setting on any block. It is called the ‘Generic block setter’
  • Whitelisted propulsion block, light bulb, animation block, adv cannon firing piece, cram firing piece, cram fusing box, boiler controller, fuel engine values for the ‘Generic block setter’
  • Added logic gates as a new breadboard component, with all standard gate types available.
  • Added control of laser output regulator, laser combiner and PAC to the Generic Block Setter (GBS) component
  • Added control of missile stagger,missile laser encoding and missile launch pad and missile component parameter to the Generic Block Setter (GBS) component
  • Added an ‘event input type’ for collisions with vehicles
  • Added control of ACB parameters to the Generic Block Setter (GBS) component
  • Added Generic Block Getter (GBG) that can read the current azimuth of a spin block and about a dozen other things.
  • Added ‘rotation input’ module that outputs own-ship rotation in various Quaternion or Vector3 formats
  • Added the ability to duplicate breadboard modules, and copy and paste their contents
  • Added the ‘outputV’ function to the evaluator, which does the same as the ‘output’ function but with vectors instead of numbers [BUGS-3835]
  • CJE Generator, Smoke Generator, Shield Projector,LAMS, Ammo intake, aim point, target prioritisation, steam crank motor, tractor beam, wireless equipment channel and AI mainframe added to Generic Block Setter (GBS)
  • Non-AI breadboard now have a single connection point same as the AI variant.
  • Position input module added that outputs own-ship position (Vector3) as ‘frame-independent global position’ to match the new position output of Primary target info module.
  • Primary target info module now outputs new outputs of target Position (frame-independent global position) and Velocity as vector3s.
  • Speed input module now outputs own-ship speed as a Vector3 (will be convertible to float as necessary so no issue with backwards compatibility)
  • Added some rendering options (orthographic camera, green screen, and more). Press middle mouse button to bring up extra options and activate camera modes on the right hand side button panels.
  • Added Pipe part with front and back connections. Added 3 port piece with 3 connections. Meshes will appear as updates roll out.
Custom Control
  • Custom control surface tooltips have visualisations showing their pivot axis and force direction for positive/negative input
Custom Rudders
  • Mirror meshes added for all rudder parts.
FOF marker
  • Editing turret restriction marker so that it can display over the top of blocks and remain visible.
Fuel Engines
  • Pressing Q while looking at fuel engine parts now also brings up the overview menu of the main block
  • Added buttons to convert all mimics to decorations in the V menu
  • It is now possible to access the list of successfully loaded mods (it is ‘PluginLoader.ValidPlugins’)
  • Every unit is undergoing inspection for basic function. Some have been replaced and there are some additions. Changes have been committed for DWG, OW, SS, LH, TG so far, more to follow. There is no exact changelog for these as it would be a 50-page essay. Please report any issues on discord in a new unit_design_bugs channel.
  • Removed defunct steam prefabs. Fixed usage of deprecated block in fuel engine prefabs.
Propeller Hub
  • Mesh and material customisation for propeller hub added
  • Added automatic adjustment of yaw and pitch orientation adjustments to point the propulsion system directly up, or keep it horizontal. This is the successor to the ‘always up’ value of the now obsoleted dediblades. It works for jets, ions, propellers,crank propellers, steam jets, CJE and propeller hubs. The maximum angle for yaw and pitch is still 15°.
  • After a stint with render queues changed everything has been regressed. This only affects viewing of things through glass at certain camera angles. TL;DR It’s not worth it and is a massively complex issue.
  • V menu now has a search field that highlights blocks with an inventory name that contains the search string
  • Ships generally have 95-100% stability. 220 m/s (~CJE practical) limit flyer moving in a straight line ~90%. 220 m/s flyer circling at 2000m ~75%, circling at 1000m ~65%
  • Stability components: velocity magnitude change, velocity magnitude, velocity rotation rate * velocity, construct rotation
  • Weapons gain 0.004° inaccuracy for each 1% below 100% stability. Remote missile error is increased by 0.1m. Missile lasers roll a new inaccuracy error each second and interpolate from the old one over 1s
World editor
  • Added the option of having a diplomatic victory where all remaining nations have a good relationship with the player and no wars are currently happening.


  • Propulsion block yaw/picth angle change triggered through ACB takes 0.25s for a full 0-15° rotation
Aero Elevator
  • Now has an AC of 20 and health of 300 and a cost of 15.
Aero Rudder
  • Now has an AC of 20 and health of 300 and a cost of 15.
  • Now has an AC of 20 and health of 300 and a cost of 15.
  • AI aiming will now fail if there’s terrain on the shell (or laser) trajectory
  • Effective impact angle for sabot head is reduced to 75% of the actual impact angle (affects ricochet and damage reduction calculations)
  • The Differencer now work with vectors, when the input is a vector the output is a vector, and when the input is a value then the output is a value (previously it was using the magnitude of the vector)
  • Modules on the breadboard expand to fit the text being displayed within them
Control surfaces
  • Control/flight surfaces only add 0.75 drag for each 1 unit of force generated
  • Fixed a tooltip problem with shared CRAM payloads
  • The muzzle flash supressor and new recoil supressor variants display at the proper scale when placed on the end of a barrel now
Custom Control Surfaces
  • Extended tooltips and improved helper visualisations
  • Custom control surface force direction is now always normal to the placement plane. Local velocity only affects the magnitude of the force
  • Pivots now have an AC of 40 and health of 400 with a cost of 50 other parts have an AC of 35 and health of 350 with a cost of 40.
Custom Rudders
  • Positive/Negative force axis code has changed so anything made in alpha using them should check their yaw/roll/pitch inputs.
Custom Wings
  • Wing parts now have an AC of 20 and health of 300 and a cost of 15.
Debug Tools
  • Explosive, EMP and impact debug tool minimum damage down to 10
  • Laser warners now check the real distance to the impact point, whatever the subConstruct the warner or the impact point is. However, only the smoke dispensers on the same construct than the laser warner (hull, turret, spinBlock, etc.) can be activated
  • Improved behaviour for thruster+secondary torpedo propeller interceptors
  • Interceptor hit rate is now also tracked on the controller
  • Interceptor missiles reverted to the old behaviour of trying to get as close as possible before exploding. Got a fallback to make sure they always hit the main target (if possible)
  • The item preview render is now embedded in the tooltip rather than being displayed behind the inventory screen
Key bindings
  • Added button to remove controller bindings
  • Made some small quality of life changes to the key bindings menu
  • Removed default controller bindings
  • Lasers are now visible ‘through’ the GPU ocean surface
  • Removed heat signature from light fixtures
Particle Cannon
  • Beam coherence for the same focus value improved by 25%
  • Instability from construct rotation down by 25%
  • Low velocity magnitude change adds less instability, high acceleration adds more
  • Flags, sails and balloons now have opaque shaders.
  • Precision spinblock max turn rate in rotate to angle mode scales with MASS^0.2, instead of MASS^0.25 (faster, especially for spinners with lots of mass on them)
  • Stable pressure of steam containers isn’t affected by the number of vent outputs
  • Now has an AC of 20 and health of 300 and a cost of 15.
Tractor beam
  • The rotation wobble of vehicle held by tractor beam has been removed
  • Propeller clearance visualizations aren’t displayed when the hud is turned off
  • V menu now also shows how many cells are occupied by subconstructs, not just the total
  • The old 1x1x1 wing is now removed from the build menu to encourage more performance-friendly usage with custom wings.


  • Setting wheel’s spring length using ACB now works fine [BUGS-3836]
  • Enemy simulator can no longer be activated when in campaign mode, other than in battle.
  • No more ‘blank’ shots [BUGS-3630]
  • When hiding the original mesh, the porthole will now be fully hidden (as a lot of other blocks with subObjects) [BUGS-3827]
  • [BUGS-3800] Flags now fly the correct way round
  • An exception in a breadboard doesn’t get up to the surface now and stops that breadboard for ~40 frames
  • Custom axis value is not flickering anymore when constantly set by ACB [BUGS-3834]
  • Fixed some issues in the GBS that related to ‘undo redo’ of breadboard removal
  • [BUGS-3709] A sign evaluator with NaN input also outputs NaN (doesn’t stop physics now)
  • [BUGS-3546] Physics breaking sometimes when copy/pasting a breadboard
  • [BUGS-2905] The game configuration slider for damage factor, and the campaign “damage difficulty” now affect block health rather than affecting damage output. It was discovered that many damage types were not properly adjusting for these values and this is a more reliable way of making sure everything works. The higher the damage factor, the lower the block health will be. The higher the campaign damage difficulty the lower player block health will be and higher enemy block health will be.
  • [BUGS-3726] Repaired control surface pivots now work as expected
  • [BUGS-3702] Steam crank wheel connections cannot be copy-pasted to bypass restrictions
  • [BUGS-3705] Transmissions and crank motors with relative RPM other than 1 can be connected now
  • [BUGS-3768] Blocks placed as decoration have a slight rotation error due to float precision
  • [BUGS-3768] Hiding an original mesh, and then applying mirroring makes the original mesh re-appear
  • [BUGS-3768] Some decoration wireframe aren’t displayed when there are too many of them (can still happen but should happen a lot less often, it’s a limitation due to an optimization)
  • [BUGS-3774] Priority given to hit structural blocks first when several blocks are projected into the same mainConstruct cell
  • [BUGS-3666] Placement offsets for blocks larger than 1x1x1 are now wiped on switching to prefab mode
  • [BUGS-3667] Fixed a multithreading issue causing erratic flight. Mostly affected control surfaces, with multiple vehicles in play
  • [BUGS-3695] Fixed stable pressure for some setups being affected by game speed
  • [BUGS-3700] Fixed steam stat page reporting gearbox power output instead of turbine energy/s
  • [BUGS-3778] Some map markers disappearing in campaign after changing language
  • [BUGS-3738] Projectiles avoidance priority evaluation not displayed correctly
  • Filling with beam slopes in mirror mode now place the mirrored blocks in the correct orientation [BUGS-3849]
  • [BUGS-3672] Game speed no longer affects the window of time between two keypresses needed in order to move quickly in build mode
  • Cursor lock when an enemy is present and you enter in the detection screen while being in build mode [BUGS-3831]
  • [BUGS-3903] Campaign diplomacy options are now capable of offering war options against your closest allies if closest allies are the only possibilities (a bug existed where a 100% relationship ally could not be battled even if it was the last faction remaining), but will also offer a period of peace as an option
  • [BUGS-3903] Fixed inability to win the campaign if you own captured enemy HQs
  • Code that determines whether you can call another diplomacy meeting early had a bug in it
  • Automatic thruster control now works for CJEs who have corners in their exhaust pipe
Crank Wheels
  • A steam crank wheel can not be added to a group if it’s already part of another group
Control surfaces
  • Fixed custom control surfaces on spinblocks possibly having different force outputs depending on orientation
  • Fixed a problem with some mirrored custom control surface setups
  • Fixed repairing destroyed control surface pieces possibly counting the repaired piece twice for surface area
Custom air surfaces
  • Fixed 4m air pivot calculating its center position incorrectly
Custom Control Surfaces
  • Issue with 3m inverted CS corner mirror fixed.
Custom jets
  • Fixed addons ignoring placement rules for attachment after loading a blueprint
  • Fixed an issue where churning thousands of decorations on the same vehicle could make the vehicle fail to save
  • Pasting a prefabbed block with more than 16 decos and with mirroring activated do not paste all the decos on the mirrored block [BUGS-3441]
  • Laser warners now work when they are on a subConstruct [BUGS-3810]
  • [BUGS-3874] Fixed blocks that should be destroyed sometimes surviving EMP with a small amount of health left
  • Fixed EMP potentially spreading in the wrong construct for some setups
  • Changing something in a favorite will not lag anymore when there’s a lot of intel pictures (note that opening the favorites menu for the first time may still take a few seconds) [BUGS-3815]
  • Interceptors without any propulsion can target projectiles above 5m
  • AI routine names now save all character sets, not just English characters
  • It is now possible to select altitude in the LWC down to 500m, and the min difference between high and low altitude has been reduced to 20m [BUGS-3864]
  • Added EMP susceptibility to missile wireless transmitter and receiver.
  • [BUGS-3852] Fixed manual control of missile laser designators
  • Missile smoke color is now saved and loaded when saving and loading missile designs
  • Fixed various threading problems causing aim for all weapons to be ~1-2 frames behind the current position of the target
  • Changed multi-threading code to ensure the main physics calculation chain finishes in time to apply the force to the vehicle rigid body on the correct frame
  • Moved buoyancy force application, sail force application, wing force application, steam calculations and all propulsion force application into the same thread that handles the bulk of force applications and the calculation and application of the rigid body force. This should improve the stability of the physics simulation.
  • [BUGS-3796] Fixed sides of sloped plates having very low drag without clearance requirement
  • The build marker was missing some meshes. Now fixed.
  • [BUGS-3907] The maximum number of rendering chunks for any given material has been increased from 1000 to 2000 due to some people hitting the 1000 limit.
  • [BUGS-3804] Laser cavities now lose charge if a separation changes their capacity
  • Some issues with particles/VFX not playing nicely with glass have been fixed.
  • Fixed a problem causing almost stationary vehicles to possibly have only ~97-98% stability
  • [BUGS-3859] Fixed some wheel groups containing more than 2 wheels
  • [BUGS-3908] Fixed steam jets contributing too much to overall body heat signature
  • [BUGS-3918] Fixed a timing problem potentially causing a crash when rapidly changing blocks in steam systems containing parallel pistons
  • [BUGS-3920] Crank transmissions register their input shaft being disconnected without a reload
  • Fixed a multithreading issue causing steam systems to lose pressure
  • Fixed a threading problem with steam drill hit detection
  • Fixed steam distribution problems with some valve setups
  • [BUGS-3882] Removed the super heated part from HEAT descriptions
  • Force lines in build mode (toggled with backspace) now show in the correct position (previously they were showing the forces calculated on the previous frame)
  • Fixed some formatting errors on the detection overview panel
  • Fixed an exception on opening ammo intake Q menu with some setups
  • Fixed some weapon stats potentially displaying nan or infinity values
Water propellers
  • [BUGS-3754] Fixed reversed water propellers ignoring their speed limit
  • Updated to unity 2021.2.18 from 2021.2.3. This is to fix a Linux UI issue where the mouse is never properly hidden and made inactive
Vehicle Controller Small
  • Fixed sub mesh misalignment on small vehicle controller.
Water propellers
  • [BUGS-3754] Fixed reversed water propellers ignoring their speed limit