Server Tutorial Plus 1.21.3

Introduce players to your server with unlimited tutorials! Many customisations! Free!

  1. MartenM
    Native Minecraft Version:
    Legacy (< 1.13)
    Tested Minecraft Versions:
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    Source Code:

    The plugin to introduce new players to your server with unlimited tutorials!

    • Create unlimited custom server tutorials.
    • Unlimited points per tutorial.
    • Unique settings for every tutorial point.
    • Give players a reward for completing the tutorial first time. (MySql supported)
    • Start a tutorial when a player joins for the first time.
    • Start a tutorial when right clicking a block.
    • Start a tutorial when right clicking an NPC.
    • In game editor (commands)
    • Stats for every tutorial.
    • Permissions per tutorial possible.
    • Block commands while in a tutorial.
    • Easy to use.
    • Lightweight. No tasks running on the background.
    • Supports the PlaceholderAPI
    Options per point
    • Send a title
    • Send a chat message
    • Send an action bar message
    • Play a sound
    • Set a players fly mode
    • Lock a player
    • Execute a command
    • Spawn fireworks
    • Add potioneffects
    • And more!
    Supported placeholders without the PlaceholderAPI: {player_name}

    Point types:
    • Timed - Proceed after a set time interval.
    • Check point - Proceed after walking into the checkpoint.
    • Click block - Proceed after clicking a block (can be a sign).
    • Command point - Proceed after the player executes the command /st next. Useful if you want other plugins to perform actions on a certain point.
    All these points offer custom settings as well to make them more unique.

    Tutorial / showcase video

    Tutorial by BrandsPickled


    This showcase lacks new features that have been added!

    //Command permissions

    //Action permissions

    //Permissions for tutorials
    servertutorialplus.tutorials.<Server tutorial id here>
    servertutorial.tutorial.bypass - Allows to bypass any restrictions (like blocked commands).

    /st help - Shows a help with all the commands (that you have permission for).
    /st create <id> - Create a new server tutorial.
    /st remove <id> - Remove a server tutorial.
    /st addpoint <id> - Add a point to a tutorial.
    /st removepoint <id> <point index> - Remove a point from a tutorial.
    /st info <optional: id> - Show a list of all the server tutorials or info about a specific one.
    /st gui - Show GUI to see all the servertutorials and points.
    /st player <username> - Shows stats of a player in chat.
    /st play <id> (playername) - Play a server tutorial. (Playername is optional)
    /st quit - Quit your current tutorial
    /st playpoint <id> <point> - Play only 1 point of a server tutorial.
    /st setblock <id> - Set a interactive block that starts a tutorial when clicked.
    /st reload - Reload the plugin from the configs. (without saving first!)
    /st save - Save the current data to the configs. (without loading first!)
    /st npc <add/remove/bind/text/height> <value>
    /st edit <id> <invisible/rewards/permission/
    blockcommands/commands/chatblock> - Set settings for a tutorial as whole.
    /st editpoint <id> <point> <args> - Edit all the points at once.
    /st editpoint <id> <point> <args>

    Default args: (Applied to every point)
    time <seconds>
    Sets for how long it takes untill the next point.

    fly <true / false>
    Set fly mode to true or false.

    lockplayer <true / false>
    Prevent the player from moving.

    lockview <true / false>
    Lock the players view.

    messages <add / remove / list / clear>
    Add and remove chat messages for a point.

    commands <add / remove / list / clear>
    Add and remove commands that get executed as soon as the point is played.
    [!] NOTE: Commands should be entered without the / !

    actionbar <set / clear>
    Set a new action bar that gets played at the point or reset the current one.

    firework (Hold a firework in your hand)
    Spawns a firework at the location you stood when adding it when the point is played.

    Sets your current location as the new location for the point.

    title <title / subtitle / fadein / fadeout / stay / reset>
    Set a title or subtitle to play on a point.

    sound <set / clear> (set args: <sound> <volume> <pitch>)
    Set a sound that is played on the point.
    You can find a list of all sounds here.

    potion <add / remove / list / clear>

    Adds a potion effect to the player.
    If the user holds a potion that potion effect will be added.
    Otherwise the args are like this: <potioneffect> <time (in S)> <level>

    switch <point index>
    Switch the point with the point given.

    infront <point index>
    Move a point infront of an other one.

    Optional args: (only applied to specific points)
    distance <value (blocks)>
    The minimal amount of distance between the checkpoint and the player before completing it.

    repeatActionbar <true/false>
    If enabled, the actionbar will stay. Usefull for keeping the hint to move to the checkpoint.

    colour <red> <green> <blue>
    The colour for the checkpoint.
    [TIP]: When using values higher then 255 it will start randomizing!

    ClickBlock point:

    colour <red> <green> <blue>
    The colour for the checkpoint.
    [TIP]: When using values higher then 255 it will start randomizing!

    Allows you to set the block.

    repeatActionbar <true/false>
    If particles should be displayed.

    teleport <true/false>
    If the player should be teleported to the point.

    Server Tutorial Plus offers a small but useful API for developers.
    For more info about the API, expand this spoiler:

    Code (Text):

    public class ServerTutorialApi {
        * Starts a server tutorial for the defined player.
        * Returns true if the tutorial has been started. False in all other cases
        * @param id     Id of the server tutorial.
        * @param player The player.
        * @return       A boolean that represents if the tutorial has been started.
        public boolean startTutorial(String id, Player player){


        * Returns if the player is currently in a server tutorial.
        * @param uuid  The players UUID
        * @return      A boolean
        public boolean isInTutorial(UUID uuid){


        * Get the current servertutorial of a player.
        * @param uuid  The UUID of the player
        * @return      The servertutorial or null if not in one.
        public ServerTutorial getCurrentTutorial(UUID uuid){


         * Gets the controller object that manges the players tutorial.
         * @param uuid
         * @return The controller object. Null if not in a tutorial.
        public TutorialController getController(UUID uuid){


         * This method is used to fetch the API with ease.
         * @return An Api Object
        public static ServerTutorialApi getApi(){

    To get this class simple use this piece of code:
    Code (Text):
    ServerTutorialApi stApi = ServerTutorialApi.getApi();
    //TODO: Store this somewhere for easy acces.
    The API also provides some events you can listen for.
    Code (Text):

    public void handlestart(TutorialStartEvent event){


    public void handlestop(TutorialEndEvent event){


    void handlePlayPoint(TutorialPlayPointEvent event){

    (Note: Only contains objects you should be using when using the API)

    ☐ New point types
    ☑ Block certain commands when in a tutorial.
    Language files
    Support for more custom points. (Priority)
    Rework the edit commands.
    Bind any mob to play a tutorial (good for citizens etc)
    Add placeholder API
    NPC's that can be right clicked to play a tutorial


    Stats provided by You can opt out this service at any time.

    If you enjoy the plugin: Please leave a review. It really helps my motivation :D

    I work on this plugin in my free time. I do not get paid for it any way, just so everybody can use it, but if you want to support me, and already left a review, than you can donate here:


Recent Reviews

  1. Eik0_
    Version: 1.21.3
    Exactly what I was looking for. Works flawlessly! A lot of functionnalities, very complete. Good job!
  2. Krunos
    Version: 1.21.3
    Super Plugin, Super Author, Fast Bug fixing. Alot of Features. Why you are reading this? DOWNLOAD NOW. <3
    1. MartenM
      Author's Response
      Thanks for your review ^-^
  3. Bo4kaMeda
    Version: 1.21.2
    This is a very good plugin, but it would be great to see in it a blocking of messages from other players in the chat. Good luck!
    1. MartenM
  4. sdollar
    Version: 1.21.2
    Just... Perfect. - That's all I have to say! :D
    1. MartenM
  5. guillelego
    Version: 1.21.2
    Amazing plugin! Also, I would like to know if it is possible to make an option to enable/disable World based location. It has some conflicts with other plugins. Thank you
    1. MartenM
      Author's Response
      Let me know the errors on the discussion page so I can take a look at it ;)
  6. miguelrebolo
    Version: 1.21.2
    I need talk with you i have plenty of questions about your plugin.Plis start a conversion with me.
  7. joshue
    Version: 1.21.2
    Very good the plugin but I would like to know how to make them enter the tutorial when they first enter the server, as soon as they enter they appear in the tutorial
  8. nordlead
    Version: 1.21.2
    Ok plugin. Not sure of any other plugins like it, but this one has lots of limitations (or possibly just poor documentation). You can only click oak signs (not on wall), and timed events force you to warp to a location. The time argument that is supposed to be how long until the next point (in seconds) doesn't appear to work as messages for the next point always happen imediately. There doesn't appear to be any way to post messages after a point, so you have to duplicate points if you want text saying to go do something, they make it to the checkpoint and then you want to display a "congrats" message.

    Also, there is no point that forces a user to input a given command, and since many of the plugins on my server which are interacted with exclusively through commands, this plugin basically can't show them off.

    Overall, ok, but dificult to make useful tutorials due to limitations of the plugin.

    EDIT: Lost power and I forgot to save and the plugin doesn't automatically save critical information (like NPC data). This caused a NPC to be added to the world that wasn't saved so the commands will no longer remove it. I killed the NPC, but the text is still floating there. Obviously the plugin creator is aware people have this problem, but has not provideded a way to correct common mistakes like this.
    1. MartenM
      Author's Response
      Hey there, I am sorry to see this review. Although the plugin may be somewhat limiting, I believe with some creativity it can be used to create quite good working tutorials.

      The lost power incident is quite new to me I guess. I am used to saving only when the server is shutting down (or /st save). Will look into it since I have manged to resolve all other issues surrounding the armor stands.
  9. CustomWorldYT
    Version: 1.21.2
    Thank you so much for this awesome and heartwarming plugin! My players really needed this, as when they first join the server they do not know what to do.

  10. Appa117
    Version: 1.21.2
    A very nice Server Tutorial Plugin.

    In the beginning the whole permission and command stuff was a little bit overwhelming but once you get into it is a lot of fun to set up tutorials or other things you have in your mind.

    I am also using this to give a showcase of different players and awesome structures on our server.

    I encountered two little bugs but i am not sure if this is server/version dependet.

    Overall i highly recommend this awesome plugin!

    Keep going!