Players can set their own title. Titles can be associated with permissions, so you can change available titles per rank or player.


  • Create as many titles as you want. These titles can contain colors, styles etc.
  • Players can set their own prefix and suffix (or clear it).
  • Associate titles with permissions. Players can only set these titles if they if the right permissions. This can be used for rank dependant titles or as rewards.
  • Prefixes and suffixes can be set seperatly, or only one of them Since 1.3.0
  • Nametag support. Show the titles also in the tag above a players head! Since 1.2.0
  • Ingame adding and editing of titles Since 1.4.0
  • Supports YAML, H2, mySQL, Postgre and SQLite storage methods. Since 1.5.0
  • It is possible to set a default prefix and/or suffix for ne players Since 1.5.0
  • Can be used next to another chat plugin. Title can be inserted into existing chatformat (on the position of "[titleprefix]/[titlesuffix]"), this plugin can overwrite the chatformat or titles can simply be inserted before and after the playername. See the installation section for more info
  • Like all my plugins, every single message (confirm messages, error messages etc) is fully configurable. Even the menu! So no longer these annoying pluginname tags or ugly colors.
  • Works with vault, so every big permission plugin is supported
  • Possibility to automaticly check for updates (but no auto update)


dsTitle chat example

Example of title used in chat

dsTitle nametag example

Example of a nametag

The config of these images can be found under 'Config' down here (it is both the 'vip' prefix and the 'vip' suffix).


Simply put the dsTitle.jar in the plugins folder of your Bukkit server

If you use a chat plugin next to dsTitles, there is a change you may need to change some config files. For some chat plugins, the changes are listed down here. If your plugin is not listed here, check first if it works without editing anything. If titles aren't displayed, try to add [titleprefix] and [titlesuffix] to the chatformat of the chat plugin. If this still doesnt work, try to change general.chat_format_player_tag in plugins/dsTitle/config.yml to the playername tag used in the chat plugin. If after all of this it still doesn't work, pm me. I don't check the comments daily, but if you send a pm i get an email.

No other chat plugin

No changes needed


Works for me without editing anything.


Two options:

  1. Add [titleprefix] and [titlesuffix] to plugins/MChat/locale.yml: format.chat
  2. Change general.chat_format_player_tag in plugins/dsTitle/config.yml to '+dn' or '+n' (depending on MChat config) and dont overwrite the chatformat
ChatManager (PermissionsEx)

Change general.use_deprecated_listener in plugins/dsTitle/config.yml to true Add [titleprefix] and [titlesuffix] to message-format in /plugins/ChatManager/config.yml


Add [titleprefix] and [titlesuffix] to chat.format in /plugins/Essentials/config.yml


  • /title prefix - List all prefixes
  • /title prefix set <name> <player> - Set your own prefix or the one of an other player to the prefix with this name
  • /title suffix - List all suffixes
  • /title suffix set <name> <player> - Set your own suffix or the one of an other player to the suffix with this name
  • /title list - Show all (or only available) titles
  • /title clear <player> - Clear your or somebody elses current title
  • /title add <prefix|suffix> <name> - Create a new prefix or suffix
  • /title edit <prefix|suffix> <name> <field> <value> - Edit a field of an existing prefix or suffix. Valid fields are: chattag, headtag, permission and description. Example: /title prefix member chattag &3Member Group
  • /title grant <prefix|suffix> <name> <title> - Grant a prefix/suffix to somebody (needs Vault installed and ds_title.admin permission)
  • /title ungrant <prefix|suffix> <name> <title> - Revoke a prefix/suffix from somebody (needs Vault installed and ds_title.admin permission)
  • /title reload - Reload the configuration (needs ds_title.admin permission)


This plugin has two major permissions:

  • ds_title.player - Basic permission to use /title prefix, /title prefix set, /title suffix, /title suffix set and /title clear
  • ds_title.admin - Permission to use all commands

