Touchscreen display in Minecraft [1.8.8 - 1.16.1]
You can also purchase the plugin here https://www.spigotmc.org/resources/interactiveboard.77114/

interactiveboardtitle.png
InteractiveBoard
is an unique and innovative solution for true contextual graphical user interfaces in Minecraft. Anything from touchscreen shops to teaching players your server mechanics with videos is possible. The limit is your imagination.

interactiveboardfeatures.png

giphy.gif
giphy.gif

giphy.gif
giphy.gif
InteractiveBoard has an always expanding list of features.
  • Contextual rendering - every player sees a different image specifically made for them at that moment.
  • Scenes - you can have multiple scenes in a single board, so a single board can have a large assortment of uses.
  • Buttons - clickable buttons with single pixel precision that can execute variety of functions like opening a crafting table, switching a scene, changing properties of an object like text color or size, scrolling, buying and selling items, etc.
  • Permissions - you can set the default board scene to be different depending upon what permissions the player has. For example, you can make it, so a VIP player can see a list of their perks on the board which a normal player wouldn't see.
  • Images - you can upload any image you want to the board. Supported formats: .jpg and .png
  • Animated GIFS - the plugin has an ability to display animated GIFS on any board you want. This can be used to teach players new mechanics which could only be shown easily with a video playing.
  • Fast and optimized rendering - all aspects of the plugin have been tweaked to ensure optimal performance. Using custom smart caching and packet systems, InteractiveBoard is extremely fast and very light, only updating boards when necessary.
  • PlaceholderAPI support - you can use all the placeholders from the PlaceholderAPI in text on your board.
  • Shops - Vault API is supported, so you can create shops with the board.
  • Scrollpanes - you can use scrollpanes to let the player scroll in case all the things you want to show don't fit in your scene.
  • Translatable - messages send to the player can be changed in the language configuration file.
  • Music Support - InteractiveBoard has NoteBlockAPI support which allows you to play any .nbs song you want in a board.
  • 3D Player Skin rendering - you can render the skin of the player on the board.
interactiveboardcommands.jpg


/ib create - to create a board
/ib delete - to delete a board
/ib reload - to reload all board configurations
/ib teleport <board name> teleport to a board
/ib fonts - get names of fonts loaded from the font folder
/ib reset - reload a specific board

Permissions

To create and delete boards you need the permission interactiveboard.admin this permission should only by server owners and admins who configure the plugin.

Tutorial
This is a basic tutorial on the main features of the plugin. More detailed documentation and video tutorials are coming soon. An advanced API for developers to use is available.

If you need any help with the plugin configurations you can message me on spigot, reply to the plugin thread or join InteractiveBoard Support server with this link https://discord.gg/AkrbBSe

Note: all objects have default values for everything that isn't important, so you shouldn't set the values that you don't need to change from the defaults.

Objects

Code:
## object name, you can set this to anything that is unique
text1:
## object type, in this case text
      type: text
## x position relative to root of parent
      x: 200
## y position relative to root of parent
      y: 169
##  the text
      text: 'Welcome to the server %player_name%'
## font of text
      font: Impact
## size of text
      fontsize: 45
## if text is bold
      bold: false
## color of text
      color: 255 170 60
## set the text alignment (possible aligments: left, right, center)
      alignment: left
## the spacing between letters, shouldn't be changed unless the font spacing is wrong. The value should be between -0.3 and 0.1
      spacing: 0.0
## the color of the outline (no outline if color isn't set)
      outlinecolor: 255 0 0
## the stroke width of the outline
      outlinestroke: 2.0
## should the text have antialiasing / smoothing applied, fonts with curves will look better with this option on
      antialiasing: false
## text capitalization (possible settings: default, uppercase, lowercase)
      capitalization: default
##
## these objects are going to be drawn with the position of this object as root
    children:
Code:
## object name, you can set this to anything that is unique
autofontsizetextobject1:
## object type, in this case text
      type: autofontsizetext
## x position relative to root of parent
      x: 200
## y position relative to root of parent
      y: 169
## the maximum width the text can take up
      width: 300
## the maximum height the text can take up
      height: 100
