Ships 6 page/Ships 6 configuration

Values:

Unit:

Ticks:

This is the lowest possible value that Minecraft accepts, in Bukkit it is the typical measurement for time. A tick is typically 1/20th of a second 

Microseconds:
Seconds:
Minutes:
Hours:

 

Config file:

Structure:

Update: Auto:

if enabled, Ships will update the structure of the ship that is attempting to move, before moving. This means that any new blocks you have added to the ship will move with the ship. This however does have a performance hit for every time you move the ship, disabling this feature may reduce stress on the server when moving a Ship. 

 

Bar:

Visible:

enabling this will display a progress bar on moving the ship

 

Auto:

EOT:

EOT is a feature that will automatically move a ship forward. It moves forward on a timer bases which can be configured here. 

 

Speed is how many blocks forward the ship will automatically move at once. If an object is in the way then the movement will not occur. This number can be any value that is above 0.

 

Delay and DelayUnit work hand in hand, this is the time between each move. The delay can be any number above or equal to 0, with delayunit being one of the Unit values specified above. 

 

You can disable this feature completely with EOT, by disabling this feature you disable everything about the scheduling, the signs are still enabled however will not work. This maybe changed at a later date. 

Failling

 When falling is enabled, if a created ship does not suit its requirements, then it will start to fall. This is a feature that suits well if you are using ships in battle as the ships will start to fall out of the air or sink to the ground when taking too much damage and too much wool is destroyed. 

All configuration options are the same as EOT, just relates to falling instead of EOT. 

Update:

This includes all information about updating Ships. I do not agree with the idea of automatic updating your plugin, so you don't need to worry about that. 

 

Currently the only value states "Enabled" which is the update check to check if there are any updates for Ships and will tell you the version name if there is. This update check is designed to work for any release of Ships such as Alpha, Beta, etc. 

 

It currently will tell you if there is a update, even if that new version doesn't officially support your version of Minecraft, this may change in the future

Advanced options:

These options change a lot of the backend of Ships, while these will not break ships in any way, these options can be difficult to understand. However, understanding these options and configuring them well can lead to increases in performance. 

 

BlockFinder:

The blockFinder options relate to the algorithm behind the detection of the ships structure. While external plugins that use ships can request to use their own algorithms with there own configuration, changing these values will change the algorithm that Ships itself uses as well as any external plugin that requests these values. 

 

The default value is the algorithm that is used, by default this value is set to ships:blockfinder_ships_five as the Ships 5 algorithm is the fastest out of all the default algorithms, it does however have some issues which you can read below. 

 

The track option is how many blocks the algorithm can store before giving up on a ship, by increasing this number it means that you can have larger ships, however, if a user has created a ship and merged it with the ground then it may cause more lag to the server. This value also overrides the "max" value found within the ships stored value as well as the ship types "max" value. 

 

The "stack" values are for the Ships 6 algorithms in which you can read below.

Algorithms:
ships:blockfinder_ships_five

The ships 5 block finder algorithm is the original ships block finder algorithm found in all previous versions of ships, it includes the performance benefits that were given to it during its Ships 5 release.

 

Pros:

The ships 5 algorithm is the fastest algorithm out of the defaults as there is no scheduling

 

Conns:

The ships 5 algorithm uses recursion which is something that goes hand in hand with a crash known as "stack overflow" which can crash the server. This error can be prevented by reducing the "track" size however you will not be able to have larger ships.

 

All processing occurs within a single server tick on the main thread, meaning that the whole server will pause (causing lag) when being used.

 

ships:blockfinder_ships_six

 

The Ships 6 block finder is a complete overhaul of the original block finder algorithm, designed to be able to process huge ships with little to no lag. It is highly configurable and designed to make your server run like ships wasn't installed.

 

The ships 6 block finder searching for new blocks on the ship by locating all blocks next to the target block then checking if those blocks should be part of the ship, if they are then they are used as the target block on the next schedule. To increase the speed, multiple target blocks can be used in a single task. This process repeats until there is no other block that can be located.  

 

The "Stack" options within the config can be applied here, with the following "Delay" and "DelayUnit" relate to delay between each scheduled task, increasing this will slow down the structure detection, however will allow your server to stabilize if needed.

The "Limit" is the number of target blocks that are allowed at once, if you are having performance issues turn this value down. 

 

Pros:

The ships 6 algorithm is broken down into small chunks of code that can run overtime, meaning that while the algorithm is occurring, multiple server ticks can pass, resulting in little to no lag while processing. 

 

The Ships 6 algorithm uses loops instead of recursion meaning that the likelihood of a crash is minimum. 

 

Conns:

Compared to Ships 5 block finder, it is much slower resulting in some cases where it is faster to walk to where you were going

 

If configured incorrectly, it can cause the server to crash with "a single tick took too long to process"

 

ships:blockfinder_ships_six_async

 

This is the same as the normal Ships 6 block finder algorithm, however, runs asynced, this means that it does not run on the main thread which will result in no lag at all to the main server

 

Pros compared to ships 6:

Runs with no performance impact to the server whatsoever

Cannot get the error of "a single tick took too long to process"

 

Conns compared to Ships 6:

Minecraft does not support asynced actions, this may result in your Bukkit or Sponge implementation not being able to process the algorithm correctly

 

Movement

The movement algorithm is how the blocks move. Changing this value will only change the default algorithm to use, plugins that use Ships are able to request their own algorithm, however, some plugins will request to use this algorithm. 

 

The default value is the algorithm that is used, by default this is ships:movement_ships_five as this is the fastest, however it does contain some issues as mentioned below. 

 

The "stack" options are for the Ships 6 algorithms. 

 

Algorithms:
ships:movement_ships_five

The ships 5 movement algorithm is the oldest but fastest out of all the algorithms by default. This algorithm was created in Ships 5. The one used in Ships 1-4 could not be transferred to the later ships versions as its tight integration with the block detection system. 

 

Pros:

the algorithm is fast

Conns:

The algorithm needs to be processed in a single tick, meaning that the error of "a single tick took too long" error causing the server to crash

Can duplicate some blocks (mainly double blocks - this has been fixed in later releases)

 

ships:movement_ships_six

The Ships 6 movement algorithm was designed from the ground up to sort all issues with the ships 5 algorithm, however by doing so comes with other issues

 

Pros:

The movement can take multiple ticks to fully complete, meaning that the crash of "a single tick took too long" cannot occur

No duplication of blocks (a none issue in later releases)

 

Conns:

Can be slow

if the server shuts down (by normal means or a crash) while the ship is moving, it can cause the ship to split in half.  - This is being sorted

 

EntityFinder:

The EntityFinder was introduced to reduce lag once again. The Stack Limit is the amount of entities Ships will attempt to process at once to find out what entities are on the ship. By increasing this number it will make the ship move faster however may increase lag.