VariableTriggers v2.0.6


  • Filename
  • Uploaded by
  • Uploaded
    Jul 20, 2017
  • Size
    182.46 KB
  • Downloads
  • MD5

Supported Bukkit Versions

  • 1.12



  • Updated to 1.12
  • Fixed a bug that would cause scripts to only execute the first line
  • Added the ability to run both v1.3.3.1 and v2.0.6 at the same time
    • If you use both, all v2.0.6 commands will need a "2" after them.
      • /vt2, /vtcmd2, /vtwalk2, etc.
      • Only using v2.0.6 will not need the "2".
    • A specific version of must be used for compatibility. You can find this on my GitHub for this project under /deprecated/
      • Required warning: The jar on my GitHub has NOT been approved by Bukkit staff and by downloading you take a risk.



  • Removed PlaceholderAPI depend
  • Compiled with Bukkit 1.10 (Should work on Spigot too)


  • Scripts don't delete themselves anymore. Yay!


  • Compiled in Java 7 for those who don't have access to Java 8.
  • You can now use two underscores to indicate a space in @MODIFYPLAYER LISTNAME somenamehere


  • Scripts no longer randomly stop working
  • Updated to latest Bukkit version
  • Provided support to pull placeholders from PlaceholderAPI
  • Provided support for PlaceholderAPI to pull variables from VT in the future
  • Various bug fixes


  • @BROADCAST now supports color codes
  • <cmdarg:> works correctly
  • <cmdargcount> returns the correct value now (was one too many before)
  • @COOLDOWN works as intended (was previously set to milliseconds)
  • <var:> replaces the placeholder correctly (previously left "<var:>")
  • Variables in long format now process correctly when doing math (< > != = >= <=)
  • Variables that are strings can be used with operators as it will take the string length.
  • Added @SENDTOSERVER <player> <server> for BungeeCord users. <server> is as you've defined it in the bungee config.
  • <takeitem> works with one item in the inventory (previously ignored less than 2 items)


  • PlayerChat added under /events/player
  • No more "/vt ?" spam in console!
  • @TP fixed
  • Async-catcher fixes
  • Other various fixes


Minor fixes

  • New users can now create files successfully with 1.8+
  • If you mess up a command it will no longer spam you with errors
  • @VTSystem.OnlinePlayers has been temp disabled until I find a suitable workaround
  • Compiled with 1.8 to ensure compatibility
  • Debug mode enabled by default for new/upgrading users
  • Debug mode can be toggled with /vt debug. With debug mode OFF, no errors will be printed in console when an invalid script line is run
  • Right/Left click triggers work now. (e.getBlock() changed to e.getPlayer(). Yeah, that was all that was wrong.)



I (Lyoko_Firelyte) have coded this entire build from scratch, which means everything runs a little bit differently (and why it took so long). Please report any bugs you find and include as many screenshots as possible to help me resolve the issue with the next build.

I will slowly work on full documentation for VTV2

Your files will be re-adjusted to fit my new format upon first boot. Please do not rename your VariableTriggers jar, or you will never be able to run this build.