Next to that, every command has its own permission.

  • ds_title.title - Permission to use the /title command. Included in ds_title.player
  • ds_title.prefix.list - Gives access to list the prefixes. Included in ds_title.player
  • ds_title.suffix.list - Gives access to list the suffixes. Included in ds_title.player
  • ds_title.prefix.self - Gives access to changing prefix of yourself. Included in ds_title.player
  • ds_title.suffix.self - Gives access to changing suffix of yourself. Included in ds_title.player
  • ds_title.prefix.other - Gives access to changing prefix of somebody else
  • ds_title.suffix.other - Gives access to changing suffix of somebody else
  • ds_title.prefix - Gives access to changing prefix of both yourself and somebody else
  • ds_title.suffix - Gives access to changing suffix of both yourself and somebody else
  • ds_title.add - Permission to add a new title
  • ds_title.edit - Permission to edit a title
  • ds_title.clear.self - Permission to clear your title. Included in ds_title.player
  • ds_title.clear.other - Permission to clear somebodys title
  • ds_title.clear - Permission to clear title of yourself or somebody else
  • ds_title.reload - Permission to reload the titles from config
  • ds_title.grant - Permission to grant titles
  • ds_title.ungrant - Permission to ungrant titles

The permissions needed per title (if any) can be configured by yourself


There are two config files. config.yml contains the basic config. titleConfig.yml contains the titles a player can set. To see more information about these files, click on the links.

Here is an example of titleConfig.yml:

    chattag: '&3Member'
    permission: 'title.member'
    description: 'Title for members'
    chattag: '&4&lVIP'
    headtag: '&4&lVIP&r '
    permission: 'title.vip'
    description: 'Only for VIPs :P'
    chattag: '&6KING'
    headtag: '&8[&6K&8]'
    permission: 'title.vip'
    description: 'Only for VIPs :P'

This config creates two prefixes and one suffixes. Players can only set these titles if they have the corresponding permissions.

The result of the vip title can be found under 'Example'.

Known issues

  • In the config.yml of plugins of version 1.1.2 or lower is a character (§) which some Linux systems don't accept. You can remove it by editing the jar or by updating to the latest version.
  • It seems titles dont work with some chat plugins without overriding the chat format. Should be fixed in 1.3.0