##  the text
      text: 'Welcome to the server %player_name%'
## font of text
      font: Impact
## if text is bold
      bold: false
## color of text
      color: 255 170 60
## set the text alignment (possible aligments: left, right, center)
      alignment: left
## the spacing between letters, shouldn't be changed unless the font spacing is wrong. The value should be between -0.3 and 0.1
      spacing: 0.0
## the color of the outline (no outline if color isn't set)
      outlinecolor: 255 0 0
## the stroke width of the outline
      outlinestroke: 2.0
## should the text have antialiasing / smoothing applied, fonts with curves will look better with this option on
      antialiasing: false
## text capitalization (possible settings: default, uppercase, lowercase)
      capitalization: default
##
## these objects are going to be drawn with the position of this object as root
    children:
Code:
## object name, you can set this to anything that is unique
background1:
## object type, in this case background
      type: background
## color of background
      color: 255 170 60
## these objects are going to be drawn with the position of this object as root
    children:
Code:
## object name, you can set this to anything that is unique
button1:
## object type, in this case button
      type: button
## color of button (can be entered as hex, rgb, or the name of the color)
      color: 255 170 60
## color of the button on hover (can be entered as hex, rgb, or the name of the color)
      onhovercolor: green
## x position relative to root of parent
      x: 200
## y position relative to root of parent
      y: 169
## width of button
      width: 200
## height of button
      height: 200
## is invisible
      invisible: false
## functions that the button executes on a click, all of the available functions are listed further down in the tutorial
      onclick:
        commandfunction1:
          type: command
          command: 'warp spawn'
## functions that the button executes on hover, all of the available functions are listed further down in the tutorial
      onhover:
## functions that the button executes when exiting hover state, all of the available functions are listed further down in the tutorial
      offhover:
## these objects are going to be drawn with the position of this object as root
      children:
Code:
## object name, you can set this to anything that is unique
image1:
## object type, in this case image
  type: image
## x position relative to root of parent
  x: 200
## y position relative to root of parent
  y: 169
## width of image
  width: 200
## height of image
  height: 200
## set this to true if the image is from the internet (URL / link)
  frominternet: false
## image
  image: image.png
## these objects are going to be drawn with the position of this object as root
  children:
Code:
## object name, you can set this to anything that is unique
gif1:
## object type, in this case gif
      type: gif
## should gif be only played once and pause
      playonce: false
## should the gif run fast at 20 fps
      fast: false
## should the gif reset when a scene is loaded
      reset: true
## x position relative to root of parent
      x: 200
## y position relative to root of parent
      y: 169
## width of gif
      width: 200
## height of gif
      height: 200
## gif
      gif: image.gif
## these objects are going to be drawn with the position of this object as root
      children:
Code:
##timer activates when the scene is loaded or when the timer is enabled by another function
## object name, you can set this to anything that is unique
delayedtimer1:
## object type
      type: delayedfunctiontimer
## delay time (in milliseconds, 1 second = 1000 milliseconds)
     time: 200
## functions
    functions:
## some function you want to use
      function1:
         type: ## some function replace this
      function2:
         type: ## some function replace this
Code:
## object name, you can set this to anything that is unique
##timer activates when the scene is loaded or when the timer is enabled by another function
repeattimer1:
## object type
      type: repeatfunctiontimer
## repeat time (in milliseconds, 1 second = 1000 milliseconds)
     time: 200
## functions
    functions:
## some function you want to use
      function1:
         type: ## some function replace this
      function2:
         type: ## some function replace this
Code:
## object name, you can set this to anything that is unique
musicplayer1:
## object type
## Note: You need to have NoteBlockAPI installed for music player to work!
      type: musicplayer
## music file to play
     music: somemusic.nbs
Code:
## object name, you can set this to anything that is unique
scrollpane1:
## object type
      type: scrollpane
## The actual width of the scrollable area
      scrollinnerwidth: 900
## The actual height of the scrollable area
      scrollinnerheight: 200
## The width of visible area
      width: 200
## The height of visible area
     height: 200
## The objects inside the scroll pane
     children:
       text1:
## some object you want inside the scroll pane
         type: text
         text: 'Hello this is some example text!'