New Events / Event Additions

  • Potion Splash
    • <potion:name> <potion:lore:index> <potion:displayname> <potion:enchant:index> returns name_level <potion:amount> <potion:lore:amount> <potion:enchant:amount> <potion:effect:amount> <thrower> <throwername> <affectedentity:amount> <affectedentity:index:type> <affectedentity:index:name> <affectedentity:index:location> <potion:effect:index:type> <potion:effect:index:amplifier> <potion:effect:index:duration>
  • Block Break, Block Place
    • <blockmaterial> <blocklocation> <blockxp>
  • Area Enter / Exit
    • <movetype>
  • Player Death
    • <isprojectile> <killerentitytype> <deathcause>
  • Player Click Air, Player Click Block, Player Trigger Pressure Plate
    • <clicktype> <blockid> <blockdata> <blocktype> <blockmaterial> <blocklocation>
  • Item Despawn
    • <despawneditem:name> <despawneditem:lore:index> <despawneditem:displayname> <despawneditem:enchant:index> returns name_level <despawneditem:amount> <despawneditem:lore:amount> <despawneditem:enchant:amount>
  • Item Spawn
    • <spawneditem:name> <spawneditem:lore:index> <spawneditem:displayname> <spawneditem:enchant:index> returns name_level <spawneditem:amount> <spawneditem:lore:amount> <spawneditem:enchant:amount>
  • Player Enchant
    • <enchanteditem:name> <enchanteditem:lore:index> <enchanteditem:displayname> <enchanteditem:enchant:index> returns name_level <enchanteditem:amount> <enchanteditem:lore:amount> <enchanteditem:enchant:amount>
  • Entity Explode
    • <explodedblock:amount> <explodedblock:index:type> <explodedblock:index:byte> <explodedblock:index:location> <yeild> <entitytype>
  • Entity Create Portal
    • <portaltype> <entitytype>
  • Vehicle Enter
    • <entitytype> <entityname>
  • Bed Enter, Bed Exit
  • Player & Console Command
    • <cmdarg:1> to <cmdarg:infinite>, <cmdarg1> to <cmdarginfinite>
    • Activate a console command with vtcon <name>
  • Entity Death
    • <drops:0> to infinite <droppedexp>
  • Inventory Click
    • <clickeditemenchant:index> <inventorysize>
    • Variables supported inside inventory files
    • Loaded automatically, no need for /vt reloadtriggers
  • Player Join, Player Quit
    • Cancelling this event will not display a default join/leave message, allowing you to make your own
  • Entity Damage
    • <damagedbyplayer> <damageamount> <damagecause>
  • Lightning Strike
  • Bucket Fill, Bucket Empty
    • <waterlocation> <emptylocation>
    • Bonus points if you actually use this event
  • Drop Item
    • <droppeditem:name> <droppeditem:lore:index> <droppeditem:displayname> <droppeditem:enchant:index> returns name_level <droppeditem:amount> <droppeditem:enchant:amount> <droppeditem:lore:amount>
  • Item Hold
    • <oldslot> <newslot>
  • Projectile Hit
    • <projectile> <projectileshooter> <projectileshootername>

New Scripts / Script Changes

    • DAMAGE <amount>
    • PLAYERTIME <number>
  • @SETMOTD <motd>
  • @SETCANCELLED <event> <true/false>
    • SETPOS1 <location>
    • SETPOS2 <location>
    • coming soon (next build)
    • coming soon (next build)

Functional Placeholders

  • <health:optionalplayer>
  • <maxhealth:optionalplayer>
  • <contains:arg1:arg2>
  • <isop:player>
  • <playerloc:world>
  • <random:from:to>
  • <arraysize:@Some.List>
  • <triggerloc:x>
  • <triggerloc:y>
  • <triggerloc:z>


  • @IF
    • Use @IF = for non-case sensitive, and @IF == for case sensitive
    • No variables needed, simply use @IF $some.var = something
    • Data types are automatically detected for everything, even arrays
  • Arrays
    • Support to use $some.array[index]
    • Use <arraysize> instead of placing it without an index
  • @CALL
    • You can now use @CALL this:name to call another script in the same file
    • All events will call the 'main' function first, and you can call others later.
  • @LOOP removed
  • @WHILE will wait for the while to finish, but run them all in new threads
  • Placeholders order has changed.
    • <holders>, [holders], $some.var, <some:functional>
    • The [placeholder] acts the same as the <placeholder> but is replaced second
    • Variables can be placed inside functional placeholders or next to each other
    • $variable.variable2$some.var will correctly replace both
  • Area Triggers
    • You can no longer edit / delete / add scripts in game, but you can define the areas
    • Instead of the weird way it was before, you can set the priority of regions.
  • <sn:> (super nesting) has been removed
  • @QUIET has been removed
  • @SET is now universal for all data types, no need for @SETSTR or @SETINT.
  • Automatic Spigot detection - will run each line sync if spigot does not allow sync
    • In other words, no more need for @SETBLOCKSAFE and similar commands
  • Added command support for scripts
  • Graphically updated the help menus, starting with /vt ?
  • The file structure is really pretty.
  • Everyone's advanced mode may have been reset. View the documentation on advanced mode to re-activate it.