Found a bug? Create a ticket (top right of this page) or create an issue here.


  • You can now save the titles of players in YAML, mySQL, h2, Postgre or SQLite: Can be changed in config.yml/storage
  • You can now set a default prefix and/or suffix by setting default_prefix and default_suffix in titleConfig.yml
  • Bug fix (#1 title displaying "null")
  • /title add and /title edit added. With these commands, you can add and edit titles ingame.
  • You are now able to set titles of other players:

- /title suffix set <title> <player>

- /title prefix set <title> <player>

- /title clear <player>

  • Added extra permissions. Every command now has its own permission.
  • Added an option in config to disable all chattags.
  • Seperated titleprefix and titlesuffix
  • Added permissions for changing prefix and suffix
  • Added some extra config items which make it able to adapt to chatplugins.
  • Fixed a bug reported by lanceryy (link)
  • {titleprefix} and {titlesuffix} replaced by [titleprefix] and [titlesuffix] to be compatible with EssentialsChat.
  • Added some length checks to avoid exceptions.
  • Integrated both normal and ChatManager versions into one. Set general.use_deprecated_listener in config.yml to true for ChatManager.
  • Changed priority of listeners, they now insert titles after all other plugins.
  • Added nametag support. Use 'headprefix' and 'headsuffix' in titleConfig.yml to use it.
  • Fixed a bug when loading the plugin on some Linux systems
  • Some little tweaks

Version 1.1.1, compiled and tested with Bukkit 1.5 R0.1


Added update checker, can be disabled/edited in the config

  • /title grant added
  • /title ungrant added
  • Titles can now have both a prefix and a suffix. Use {titleprefix} and {titlesuffix} in your chatformat if you have your own format (instead of only {title})

Initial release

To do

  • (1.5.0) Test database storage method by Kaltiz
  • (1.5.0) Add an option to set a default prefix and/or suffix
  • (1.5.0) Fix some bugs
  • Maybe: Make an option to change title color instead of making 16 different titles
  • Maybe: Seperate prefix and suffix, so you can set both independantly Since 1.3.0
  • Add the option of a suffix to a title New in v1.1.0
  • Add a /title grant <name> <title> command New in v1.1.0
  • Add vault support for permissions New in v1.1.0

Please comment if you have any suggestion.

Other plugins

dsPvPtop - Keeps track of number of kills an deaths in PvP and grants permissions.

PlayerHealth - Shows health below name to players who have the right permissions.


github The source can be found on github by clickin on the button.

If you like my work, feel free to donate something for my labour: Donate on Paypal

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of boo2300 boo2300 Mar 21, 2015 at 18:14 UTC - 0 likes

    Any idea when this will be updated to 1.8?

  • Avatar of Milkyway705 Milkyway705 Oct 27, 2014 at 22:12 UTC - 0 likes

    How i can create mysql base?

  • Avatar of rediem rediem Sep 10, 2014 at 19:18 UTC - 0 likes

    @denniss17: Go

    gj, 2 months later still no update. (very soon?...)

  • Avatar of Xickle Xickle Jul 23, 2014 at 15:07 UTC - 0 likes

    I get this error when players with titles join the server:

    16:54:49 [SEVERE] Could not pass event PlayerJoinEvent to dsTitle v1.5.0
    16:54:49 org.bukkit.event.EventException
    16:54:49 	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[spigot.jar:git-Spigot-1521]
    16:54:49 	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-1521]
    16:54:49 	at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) ~[spigot.jar:git-Spigot-1521]
    16:54:49 	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-1521]
    16:54:49 	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-1521]
    16:54:49 	at net.minecraft.server.v1_7_R3.PlayerList.c(PlayerList.java:265) [spigot.jar:git-Spigot-1521]
    16:54:49 	at net.minecraft.server.v1_7_R3.PlayerList.a(PlayerList.java:152) [spigot.jar:git-Spigot-1521]
    16:54:49 	at net.minecraft.server.v1_7_R3.LoginListener.c(LoginListener.java:105) [spigot.jar:git-Spigot-1521]
    16:54:49 	at net.minecraft.server.v1_7_R3.LoginListener.a(LoginListener.java:43) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:187) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:81) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:720) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489) [spigot.jar:git-Spigot-1521]
    16:54:50 	at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1521]
    16:54:50 Caused by: java.lang.NullPointerException
    16:54:50 	at denniss17.dsTitle.PlayerListener.onPlayerJoin(PlayerListener.java:86) ~[?:?]
    16:54:50 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]
    16:54:50 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_51]
    16:54:50 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_51]
    16:54:50 	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_51]
    16:54:50 	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[spigot.jar:git-Spigot-1521]
    16:54:50 	... 15 more

    Any idea how I could fix it? Using spigot to run the server

  • Avatar of KelvinKam KelvinKam Jun 20, 2014 at 21:17 UTC - 0 likes

    Can I have a prefix when I got a permission? So that I can auto reward a permission to player, then they can have a new title (like uSkyBlock), thank you :)


  • Avatar of boo2300 boo2300 Jun 04, 2014 at 00:07 UTC - 0 likes

    How do you do the permmisions? I have it set to title.member and I have given that to members, but it doesn't work.

  • Avatar of denniss17 denniss17 May 30, 2014 at 14:57 UTC - 0 likes

    @YoshinoK: Go

    Found the problem. If you try to grant or ungrant a title which has no permission attached to it, an exception occurs. Will fix it in the next update which will come soon.

  • Avatar of YoshinoK YoshinoK May 26, 2014 at 04:06 UTC - 0 likes

    @ThisUsernameIsMine: Go

    Same here :/

    But the /title grant works when i tried to remove GroupManager :/ Tried with other permission plugin but still not work.

    So the only way to use /title grant is remove the permission plugin?...

    Edit: Try this http:dev.bukkit.org/bukkit-plugins/permissions-g/

    Last edited May 29, 2014 by YoshinoK
  • Avatar of Cuaris94 Cuaris94 May 01, 2014 at 18:10 UTC - 0 likes


    When a player a headtag title and he logout from the server and log in again the title is gone, and he has to use the command again, how can i make the title persist even if they logout?... (logout: disconnect from server and connect again)

  • Avatar of denniss17 denniss17 Apr 30, 2014 at 21:37 UTC - 0 likes

    @ThisUsernameIsMine: Go


    As you can see in your exception, the error occurs in the GroupManager plugin and because of that my plugin does not do what it is intended to do. Try contacting the maker(s) of GroupManager.

    About the bug: It seems 1 of two things happen: 1. The title isn't correctly saved or 2. it is unable to load the current title on joining. Which data storage method do you use?


Date created
Feb 10, 2013
Last update
Feb 10, 2014
Development stage
GNU General Public License version 2 (GPLv2)
Curse link
Recent files
  • R: 1.5.0 for CB 1.7.2-R0.2 Feb 10, 2014
  • R: 1.4.0 for CB 1.7.2-R0.2 Dec 25, 2013
  • R: 1.3.1 for CB 1.6.2-R0.1 Aug 28, 2013
  • R: 1.3.0 for CB 1.6.2-R0.1 Aug 27, 2013
  • R: 1.2.1 for 1.6.2 Jul 25, 2013