DragonSlayer Config Explanation

Jan 23, 2022 at 10:47 AM
DragonSlayer Config Explanation
  • This is a more detailed explanation of
    DragonSlayer's
    configuration file
    with hints and tips


    Part 1: The Config itself

    Section one: "prefix"
    This contains all the settings belonging to the prefix, that is given to the player who kills the dragon!​

    prefix:
    This is the prefix itself.​
    enabled: true/false
    This defines if the prefix should be used, or not.​
    assuffix: true/false
    This defines if the prefix is used as prefix or as suffix.​
    force: true/false
    This forces the use of the internal prefix if PlaceholderAPI is installed aswell. Might be needed if you want to use EssentialsChat f.e.​
    tablist: true/false
    This defines if the prefix/suffix is displayed in tablist.
    Section two: "global"
    This section consists of settings that are used globally, and not map-wise.
    slayer:
    This is the current DragonSlayer's UUID​
    slayerbypercent:
    If this is set to true (AND alternativereward is true, too) the player that did most damage to the dragon gets the DragonSlayer prefix, else it's the one that kills the dragon!!​
    blockgrief: true/false
    This defines whether the dragon is allowed to damage blocks, or not!​
    trydragonautofix: true/false
    This is a workaround for bugs, if some dragons got lost. When set to true, the server will restart a short timer to respawn a missing dragon while the server is restarting (5 minutes timer). The same applies if a player joins the dragon's world and dragons are missing (based on running timers and missing dragons... here respawndelay is used for the timers.) It seems 1.16.x sometimes needs this again ;(​
    bypassdragongateway: true/false
    This is another workaround: on spigot servers gateways may teleport dragons to the endcities. If this is enabled the dragons will avoid those portals. It is not necessary to set this to true on paper servers !!!​
    bypassfunc:1/2 (default 2)
    Wich method is used for bypassing the gateways...
    1: dragons get teleported around the gateways
    2: gateways get switched off/on when a dragon comes close.
    Both have drawbacks: With value 1 the dragons could get 'stuck' at a gateway, when it is next to a point that is used for dragon navigation.
    With value 2 this is not! But when the server restarts and a gateway was just disabled the server will start without that gateway and is can only be reactivated by killing the dragon again!
    Remember: Bypassing gateways is NOT necessary on paper servers!​
    teleportdragons: true/false
    If set to true, dragons will get teleported to the world's center when the first player joins that world.​
    darkness: true/false
    When this is set to true, this will darken the world, if a dragon is present. This only applies to servers, that can't do this on their own anymore. If set to false, the world stays bright.​
    verbose: true/false
    This is only used to reduce server's output to logfile, if set to false...​
    keepchunks: true/false
    This defines, if the chunks where the portals/spawns are, should be kept active. This increeses the use of memory and CPU but improves the speed! Fast servers should be able to use it! ;)
    armorstand_usepapi: true/false
    With this, you can enable the armorstand/statue to use player's nickname instead of the player's name itselt. It requires PlaceholderAPI beeing installed! If that player is offline while the server tries to get it's nickname (what isn't possible) the original player name is used!
    If this is enabled the nickname can also be used in messages and commands. ($slayername)​
    armorstand_placeholder: '%player_displayname%'
    This is the placeholder that is used to get the players nickname by PlaceholderAPI. By default it is '%player_displayname%' %player_name% is the original name.​
    armorstand_format: '%slayer%'
    This can be used to add text etc to the 'armorstand_placeholder'! Placeholder for player's name is %slayer%.​
    armorstand_material: diamond
    The armorstand statue can change it's armor by setting this. Possible values are diamond, golden, iron, lether, chainmail and netherite. Default is diamond!​
    statue_version: 1
    This switches the version of armorstand that will be used to represent the slayer:
    1: classic ArmorStand with players head
    2: NPC-Statue with complete playerskin and armor.​
    multiportal: true/false
    This is the setting that activates the portals to be moved to the dragons spawnpoint! The dragons will patrol these portals as always...
    You can have multiple dragons guarding multiple portals!​
    portalagression: 12
    This value is a replacement for the number of active crystals on the towers when multiportal ist true. Less crystals result in more agressive guarding of the portals!​
    fixdeathflight: true/false
    This enables a fix for the dragon to fly to its portal when it was shot. By default this is vanilla behavior, but sometimes the dragon dies where it was shot and not at the portal...​
    disable_global_spawnsound: false
    This enables/disables the sound the dragon does for glogal or for it's world only...​
    New in version 0.10.2: darkness, blockgrief, trydragonautofix and teleportdragons CAN be used map-wise now. This will override the global settings on THAT world...
    Use command /dsl {valuename} to change it for the world you are in (or add the world's name to the command):
    e.g.: /dsl darkness true world

    Section three: "dragon"
    This section holds the settings for each world, added to this plugin...
    _default: This is the section for default values that will be copied to worlds that get added to the plugin by using the setspawn command..
    name: '&5Smaug&r'
    This is the dragon's name​
    displaydragonname: true/false
    If the dragons name should be visible above it's head...​
    damage: 10.0
    The damage the dragon does to the players!​
    health: 200
    The dragon's health​
    regen_seconds: 0
    If this is set (not 0) it takes this value in seconds to automaticaly regenerate dragon's health​
    regen_amount: 10
    This is the value how much health is automaticaly regenerated...​
    bossbar_distance: 200
    This is distance from player to dragon within the bossbar is visible.​
    range: 16
    The dragon's search range for players... experimental!​
    exp: 12000
    This is the amount of experience the player who kills the dragon gets​
    reward: 2500.0
    This amount of money will be given to the dragon slayer​
    eggchance: 0.3
    0.3 means a chance of 30% for the dragon to drop an egg when it is killed (the dragon, not the egg :)). This is not working for the first dragon that is killed! The first dragon spawns the portal with it's egg...​
    eggasitem: false
    If set to false the egg drops as a block, else as an item!​
    skullchance: 0.03
    This is the same like the eggchance, but for the dragons head!​
    skullitem: false
    The dragon will only drop a dragonhead if this is set to true​
    portaleggchance: 1.0
    This is the same like eggchance, but for the egg that spawns on the portal after the first dragon got killed​
    cancelegg: false
    If set to true the players are not able to klick or destroy the egg-block​
    alternativereward: false
    When 'alternativereward' is set to true, the experience and money your players will get for killing a dragon will be split between all the remaining players in that world based on the percentage of damage they did (to the dragon)!
    If a player does 80% of the damage, he gets 80% of the XP and the money! It doesn't matter if HE was the one who killed the dragon... A player who dies before the dragon is killed, has bad luck and won't get anything!
    Additionaly the rank-commands will get executed when the dragon got killed. (see below...)
    This also needs to be true, if you want to use the 'slayerbypercent' feature!​
    respawndelay: 360
    This is the delay in minutes it will take for the dragon to respawn. Every dragon that gets killed will start a timer with this value! This timer survives server restarts (if the server is shut down correctly and not just turned off!)
    Setting this value to -1 will deactivate the respawn feature! This is useful if you have other plugins that do the respawn, like DragonTimer!
    Setting this to -2 will deactivate the respawn feature, just like with -1, but the 'maxdragons' value remains active!​
    maxdragons: 1
    This is the maximum number of dragons that can spawn in your world! Additionaly, if you also use the multi-dragons-feature, this defines the amount of possible dragons.(see below...)​
    onebyone: false
    If this is set to true, you enable the possibility of having multiple dragons in your settings and let only one dragon spawn at random!
    This feature always only spawns ONE dragon at a time! The value 'maxdragons' is NO longer the maximum of dragons at the same time, but the maximum number of POSSIBLE dragons to be chosen from at random!
    To be able to use the multi-dragon-feature, you have to set your dragons manually in config. The additional values are:
    name_1, name_2, name_3.... etc.
    damage_1 ..., health_1 ..., range_1 , exp_1 and reward_1 ....
    Any missing value will be replaced with the default value.
    If 'onebyone' is set to false, all these dragons will be spawned at the same time, depending on 'maxdragons'.​
    oldportals: false
    When set to true, the portal will be created at the location where the dragon is killed (like it was in minecraft 1.8)​
    denycrystalplace: false
    This prevents players from placing the ender crystals on the portal to respawn a dragon themselves...(if set to true)​
    denycrystalexplode: false
    This prevents the respawn-crystals (on the portal) to make damage when exploding (if set to true)​
    denybedexplode: false
    This disables bed explosions in the end if set to 'true'! Since dragons can be killed with deds, but it's not possible to detect who the killer was, this can become handy...​
    creategateways: true
    Setting this to false diables the creation of the transfer portals (the portals to the endcity)​
    fixgateways: false
    Setting this to true will fix/reset the end city gateways' teleport destinations (the portals to the endcity) , default off​
    resetworld: false
    When true, this will completely recreate the end world after the dragon was killed. All progress (building in the end) will be lost! It's a fresh new world...​
    resetcrystal: false
    This only recreates the crystal-towers, the portal and (depending on the settings) the dragon! The world itself remains the same! After this, the portal to overworld is deactivated again...​
    resetworlddelay: 300
    This value is the delay in minutes it takes to reset the world (or the crystals)...
    World reset and crystal reset only take place when the dragons are still gone!​
    resetwarntime: 1
    This value is the amount af minutes before the reset/refresh when the warning is displayed.​
    respawnplayers: false
    If set to true, this will teleport the players who survived the dragon battle to overworld (after 'resetworlddelay'). It can be used together with 'resetcrystal' or 'resetworld'!​
    nomcdragonrespawn: true
    This disables (if set to true) the original game's respawn functions which sometimes interfere ...​
    command: '{100}ping'
    This is a list (!) of commands, that will be executed when the dragon got killed! You can use multiple commands by adding a ';' in between.
    A random feature is used, whenever a percentage value in brackets is added in front of each command.
    Possible placeholders are: $slayer (the one that just got to be the slayer), $player (the dragon killer's name), $dragon and $world.
    Depending on 'slayerbypercent' the placeholders $player and $slayer can be different players!​
    spawncommand: ''
    This is a list (!) of commands, that will be executed when the dragon spawns! You can use multiple commands by adding a ';' in between. A random feature is possible again.
    Possible placeholders are: $player, $dragon and $world .
    If you add $player, this command will be executed separately for each available player in that world!​
    respawncommand: ''
    This is meant to be an alternative command after dragonkill for player teleport etc. (needs 'respawnplayers' set to true). You can use it to teleport players to lobby, for example...
    This can also be used for other functions, e.g. commands that replace the world instead of resetting it... feel free to use it for anything you like.. :)
    rankcommand_1: 'whisper $player You did $percent% of the damage fighting dragon $dragon in world $world'
    The 'rankcommand_n' is only available if 'alternativereward' is set to true.
    These commands are rank-based! The player that caused the most damage to the dragon has 'rankcommand_1' executed .
    2nd placed player has rankcommand_2, etc.
    Possible special placeholders are $player (playername) and $percent (percentage of damage made to the dragon...) You can also use the other placeholders such as $dragon or $world...
    With this you can pay the players, or have a ranking list displayed etc.
    This also works with a random chance of execution (by adding a chance to the command), so you can have random bonusses.
    Example:
    Code (Text):
      rankcommand_1: '{80}give $player diamond 1;say $player did most damage to $dragon'
      rankcommand_2: '{50}give $player diamond 1;say $player has killer rank $rank'
      rankcommand_3: '{30}give $player banana' #;)
      rankcommand_4: '{100}give $player coal;say $player was 4th place killing $dragon with only $percent% of the damage...'
    You could even use the damage percentage itself as a value for the random chance in command execution... :
    Code (Text):
    rankcommand_1: '{$percent}give $player diamond 1'
    timerfunc: 2
    What to display in timerdisplay/scoreboard behind the text:
    Possible values:
    1 : display seconds
    2: display the number of running timers
    0: nothing (this completely disables the scoreboard!!)

    Section four: "messages"
    Messages - placeholders you can use: $slayer, $slayername, $world, $dragon, $reward
    respawn: '$dragon &4has risen from its ashes!'
    onkill: '&6$slayername &fkilled &4$dragon &rand became the new &9Dragon Slayer!'
    onrekill: '&9Dragon Slayer &6$slayername &fkilled &4$dragon &ronce again!'
    slayer: '&6$slayername &fis the one and only &9Dragon Slayer!'
    noslayer: 'There currently is no hero who can call himself the true &9Dragon Slayer!'
    reward: 'You received &6$reward coins &rfor killing &4$dragon'
    xpreward: 'You received &6$reward XP &rfor fighting &4$dragon'
    died: '&4The Dragon in world $world died. Maybe it was too old... or it was the'
    protect: 'dragons found protecting this world`s portal!'
    reset: 'Warning! The world $world may reset in less than one minute!!!'
    playerrespawn: 'Warning! Every player in world $world will respawn to world $baseworld in less than one minute!!!'
    timertext: 'Next Respawn or Reset:' # 'Next Respawn: Days:$days, $hours:$minutes'
    This is the text for the scoreboard! (Top line)​
    timerline: 'Spawn in: $days Days, $hours:$minutes:$seconds, #'
    This is the text for the scoreboard! Max length in versions 1.8 - 1.12: 32 chars, 1.13+ 128 chars (including color codes)​
    resetline: 'Reset in: $days Days, $hours:$minutes:$seconds, #'
    This is the text for the scoreboard! Max length in versions 1.8 - 1.12: 32 chars, 1.13+ 128 chars (including color codes)​
    notimer_ph: 'not yet'
    This is the text for the scoreboard!​
    showtime: 'Next dragon spawn is: $world: $days days, $hours:$minutes:$seconds'
    This is the text for the showtimer command, not for the scoreboard!​
    showreset: 'Next world reset is: $world: $days days, $hours:$minutes:$seconds'
    This is the text for the showtimer command, not for the scoreboard!​
    showtime_n: 'No spawn timer found for world $world !'
    This is the text for the showtimer command, not for the scoreboard!​
    scoreboard: '$player´s kills: $score'
    crystaldeny: '&4Placing crystals is not allowed!'
    Section five: "spawnpoint"
    Here are the spawnpoints for the worlds the plugin is working in!
    If you want to use the plugin in one of your end worlds, the spawnpoint MUST be set!
    Please use the ingame command to set the spawnpoints!
    /dragonslayer setspawn
    or
    /dsl setspawn
    If you want to edit these values: the worlds name MUST be in lowercase!!!
    These 'spawnpoint' values are also the position for the portals and the 'center' where the dragons patrol... (if 'global.multiportal' is set to true)​
    Section six: "armorstand"
    This is where the statue will be placed!
    Please use the ingame command to set the statue!
    /dragonslayer setarmorstand
    This doesn't have to be in the end world!
    It can be placed anywhere!


    Part 2: Some Examples...

    Configuration Examples for World-Resets and World-Refresh and Player-Teleports... :

    If you want players to teleport to overworld after the dragon was killed:
    Code (Groovy):
        resetworld: false
        resetcrystal: false
        resetworlddelay: 4           # <- Minutes
        respawnplayers: true
        respawncommand: ''           # empty, no own commands! ('') players will be teleported to overworld..

    If you want players to teleport to a specific location after the dragon was killed you can do this by:
    Code (Groovy):
        resetworld: false
        resetcrystal: false
        resetworlddelay: 4           # <- Minutes
        respawnplayers: true
        respawncommand: 'mvtp $player world;tp $player 0 80 0'    # <-- or any other commands with $player as placeholder for the players...

    If you want the world to refresh (dragon/crystals):
    Code (Groovy):
        resetworld: false
        resetcrystal: true
        resetworlddelay: 4        # <- Minutes
        respawnplayers: true      # or false... you can use this together with resetcrystal...
        nomcdragonrespawn: true   # if true: no dragon will respawn... next dragon that will respawn is controlled by the timer for the next respawn ...

    If you want the world to reset after dragonkill:
    Code (Groovy):
        resetworld: true
        resetcrystal: false
        resetworlddelay: 4         # <- Minutes
        respawnplayers: false      # or true...  if true players stay where they were teleported to, if false they will be teleported back to the end after world was reset!
        nomcdragonrespawn: true    # if true: no dragon will respawn... next dragon will respawn based on the timer for the next respawn ...
        respawncommand: ''         # empty, or your own teleport commands etc.!

    If you want the world to reset after dragonkill with your own commands: (f.e. copy an existing world over...)
    Code (Groovy):
        resetworld: false         # false !!!
        resetcrystal: false
        resetworlddelay: 4        # <- Minutes
        respawnplayers: true      # is used for reset AND players respawn here!
        nomcdragonrespawn: true   # has no effect here, if you use your own commands ! Your clone-world must be in the state you want it to be already (with or without a dragon!) or you can add the forcespawn command...
        respawncommand: 'mv delete world_the_end;mvconfirm;mv clone OtherWorld_the_end world_the_end;mvtp $player world_the_end'

    Part 3: PlaceholderAPI-Placeholders :

    %dragonslayer_slayer%
    This is always the last slayer's name

    %dragonslayer_prefix%
    This is the prefix / suffix for the dragon slayer!

    %dragonslayer_timer%
    This displays the remaining time to the next dragon respawn and the world where it will be.
    %dragonslayer_nexttime%
    This shows the remaining time to next respawn (d days, h:m:s).
    It shows the next respawn of all worlds or the one from the world the player is in (if this is a world that is used by the plugin)!
    %dragonslayer_nexttime_[worldname]%
    This shows the remaining time to next respawn in world 'worldname' (d days, h:m:s).
    %dragonslayer_nexttimehms%
    This shows the remaining time to next respawn (h:m:s).
    It shows the next respawn of all worlds or the one from the world the player is in (if this is a world that is used by the plugin)!
    %dragonslayer_nexttimehms_[worldname]%
    This shows the remaining time to next respawn in world 'worldname' (h:m:s).
    %dragonslayer_nexttimehm%
    This shows the remaining time to next respawn (h:m).
    It shows the next respawn of all worlds or the one from the world the player is in (if this is a world that is used by the plugin)!
    %dragonslayer_nexttimehm_[worldname]%
    This shows the remaining time to next respawn in world 'worldname' (h:m).
    %dragonslayer_nextmap%
    This always shows the world where the next respawn will happen.
    %dragonslayer_mykills%
    Displays the player's amount of dragon kills (score)
    %dragonslayer_myplace%
    Shows the player's scoreboard rank!
    %dragonslayer_place_n% (n=1,2...n)
    Shows the scoreboard rank! (e.g. %dragonslayer_place_1% gives who is 1st place...) Output is name and score...
    %dragonslayer_place_n_name% (n=1,2,3...)
    Shows the scoreboard rank (name only)
    %dragonslayer_place_n_score% (n=1,2,3...)
    Shows the scoreboard rank (score only)


    Part 4: Additional config values (to add manually)

    First additional value:
    name_1, name_2, name_3.... etc.
    This are the dragons names. Each dragon can have it's own!
    This needs maxdragons to be set to the maximun number of available dragons.
    If a name is missing, the default name is used!

    The following values only are available if a name_x is set:
    damage_1: the damage for dragon with 'name_1'
    health_1 : the health for dragon with 'name_1'
    range_1 ...
    exp_1 ...
    reward_1 ....​
    Missing values will be replaced with the default values.

    createportal_1 : true/false - with this value you can have a dragon that always (or never) creates it's portal!
    command_1: every named dragon can have it's own commands.

    noautorespawn_1: true/false - with this value you can disable the automaticaly started timer for this dragon.
    That means, this dragon will not start a reaspawn timer when it is killed.
    But it still can respawn, if a timer is started by another dragon or if a dragon is spawned manually...
    Remember: timers are neutral and will always spawn the next missing dragon in that world!
    So, if you f.e. have three dragons with name_1 to name_3 and only want to respawn two of them automatically, use dragon named in name_3 to be the one that is excluded from automatic respawn (by setting noautorespawn_3 to true)!
    Now, if dragons #1 or #2 are killed, they will start respawn timers. Dragon #3 will not!
    Dragon #3 can only be spawed by placing crystals on the portal (if this isn't disabled) ;)



    More to come....;)




    P.S.: If you change any values in config file and restart the server WITHOUT reloading the changes.... the changes will be lost!!
    Therefore, always use the reload command (/dsl reload or /dragonslayer reload) after editing the configuration file while the server was running....
  • Loading...
  • Loading...