rscFirstJoinDemo — Really smooth flying demonstrations v0.8.0b

Show in-game demo to your players! First-join / signs / cmds. Use as a teleports! TRY!

  1. Reality_SC
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    rscFirstJoinDemo allows you to create trajectories for player flights (one for the first join and others are sign-based).
    For russian-speaking users: plugin's page @

    Don't forget to vote for this resource if it was useful for you! Thanks!


    Every trajectory is an ordered set of points (Location + extra info). When a player enters your server for the first time, plugin will teleport him along the trajectory. Trajectory points are very customizable:
    • Coordinates consist of world's name, x, y, z, pitch, yaw.
      • Coordinates between two nearest points are interpolating so the flight is smooth enough.
      • When two nearest points are in different worlds plugin will simple teleport you from first to second.
    • Different events when player reaches specific point during his flight:
      • Freeze hauling player on a point for some ticks.
      • Send chat message.
      • Show title/subtitle (only servers 1.8+).
        Requires ProtocolLib (3.6.4+) for this feature.
      • Change/lock/unlock/restore time and weather settings for the hauling player.
      • You can use placeholders from optional PlaceholderAPI both in chat messages and titles. Plugin is also processing my own placeholders and color codes started with &.
    • Speed between two nearest points is measured in blocks per second and is tuneable.
    Hauling player is hidden from all other players, has enabled flight, spectator mode (servers 1.8+); he cannot chat. If something is going wrong (even disconnect) all parameters will be restored and player will be teleported to the end of trajectory (last point).

    Plugin supports a number of trajectories, all of them should be named and stored in <caption>.json file near config.yml. Only one of them is used for first joining players, other can be used for different purposes.

    Using signs with flights.
    When you want to give players ability to flight any of existing trajectories, just create a sign with the following format:
    1. First line should be [rscfjd] (case-insensitive).
    2. Second line should contains the name of a trajectory.
    Any player right-clicked on the sign will be hauled through this trajectory. If trajectory has it's custom permission (property of the trajectory) player need it to use sign. On the other side, if you've enabled permissions for signs (config.yml/settings.require-permissions-for-signs is true), player need rscfjd.sign.<trajectory name> (or rscfjd.sign.*) for using it. Hovewer, if both permissions are required, only one of them allows sign to be usable.

    There are a number of interesting things you can make using this plugin: teleports with soft flying, fast elevators along upstairs/downstairs, demo for server features, etc.

    Installation and upgrading.
    Download plugin's .jar file into plugins directory. Restart the server or load the plugin using plugin manager. You can start using it immediately.
    There is no need to edit default config.yml in most cases. If you edit it, run reload subcommand.
    Plugin contains auto-updater feature. When it finds newer version all admins will receive notification about it. Also you can look for an update with update subcommand. Calling update do subcommand will start the updating process. It is good idea to restart your server after new version is installed.

    Code (YAML):
     # Caption of a trajectory which to start for first joining players.
    : 'firstjoin'
      # Enable or disable automatic playing of first-join demo.
    : true
      # Number of ticks to give logged in player before demo starts.
    : 20
      # If true, right-clicking on the signs will require rscfjd.sign.<caption> permissions.
    : false
      # What is to be shown in console
    : true
    : false

    Every online player with rscfjd.admin permission can create and edit trajectories. If several players editing them at the same time, there is still no problem — each player works with his own personal trajectory buffer. This is unnamed trajectory binded to the online player editing it. Personal buffers are also saved across server restarts in ./buffers/<uuid>.json files.
    You can start new trajectory from scratch or load named trajectory from file into your buffer, edit it, and save into file again under old or new name.
    • /rscfjd help
      Shows available commands.
    • /rscfjd play [<player name> [trajectory caption]]
      Start hauling you or specified player thought first-join or specified trajectory.
    • /rscfjd stop [player name]
      Stops playing trajectory for you or specific player.
    • /rscfjd add <freeze ticks> <speed after this point> [chat message]
      Creates new point in trajectory after currently selected. This new point is coming new selected point. Point's position is copied from your current location.
    • /rscfjd select [#]
      Selects any point by it's order id. If id is not specified, reselects current point (and teleports you to it again) — useful for macros binding.
    • /rscfjd next
      Selects the next point, if one exists. Useful for macros binding.
    • /rscfjd prev
      Selects the previous point, if one exists. Useful for macros binding.
    • /rscfjd position
      Updates location of selected point.
    • /rscfjd freeze <ticks to freeze>
      Updates number of ticks for player freezing when he reachs it. It is good practice to many some points with freezes to allow server software send more packets for the player during this window (map loading, etc.).
    • /rscfjd speed <speed after this point>
      Updates speed which the player will have between current and next points. Speed is measured in blocks/sec. When speed is set to zero or points are in different worlds the player will be teleported immedeately to the next point (after freeze ticks of current point).
    • /rscfjd text [chat message to show]
      Replaces chat text to be shown for the player when he reaches current point.
    • /rscfjd titletime [number of ticks that title will be shown]
      Sets the number of ticks the title and subtitle will be shown for the player (if they are set). Plugin uses constant times for fadeIn (1 sec) and fadeOut (1 sec), so the total time of titles will be 1 sec + titletime + 1 sec.
    • /rscfjd title [title text]
      Updates text of the title to be shown for the player when he reaches current point. Note: you can use PlaceholderAPI, my placeholders and color codes with &.
    • /rscfjd subtitle [subtitle text]
      Updates text of the subtitle to be shown for the player when he reaches current point. Note: you can use PlaceholderAPI, my placeholders and color codes with &. Subtitle can be used without title text (empty title text will be internally set to §r).
    • /rscfjd time <reset|lock <value|now>|unlock <value|now>>
      Sets the time for the player who reached the current point. Value should be in ticks or now to use your current world's time value.
    • /rscfjd weather <reset|sunny|stormy>
      Sets the weather for the player who reached the current point.
    • /rscfjd info [trajectory caption]
      Shows information about current plugin configuration, your current buffer info; properties of currently selected point.
    • /rscfjd delete
      Deletes currently selected point from your buffer. Selects the next point, (or previous), if one exists.
    • /rscfjd merge <trajectory caption>
      Adds points from mentioned existing trajectory at the end of your buffer.
    • /rscfjd permission [permission]
      Sets the trajectory-specific permission that is required for using sign with this trajectory. Can be any text value. Saved in trajectory's .json file. Enter empty to remove. If config.yml/settings.require-for-sign-permissions is true, player should have just one of sign or trajectory permission to be allowed to see demo.
    • /rscfjd load [trajectory caption]
      Stores all points from your buffer into <caption>.json file (if caption is specified) or into special file allocated only for you.
    • /rscfjd save [trajectory caption]
      Replaces your buffer with the points from <caption>.json (if caption is specified) or from special file allocated only for you.
    • /rscfjd clear
      Removes all existing points from your buffer. For completely new trajectory you can also use load with non-existing caption.
    • /rscfjd reload
      Reloads plugin.
    • /rscfjd update [do]
      Check for an update (without arg) or initiate updating process (with do) (will be in next release).
    Write in discussion what other commands do you want to see.

    • rscfjd.admin (default: op). It is needed to use all commands of the plugin. There is no extra permissions needed to fly the trajectory.
    • rscfjd.sign.<trajectory caption> — ability to play specified demo by right-clicking on the sign. This permission is only applicable when config.yml/settings.require-for-sign-permissions is set to true. When this option is false (default) no special permissions are required to use signs.
      • rscfjd.sign.* — ability to use any trajectory sign.
    Source code and development builds
    of this project can be acquired here and here, respectively. Use development builds at your own risk! They can be unstable and corrupt plugin's configuration files. If you think you are able to improve the functionality, please send me your Pull Requests on GitHub.
    Use Ask Question / Get Support button to the right to get faster help (link to the GitHub issues).

    I'm writing code using only latest Bukkit API (today it is SpigotAPI for 1.8.8) and a minimum set of libraries which are included inside .jar. Plugin should work on older server versions: 1.7.x, 1.6.x, and even 1.5.x-1.2.x. Using outdated servers causes some limitations — no titles, no spectator mode, etc.

    This plugin utilizes Hidendra's plugin metrics system which collects some generic information about your environment and sends it to

    My other plugins.
    Try rscMessagesAutoMessage replacement for multiserver environments. It contains message lists inside MySQL and very simple. The second one is rscPermissions — fast and powerful MySQL permissions manager for multiserver environments. It is incomplete now in the part of in-game commands but works good.
    clip, Alexgrist and Electrocute4u like this.

Recent Updates

  1. v0.8.0b-2
  2. v0.8.0b
  3. v0.7.0b

Recent Reviews

  1. Awesome_Dante
    Version: v0.8.0b
    Great plugin! Works easy right out of the box. Save files are easy to tune up and edit. And the best feature so far is if you get disconnected while making your flight path and you forgot to save... It lets you pick up where you left off!
    1. Reality_SC
      Author's Response
      Thanks =)
  2. foxi69
    Version: v0.6.7b
    nice plugin! very good job, keep update!

    I maked some suggestion at discuss page, I hope you will do something from that list :D
    1. Reality_SC
      Author's Response
      I've answered :)
  3. minerussia
    Version: v0.6.7b
    Nice plugin, very nice. How i can enable firstjoindemo on first join ?
    more characters..zzzsorryineedmorecharacters
    1. Reality_SC
      Author's Response
      As I can see you are from Russia? Read the plugin post at forum.
  4. YourFace
    Version: v0.6.3b
    Thank you for this plugin! i have been searching everywhere for a good one that is free. no one makes good one anymore but im glad to see that this one is very nice. I recommend to anyone who needs something reliable, beautiful, and easy to set up! :D
  5. Electrocute4u
    Version: v0.6.1b
    Its easy, but yet so advanced... Its perfect for big cities like myself are building for servers. It creates checkpoints for people whom joins for the first time, and its like.... The Hive when joining the death run each time. ;) Magnificent! Thank you for making it easy. Might even make a video for you ;) its so easy!