VariableTriggers

Make your own plugin like features and more using VariableTriggers
This is a very powerful plugin that has unlimited potential. Create triggers that run lines of script when a player Clicks or Walks on a block (dirt, door, switch, trigger, torch, any block) or Create Event Triggers such as PlayerDeath , EntityDeath, BlockBreak, BlockPlaced, Join, Quit, Respawn, Interact and EntitySpawn that also run scripts. You can define Area Triggers and Command Triggers as well. You can use Dynamic Object variables and conditional IF and ELSE statements in the scripts. You can run any command that a player or OP can run and many speacial built-in commands to Teleport, Spawn Entities, Play Effects Visual or Sound, Set Blocks, Toggle Blocks, Check Players Heath and much more!. The scripts are executed on their own threads to take the strain off of the main server thread.
















-
View User Profile
-
Send Message
Posted Jan 14, 2014since it is a plugin implementation, i would have to say, it doesn't pause the thread.
-
View User Profile
-
Send Message
Posted Jan 14, 2014laacis2:
I use many @LOOP in scripts, so it's probably the issue. I can't get rid of @LOOP because sometimes my scripts must check different quantity of data.
I have a question to you:
- is @PAUSE like pausing in Windows ? I mean : it's pauses thread, but takes no processor's time ?
-
View User Profile
-
Send Message
Posted Jan 13, 2014i got total of 1.2mb of variable triggers scripts, and never experienced any issues with @DELVAR. i do avoid using @LOOP though. they are tps killers, and not recommended.
lag spikes are mostly caused by plugins, that ping their update servers, so if you want to see to lag, disable autoupdates, and remove as many plugins using external servers, as possible.
Stable lag is caused by heavy packet modify plugins, like nocheat and anti xray, and protocollib based ones.
-
View User Profile
-
Send Message
Posted Jan 13, 2014@laacis2:
I don't use @DELVAR . VT is making much lagg spikes, so I try to minimize usage of any command that access server memory (creating and deleting vars and objects). Sometimes temp-vars are used VERY often...
On my server-host there are daily restart on 5 a.m. so I sheduled to clean up objects on 4 a.m.
-
View User Profile
-
Send Message
Posted Jan 13, 2014@mPlayerEXE
Use @DELVAR in order to get rid of the temporary variable after command has been executed.
-
View User Profile
-
Send Message
Posted Jan 12, 2014@Africanclaw :
I forgot something !
YOU MUST ENABLE LOOPING IN VT !
Add this line in your 'config.yml' :
AdvancedMode: true
Lexlaiden said not to post how to enable this feature.
But it looks he is out and never come back.
-
View User Profile
-
Send Message
Posted Jan 12, 2014@Africanclaw :
I have own /tell (/msg) command, it's very similar to /fakesay.
I made /fakesay command for you :
fakesay:
Override: true
Permission: vt.fakesay
Script:
- '@IF i <cmdargcount> < 2'
- ' @PLAYER &cUsage: /fakesay <player> <message> (command made by mPlayerEXE)'
- ' @EXIT'
- '@ENDIF'
# change this value - this is a colour of player's chat (&f = white)
- '@SETSTR $te.tx<playername> &f'
- '@ADDSTR $te.tx<playername> <cmdarg:2>'
- '@IF i <cmdargcount> > 2'
- ' @SETINT $te.i<playername> 3'
- ' @SETINT $te.c<playername> <cmdargcount>'
- ' @SUBINT $te.c<playername> 2'
- ' @LOOP $te.c<playername>'
# change this value - must be the same as above !
- ' @ADDSTR $te.tx<playername> &f &f'
- ' @ADDSTR $te.tx<playername> <cmdarg:$te.i<playername>>'
- ' @ADDINT $te.i<playername> 1'
- ' @ENDLOOP'
- '@ENDIF'
- '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> $te.tx<playername>'
Copy/paste into command trigger's script.
I tested this, it works well !
NOTE:
Script uses temporary object $te ! You should delete this object from time to time, especially BEFORE server restart. Yoo also can move all variables to $<playername>
object, but I don't recommend this. You should ban 'player' TE , to prevent joining real player with that name to server ! (On my servers EVERY player with name shorter than 3 characters is disconnected, so I can use 2-chars object's names for system objects)
-
View User Profile
-
Send Message
Posted Jan 11, 2014@laacis2
Very true
-
View User Profile
-
Send Message
Posted Jan 10, 2014@laacis2
I have no problem at all with @SETBLOCK
-
View User Profile
-
Send Message
Posted Jan 10, 2014Could I make a suggestion?
It has to do with vtrigger
I have around 125 bosses built with epic boss.
This addon allows you to create bosses that also have the ability to run commands when you strike them.
I have a problem with one of the bosses but I cant figure out which one it is.
Every so often my console will be spammed with:
[Server thread/INFO]: vtrigger run canceled. Unable to find $player
This will sometimes lock the server with 1000+ messages
Apparently one of my bosses is getting it's trigger fired off by something other than a player.
Anyway, my suggestion is to have this error message [Server thread/INFO]: vtrigger run canceled. Unable to find $player
specify what VTrigger is failing.
an example of one of the Epic boss triggers: - command vtrigger_run_Chicken:ChickenSmite_$player =100 1
This will call a script named Chicken:ChickenSmite when a player hits the chicken when it reaches 100 hp with a 100% chance of firing off.
So say it was this particular boss causing the issue then the vtrigger console error message would be: [Server thread/INFO]: vtrigger Chicken:ChickenSmite run canceled. Unable to find $player
It would definitely help me narrow it down. and may help other admins if they are using triggers like this.
I hope this was clear enough.
Thanks for such an awesome plugin. As I've learned more about VT Ive actually be able to get rid of a few other addons ( and making my own with VT )
-
View User Profile
-
Send Message
Posted Jan 10, 2014I have to say, this is single most awesome plugin ever created for bukkit. Yes, it loses some features to skript, however it wins with many more. Scripting language also unfortunately is simpler, then that of skripts. Shorter for sure. And when you have 300 lines of code, you don't want that code to be lengthy, like reading a book.
-
View User Profile
-
Send Message
Posted Jan 9, 2014use 'code' option, when pasting yaml.
-
View User Profile
-
Send Message
Posted Jan 9, 2014lol i doubt anybody can read that......
-
View User Profile
-
Send Message
Posted Jan 9, 2014Could somebody help me compact this, its way 2 long but idk how to program much so can somebody help me
fakesay: Override: true Permission: vt.fakesay Script: - '@IF i <cmdargcount> = 0' - '@PLAYER &cUsage: /fakesay <player> <message> (Note: the message can only be 10 words, currently)' - '@ENDIF' - '@IF i <cmdargcount> = 1' - '@PLAYER &cUsage: /fakesay <player> <message> (Note: the message can only be 10 words, currently)' - '@ENDIF' - '@IF i <cmdargcount> = 2' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2>' - '@ENDIF' - '@IF i <cmdargcount> = 3' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3>' - '@ENDIF' - '@IF i <cmdargcount> = 4' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4>' - '@ENDIF' - '@IF i <cmdargcount> = 5' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5>' - '@ENDIF' - '@IF i <cmdargcount> = 6' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@SETINT <cmdarg:6> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5> <cmdarg:6>' - '@ENDIF' - '@IF i <cmdargcount> = 7' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@SETINT <cmdarg:6> = type' - '@SETINT <cmdarg:7> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5> <cmdarg:6> <cmdarg:7>' - '@ENDIF' - '@IF i <cmdargcount> = 8' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@SETINT <cmdarg:6> = type' - '@SETINT <cmdarg:7> = type' - '@SETINT <cmdarg:8> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5> <cmdarg:6> <cmdarg:7> <cmdarg:8>' - '@ENDIF' - '@IF i <cmdargcount> = 9' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@SETINT <cmdarg:6> = type' - '@SETINT <cmdarg:7> = type' - '@SETINT <cmdarg:8> = type' - '@SETINT <cmdarg:9> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5> <cmdarg:6> <cmdarg:7> <cmdarg:8> <cmdarg:9>' - '@ENDIF' - '@IF i <cmdargcount> = 10' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@SETINT <cmdarg:6> = type' - '@SETINT <cmdarg:7> = type' - '@SETINT <cmdarg:8> = type' - '@SETINT <cmdarg:9> = type' - '@SETINT <cmdarg:10> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5> <cmdarg:6> <cmdarg:7> <cmdarg:8> <cmdarg:9> <cmdarg:10>' - '@ENDIF' - '@IF i <cmdargcount> = 11' - '@SETINT <cmdarg:1> = type' - '@SETINT <cmdarg:2> = type' - '@SETINT <cmdarg:3> = type' - '@SETINT <cmdarg:4> = type' - '@SETINT <cmdarg:5> = type' - '@SETINT <cmdarg:6> = type' - '@SETINT <cmdarg:7> = type' - '@SETINT <cmdarg:8> = type' - '@SETINT <cmdarg:9> = type' - '@SETINT <cmdarg:10> = type' - '@SETINT <cmdarg:11> = type' - '@BROADCAST <&6[&eMember&6]&f <cmdarg:1>> <cmdarg:2> <cmdarg:3> <cmdarg:4> <cmdarg:5> <cmdarg:6> <cmdarg:7> <cmdarg:8> <cmdarg:9> <cmdarg:10> <cmdarg:11>' - '@ENDIF' - '@IF i <cmdargcount> >= 12' - '@PLAYER &cUsage: /fakesay <player> <message> (Note: the message can only be 10 words, currently)' - '@ENDIF'
-
View User Profile
-
Send Message
Posted Jan 8, 2014I've sent a PM, it's just a matter of when he next logs in ;)
-
View User Profile
-
Send Message
Posted Jan 8, 2014I'd be willing to update this. I'll contact Lex.
-
View User Profile
-
Send Message
Posted Jan 7, 2014setblock will not work until someone updates this plugin. Use cmdop and distinctive blocks for worldedit. That works.
-
View User Profile
-
Send Message
Posted Jan 6, 2014SETBLOCK does not work with 1.6.2??
Script:
http://pastebin.com/Wjv49X6E
-
View User Profile
-
Send Message
Posted Jan 5, 2014You can create a permission for command by typing /vtcmdp [command] [some.node]. Just add the [some.node] to group or to user or to world, and you are set.
-
View User Profile
-
Send Message
Posted Jan 5, 2014@Tirco
thx