Code:
## object name, you can set this to anything that is unique
skinrenderer:
## object type
  type: skin3d
## x position relative to root of parent
  x: 0
## y position relative to root of parent
  y: 0
## width
  width: 1000
## height
  height: 1000
## x rotation of the 3d model
  rotationx: 0.0
## y rotation of the 3d model
  rotationy: 0.3
## z rotation of the 3d model
  rotationz: 0.0
## the skin of the 3d model
## accepted values (uuids, player names, base64 skin textures)
## you can use placeholders
  skin: '%player_name%'
Code:
## object name, you can set this to anything that is unique
skinrenderer:
## object type
  type: head3d
## x position relative to root of parent
  x: 0
## y position relative to root of parent
  y: 0
## width
  width: 400
## height
  height: 400
## x rotation of the 3d head
  rotationx: 0.0
## y rotation of the 3d head
  rotationy: 0.3
## z rotation of the 3d head
  rotationz: 0.0
## the skin of the 3d head
## accepted values (uuids, player names, base64 skin textures)
## you can use placeholders
  skin: '%player_name%'

Functions

Code:
## function name, you can set this to anything that is unique
function1:
## function type
  type: switchscene
## name of scene that the board is going to switch to
  scene: scene2
Code:
## function name, you can set this to anything that is unique
function1:
## function type
  type: opencraftingtable
Code:
## function name, you can set this to anything that is unique
function1:
## function type
  type: openenchantingtable
Code:
## function name, you can set this to anything that is unique
buyfunc1:
## function type
  type: itembuy
## name or id of item
  item: carrot
## item price
  price: 20
## item amount
  amount: 1
Code:
## function name, you can set this to anything that is unique
sellfunc1:
## function type
  type: itemsell
## name or id of item
  item: baked_potato
## item price
  price: 20
## item amount
  amount: 1
Code:
## function name, you can set this to anything that is unique
scrollchange1:
## function type
  type: scrollchange
## which scroll pane to move
  object: objectscrollpane
## how much to scroll in x direction
  xchange: 10
## how much to scroll in y direction
  ychange: 0
Code:
## function name, you can set this to anything that is unique
command1:
## function type
  type: command
## execute as player or console
  executefromconsole: false
## the command (you can use placeholderapi inside command)
  command: 'warp spawn'
Code:
## function name, you can set this to anything that is unique
enabledsomething1:
## function type
  type: setenabledstate
## name of object to enable / disable
  object: button1
## disable or enable
  enabled: true
Code:
## function name, you can set this to anything that is unique
switchtodifferentservers1:
## function type
  type: switchserver
## name of server to switch to
  server: survival

InteractiveBoard uses Guice library and its dependencies which is licensed under Apache 2.0 license that can be found inside the plugin jar.

InteractiveBoard uses a modified part of BKCommonLib library that is licensed under Apache 2.0 license that can be found inside the plugin jar.

InteractiveBoard uses a modified version of XMaterial library that is licensed under the Mit license. The class file which includes the license can be found here https://github.com/CryptoMorin/XSer...n/java/com/cryptomorin/xseries/XMaterial.java

InteractiveBoard uses a part of AnimatedFrames plugin for GIF file conversion. The permission to use this code was kindly provided by Bled
  • interactiveboardtitle.png
    interactiveboardtitle.png
    884.9 KB · Views: 717
  • interactiveboardfeatures.png
    interactiveboardfeatures.png
    907.3 KB · Views: 715
  • interactiveboardcommands.jpg
    interactiveboardcommands.jpg
    27.3 KB · Views: 687

Latest updates

  1. Update

    Updated to the latest version
  2. Update

    Added 1.16 support to the plugin. Added an experimental global rendering mode, when enabled...
  3. Fixed a 1.9 bug

    Fixed a bug where the plugin would kick the player on 1.9 servers.

Author

Joiubas

Owner
Author
Joiubas
Downloads
8
Type
Digital product
License duration
Unlimited
Price
15.00 EUR
Views
1,113
First release
Last update
Rating
0.00 star(s) 0 ratings
Top
You need to upgrade!
Our dark style is reserved for our Premium members. Upgrade here.