New settings - Poweruser/MinetickMod GitHub Wiki
This server mod offers a few new settings within the settings file of CraftBukkit: bukkit.yml These are (with their default values):
minetickmod:
profiler-log-interval: 30
profiler-write-log: false
profiler-write-interval: 10
orebfuscatedWorlds: []
packetCompressionLevel: 7
packetBuilderThreadPoolSize: -1
packetsPerTick: 1
packetChunkRates:
HIGHEST: 5
HIGH: 3
MODERATE: 2
LOW: 1
notGeneratingWorlds: []
maxEntityLifeTime: 10
entitiesWithLimitedLifeTime: []
customOreRates: []
maxChunkGenerationRates:
DEFAULT: 0.5
FLAT: 1.0
LARGEBIOMES: 0.5
AMPLIFIED: 0.5
activationRange:
low: 16
high: 64
max: 88
pathSearchThreadPoolSize: 2
minimumTargetDistanceForOffloadedPathSearches: 0
entitiesWithOffloadedPathSearches:
- BAT
- CHICKEN
- COW
- CREEPER
- MAGMA_CUBE
- PIG
- SHEEP
- SKELETON
- SLIME
- SQUID
- ZOMBIE
bungeeCordSupport: false
keepConnectionsAlive: false
In Detail:
profiler-log-interval
Value type: Integer
Defines the time interval in seconds over which an average of the measured tick durations will be calculated.
profiler-write-log
Value type: Boolean
Enable or disable the writing of profiler logs to the harddrive. The logs will be written to the subdirectory .\Profiler\<MONTH.YEAR>\<DAY>\
. The format of the logs is very basic, it just serves my personal preference for creating diagrams from them in Excel.
profiler-write-interval
Value type: Integer
Defines the interval in minutes in which the profiler will write down measured data
orebfuscatedWorlds
Value type: List of strings (world names)
Enable antixray for a single world by adding the name of that world to this list. Disable antixray in that world by removing its name again. At runtime you can enable/disable antixray in worlds with the command /antixray add|remove worldname
, but this command does not add the world to the list in the setting, add/remove names here manually
packetCompressionLevel
Value type: Integer (between 1 and 9)
Sets the compression rate for the algorithm (java.util.zip.Deflater) used during compression of chunk packets. 1 stands for lowest, but fast compression, 9 stands of highest, but slow compression
packetBuilderThreadPoolSize
Value type: Integer (1 - 32)
Sets the number of threads in the thread pool used for creating and compressing chunk data.
packetsPerTick
Value type: Integer (between 1 and 20)
Sets the number of chunk packets which will be created each tick (remember: 20 ticks each second) for each player (as long as the player got chunks left to be sent). Be careful here, setting it too high can easily cause cpu load spikes when players load many chunks at once (e.g. when teleporting). Anything above 2 packets per tick is purely for testing purposes.
packetChunkRates
Value type: Node list of key-value pairs (chunk priority: number of chunks per packet)
Controls how dense the server is sending the chunk packets to the client. By default the server packs the data of 5 chunks within one MapChunkBulk packet, no matter where the chunks are in relation to the player's position and orientation. When this much data (for example when teleporting) is sent to the client it may block the client's connection for some time, which is perceived as connection lag. To reduce this effect, you can define how many chunks may be put within one packet for certain chunk priorities. The chunk priorities are defined by the field of view of the player, the more visible the chunk, the higher it's priority.
notGeneratingWorlds
Value type: List of Strings (world names)
Deactivate generating of new chunks in a specific world, by adding its name to this list.
maxEntityLifeTime
Value type: Integer
Set the maximum life span in minutes of certain entities. The entities that shall be removed can be defined in the setting entitiesWithLimitedLifeTime
. After the life span is exceeded the entity is deleted without dropping any loot.
entitiesWithLimitedLifeTime
Value type: List of Strings (Bukkit entity type names)
This list holds all the types of entities that shall be removed when such an entity's life span
exceeds the maximum duration, that is set in maxEntityLifeTime
.
The names that you can set here are the ones defined in the Bukkit API: EntityType.java. There are a few restrictions to this. Only sub-types of EntityLiving are checked for their life span.
The following list of types are ignored and will not be removed when you set them: PLAYER, ENDER_DRAGON, WITHER
!! Warning, be very careful with this setting !! When you use a npc-plugin that controls certain entities and adds new behaviour to them, like Citizens and Denizen, then DO NOT add those entity types to this list.
customOreRates
Value type: List of Strings (block name and value pairs)
This list defines custom spawn rates for ores in new generated overworld chunks, when using the default generator. The format of the list entries is: block name:int value
Example of all adjustable ores with their default values:
customOreRates:
- coal_ore:16
- iron_ore:8
- gold_ore:8
- redstone_ore:7
- diamond_ore:7
- lapis_ore:6
The higher the value, the larger the deposits are. The value and the amount of ore do not scale linear. For example, lowering the rate of diamond_ore from 7 to 4 gave us on average a reduction of 60%.
maxChunkGenerationRates
Value type: Node list of key-value pairs (WorldType: rate)
Here you can define the maximum rates at which chunk may be generated by the world type. Possible world types are: DEFAULT
(the normal Overworld, Nether and End), FLAT
(any flatland world), LARGEBIOMES
(worlds that are generated with the option "large biomes") and AMPLIFIED
(worlds that are generated with the option "amplified")
The rates are decimal numbers which define how many chunks may be generated at most per world (of that certain type) within one server tick. A rate of 1.0 sets the limit to 1 chunk per tick per world of that type. Lower rates will skip tick for chunk generation. 0.5 will allow the generation of a chunk every 2nd tick on average. The individual chunks are still completely generated within one tick, with lower rates than 1.0 there are just ticks in between that do not generate, to give the server the time to catch up if it was overloaded.
activationRange
Value type: Node list of key-value pairs (range type: distance in blocks)
The normal range for entities of the type LivingEntity is the one set with high
. LivingEntities that are farther away from all players, than that setting, are partially ticked (some ticks are skipped). And LivingEntities beyond the range of max
are despawned. The range low
is used instead of high
, when the server is under heavy load (falling below 20 tps).
pathSearchThreadPoolSize
Value type: Integer (1 - 32)
Sets the number of threads in the thread pool used for asynchronous path searches.
minimumTargetDistanceForOffloadedPathSearches
Value type: Boolean
Path searching entities (defined in entitiesWithOffloadedPathSearches
) who's target is farther away than the distance that is set here, use offloaded path searches for their navigational goals. The ones that are closer to their target then the set distance, run the path search in the same thread as the entity is ticking in.
entitiesWithOffloadedPathSearches
Value type: List of Strings (Bukkit entity type names)
Entities on this list, which are a subtype of LivingEntity, use offloaded path searches, if their target is further away than the defined minimum distance in minimumTargetDistanceForOffloadedPathSearches
.
Entities that use offloaded path searches not do always receive a 100% correct and up to date path to their target, as they pass the search off to different threads now and do not wait for the result anymore. They instead receive adjusted paths from previous similar searches.
bungeeCordSupport
Value type: Boolean
TODO: description
keepConnectionsAlive
Value type: Boolean
TODO: description