Hello and welcome to StarMade,
EDIT: fixes in 0.19228: New blocks now have recipes. Lag should be much less for other players when someone mines (still will be optimized even more). Also:
#RM1788 Cannot delete waypoints
#RM1961 Fix hidden error message for faction names too short.
#RM1127 Fix float rounding causing imprecise build helper values.
#RM1692 Fix escape key not closing all windows, and sometimes closing parent window.
#RM156 Fix build mode flashing issues
#RM337 Fix outer radius size of atmosphere.
#RM2039 planets and asteroids now have a default power capacity of 501
Finally the time has come to release the much anticipated Rail System. This update contains a full redesign of the docking and turrets system, as well as a lot of new features. The new rail/docking system also solves a lot of old problems.
Furthermore, thanks to the new devs, a lot of work has been done to fix bugs. With them getting more and more familiar to the huge codebase, bugfixing and work on new features will continue to pick up the pace.
Here is the news in youtube form:
Here you will also find a list of tutorial youtube videos by bench:
Here is a short overview of all the systems. They are explained in detail at the bottom.
Due to the lack of usability and dynamic in the old docking system, we have decided to completely redesign the system from the bottom up. The new design is a lot more suited for all the current demands, as well as things to come.
The old system is still functional and no ships, blueprints, or other structures will break. The only restriction is that the docking beam is replaced with a pure activation beam, but if necessary the docking can be turned back on in the server config.
Rail basics (docking)
The new Magnet block can be docked to any Rail so long as the docking ship will not encounter a collision by doing so. This means no more docking zone boxes. Also, the orientation of your docked vessel can now be fully customized.
In addition to the removal of the docking zone, Rail blocks can be chained together in paths to allow for docked objects to move along them. The system is completely dynamic and allows for full control with the logic system.
Rails are not the only new block allowing for docked objects and movement. Rotor blocks can be placed in your rail designs, or separately from them. The direction and angle of rotation can also be customized.
Logic signal interactions and linked speed control blocks can dictate the direction, distance and speed of movement/rotation of the new Rail and Rotor blocks. Also, power and some of the shields are now shared between the rail-docks and the mothership, as well as every object in between.
The new rail blocks also come with complete integration with the the logic system in Starmade.
New Turret System
Since the old docking also included the turret system, it now has also been redesigned. Turrets can now be divided into multiple rotational axes. In the most common example that would be a turret base that can rotate horizontally, and a turret top which would rotate vertically.
New logic blocks
Several new logic blocks were added to expand the functionality of the logic system with StarMade’s gameplay and to help integrate the new Rail system. These new blocks include:
Button block (Provides a short (0.5 sec) ON signal then deactivates)
Flip-Flop block (Will only change its output when receiving an ON signal)
Wireless block (Allows logic systems to connect from ship to ship)
Remote block (Allows access to ship logic to be triggered from your action bar. Each block’s label can be changed by hitting ‘R’ on it)
An issue has been resolved that caused lag spikes whenever a new player join on more populated server. Also the configuration for the hotbar is now set by ship. That means when you load a blueprint after setting it, you will get the exact hotbar you saved the blueprint with.
This unfortunately had the effect that currently all hotbars reset once, but in the long run the new system is a lot more comfortable.
The login procedure on servers that require authentication has been improved so that non-uplinked players now get an explanation as well as a prompt to enter their credentials or go to the registry to setup a new account. Also, the pesky error messages which blocked the real message have been gotten rid of.
We fixed some bugs probably causing a lot of java version errors, making the code more strict to its version dependencies, so hopefully a lot less problems for new players will occur related to that.
Dis-Integrator do not work on asteroids
unable to track down path calculation failed
Map: Interface skips the sectors near a system border
Sniper rifle can zoom in the galaxy map
Admins getting revoked of admin after logging on/off of server
Logic on asteroid crashes the game (ClassCastException)
IndexOutOfBoundsException with some handheld weapons
Non-linear camera movement speed
Ending tutorial brings you back to global spawnpoint
Weapon menu not refreshing correctly
Tab + F10 - Can be used to see cloaked entities
Asteroid name mismatch (Zerkaner & Zercaner)
Large, nearly complete blueprint quotas round to 100%
NEW claimed systems do not get saved
Overdrive power consumption doesn't scale with ratio
1th and 2th typos in Faction Rank
Renamed entities cannot be searched for
cloaked ships still have the "pilot" marker visible
Cannot enter build block on asteroid - prevent placing it, not entering it
docking module on asteroid crashes game on activation - prevent placing it, not activating it
Lag/Freeze on autocomplete
Tutorial fails to import sector correctly
Launcher's world manager has no scrollbar
/search only searching loaded entities
Gui Error - faction menus refresh too fast and endlessly
(All bugs fixed caused with the rail system itself are unlisted)
Rail Docking Explained
This part will serve as an in-depth explanation and reference for all new systems.
Rail docking basics
The simplest kind of rail docking, which essentially replaces the old docking system, requires two blocks:
The basic rail block serves as a docking access. You can dock to it using your rail docker. Placing only one basic rail serves as a static dock. Using more than one in a line produces a track a docked entity can run on.
This block is needed on the entity that you want to dock to a Basic Rail block. Each placed Rail Docker contains a docking beam that can be assigned to your hotbar in the weapons panel of the ship. On firing, this block emits a docking beam. When that beam hits the Basic Rail Block of another entity, it will attempt to dock to that block.
All rail blocks have a direction not only indicating the direction of the track, but also determining the docking orientation. On docking, the arrow of the docker as well as the direction of the Basic Rail, or any other dockable rail block, will be matched together like aligning the poles of two magnets so they will stick together.
The only restriction that docking has is that the docked entity has to fit. This means no block of the docked entity may overlap with any block of the structure it wants to dock on, as well as any other already docked entities.
Upon docking, a ship will also retrieve the faction ID of the structure it is docked to. This however now only lasts for the time it is docked and will revert to its old id when undocked. Also any ship docked to a rail block that has a public exception block next to it will keep its original faction while docked.
The docker has one logic input and one output. Linking an activation block to the Docker will cause that docker to undock on activation. Placing an activation block next to the docker will cause it to activate on docking, and deactivate on undocking.
As said, you are now able to make rail tracks by using the basic rails as well as the rail rotators explained below. Movement can be done in all three dimensions, and the rail docker will move on, as long as it has a tail track it can go to. It will stop if anything is in the way, or if there is no more rail to go onto. The direction of the rail to go onto can be different from the rail the block moves from as long as the primary face of the rail still touches the rail docker block.
There are two types of rail rotators. Clockwise and counterclockwise. Upon docking or moving onto this block, the docked entity will do a 90 degree turn, and then move on in the direction the rotator block is pointing if it can. The amount as well as the degree of the block can be dynamically modified with the logic system. Connect up to 9 activation blocks to any rotator block to control the amount of rotation. The amount of active activation blocks determine the block’s rotation. Each active block will add 45 degrees. If all 9 are active, the block will constantly rotate.
Keep in mind, that to re engage a rotation, the logic system as explained below can be used.
Rail manipulation allows for full control of rails. It works like a template copy & paste system:
All logic blocks that are placed next to a rail block have this rail block as an input to overwrite other rail blocks.
That means if you place an activation block with a basic rail block pointing forward next to it, and then connect that activation block to one or more other rail blocks, upon activation, all connected blocks will be replaced with the rail block pointing forward. If more than one rail block is next to an activation block, the system will take one pretty much randomly, so that is not recommended. The same also works for rail rotator blocks. Using it on a rotator block also resets it so if there is an entity currently on the rotator block, it will then rotate again with the new parameters. Basic rail blocks and rail rotator blocks are also interchangeable, allowing for more control over how docked entity move and rotate on a single rail layout.
Everything rails is controllable via the logic system. The rails have inputs which is the rail manipulation mentioned above, but they also have outputs. Every activation block that is next to a rail is activated when the rail docker block of the docked entity moves on it, and deactivated when it leaves it. The new button block also works in this way to detect a docked entity, sending out a 0.5 second on signal when the rail docker block passes over the rail next to it.
Rail Speed Control
The rail speed controller is another block that can be used to manipulate how fast a rail moves a docked entity. It can be connected to any amount of activation blocks. The ratio of active blocks to inactive blocks determines how fast the rail will move in percent of the maximal speed. So connecting 5 active and 5 inactive is 50% speed, the same as connecting 100 active and 100 inactive. The rails that should be under influence of the speed controller also have to be connected to it. Using shift-V on rails connects straight lines of rails quicky. Also, mass plays a role in rail speed. Should the mass get too high, the speed of the rail will get slowed down eventually to a minimum. To combat this speed decrease, rail mass enhancer blocks have to be placed to increase the load every rail on the ship can take. These blocks do cost a little power.
Reasoning why rail controls work this way
Some people might think: “Why can’t I just set the amount of rotation and speed in a menu?”. The reason is, that it would be then a static value, unless scripting is used. The rail system is fully dynamic and gives visual feedback. So you can change speed, rotation, and rail directions at any time manually or triggered by the logic system. Having it in a script would firstly be harder to understand and learn, secondly break with the game’s principle of using block architecture to solve problems, and lastly would be more a simulator or programming studio than a game.
Allowing dynamic control through logic enables a lot more control of movement.
Here’s one example of this as created by Crimson-Artist
With the rail system, turrets have been completely redesigned, too. Over are the times where turrets would glitch into the ship, and would look awkward with limited options to manipulate and control them.
The new system works with a 2-axis system. That means you can use at minimum one and at most 2 separate entities to form a turret.
The first one is the turret basis. This one can only be moved horizontally (rotate left/right), probably best imagined like a turret works on a battleship. The second one is the turret’s barrel, that, again like on a battleship can move vertically (rotate up/down). The cool thing is, that if you enter the turret on the barrel, you will have control over both parts at the same time, which would allow for turrets with full 360% freedom in all directions. However be aware that the turrets also now check the collision with its mothership and other docked entities and will restrict its movement in doing so.
The AI is fully integrated as well, and will work with almost any turret when placed on the barrel part. While in the turret its rotation can be reset by pressing ‘C’. You can also reset all turrets to the orientation they were in when you docked in the structure menu (under ‘rail system’).
AI will also reset the turrets after a while of not fighting. Currently it’s instant movement on reset to avoid getting stuck, but in the future the reset will also be smooth.
Please not there are still some minor issues with some turrets controlled by AI getting stuck. We are trying to fix that ASAP. Meanwhile please use teh reset feature.
Power and Shield Sharing
To provide even more freedom when designing rails, you can now use the full power provided by the mothership and any docked entity in between.
The same goes for shields: If a turret or other dock gets hit, the chain to the mothership will check if any ship in between can take the hit. The requirement for overtaking a hit is that the ship must have above 50% of its shields and at least as many shields to take the full hit for the turret.