· 6 years ago · Jun 29, 2019, 08:42 AM
1{
2 "events": [
3 {
4 "id": "at_time",
5 "name": "At Time",
6 "description": [
7 "An event that occurs at a given minecraft time in every world or only in specific worlds."
8 ],
9 "examples": [
10 "at 18:00",
11 "at 7am in \"world\""
12 ],
13 "since": [
14 "1.3.4"
15 ],
16 "patterns": [
17 "at %time% [in %worlds%]"
18 ],
19 "event values": [
20 "event-world"
21 ],
22 "cancellable": false
23 },
24 {
25 "id": "aoe_cloud_effect",
26 "name": "On AoE Cloud Effect",
27 "description": [
28 "Called when area effect cloud applies it's potion effect. This happens every 5 ticks by default."
29 ],
30 "examples": [
31 "on area cloud effect:"
32 ],
33 "since": [
34 "2.2-dev21"
35 ],
36 "patterns": [
37 "[on] (area|AoE) [cloud] effect"
38 ],
39 "event values": [
40 "event-potioneffecttype",
41 "event-world",
42 "event-entity"
43 ],
44 "cancellable": true
45 },
46 {
47 "id": "bed_enter",
48 "name": "On Bed Enter",
49 "description": [
50 "Called when a player starts sleeping."
51 ],
52 "examples": [
53 "on bed enter:"
54 ],
55 "since": [
56 "1.0"
57 ],
58 "patterns": [
59 "[on] bed enter[ing]",
60 "[on] [player] enter[ing] [a] bed"
61 ],
62 "event values": [
63 "event-block",
64 "event-world",
65 "event-player"
66 ],
67 "cancellable": true
68 },
69 {
70 "id": "bed_leave",
71 "name": "On Bed Leave",
72 "description": [
73 "Called when a player leaves a bed."
74 ],
75 "examples": [
76 "on player leaving a bed:"
77 ],
78 "since": [
79 "1.0"
80 ],
81 "patterns": [
82 "[on] bed leav(e|ing)",
83 "[on] [player] leav(e|ing) [a] bed"
84 ],
85 "event values": [
86 "event-block",
87 "event-world",
88 "event-player"
89 ],
90 "cancellable": false
91 },
92 {
93 "id": "block_damage",
94 "name": "On Block Damage",
95 "description": [
96 "Called when a player starts to break a block. You can usually just use the leftclick event for this."
97 ],
98 "examples": [
99 "on block damaging:",
100 "\tif block is log:",
101 "\t\tsend \"You can't break the holy log!\""
102 ],
103 "since": [
104 "1.0"
105 ],
106 "patterns": [
107 "[on] block damag(ing|e)"
108 ],
109 "event values": [
110 "event-location",
111 "event-block",
112 "event-world",
113 "event-player"
114 ],
115 "cancellable": true
116 },
117 {
118 "id": "block_growth",
119 "name": "On Block Growth",
120 "description": [
121 "Called when a crop grows. Alternative to new form of generic grow event."
122 ],
123 "examples": [
124 "on crop growth:"
125 ],
126 "since": [
127 "2.2-Fixes-V10"
128 ],
129 "patterns": [
130 "[on] (plant|crop|block) grow[(th|ing)] [[of] %itemtypes%]"
131 ],
132 "event values": [
133 "past event-block",
134 "event-location",
135 "event-block",
136 "event-world"
137 ],
138 "cancellable": true
139 },
140 {
141 "id": "book_edit",
142 "name": "On Book Edit",
143 "description": [
144 "Called when a player edits a book."
145 ],
146 "examples": [
147 "on book edit:"
148 ],
149 "since": [
150 "2.2-dev31"
151 ],
152 "patterns": [
153 "[on] book (edit|change|write)"
154 ],
155 "event values": [
156 "event-itemstack",
157 "event-world",
158 "event-player"
159 ],
160 "cancellable": true
161 },
162 {
163 "id": "book_sign",
164 "name": "On Book Sign",
165 "description": [
166 "Called when a player signs a book."
167 ],
168 "examples": [
169 "on book sign:"
170 ],
171 "since": [
172 "2.2-dev31"
173 ],
174 "patterns": [
175 "[on] book sign[ing]"
176 ],
177 "event values": [
178 "event-itemstack",
179 "event-world",
180 "event-player"
181 ],
182 "cancellable": true
183 },
184 {
185 "id": "break_mine",
186 "name": "On Break / Mine",
187 "description": [
188 "Called when a block is broken by a player. If you use 'on mine', only events where the broken block dropped something will call the trigger."
189 ],
190 "examples": [
191 "on mine:",
192 "on break of stone:",
193 "on mine of any ore:"
194 ],
195 "since": [
196 "1.0 (break), unknown (mine)"
197 ],
198 "patterns": [
199 "[on] [block] (break[ing]|min(e|ing)) [[of] %itemtypes%]"
200 ],
201 "event values": [
202 "past event-block",
203 "event-location",
204 "event-block",
205 "event-world",
206 "event-entity",
207 "event-entity",
208 "event-player",
209 "future event-block"
210 ],
211 "cancellable": true
212 },
213 {
214 "id": "bucket_empty",
215 "name": "On Bucket Empty",
216 "description": [
217 "Called when a player empties a bucket. You can also use the place event with a check for water or lava."
218 ],
219 "examples": [
220 "on bucket empty:"
221 ],
222 "since": [
223 "1.0"
224 ],
225 "patterns": [
226 "[on] bucket empty[ing]",
227 "[on] [player] empty[ing] [a] bucket"
228 ],
229 "event values": [
230 "past event-block",
231 "event-block",
232 "event-world",
233 "event-player"
234 ],
235 "cancellable": true
236 },
237 {
238 "id": "bucket_fill",
239 "name": "On Bucket fill",
240 "description": [
241 "Called when a player fills a bucket."
242 ],
243 "examples": [
244 "on player filling a bucket:"
245 ],
246 "since": [
247 "1.0"
248 ],
249 "patterns": [
250 "[on] bucket fill[ing]",
251 "[on] [player] fill[ing] [a] bucket"
252 ],
253 "event values": [
254 "event-block",
255 "event-world",
256 "event-player",
257 "future event-block"
258 ],
259 "cancellable": true
260 },
261 {
262 "id": "burn",
263 "name": "On Burn",
264 "description": [
265 "Called when a block is destroyed by fire."
266 ],
267 "examples": [
268 "on burn:",
269 "on burn of wood, fences, or chests:"
270 ],
271 "since": [
272 "1.0"
273 ],
274 "patterns": [
275 "[on] [block] burn[ing] [[of] %itemtypes%]"
276 ],
277 "event values": [
278 "event-location",
279 "event-block",
280 "event-world"
281 ],
282 "cancellable": true
283 },
284 {
285 "id": "can_build_check",
286 "name": "On Can Build Check",
287 "description": [
288 "Called when a player rightclicks on a block while holding a block or a placeable item. You can either cancel the event to prevent the block from being built, or uncancel it to allow it.",
289 "Please note that the data value of the block to be placed is not available in this event, only its ID."
290 ],
291 "examples": [
292 "on block can build check:",
293 "\tcancel event"
294 ],
295 "since": [
296 "1.0 (basic), 2.0 ([un]cancellable)"
297 ],
298 "patterns": [
299 "[on] [block] can build check"
300 ],
301 "event values": [
302 "past event-block",
303 "event-location",
304 "event-block",
305 "event-world",
306 "event-player"
307 ],
308 "cancellable": false
309 },
310 {
311 "id": "chat",
312 "name": "On Chat",
313 "description": [
314 "Called whenever a player chats. Use chat format to change message format, use chat recipients to edit chat recipients."
315 ],
316 "examples": [
317 "on chat:",
318 "\tif player has permission \"owner\":",
319 "\t\tset chat format to \"<red>[player]<light gray>: <light red>[message]\"",
320 "\telse if player has permission \"admin\":",
321 "\t\tset chat format to \"<light red>[player]<light gray>: <orange>[message]\"",
322 "\telse: #default message format",
323 "\t\tset chat format to \"<orange>[player]<light gray>: <white>[message]\""
324 ],
325 "since": [
326 "1.4.1"
327 ],
328 "patterns": [
329 "[on] chat"
330 ],
331 "event values": [
332 "event-world",
333 "event-player"
334 ],
335 "cancellable": true
336 },
337 {
338 "id": "chunk_generate",
339 "name": "On Chunk Generate",
340 "description": [
341 "Called after a new chunk was generated."
342 ],
343 "examples": [
344 "on chunk generate:"
345 ],
346 "since": [
347 "1.0"
348 ],
349 "patterns": [
350 "[on] chunk (generat|populat)(e|ing)"
351 ],
352 "event values": [
353 "event-chunk",
354 "event-world"
355 ],
356 "cancellable": false
357 },
358 {
359 "id": "chunk_load",
360 "name": "On Chunk Load",
361 "description": [
362 "Called when a chunk loads. The chunk might or might not contain mobs when it's loaded."
363 ],
364 "examples": [
365 "on chunk load:"
366 ],
367 "since": [
368 "1.0"
369 ],
370 "patterns": [
371 "[on] chunk load[ing]"
372 ],
373 "event values": [
374 "event-chunk",
375 "event-world"
376 ],
377 "cancellable": false
378 },
379 {
380 "id": "chunk_unload",
381 "name": "On Chunk Unload",
382 "description": [
383 "Called when a chunk is unloaded due to not being near any player. Cancel the event to force the server to keep the chunk loaded and thus keep simulating the chunk (e.g. physics, plant growth, minecarts, etc. will keep working and won't freeze)."
384 ],
385 "examples": [
386 "on chunk unload:"
387 ],
388 "since": [
389 "1.0"
390 ],
391 "patterns": [
392 "[on] chunk unload[ing]"
393 ],
394 "event values": [
395 "event-chunk",
396 "event-world"
397 ],
398 "cancellable": false
399 },
400 {
401 "id": "click",
402 "name": "On Click",
403 "description": [
404 "Called when a user clicks on a block, an entity or air with or without an item in their hand.",
405 "Please note that rightclick events with an empty hand while not looking at a block are not sent to the server, so there's no way to detect them."
406 ],
407 "examples": [
408 "on click:",
409 "on rightclick holding a fishing rod:",
410 "on leftclick on a stone or obsidian:",
411 "on rightclick on a creeper:",
412 "on click with a sword:"
413 ],
414 "since": [
415 "1.0"
416 ],
417 "patterns": [
418 "[on] [(right|left)(| |-)][mouse(| |-)]click[ing] [on %entitydata/itemtype%] [(with|using|holding) %itemtype%]",
419 "[on] [(right|left)(| |-)][mouse(| |-)]click[ing] (with|using|holding) %itemtype% on %entitydata/itemtype%"
420 ],
421 "event values": [
422 "event-block",
423 "event-direction",
424 "event-itemstack",
425 "event-world",
426 "event-entity",
427 "event-player"
428 ],
429 "cancellable": true
430 },
431 {
432 "id": "combust",
433 "name": "On Combust",
434 "description": [
435 "Called when an entity is set on fire, e.g. by fire or lava, a fireball, or by standing in direct sunlight (zombies, skeletons)."
436 ],
437 "examples": [
438 "on combust:"
439 ],
440 "since": [
441 "1.0"
442 ],
443 "patterns": [
444 "[on] combust[ing]"
445 ],
446 "event values": [
447 "event-world",
448 "event-entity"
449 ],
450 "cancellable": true
451 },
452 {
453 "id": "command",
454 "name": "On Command",
455 "description": [
456 "Called when a player enters a command (not neccessarily a Skript command)."
457 ],
458 "examples": [
459 "on command:",
460 "on command \"/stop\":",
461 "on command \"pm Njol \":"
462 ],
463 "since": [
464 "2.0"
465 ],
466 "patterns": [
467 "[on] command [%string%]"
468 ],
469 "event values": [
470 "event-commandsender",
471 "event-world",
472 "event-player"
473 ],
474 "cancellable": true
475 },
476 {
477 "id": "connect",
478 "name": "On Connect",
479 "description": [
480 "Called when the player connects to the server. This event is called before the player actually joins the server, so if you want to prevent players from joining you should prefer this event over on join."
481 ],
482 "examples": [
483 "on connect:",
484 "\tplayer doesn't have permission \"VIP\"",
485 "\tnumber of players is greater than 15",
486 "\tkick the player due to \"The last 5 slots are reserved for VIP players.\""
487 ],
488 "since": [
489 "2.0"
490 ],
491 "patterns": [
492 "[on] [player] connect[ing]"
493 ],
494 "event values": [
495 "event-world",
496 "event-player"
497 ],
498 "cancellable": false
499 },
500 {
501 "id": "consume",
502 "name": "On Consume",
503 "description": [
504 "Called when a player is done eating/drinking something, e.g. an apple, bread, meat, milk or a potion."
505 ],
506 "examples": [
507 "on consume:"
508 ],
509 "since": [
510 "2.0"
511 ],
512 "patterns": [
513 "[on] [player] ((eat|drink)[ing]|consum(e|ing)) [[of] %itemtypes%]"
514 ],
515 "event values": [
516 "event-itemstack",
517 "event-world",
518 "event-player"
519 ],
520 "cancellable": true
521 },
522 {
523 "id": "craft",
524 "name": "On Craft",
525 "description": [
526 "Called when a player crafts an item."
527 ],
528 "examples": [
529 "on craft:"
530 ],
531 "since": [
532 "unknown (before 2.1)"
533 ],
534 "patterns": [
535 "[on] [player] craft[ing] [[of] %itemtypes%]"
536 ],
537 "event values": [
538 "event-inventory",
539 "event-itemstack",
540 "event-inventoryaction",
541 "event-clicktype",
542 "event-world",
543 "event-slot",
544 "event-player"
545 ],
546 "cancellable": true
547 },
548 {
549 "id": "creeper_power",
550 "name": "On Creeper Power",
551 "description": [
552 "Called when a creeper is struck by lighting and gets powered. Cancel the event to prevent the creeper from being powered."
553 ],
554 "examples": [
555 "on creeper power:"
556 ],
557 "since": [
558 "1.0"
559 ],
560 "patterns": [
561 "[on] creeper power"
562 ],
563 "event values": [
564 "event-world",
565 "event-entity"
566 ],
567 "cancellable": true
568 },
569 {
570 "id": "damage",
571 "name": "On Damage",
572 "description": [
573 "Called when an entity receives damage, e.g. by an attack from another entity, lava, fire, drowning, fall, suffocation, etc."
574 ],
575 "examples": [
576 "on damage:",
577 "on damage of a player:"
578 ],
579 "since": [
580 "1.0"
581 ],
582 "patterns": [
583 "[on] damag(e|ing) [of %entitydata%]"
584 ],
585 "event values": [
586 "event-projectile",
587 "event-damagecause"
588 ],
589 "cancellable": true
590 },
591 {
592 "id": "death",
593 "name": "On Death",
594 "description": [
595 "Called when a living entity (including players) dies."
596 ],
597 "examples": [
598 "on death:",
599 "on death of player:",
600 "on death of a wither or ender dragon:",
601 "\tbroadcast \"A %entity% has been slain in %world%!\""
602 ],
603 "since": [
604 "1.0"
605 ],
606 "patterns": [
607 "[on] death [of %entitydatas%]"
608 ],
609 "event values": [
610 "event-projectile",
611 "event-damagecause",
612 "event-world",
613 "event-entity"
614 ],
615 "cancellable": false
616 },
617 {
618 "id": "dispense",
619 "name": "On Dispense",
620 "description": [
621 "Called when a dispenser dispenses an item."
622 ],
623 "examples": [
624 "on dispense of iron block:",
625 "\tsend \"that'd be 19.99 please!\""
626 ],
627 "since": [
628 "unknown (before 2.1)"
629 ],
630 "patterns": [
631 "[on] dispens(e|ing) [[of] %itemtypes%]"
632 ],
633 "event values": [
634 "event-location",
635 "event-block",
636 "event-itemstack",
637 "event-world"
638 ],
639 "cancellable": true
640 },
641 {
642 "id": "drop",
643 "name": "On Drop",
644 "description": [
645 "Called when a player drops an item from his inventory."
646 ],
647 "examples": [
648 "on drop:"
649 ],
650 "since": [
651 "unknown (before 2.1)"
652 ],
653 "patterns": [
654 "[on] [player] drop[ing] [[of] %itemtypes%]"
655 ],
656 "event values": [
657 "event-itementity",
658 "event-itemstack",
659 "event-world",
660 "event-player"
661 ],
662 "cancellable": true
663 },
664 {
665 "id": "endermansheepsilverfish",
666 "name": "On Enderman/Sheep/Silverfish",
667 "description": [
668 "Called when an enderman places or picks up a block, a sheep eats grass or a silverfish boops into/out of a block respectively."
669 ],
670 "examples": [
671 "on sheep eat:",
672 "\tkill entity",
673 "\tbroadcast \"A sheep stole some grass!\""
674 ],
675 "since": [
676 "unknown"
677 ],
678 "patterns": [
679 "[on] enderman place",
680 "[on] enderman pickup",
681 "[on] sheep eat",
682 "[on] silverfish enter",
683 "[on] silverfish exit"
684 ],
685 "event values": [
686 "event-block",
687 "event-world",
688 "event-entity"
689 ],
690 "cancellable": true
691 },
692 {
693 "id": "entity_dismount",
694 "name": "On Entity Dismount",
695 "description": [
696 "Called when an entity dismounts."
697 ],
698 "examples": [
699 "on dismount:",
700 "\tkill event-entity"
701 ],
702 "since": [
703 "2.2-dev13b"
704 ],
705 "patterns": [
706 "[on] dismount[ing]"
707 ],
708 "event values": [
709 "event-world",
710 "event-entity"
711 ],
712 "cancellable": true
713 },
714 {
715 "id": "entity_mount",
716 "name": "On Entity Mount",
717 "description": [
718 "Called when entity starts riding another."
719 ],
720 "examples": [
721 "on mount:",
722 "\tcancel event"
723 ],
724 "since": [
725 "2.2-dev13b"
726 ],
727 "patterns": [
728 "[on] mount[ing]"
729 ],
730 "event values": [
731 "event-world",
732 "event-entity"
733 ],
734 "cancellable": true
735 },
736 {
737 "id": "experience_spawn",
738 "name": "On Experience Spawn",
739 "description": [
740 "Called whenever experience is about to spawn. This is a helper event for easily being able to stop xp from spawning, as all you can currently do is cancel the event.",
741 "Please note that it's impossible to detect xp orbs spawned by plugins (including Skript) with Bukkit, thus make sure that you have no such plugins if you don't want any xp orbs to spawn. (Many plugins that only change the experience dropped by blocks or entities will be detected without problems though)"
742 ],
743 "examples": [
744 "on xp spawn:",
745 "\tworld is \"minigame_world\"",
746 "\tcancel event"
747 ],
748 "since": [
749 "2.0"
750 ],
751 "patterns": [
752 "[on] [e]xp[erience] [orb] spawn",
753 "[on] spawn of [a[n]] [e]xp[erience] [orb]"
754 ],
755 "event values": [
756 "event-location",
757 "event-experience"
758 ],
759 "cancellable": true
760 },
761 {
762 "id": "explode",
763 "name": "On Explode",
764 "description": [
765 "Called when an entity (a primed TNT or a creeper) explodes."
766 ],
767 "examples": [
768 "on explosion:"
769 ],
770 "since": [
771 "1.0"
772 ],
773 "patterns": [
774 "[on] explo(d(e|ing)|sion)"
775 ],
776 "event values": [
777 "event-world",
778 "event-entity"
779 ],
780 "cancellable": true
781 },
782 {
783 "id": "explosion_prime",
784 "name": "On Explosion Prime",
785 "description": [
786 "Called when an explosive is primed, i.e. an entity will explode shortly. Creepers can abort the explosion if the player gets too far away, while TNT will explode for sure after a short time."
787 ],
788 "examples": [
789 "on explosion prime:"
790 ],
791 "since": [
792 "1.0"
793 ],
794 "patterns": [
795 "[on] explosion prime"
796 ],
797 "event values": [
798 "event-world",
799 "event-entity"
800 ],
801 "cancellable": true
802 },
803 {
804 "id": "fade",
805 "name": "On Fade",
806 "description": [
807 "Called when a block 'fades away', e.g. ice or snow melts."
808 ],
809 "examples": [
810 "on fade of snow or ice:"
811 ],
812 "since": [
813 "1.0"
814 ],
815 "patterns": [
816 "[on] [block] fad(e|ing) [[of] %itemtypes%]"
817 ],
818 "event values": [
819 "past event-block",
820 "event-location",
821 "event-block",
822 "event-world",
823 "future event-block"
824 ],
825 "cancellable": true
826 },
827 {
828 "id": "firework_explode",
829 "name": "On Firework Explode",
830 "description": [
831 "Called when a firework explodes."
832 ],
833 "examples": [
834 "on firework explode",
835 "on firework exploding colored red, light green and black",
836 "on firework explosion coloured light green:",
837 "\tbroadcast \"A firework colored %colors% was exploded at %location%!\""
838 ],
839 "since": [
840 "2.4"
841 ],
842 "patterns": [
843 "[on] [a] firework explo(d(e|ing)|sion) [colo[u]red %colors%]"
844 ],
845 "event values": [
846 "event-entity",
847 "event-fireworkeffect",
848 "event-world",
849 "event-entity"
850 ],
851 "cancellable": true
852 },
853 {
854 "id": "first_join",
855 "name": "On First Join",
856 "description": [
857 "Called when a player joins the server for the first time."
858 ],
859 "examples": [
860 "on first join:",
861 "\tbroadcast \"Welcome %player% to the server!\""
862 ],
863 "since": [
864 "1.3.7"
865 ],
866 "patterns": [
867 "[on] first (join|login)"
868 ],
869 "event values": [
870 "event-world",
871 "event-player"
872 ],
873 "cancellable": false
874 },
875 {
876 "id": "fishing",
877 "name": "On Fishing",
878 "description": [
879 "Called when a player fishes something. This is not of much use yet."
880 ],
881 "examples": [
882 "on fish:"
883 ],
884 "since": [
885 "1.0"
886 ],
887 "patterns": [
888 "[on] [player] fish[ing]"
889 ],
890 "event values": [
891 "event-world",
892 "event-player"
893 ],
894 "cancellable": true
895 },
896 {
897 "id": "flight_toggle",
898 "name": "On Flight Toggle",
899 "description": [
900 "Called when a players stops/starts flying."
901 ],
902 "examples": [
903 "on flight toggle:",
904 "\tif {game::%player%::playing} exists:",
905 "\t\tcancel event"
906 ],
907 "since": [
908 "2.2-dev36"
909 ],
910 "patterns": [
911 "[on] [player] flight toggl(e|ing)",
912 "[on] [player] toggl(e|ing) flight"
913 ],
914 "event values": [
915 "event-world",
916 "event-player"
917 ],
918 "cancellable": true
919 },
920 {
921 "id": "flow",
922 "name": "On Flow",
923 "description": [
924 "Called when a blocks flows or teleports to another block. This not only applies to water and lava, but teleporting dragon eggs as well."
925 ],
926 "examples": [
927 "on block flow:",
928 "\tif event-block is water:",
929 "\t\tbroadcast \"Build more dams! It's starting to get wet in here\""
930 ],
931 "since": [
932 "1.0"
933 ],
934 "patterns": [
935 "[on] [block] flow[ing]",
936 "[on] block mov(e|ing)"
937 ],
938 "event values": [
939 "event-location",
940 "event-block",
941 "event-world",
942 "future event-block"
943 ],
944 "cancellable": true
945 },
946 {
947 "id": "form",
948 "name": "On Form",
949 "description": [
950 "Called when a block is created, but not by a player, e.g. snow forms due to snowfall, water freezes in cold biomes. This isn't called when block spreads (mushroom growth, water physics etc.), as it has its own event (see spread event)."
951 ],
952 "examples": [
953 "on form of snow:",
954 "on form of a mushroom:"
955 ],
956 "since": [
957 "1.0"
958 ],
959 "patterns": [
960 "[on] [block] form[ing] [[of] %itemtypes%]"
961 ],
962 "event values": [
963 "past event-block",
964 "event-location",
965 "event-block",
966 "event-world"
967 ],
968 "cancellable": true
969 },
970 {
971 "id": "fuel_burn",
972 "name": "On Fuel Burn",
973 "description": [
974 "Called when a furnace burns an item from its fuel slot."
975 ],
976 "examples": [
977 "on fuel burning:"
978 ],
979 "since": [
980 "1.0"
981 ],
982 "patterns": [
983 "[on] fuel burn[ing]"
984 ],
985 "event values": [
986 "event-location",
987 "event-block",
988 "event-world"
989 ],
990 "cancellable": true
991 },
992 {
993 "id": "gamemode_change",
994 "name": "On Gamemode Change",
995 "description": [
996 "Called when a player's gamemode changes."
997 ],
998 "examples": [
999 "on gamemode change:",
1000 "on gamemode change to adventure:"
1001 ],
1002 "since": [
1003 "1.0"
1004 ],
1005 "patterns": [
1006 "[on] game[ ]mode change [to %gamemode%]"
1007 ],
1008 "event values": [
1009 "event-world",
1010 "event-player"
1011 ],
1012 "cancellable": true
1013 },
1014 {
1015 "id": "gliding_state_change",
1016 "name": "On Gliding State Change",
1017 "description": [
1018 "Called when an entity toggles glider on or off, or when server toggles gliding state of an entity forcibly."
1019 ],
1020 "examples": [
1021 "on toggling gliding:",
1022 "\tcancel the event # bad idea, but you CAN do it!"
1023 ],
1024 "since": [
1025 "2.2-dev21"
1026 ],
1027 "patterns": [
1028 "[on] (gliding state change|toggl(e|ing) gliding)"
1029 ],
1030 "event values": [
1031 "event-world",
1032 "event-entity"
1033 ],
1034 "cancellable": true
1035 },
1036 {
1037 "id": "grow",
1038 "name": "On Grow",
1039 "description": [
1040 "Called when a tree, giant mushroom or plant grows to next stage."
1041 ],
1042 "examples": [
1043 "on grow:",
1044 "on grow of a tree:",
1045 "on grow of a huge jungle tree:"
1046 ],
1047 "since": [
1048 "1.0 (2.2-dev20 for plants)"
1049 ],
1050 "patterns": [
1051 "[on] grow [of (%structuretype%|%itemtype%)]"
1052 ],
1053 "event values": [
1054 "past event-block",
1055 "event-location",
1056 "event-block",
1057 "event-world",
1058 "future event-block"
1059 ],
1060 "cancellable": true
1061 },
1062 {
1063 "id": "hand_item_swap",
1064 "name": "On Hand Item Swap",
1065 "description": [
1066 "Called whenever a player swaps the items in their main- and offhand slots.",
1067 "Works also when one or both of the slots are empty.",
1068 "The event is called before the items are actually swapped,",
1069 "so when you use the player's tool or player's offtool expressions,",
1070 "they will return the values before the swap -",
1071 "this enables you to cancel the event before anything happens."
1072 ],
1073 "examples": [
1074 "on swap hand items:",
1075 "\tevent-player's tool is a diamond sword",
1076 "\tcancel event"
1077 ],
1078 "since": [
1079 "2.3"
1080 ],
1081 "patterns": [
1082 "[on] swap[ping of] [(hand|held)] item[s]"
1083 ],
1084 "event values": [
1085 "event-world",
1086 "event-player"
1087 ],
1088 "cancellable": true
1089 },
1090 {
1091 "id": "heal",
1092 "name": "On Heal",
1093 "description": [
1094 "Called when an entity is healed, e.g. by eating (players), being fed (pets), or by the effect of a potion of healing (overworld mobs) or harm (nether mobs)."
1095 ],
1096 "examples": [
1097 "on heal:"
1098 ],
1099 "since": [
1100 "1.0"
1101 ],
1102 "patterns": [
1103 "[on] heal[ing]"
1104 ],
1105 "event values": [
1106 "event-world",
1107 "event-entity"
1108 ],
1109 "cancellable": true
1110 },
1111 {
1112 "id": "hunger_meter_change",
1113 "name": "On Hunger Meter Change",
1114 "description": [
1115 "Called when the hunger bar of a player changes, i.e. either increases by eating or decreases over time."
1116 ],
1117 "examples": [
1118 "on food bar change:"
1119 ],
1120 "since": [
1121 "1.4.4"
1122 ],
1123 "patterns": [
1124 "[on] (food|hunger) (level|met(er|re)|bar) chang(e|ing)"
1125 ],
1126 "event values": [
1127 "event-world",
1128 "event-entity"
1129 ],
1130 "cancellable": true
1131 },
1132 {
1133 "id": "ignition",
1134 "name": "On Ignition",
1135 "description": [
1136 "Called when a block starts burning, i.e. a fire block is placed next to it and this block is flammable.",
1137 "The burn event will be called when the block is about do be destroyed by the fire."
1138 ],
1139 "examples": [
1140 "on block ignite:",
1141 "\tif event-block is a ladder:",
1142 "\t\tcancel event"
1143 ],
1144 "since": [
1145 "1.0"
1146 ],
1147 "patterns": [
1148 "[on] [block] ignit(e|ion)"
1149 ],
1150 "event values": [
1151 "event-location",
1152 "event-block",
1153 "event-world",
1154 "event-player"
1155 ],
1156 "cancellable": true
1157 },
1158 {
1159 "id": "inventory_click",
1160 "name": "On Inventory Click",
1161 "description": [
1162 "Called when clicking on inventory slot."
1163 ],
1164 "examples": [
1165 "on inventory click:",
1166 "\tif event-item is stone:",
1167 "\t\tgive player 1 stone",
1168 "\t\tremove 20$ from player's balance"
1169 ],
1170 "since": [
1171 "2.2-Fixes-V10"
1172 ],
1173 "patterns": [
1174 "[on] [player] inventory(-| )click[ing] [[at] %itemtypes%]"
1175 ],
1176 "event values": [
1177 "event-inventory",
1178 "event-itemstack",
1179 "event-inventoryaction",
1180 "event-clicktype",
1181 "event-world",
1182 "event-slot",
1183 "event-player"
1184 ],
1185 "cancellable": true
1186 },
1187 {
1188 "id": "inventory_close",
1189 "name": "On Inventory Close",
1190 "description": [
1191 "Called when player's currently viewed inventory is closed."
1192 ],
1193 "examples": [
1194 "on inventory close:",
1195 "\tif player's location is {location}:",
1196 "\t\tsend \"You exited the shop!\""
1197 ],
1198 "since": [
1199 "2.2-dev21"
1200 ],
1201 "patterns": [
1202 "[on] inventory clos(ing|e[d])"
1203 ],
1204 "event values": [
1205 "event-inventory",
1206 "event-player"
1207 ],
1208 "cancellable": false
1209 },
1210 {
1211 "id": "inventory_open",
1212 "name": "On Inventory Open",
1213 "description": [
1214 "Called when an inventory is opened for player."
1215 ],
1216 "examples": [
1217 "on inventory open:",
1218 "\tclose player's inventory"
1219 ],
1220 "since": [
1221 "2.2-dev21"
1222 ],
1223 "patterns": [
1224 "[on] inventory open[ed]"
1225 ],
1226 "event values": [
1227 "event-inventory",
1228 "event-player"
1229 ],
1230 "cancellable": true
1231 },
1232 {
1233 "id": "item_break",
1234 "name": "On Item Break",
1235 "description": [
1236 "Called when a player breaks his tool because its damage reached the maximum value.",
1237 "This event cannot be cancelled."
1238 ],
1239 "examples": [
1240 "on tool break:"
1241 ],
1242 "since": [
1243 "2.1.1"
1244 ],
1245 "patterns": [
1246 "[on] [player] tool break[ing]",
1247 "[on] [player] break[ing] (a|the|) tool"
1248 ],
1249 "event values": [
1250 "event-itemstack",
1251 "event-world",
1252 "event-player"
1253 ],
1254 "cancellable": false
1255 },
1256 {
1257 "id": "item_despawn",
1258 "name": "On Item Despawn",
1259 "description": [
1260 "Called when an item is about to be despawned from the world, usually 5 minutes after it was dropped."
1261 ],
1262 "examples": [
1263 "on item despawn of diamond:",
1264 "\tsend \"Not my precious!\"",
1265 "\tcancel event"
1266 ],
1267 "since": [
1268 "2.2-dev35"
1269 ],
1270 "patterns": [
1271 "[on] (item[ ][stack]|[item] %itemtypes%) despawn[ing]",
1272 "[on] [item[ ][stack]] despawn[ing] [[of] %itemtypes%]"
1273 ],
1274 "event values": [
1275 "event-itementity",
1276 "event-itemstack",
1277 "event-world",
1278 "event-entity"
1279 ],
1280 "cancellable": true
1281 },
1282 {
1283 "id": "item_merge",
1284 "name": "On Item Merge",
1285 "description": [
1286 "Called when dropped items merge into a single stack."
1287 ],
1288 "examples": [
1289 "on item merge of gold blocks:",
1290 "\tcancel event"
1291 ],
1292 "since": [
1293 "2.2-dev35"
1294 ],
1295 "patterns": [
1296 "[on] (item[ ][stack]|[item] %itemtypes%) merg(e|ing)",
1297 "[on] item[ ][stack] merg(e|ing) [[of] %itemtypes%]"
1298 ],
1299 "event values": [
1300 "event-itementity",
1301 "event-itemstack",
1302 "event-world",
1303 "event-entity"
1304 ],
1305 "cancellable": true
1306 },
1307 {
1308 "id": "item_spawn",
1309 "name": "On Item Spawn",
1310 "description": [
1311 "Called whenever an item stack is spawned in a world, e.g. as drop of a block or mob, a player throwing items out of his inventory, or a dispenser dispensing an item (not shooting it)."
1312 ],
1313 "examples": [
1314 "on item spawn of iron sword:",
1315 "\tbroadcast \"Someone dropped an iron sword!\""
1316 ],
1317 "since": [
1318 "unknown (before 2.1)"
1319 ],
1320 "patterns": [
1321 "[on] item spawn[ing] [[of] %itemtypes%]"
1322 ],
1323 "event values": [
1324 "event-itemstack",
1325 "event-world",
1326 "event-entity"
1327 ],
1328 "cancellable": true
1329 },
1330 {
1331 "id": "join",
1332 "name": "On Join",
1333 "description": [
1334 "Called when the player joins the server. The player is already in a world when this event is called, so if you want to prevent players from joining you should prefer on connect over this event."
1335 ],
1336 "examples": [
1337 "on join:",
1338 "\tmessage \"Welcome on our awesome server!\"",
1339 "\tbroadcast \"%player% just joined the server!\""
1340 ],
1341 "since": [
1342 "1.0"
1343 ],
1344 "patterns": [
1345 "[on] [player] (login|logging in|join[ing])"
1346 ],
1347 "event values": [
1348 "event-world",
1349 "event-player"
1350 ],
1351 "cancellable": false
1352 },
1353 {
1354 "id": "kick",
1355 "name": "On Kick",
1356 "description": [
1357 "Called when a player is kicked from the server. You can change the kick message or cancel the event entirely."
1358 ],
1359 "examples": [
1360 "on kick:"
1361 ],
1362 "since": [
1363 "1.0"
1364 ],
1365 "patterns": [
1366 "[on] [player] (kick|being kicked)"
1367 ],
1368 "event values": [
1369 "event-world",
1370 "event-player"
1371 ],
1372 "cancellable": true
1373 },
1374 {
1375 "id": "language_change",
1376 "name": "On Language Change",
1377 "description": [
1378 "Called after a player changed their language in the game settings. You can use the language expression to get the current language of the player.",
1379 "This event requires Minecraft 1.12+."
1380 ],
1381 "examples": [
1382 "on language change:",
1383 "\tif player's language starts with \"en\":",
1384 "\t\tsend \"Hello!\""
1385 ],
1386 "since": [
1387 "2.3"
1388 ],
1389 "patterns": [
1390 "[on] [player] (language|locale) chang(e|ing)",
1391 "[on] [player] chang(e|ing) (language|locale)"
1392 ],
1393 "event values": [
1394 "event-world",
1395 "event-player"
1396 ],
1397 "cancellable": false
1398 },
1399 {
1400 "id": "leaves_decay",
1401 "name": "On Leaves Decay",
1402 "description": [
1403 "Called when a leaf block decays due to not being connected to a tree."
1404 ],
1405 "examples": [
1406 "on leaves decay:"
1407 ],
1408 "since": [
1409 "1.0"
1410 ],
1411 "patterns": [
1412 "[on] leaves decay[ing]"
1413 ],
1414 "event values": [
1415 "event-location",
1416 "event-block",
1417 "event-world"
1418 ],
1419 "cancellable": true
1420 },
1421 {
1422 "id": "level_change",
1423 "name": "On Level Change",
1424 "description": [
1425 "Called when a player's level changes, e.g. by gathering experience or by enchanting something."
1426 ],
1427 "examples": [
1428 "on level change:"
1429 ],
1430 "since": [
1431 "1.0"
1432 ],
1433 "patterns": [
1434 "[on] [player] level [change]"
1435 ],
1436 "event values": [
1437 "event-world",
1438 "event-player"
1439 ],
1440 "cancellable": false
1441 },
1442 {
1443 "id": "lightning_strike",
1444 "name": "On Lightning Strike",
1445 "description": [
1446 "Called when lightning strikes."
1447 ],
1448 "examples": [
1449 "on lightning:"
1450 ],
1451 "since": [
1452 "1.0"
1453 ],
1454 "patterns": [
1455 "[on] lightning [strike]"
1456 ],
1457 "event values": [
1458 "event-world"
1459 ],
1460 "cancellable": true
1461 },
1462 {
1463 "id": "move_on",
1464 "name": "On Move On",
1465 "description": [
1466 "Called when a player moves onto a certain type of block. Please note that using this event can cause lag if there are many players online."
1467 ],
1468 "examples": [
1469 "on walking on dirt or grass:",
1470 "on stepping on stone:"
1471 ],
1472 "since": [
1473 "2.0"
1474 ],
1475 "patterns": [
1476 "[on] (step|walk)[ing] (on|over) %*itemtypes%"
1477 ],
1478 "event values": [
1479 "event-block",
1480 "event-teleportcause",
1481 "event-world",
1482 "event-player"
1483 ],
1484 "cancellable": true
1485 },
1486 {
1487 "id": "physics",
1488 "name": "On Physics",
1489 "description": [
1490 "Called when a physics check is done on a block. By cancelling this event you can prevent some things from happening, e.g. sand falling, dirt turning into grass, torches dropping if their supporting block is destroyed, etc.Please note that using this event might cause quite some lag since it gets called extremely often."
1491 ],
1492 "examples": [
1493 "# prevents sand from falling",
1494 "on block physics:",
1495 "\tblock is sand",
1496 "\tcancel event"
1497 ],
1498 "since": [
1499 "1.4.6"
1500 ],
1501 "patterns": [
1502 "[on] [block] physics"
1503 ],
1504 "event values": [
1505 "event-location",
1506 "event-block",
1507 "event-world"
1508 ],
1509 "cancellable": true
1510 },
1511 {
1512 "id": "pick_up",
1513 "name": "On Pick Up",
1514 "description": [
1515 "Called when a player picks up an item. Please note that the item is still on the ground when this event is called."
1516 ],
1517 "examples": [
1518 "on pick up:"
1519 ],
1520 "since": [
1521 "unknown (before 2.1)"
1522 ],
1523 "patterns": [
1524 "[on] [player] (pick[ ]up|picking up) [[of] %itemtypes%]"
1525 ],
1526 "event values": [
1527 "event-itementity",
1528 "event-itemstack",
1529 "event-world",
1530 "event-player"
1531 ],
1532 "cancellable": true
1533 },
1534 {
1535 "id": "pig_zap",
1536 "name": "On Pig Zap",
1537 "description": [
1538 "Called when a pig is stroke by lightning and transformed into a zombie pigman. Cancel the event to prevent the transformation."
1539 ],
1540 "examples": [
1541 "on pig zap:"
1542 ],
1543 "since": [
1544 "1.0"
1545 ],
1546 "patterns": [
1547 "[on] pig[ ]zap"
1548 ],
1549 "event values": [
1550 "event-world",
1551 "event-entity"
1552 ],
1553 "cancellable": true
1554 },
1555 {
1556 "id": "piston_extend",
1557 "name": "On Piston Extend",
1558 "description": [
1559 "Called when a piston is about to extend."
1560 ],
1561 "examples": [
1562 "on piston extend:",
1563 "\tbroadcast \"A piston is extending!\""
1564 ],
1565 "since": [
1566 "1.0"
1567 ],
1568 "patterns": [
1569 "[on] piston extend[ing]"
1570 ],
1571 "event values": [
1572 "event-location",
1573 "event-block",
1574 "event-world"
1575 ],
1576 "cancellable": true
1577 },
1578 {
1579 "id": "piston_retract",
1580 "name": "On Piston Retract",
1581 "description": [
1582 "Called when a piston is about to retract."
1583 ],
1584 "examples": [
1585 "on piston retract:",
1586 "\tbroadcast \"A piston is retracting!\""
1587 ],
1588 "since": [
1589 "1.0"
1590 ],
1591 "patterns": [
1592 "[on] piston retract[ing]"
1593 ],
1594 "event values": [
1595 "event-location",
1596 "event-block",
1597 "event-world"
1598 ],
1599 "cancellable": true
1600 },
1601 {
1602 "id": "place",
1603 "name": "On Place",
1604 "description": [
1605 "Called when a player places a block."
1606 ],
1607 "examples": [
1608 "on place:",
1609 "on place of a furnace, workbench or chest:"
1610 ],
1611 "since": [
1612 "1.0"
1613 ],
1614 "patterns": [
1615 "[on] [block] (plac(e|ing)|build[ing]) [[of] %itemtypes%]"
1616 ],
1617 "event values": [
1618 "past event-block",
1619 "event-location",
1620 "event-block",
1621 "event-direction",
1622 "event-world",
1623 "event-entity",
1624 "event-player"
1625 ],
1626 "cancellable": true
1627 },
1628 {
1629 "id": "player_world_change",
1630 "name": "On Player World Change",
1631 "description": [
1632 "Called when a player enters a world. Does not work with other entities!"
1633 ],
1634 "examples": [
1635 "on player world change:",
1636 "\tworld is \"city\"",
1637 "\tsend \"Welcome to the City!\""
1638 ],
1639 "since": [
1640 "2.2-dev28"
1641 ],
1642 "patterns": [
1643 "[on] [player] world chang(ing|e[d])"
1644 ],
1645 "event values": [
1646 "event-world",
1647 "event-player"
1648 ],
1649 "cancellable": false
1650 },
1651 {
1652 "id": "portal",
1653 "name": "On Portal",
1654 "description": [
1655 "Called when a player uses a nether or end portal. Cancel the event to prevent the player from teleporting."
1656 ],
1657 "examples": [
1658 "on player portal:"
1659 ],
1660 "since": [
1661 "1.0"
1662 ],
1663 "patterns": [
1664 "[on] [player] portal"
1665 ],
1666 "event values": [
1667 "event-block",
1668 "event-teleportcause",
1669 "event-world",
1670 "event-player"
1671 ],
1672 "cancellable": true
1673 },
1674 {
1675 "id": "portal_create",
1676 "name": "On Portal Create",
1677 "description": [
1678 "Called when a portal is created, either by a player or mob lighting an obsidian frame on fire, or by a nether portal creating its teleportation target in the nether/overworld.",
1679 "Please note that it's not possible to use the player in this event."
1680 ],
1681 "examples": [
1682 "on portal create:"
1683 ],
1684 "since": [
1685 "1.0"
1686 ],
1687 "patterns": [
1688 "[on] portal creat(e|ion)"
1689 ],
1690 "event values": [
1691 "event-world"
1692 ],
1693 "cancellable": true
1694 },
1695 {
1696 "id": "portal_enter",
1697 "name": "On Portal Enter",
1698 "description": [
1699 "Called when a player enters a nether portal and the swirly animation starts to play."
1700 ],
1701 "examples": [
1702 "on portal enter:"
1703 ],
1704 "since": [
1705 "1.0"
1706 ],
1707 "patterns": [
1708 "[on] portal enter[ing]",
1709 "[on] entering [a] portal"
1710 ],
1711 "event values": [
1712 "event-world",
1713 "event-entity"
1714 ],
1715 "cancellable": false
1716 },
1717 {
1718 "id": "prepare_craft",
1719 "name": "On Prepare Craft",
1720 "description": [
1721 "Called just before displaying crafting result to player. Note that setting the result item might or might not work due to Bukkit bugs."
1722 ],
1723 "examples": [
1724 "on preparing craft of torch:"
1725 ],
1726 "since": [
1727 "2.2-Fixes-V10"
1728 ],
1729 "patterns": [
1730 "[on] [player] (preparing|beginning) craft[ing] [[of] %itemtypes%]"
1731 ],
1732 "event values": [
1733 "event-slot",
1734 "event-player"
1735 ],
1736 "cancellable": false
1737 },
1738 {
1739 "id": "pressure_plate_trip",
1740 "name": "On Pressure Plate / Trip",
1741 "description": [
1742 "Called when a player steps on a pressure plate or tripwire respectively."
1743 ],
1744 "examples": [
1745 "on step on pressure plate:"
1746 ],
1747 "since": [
1748 "1.0 (pressure plate), 1.4.4 (tripwire)"
1749 ],
1750 "patterns": [
1751 "[on] [step[ping] on] [a] [pressure] plate",
1752 "[on] (trip|[step[ping] on] [a] tripwire)"
1753 ],
1754 "event values": [
1755 "event-block",
1756 "event-direction",
1757 "event-itemstack",
1758 "event-world",
1759 "event-player"
1760 ],
1761 "cancellable": true
1762 },
1763 {
1764 "id": "projectile_hit",
1765 "name": "On Projectile Hit",
1766 "description": [
1767 "Called when a projectile hits an entity or a block.",
1768 "Use the damage event with a check for a projectile to be able to use the entity that got hit in the case when the projectile hit a living entity.",
1769 "A damage event will even be fired if the damage is 0, e.g. when throwing snowballs at non-nether mobs."
1770 ],
1771 "examples": [
1772 "on projectile hit:",
1773 "\tevent-projectile is arrow",
1774 "\tdelete event-projectile"
1775 ],
1776 "since": [
1777 "1.0"
1778 ],
1779 "patterns": [
1780 "[on] projectile hit"
1781 ],
1782 "event values": [
1783 "event-projectile"
1784 ],
1785 "cancellable": false
1786 },
1787 {
1788 "id": "quit",
1789 "name": "On Quit",
1790 "description": [
1791 "Called when a player leaves the server. Starting with Skript 2.0 this also includes kicked players."
1792 ],
1793 "examples": [
1794 "on quit:",
1795 "on disconnect:"
1796 ],
1797 "since": [
1798 "1.0"
1799 ],
1800 "patterns": [
1801 "[on] (quit[ting]|disconnect[ing]|log[ ]out|logging out)"
1802 ],
1803 "event values": [
1804 "event-world",
1805 "event-player"
1806 ],
1807 "cancellable": false
1808 },
1809 {
1810 "id": "redstone",
1811 "name": "On Redstone",
1812 "description": [
1813 "Called when the redstone current of a block changes. This event is of not much use yet."
1814 ],
1815 "examples": [
1816 "on redstone change:",
1817 "\tsend \"someone is using redstone\" to console"
1818 ],
1819 "since": [
1820 "1.0"
1821 ],
1822 "patterns": [
1823 "[on] redstone [current] [chang(e|ing)]"
1824 ],
1825 "event values": [
1826 "event-location",
1827 "event-block",
1828 "event-world"
1829 ],
1830 "cancellable": false
1831 },
1832 {
1833 "id": "resource_pack_request_response",
1834 "name": "On Resource Pack Request Response",
1835 "description": [
1836 "Called when a player takes action on a resource pack request sent via the ",
1837 "send resource pack effect. ",
1838 "The resource pack condition can be used ",
1839 "to check the resource pack state.",
1840 "",
1841 "This event will be triggered once when the player accepts or declines the resource pack request, ",
1842 "and once when the resource pack is successfully installed or failed to download."
1843 ],
1844 "examples": [
1845 "on resource pack request response:",
1846 "\tif the resource pack was declined or failed to download:",
1847 "",
1848 "on resource pack deny:",
1849 "\tkick the player due to \"You have to install the resource pack to play in this server!\""
1850 ],
1851 "since": [
1852 "2.4"
1853 ],
1854 "patterns": [
1855 "[on] resource pack [request] response",
1856 "[on] resource pack [request] %resourcepackstates%"
1857 ],
1858 "event values": [
1859 "event-world",
1860 "event-player"
1861 ],
1862 "cancellable": false
1863 },
1864 {
1865 "id": "respawn",
1866 "name": "On Respawn",
1867 "description": [
1868 "Called when a player respawns. You should prefer this event over the death event as the player is technically alive when this event is called."
1869 ],
1870 "examples": [
1871 "on respawn:"
1872 ],
1873 "since": [
1874 "1.0"
1875 ],
1876 "patterns": [
1877 "[on] [player] respawn[ing]"
1878 ],
1879 "event values": [
1880 "event-world",
1881 "event-player"
1882 ],
1883 "cancellable": false
1884 },
1885 {
1886 "id": "resurrect_attempt",
1887 "name": "On Resurrect Attempt",
1888 "description": [
1889 "Called when an entity dies, always. If they are not holding a totem, this is calcelled - you can, however, uncancel it."
1890 ],
1891 "examples": [
1892 "on resurrect attempt:",
1893 "\tentity is player",
1894 "\tentity has permission \"admin.undying\"",
1895 "\tuncancel the event"
1896 ],
1897 "since": [
1898 "2.2-dev28"
1899 ],
1900 "patterns": [
1901 "[on] [entity] resurrect[ion] [attempt]"
1902 ],
1903 "event values": [
1904 "event-world",
1905 "event-entity"
1906 ],
1907 "cancellable": true
1908 },
1909 {
1910 "id": "script_loadunload",
1911 "name": "On Script Load/Unload",
1912 "description": [
1913 "Called directly after the trigger is loaded, or directly before the whole script is unloaded."
1914 ],
1915 "examples": [
1916 "on load:",
1917 "\tset {running::%script%} to true",
1918 "on unload:",
1919 "\tset {running::%script%} to false"
1920 ],
1921 "since": [
1922 "2.0"
1923 ],
1924 "patterns": [
1925 "[on] [script] (load|init|enable)",
1926 "[on] [script] (unload|stop|disable)"
1927 ],
1928 "cancellable": false
1929 },
1930 {
1931 "id": "server_list_ping",
1932 "name": "On Server List Ping",
1933 "description": [
1934 "Called when a server list ping is coming in, generally when a Minecraft client pings the server to show its information in the server list.",
1935 "The IP expression can be used to get the IP adress of the pinger.",
1936 "This event can be cancelled on PaperSpigot 1.12.2+ only and this means the player will see the server as offline (but still can join).",
1937 "",
1938 "Also you can use MOTD, Max Players, Online Players Count, Protocol Version, Version String, Hover List and Server Icon expressions, and Player Info Visibility and Hide Player from Server List effects to modify the server list."
1939 ],
1940 "examples": [
1941 "on server list ping:",
1942 "\tset the motd to \"Welcome %{player-by-IP::%ip%}%! Join now!\" if {player-by-IP::%ip%} is set, else \"Join now!\"",
1943 "\tset the fake max players count to (online players count + 1)",
1944 "\tset the shown icon to a random server icon out of {server-icons::*}"
1945 ],
1946 "since": [
1947 "2.3"
1948 ],
1949 "patterns": [
1950 "[on] server [list] ping"
1951 ],
1952 "cancellable": false
1953 },
1954 {
1955 "id": "server_startstop",
1956 "name": "On Server Start/Stop",
1957 "description": [
1958 "Called when the server starts or stops (actually, when Skript starts or stops, so a /reload will trigger these events as well)."
1959 ],
1960 "examples": [
1961 "on skript start:",
1962 "on server stop:"
1963 ],
1964 "since": [
1965 "2.0"
1966 ],
1967 "patterns": [
1968 "[on] (server|skript) (start|load|enable)",
1969 "[on] (server|skript) (stop|unload|disable)"
1970 ],
1971 "cancellable": false
1972 },
1973 {
1974 "id": "sheep_regrow_wool",
1975 "name": "On Sheep Regrow Wool",
1976 "description": [
1977 "Called when sheep regrows it's sheared wool back."
1978 ],
1979 "examples": [
1980 "on sheep grow wool:",
1981 "\tcancel event"
1982 ],
1983 "since": [
1984 "2.2-dev21"
1985 ],
1986 "patterns": [
1987 "[on] sheep [re]grow[ing] wool"
1988 ],
1989 "event values": [
1990 "event-world",
1991 "event-entity"
1992 ],
1993 "cancellable": true
1994 },
1995 {
1996 "id": "shoot",
1997 "name": "On Shoot",
1998 "description": [
1999 "Called whenever a projectile is shot. Use the shooter expression to get who shot the projectile."
2000 ],
2001 "examples": [
2002 "on shoot:",
2003 "\tif projectile is an arrow:",
2004 "\t\tsend \"you shot an arrow!\" to shooter"
2005 ],
2006 "since": [
2007 "1.0"
2008 ],
2009 "patterns": [
2010 "[on] [projectile] shoot"
2011 ],
2012 "event values": [
2013 "event-projectile"
2014 ],
2015 "cancellable": true
2016 },
2017 {
2018 "id": "sign_change",
2019 "name": "On Sign Change",
2020 "description": [
2021 "As signs are placed empty, this event is called when a player is done editing a sign."
2022 ],
2023 "examples": [
2024 "on sign change:",
2025 "\tline 2 is empty",
2026 "\tset line 1 to \"<red>%line 1%\""
2027 ],
2028 "since": [
2029 "1.0"
2030 ],
2031 "patterns": [
2032 "[on] sign (chang[e]|edit)[ing]",
2033 "[on] [player] (chang[e]|edit)[ing] [a] sign"
2034 ],
2035 "event values": [
2036 "event-location",
2037 "event-block",
2038 "event-world",
2039 "event-player"
2040 ],
2041 "cancellable": true
2042 },
2043 {
2044 "id": "slime_split",
2045 "name": "On Slime Split",
2046 "description": [
2047 "Called when a slime splits. Usually this happens when a big slime dies."
2048 ],
2049 "examples": [
2050 "on slime split:"
2051 ],
2052 "since": [
2053 "2.2-dev26"
2054 ],
2055 "patterns": [
2056 "[on] slime split[ting]"
2057 ],
2058 "event values": [
2059 "event-world",
2060 "event-entity"
2061 ],
2062 "cancellable": true
2063 },
2064 {
2065 "id": "smelt",
2066 "name": "On Smelt",
2067 "description": [
2068 "Called when a furnace smelts an item in its ore slot."
2069 ],
2070 "examples": [
2071 "on smelt:"
2072 ],
2073 "since": [
2074 "1.0"
2075 ],
2076 "patterns": [
2077 "[on] [ore] smelt[ing]",
2078 "[on] smelt[ing] of ore"
2079 ],
2080 "event values": [
2081 "event-location",
2082 "event-block",
2083 "event-world"
2084 ],
2085 "cancellable": true
2086 },
2087 {
2088 "id": "sneak_toggle",
2089 "name": "On Sneak Toggle",
2090 "description": [
2091 "Called when a player starts or stops sneaking. Use is sneaking to get whether the player was sneaking before the event was called."
2092 ],
2093 "examples": [
2094 "# make players that stop sneaking jump",
2095 "on sneak toggle:",
2096 "\tplayer was sneaking",
2097 "\tpush the player upwards at speed 0.5"
2098 ],
2099 "since": [
2100 "1.0"
2101 ],
2102 "patterns": [
2103 "[on] [player] toggl(e|ing) sneak",
2104 "[on] [player] sneak toggl(e|ing)"
2105 ],
2106 "event values": [
2107 "event-world",
2108 "event-player"
2109 ],
2110 "cancellable": true
2111 },
2112 {
2113 "id": "spawn",
2114 "name": "On Spawn",
2115 "description": [
2116 "Called when an creature spawns."
2117 ],
2118 "examples": [
2119 "on spawn of a zombie:",
2120 "on spawn of an ender dragon:",
2121 "\tbroadcast \"A dragon has been sighted in %world%!\""
2122 ],
2123 "since": [
2124 "1.0"
2125 ],
2126 "patterns": [
2127 "[on] spawn[ing] [of %entitydatas%]"
2128 ],
2129 "event values": [
2130 "event-spawnreason",
2131 "event-world",
2132 "event-entity"
2133 ],
2134 "cancellable": true
2135 },
2136 {
2137 "id": "spawn_change",
2138 "name": "On Spawn Change",
2139 "description": [
2140 "Called when the spawn point of a world changes."
2141 ],
2142 "examples": [
2143 "on spawn change:",
2144 "\tbroadcast \"someone changed the spawn!\""
2145 ],
2146 "since": [
2147 "1.0"
2148 ],
2149 "patterns": [
2150 "[on] [world] spawn change"
2151 ],
2152 "event values": [
2153 "event-world"
2154 ],
2155 "cancellable": false
2156 },
2157 {
2158 "id": "spread",
2159 "name": "On Spread",
2160 "description": [
2161 "Called when a new block forms as a result of a block that can spread, e.g. water or mushrooms."
2162 ],
2163 "examples": [
2164 "on spread:"
2165 ],
2166 "since": [
2167 "1.0"
2168 ],
2169 "patterns": [
2170 "[on] spread[ing]"
2171 ],
2172 "event values": [
2173 "past event-block",
2174 "event-location",
2175 "event-block",
2176 "event-world"
2177 ],
2178 "cancellable": true
2179 },
2180 {
2181 "id": "sprint_toggle",
2182 "name": "On Sprint Toggle",
2183 "description": [
2184 "Called when a player starts or stops sprinting. Use is sprinting to get whether the player was sprinting before the event was called."
2185 ],
2186 "examples": [
2187 "on sprint toggle:",
2188 "\tplayer is not sprinting",
2189 "\tsend \"Run!\""
2190 ],
2191 "since": [
2192 "1.0"
2193 ],
2194 "patterns": [
2195 "[on] [player] toggl(e|ing) sprint",
2196 "[on] [player] sprint toggl(e|ing)"
2197 ],
2198 "event values": [
2199 "event-world",
2200 "event-player"
2201 ],
2202 "cancellable": true
2203 },
2204 {
2205 "id": "swim_toggle",
2206 "name": "On Swim Toggle",
2207 "description": [
2208 "Called when an entity swims or stops swimming"
2209 ],
2210 "examples": [
2211 "on swim toggle:",
2212 "\tevent-entity does not have permission \"swim\"",
2213 "\tcancel event"
2214 ],
2215 "since": [
2216 "2.3"
2217 ],
2218 "patterns": [
2219 "[on] [entity] toggl(e|ing) swim",
2220 "[on] [entity] swim toggl(e|ing)"
2221 ],
2222 "event values": [
2223 "event-world",
2224 "event-entity"
2225 ],
2226 "cancellable": true,
2227 "required plugins": [
2228 "1.13 or newer"
2229 ]
2230 },
2231 {
2232 "id": "tame",
2233 "name": "On Tame",
2234 "description": [
2235 "Called when a player tames a wolf or ocelot. Can be cancelled to prevent the entity from being tamed."
2236 ],
2237 "examples": [
2238 "on tame:"
2239 ],
2240 "since": [
2241 "1.0"
2242 ],
2243 "patterns": [
2244 "[on] [entity] tam(e|ing)"
2245 ],
2246 "event values": [
2247 "event-world",
2248 "event-entity"
2249 ],
2250 "cancellable": true
2251 },
2252 {
2253 "id": "target",
2254 "name": "On Target",
2255 "description": [
2256 "Called when a mob starts/stops following/attacking another entity, usually a player."
2257 ],
2258 "examples": [
2259 "on entity target:",
2260 "\ttarget is a player"
2261 ],
2262 "since": [
2263 "1.0"
2264 ],
2265 "patterns": [
2266 "[on] [entity] target",
2267 "[on] [entity] un[-]target"
2268 ],
2269 "event values": [
2270 "event-world",
2271 "event-entity"
2272 ],
2273 "cancellable": true
2274 },
2275 {
2276 "id": "teleport",
2277 "name": "On Teleport",
2278 "description": [
2279 "Called whenever a player is teleported, either by a nether/end portal or other means (e.g. by plugins)."
2280 ],
2281 "examples": [
2282 "on teleport:"
2283 ],
2284 "since": [
2285 "1.0"
2286 ],
2287 "patterns": [
2288 "[on] [player] teleport[ing]"
2289 ],
2290 "event values": [
2291 "event-block",
2292 "event-teleportcause",
2293 "event-world",
2294 "event-player"
2295 ],
2296 "cancellable": true
2297 },
2298 {
2299 "id": "throwing_of_an_egg",
2300 "name": "On Throwing of an Egg",
2301 "description": [
2302 "Called when a player throws an egg. You can just use the shoot event in most cases, as this event is intended to support changing the hatched mob and its chance to hatch, but Skript does not yet support that."
2303 ],
2304 "examples": [
2305 "on throw of an egg:"
2306 ],
2307 "since": [
2308 "1.0"
2309 ],
2310 "patterns": [
2311 "[on] throw[ing] [of] [an] egg",
2312 "[on] [player] egg throw"
2313 ],
2314 "event values": [
2315 "event-world",
2316 "event-player"
2317 ],
2318 "cancellable": false
2319 },
2320 {
2321 "id": "tool_change",
2322 "name": "On Tool Change",
2323 "description": [
2324 "Called whenever a player changes his held item by selecting a different slot (e.g. the keys 1-9 or the mouse wheel), not by dropping or replacing the item in the current slot."
2325 ],
2326 "examples": [
2327 "on player's held item change:"
2328 ],
2329 "since": [
2330 "1.0"
2331 ],
2332 "patterns": [
2333 "[on] [player['s]] (tool|item held|held item) chang(e|ing)"
2334 ],
2335 "event values": [
2336 "event-world",
2337 "event-player"
2338 ],
2339 "cancellable": true
2340 },
2341 {
2342 "id": "vehicle_create",
2343 "name": "On Vehicle Create",
2344 "description": [
2345 "Called when a new vehicle is created, e.g. when a player places a boat or minecart."
2346 ],
2347 "examples": [
2348 "on vehicle create:"
2349 ],
2350 "since": [
2351 "1.0"
2352 ],
2353 "patterns": [
2354 "[on] vehicle create",
2355 "[on] creat(e|ing|ion of) [a] vehicle"
2356 ],
2357 "event values": [
2358 "event-entity",
2359 "event-world",
2360 "event-entity"
2361 ],
2362 "cancellable": true
2363 },
2364 {
2365 "id": "vehicle_damage",
2366 "name": "On Vehicle Damage",
2367 "description": [
2368 "Called when a vehicle gets damage. Too much damage will destroy the vehicle."
2369 ],
2370 "examples": [
2371 "on vehicle damage:"
2372 ],
2373 "since": [
2374 "1.0"
2375 ],
2376 "patterns": [
2377 "[on] vehicle damage",
2378 "[on] damag(e|ing) [a] vehicle"
2379 ],
2380 "event values": [
2381 "event-entity",
2382 "event-world",
2383 "event-entity"
2384 ],
2385 "cancellable": true
2386 },
2387 {
2388 "id": "vehicle_destroy",
2389 "name": "On Vehicle Destroy",
2390 "description": [
2391 "Called when a vehicle is destroyed. Any passenger will be ejected and the vehicle might drop some item(s)."
2392 ],
2393 "examples": [
2394 "on vehicle destroy:",
2395 "\tcancel event"
2396 ],
2397 "since": [
2398 "1.0"
2399 ],
2400 "patterns": [
2401 "[on] vehicle destroy",
2402 "[on] destr(oy[ing]|uction of) [a] vehicle"
2403 ],
2404 "event values": [
2405 "event-entity",
2406 "event-world",
2407 "event-entity"
2408 ],
2409 "cancellable": true
2410 },
2411 {
2412 "id": "vehicle_enter",
2413 "name": "On Vehicle Enter",
2414 "description": [
2415 "Called when an entity enters a vehicle, either deliberately (players) or by falling into them (mobs)."
2416 ],
2417 "examples": [
2418 "on vehicle enter:",
2419 "\tentity is a player",
2420 "\tcancel event"
2421 ],
2422 "since": [
2423 "1.0"
2424 ],
2425 "patterns": [
2426 "[on] vehicle enter",
2427 "[on] enter[ing] [a] vehicle"
2428 ],
2429 "event values": [
2430 "event-entity",
2431 "event-world",
2432 "event-entity"
2433 ],
2434 "cancellable": true
2435 },
2436 {
2437 "id": "vehicle_exit",
2438 "name": "On Vehicle Exit",
2439 "description": [
2440 "Called when an entity exits a vehicle."
2441 ],
2442 "examples": [
2443 "on vehicle exit:",
2444 "\tif event-entity is a spider:",
2445 "\t\tkill event-entity"
2446 ],
2447 "since": [
2448 "1.0"
2449 ],
2450 "patterns": [
2451 "[on] vehicle exit",
2452 "[on] exit[ing] [a] vehicle"
2453 ],
2454 "event values": [
2455 "event-livingentity",
2456 "event-entity",
2457 "event-world",
2458 "event-entity"
2459 ],
2460 "cancellable": true
2461 },
2462 {
2463 "id": "weather_change",
2464 "name": "On Weather Change",
2465 "description": [
2466 "Called when a world's weather changes."
2467 ],
2468 "examples": [
2469 "on weather change:",
2470 "on weather change to sunny:"
2471 ],
2472 "since": [
2473 "1.0"
2474 ],
2475 "patterns": [
2476 "[on] weather change [to %weathertypes%]"
2477 ],
2478 "event values": [
2479 "event-world"
2480 ],
2481 "cancellable": true
2482 },
2483 {
2484 "id": "world_init",
2485 "name": "On World Init",
2486 "description": [
2487 "Called when a world is initialised. As all default worlds are initialised before any scripts are loaded, this event is only called for newly created worlds.",
2488 "World management plugins might change the behaviour of this event though."
2489 ],
2490 "examples": [
2491 "on world init:"
2492 ],
2493 "since": [
2494 "1.0"
2495 ],
2496 "patterns": [
2497 "[on] world init[ialization]"
2498 ],
2499 "event values": [
2500 "event-world"
2501 ],
2502 "cancellable": false
2503 },
2504 {
2505 "id": "world_load",
2506 "name": "On World Load",
2507 "description": [
2508 "Called when a world is loaded. As with the world init event, this event will not be called for the server's default world(s)."
2509 ],
2510 "examples": [
2511 "on world load:",
2512 "\tsend \"World is loading...\" to console"
2513 ],
2514 "since": [
2515 "1.0"
2516 ],
2517 "patterns": [
2518 "[on] world load[ing]"
2519 ],
2520 "event values": [
2521 "event-world"
2522 ],
2523 "cancellable": false
2524 },
2525 {
2526 "id": "world_save",
2527 "name": "On World Save",
2528 "description": [
2529 "Called when a world is saved to disk. Usually all worlds are saved simultaneously, but world management plugins could change this."
2530 ],
2531 "examples": [
2532 "on world saving:",
2533 "\tbroadcast \"World has been saved!\""
2534 ],
2535 "since": [
2536 "1.0"
2537 ],
2538 "patterns": [
2539 "[on] world sav(e|ing)"
2540 ],
2541 "event values": [
2542 "event-world"
2543 ],
2544 "cancellable": false
2545 },
2546 {
2547 "id": "world_unload",
2548 "name": "On World Unload",
2549 "description": [
2550 "Called when a world is unloaded. This event might never be called if you don't have a world management plugin."
2551 ],
2552 "examples": [
2553 "on world unload:",
2554 "\tcancel event"
2555 ],
2556 "since": [
2557 "1.0"
2558 ],
2559 "patterns": [
2560 "[on] world unload[ing]"
2561 ],
2562 "event values": [
2563 "event-world"
2564 ],
2565 "cancellable": true
2566 },
2567 {
2568 "id": "zombie_break_door",
2569 "name": "On Zombie Break Door",
2570 "description": [
2571 "Called when a zombie is done breaking a wooden door. Can be cancelled to prevent the zombie from breaking the door."
2572 ],
2573 "examples": [
2574 "on zombie breaking a wood door:"
2575 ],
2576 "since": [
2577 "1.0"
2578 ],
2579 "patterns": [
2580 "[on] zombie break[ing] [a] [wood[en]] door"
2581 ],
2582 "event values": [
2583 "event-block",
2584 "event-world",
2585 "event-entity"
2586 ],
2587 "cancellable": true
2588 },
2589 {
2590 "id": "periodical",
2591 "name": "Periodical",
2592 "description": [
2593 "An event that is called periodically."
2594 ],
2595 "examples": [
2596 "every 2 seconds:",
2597 "every minecraft hour:",
2598 "every tick: # can cause lag depending on the code inside the event",
2599 "every minecraft days:"
2600 ],
2601 "since": [
2602 "1.0"
2603 ],
2604 "patterns": [
2605 "every %timespan%"
2606 ],
2607 "cancellable": false
2608 },
2609 {
2610 "id": "eventperiodical",
2611 "name": "Periodical",
2612 "description": [
2613 "An event that is called periodically."
2614 ],
2615 "examples": [
2616 "every 2 seconds in \"world\":",
2617 "every minecraft hour in \"flatworld\":",
2618 "every tick in \"world\": # can cause lag depending on the code inside the event",
2619 "every minecraft days in \"plots\":"
2620 ],
2621 "since": [
2622 "1.0"
2623 ],
2624 "patterns": [
2625 "every %timespan% in [world[s]] %worlds%"
2626 ],
2627 "event values": [
2628 "event-world"
2629 ],
2630 "cancellable": false
2631 }
2632 ],
2633 "conditions": [
2634 {
2635 "id": "CondCanFly",
2636 "name": "Can Fly",
2637 "description": [
2638 "Whether a player is allowed to fly."
2639 ],
2640 "examples": [
2641 "player can fly"
2642 ],
2643 "since": [
2644 "2.3"
2645 ],
2646 "patterns": [
2647 "%players% can fly",
2648 "%players% (can't|cannot|can not) fly"
2649 ]
2650 },
2651 {
2652 "id": "CondCanHold",
2653 "name": "Can Hold",
2654 "description": [
2655 "Tests whether a player or a chest can hold the given item."
2656 ],
2657 "examples": [
2658 "block can hold 200 cobblestone",
2659 "player has enough space for 64 feathers"
2660 ],
2661 "since": [
2662 "1.0"
2663 ],
2664 "patterns": [
2665 "%inventories% (can hold|ha(s|ve) [enough] space (for|to hold)) %itemtypes%",
2666 "%inventories% (can(no|')t hold|(ha(s|ve) not|ha(s|ve)n't|do[es]n't have) [enough] space (for|to hold)) %itemtypes%"
2667 ]
2668 },
2669 {
2670 "id": "CondCanSee",
2671 "name": "Can See",
2672 "description": [
2673 "Checks whether the given players can see another players."
2674 ],
2675 "examples": [
2676 "if the player can't see the player-argument:",
2677 "\tmessage \"<light red>The player %player-argument% is not online!\""
2678 ],
2679 "since": [
2680 "2.3"
2681 ],
2682 "patterns": [
2683 "%players% (is|are) [(in)]visible for %players%",
2684 "%players% can see %players%",
2685 "%players% (is|are)(n't| not) [(in)]visible for %players%",
2686 "%players% can('t| not) see %players%"
2687 ]
2688 },
2689 {
2690 "id": "CondChance",
2691 "name": "Chance",
2692 "description": [
2693 "A condition that randomly succeeds or fails.",
2694 "Valid values are between 0% and 100%, or if the percent sign is omitted between 0 and 1."
2695 ],
2696 "examples": [
2697 "chance of 50%:",
2698 "\tdrop a diamond",
2699 "chance of {chance}% # {chance} between 0 and 100",
2700 "chance of {chance} # {chance} between 0 and 1"
2701 ],
2702 "since": [
2703 "1.0"
2704 ],
2705 "patterns": [
2706 "chance of %number%(\\%|)"
2707 ]
2708 },
2709 {
2710 "id": "CondCompare",
2711 "name": "Comparison",
2712 "description": [
2713 "A very general condition, it simply compares two values. Usually you can only compare for equality (e.g. block is/isn't of <type>), but some values can also be compared using greater than/less than. In that case you can also test for whether an object is between two others.",
2714 "Note: This is the only element where not all patterns are shown. It has actually another two sets of similar patters, but with (was|were) or will be instead of (is|are) respectively, which check different time states of the first expression."
2715 ],
2716 "examples": [
2717 "the clicked block is a stone slab or a double stone slab",
2718 "time in the player's world is greater than 8:00",
2719 "the creature is not an enderman or an ender dragon"
2720 ],
2721 "since": [
2722 "1.0"
2723 ],
2724 "patterns": [
2725 "(neither|) %objects% ((is|are)(|(n't| not| neither)) ((greater|more|higher|bigger|larger) than|above)|\\>) %objects%",
2726 "(neither|) %objects% ((is|are)(|(n't| not| neither)) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|\\>=) %objects%",
2727 "(neither|) %objects% ((is|are)(|(n't| not| neither)) ((less|smaller) than|below)|\\<) %objects%",
2728 "(neither|) %objects% ((is|are)(|(n't| not| neither)) (less|smaller|below) [than] or (equal to|the same as)|\\<=) %objects%",
2729 "(neither|) %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%",
2730 "(neither|) %objects% (is|are|=) [(equal to|the same as)] %objects%",
2731 "(neither|) %objects% (is|are) between %objects% and %objects%",
2732 "(neither|) %objects% (is not|are not|isn't|aren't) between %objects% and %objects%",
2733 "(neither|) %objects% (was|were)(|(n't| not| neither)) ((greater|more|higher|bigger|larger) than|above) %objects%",
2734 "(neither|) %objects% (was|were)(|(n't| not| neither)) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%",
2735 "(neither|) %objects% (was|were)(|(n't| not| neither)) ((less|smaller) than|below) %objects%",
2736 "(neither|) %objects% (was|were)(|(n't| not| neither)) (less|smaller|below) [than] or (equal to|the same as) %objects%",
2737 "(neither|) %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%",
2738 "(neither|) %objects% (was|were) [(equal to|the same as)] %objects%",
2739 "(neither|) %objects% (was|were) between %objects% and %objects%",
2740 "(neither|) %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%",
2741 "(neither|) %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%",
2742 "(neither|) %objects% (will be|(will (not|neither) be|won't be)) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%",
2743 "(neither|) %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller) than|below) %objects%",
2744 "(neither|) %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|below) [than] or (equal to|the same as) %objects%",
2745 "(neither|) %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%",
2746 "(neither|) %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%",
2747 "(neither|) %objects% will be between %objects% and %objects%",
2748 "(neither|) %objects% (will not be|won't be) between %objects% and %objects%"
2749 ]
2750 },
2751 {
2752 "id": "CondContains",
2753 "name": "Contains",
2754 "description": [
2755 "Checks whether an inventory contains the given item, a text contains another piece of text, or a list of objects (e.g. a {list variable::*}) contains another object."
2756 ],
2757 "examples": [
2758 "block contains 20 cobblestone",
2759 "player has 4 flint and 2 iron ingots"
2760 ],
2761 "since": [
2762 "1.0"
2763 ],
2764 "patterns": [
2765 "%inventories% ha(s|ve) %itemtypes% [in [(the[ir]|his|her|its)] inventory]",
2766 "%inventories/strings/objects% contain[s] %itemtypes/strings/objects%",
2767 "%inventories% do[es](n't| not) have %itemtypes% [in [(the[ir]|his|her|its)] inventory]",
2768 "%inventories/strings/objects% do[es](n't| not) contain %itemtypes/strings/objects%"
2769 ]
2770 },
2771 {
2772 "id": "CondDamageCause",
2773 "name": "Damage Cause",
2774 "description": [
2775 "Tests what kind of damage caused a damage event. Refer to the Damage Cause type for a list of all possible causes."
2776 ],
2777 "examples": [
2778 "# make players use their potions of fire resistance whenever they take any kind of fire damage",
2779 "on damage:",
2780 "\tdamage was caused by lava, fire or burning",
2781 "\tvictim is a player",
2782 "\tvictim has a potion of fire resistance",
2783 "\tcancel event",
2784 "\tapply fire resistance to the victim for 30 seconds",
2785 "\tremove 1 potion of fire resistance from the victim",
2786 "# prevent mobs from dropping items under certain circumstances",
2787 "on death:",
2788 "\tentity is not a player",
2789 "\tdamage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison",
2790 "\tclear drops"
2791 ],
2792 "since": [
2793 "2.0"
2794 ],
2795 "patterns": [
2796 "[the] damage (was|is|has)(|n('|o)t) [been] (caused|done|made) by %damagecause%"
2797 ]
2798 },
2799 {
2800 "id": "CondCancelled",
2801 "name": "Event Cancelled",
2802 "description": [
2803 "Checks whether or not the event is cancelled."
2804 ],
2805 "examples": [
2806 "on click:",
2807 "\tif event is cancelled:",
2808 "\t\tbroadcast \"no clicks allowed!\""
2809 ],
2810 "since": [
2811 "2.2-dev36"
2812 ],
2813 "patterns": [
2814 "[the] event is cancel[l]ed",
2815 "[the] event (is not|isn't) cancel[l]ed"
2816 ]
2817 },
2818 {
2819 "id": "CondIsSet",
2820 "name": "Exists/Is Set",
2821 "description": [
2822 "Checks whether a given expression or variable is set."
2823 ],
2824 "examples": [
2825 "{teams::%player's uuid%::preferred-team} is not set",
2826 "on damage:",
2827 "\tprojectile exists",
2828 "\tbroadcast \"%attacker% used a %projectile% to attack %victim%!\""
2829 ],
2830 "since": [
2831 "1.2"
2832 ],
2833 "patterns": [
2834 "%objects% (exist[s]|(is|are) set)",
2835 "%objects% (do[es](n't| not) exist|(is|are)(n't| not) set)"
2836 ]
2837 },
2838 {
2839 "id": "CondHasClientWeather",
2840 "name": "Has Client Weather",
2841 "description": [
2842 "Checks whether the given players have a custom client weather"
2843 ],
2844 "examples": [
2845 "if the player has custom weather:",
2846 "\tmessage \"Your custom weather is %player's weather%\""
2847 ],
2848 "since": [
2849 "2.3"
2850 ],
2851 "patterns": [
2852 "%players% (has|have) [a] (client|custom) weather [set]",
2853 "%players% (doesn't|does not|do not|don't) have [a] (client|custom) weather [set]"
2854 ]
2855 },
2856 {
2857 "id": "CondHasMetadata",
2858 "name": "Has Metadata",
2859 "description": [
2860 "Checks whether a metadata holder has a metadata tag."
2861 ],
2862 "examples": [
2863 "if player has metadata value \"healer\":"
2864 ],
2865 "since": [
2866 "2.2-dev36"
2867 ],
2868 "patterns": [
2869 "%metadataholders% (has|have) metadata [(value|tag)[s]] %strings%",
2870 "%metadataholders% (doesn't|does not|do not|don't) have metadata [(value|tag)[s]] %strings%"
2871 ]
2872 },
2873 {
2874 "id": "CondPermission",
2875 "name": "Has Permission",
2876 "description": [
2877 "Test whether a player has a certain permission."
2878 ],
2879 "examples": [
2880 "player has permission \"skript.tree\"",
2881 "victim has the permission \"admin\":",
2882 "\tsend \"You're attacking an admin!\" to attacker"
2883 ],
2884 "since": [
2885 "1.0"
2886 ],
2887 "patterns": [
2888 "%commandsenders% (has|have) [the] permission[s] %strings%",
2889 "%commandsenders% (doesn't|does not|do not|don't) have [the] permission[s] %strings%"
2890 ]
2891 },
2892 {
2893 "id": "CondPlayedBefore",
2894 "name": "Has Played Before",
2895 "description": [
2896 "Checks whether a player has played on this server before. You can also use on first join if you want to make triggers for new players."
2897 ],
2898 "examples": [
2899 "player has played on this server before",
2900 "player hasn't played before"
2901 ],
2902 "since": [
2903 "1.4"
2904 ],
2905 "patterns": [
2906 "%offlineplayer% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)",
2907 "%offlineplayer% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)"
2908 ]
2909 },
2910 {
2911 "id": "CondHasScoreboardTag",
2912 "name": "Has Scoreboard Tag",
2913 "description": [
2914 "Checks whether the given entities has the given scoreboard tags."
2915 ],
2916 "examples": [
2917 "if the targeted armor stand has the scoreboard tag \"test tag\":"
2918 ],
2919 "since": [
2920 "2.3"
2921 ],
2922 "patterns": [
2923 "%entities% (has|have) [the] score[ ]board tag[s] %strings%",
2924 "%entities% (doesn't|does not|do not|don't) have [the] score[ ]board tag[s] %strings%"
2925 ]
2926 },
2927 {
2928 "id": "CondIsAlive",
2929 "name": "Is Alive",
2930 "description": [
2931 "Checks whether an entity is alive. This is mostly useful to check whether an entity stored in a variable does still exist."
2932 ],
2933 "examples": [
2934 "{villager-buddy::%player's uuid%} is dead"
2935 ],
2936 "since": [
2937 "2.0"
2938 ],
2939 "patterns": [
2940 "%livingentities% (is|are) (alive|dead)",
2941 "%livingentities% (isn't|is not|aren't|are not) (alive|dead)"
2942 ]
2943 },
2944 {
2945 "id": "CondIsBanned",
2946 "name": "Is Banned",
2947 "description": [
2948 "Checks whether a player or IP is banned."
2949 ],
2950 "examples": [
2951 "player is banned",
2952 "victim is not IP-banned",
2953 "\"127.0.0.1\" is banned"
2954 ],
2955 "since": [
2956 "1.4"
2957 ],
2958 "patterns": [
2959 "%offlineplayers/strings% (is|are) banned",
2960 "%players/strings% (is|are) IP(-| |)banned",
2961 "%offlineplayers/strings% (isn't|is not|aren't|are not) banned",
2962 "%players/strings% (isn't|is not|aren't|are not) IP(-| |)banned"
2963 ]
2964 },
2965 {
2966 "id": "CondIsBlock",
2967 "name": "Is Block",
2968 "description": [
2969 "Checks whether an item is a block."
2970 ],
2971 "examples": [
2972 "player's held item is a block",
2973 "{list::*} are blocks"
2974 ],
2975 "since": [
2976 "2.4"
2977 ],
2978 "patterns": [
2979 "%itemstacks% (is|are) ([a] block|blocks)",
2980 "%itemstacks% (isn't|is not|aren't|are not) ([a] block|blocks)"
2981 ]
2982 },
2983 {
2984 "id": "CondIsBlocking",
2985 "name": "Is Blocking",
2986 "description": [
2987 "Checks whether a player is blocking with his shield."
2988 ],
2989 "examples": [
2990 "on damage of player:",
2991 "\tvictim is blocking",
2992 "\tdamage attacker by 0.5 hearts"
2993 ],
2994 "since": [
2995 "unknown (before 2.1)"
2996 ],
2997 "patterns": [
2998 "%players% (is|are) (blocking|defending)",
2999 "%players% (isn't|is not|aren't|are not) (blocking|defending)"
3000 ]
3001 },
3002 {
3003 "id": "CondIsBurning",
3004 "name": "Is Burning",
3005 "description": [
3006 "Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava."
3007 ],
3008 "examples": [
3009 "# increased attack against burning targets",
3010 "victim is burning:",
3011 "\tincrease damage by 2"
3012 ],
3013 "since": [
3014 "1.4.4"
3015 ],
3016 "patterns": [
3017 "%entities% (is|are) (burning|ignited|on fire)",
3018 "%entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)"
3019 ]
3020 },
3021 {
3022 "id": "CondIsEdible",
3023 "name": "Is Edible",
3024 "description": [
3025 "Checks whether an item is edible."
3026 ],
3027 "examples": [
3028 "steak is edible",
3029 "player's tool is edible"
3030 ],
3031 "since": [
3032 "2.2-dev36"
3033 ],
3034 "patterns": [
3035 "%itemstacks% (is|are) edible",
3036 "%itemstacks% (isn't|is not|aren't|are not) edible"
3037 ]
3038 },
3039 {
3040 "id": "CondIsEmpty",
3041 "name": "Is Empty",
3042 "description": [
3043 "Checks whether an inventory, an inventory slot, or a text is empty."
3044 ],
3045 "examples": [
3046 "player's inventory is empty"
3047 ],
3048 "since": [
3049 "unknown (before 2.1)"
3050 ],
3051 "patterns": [
3052 "%inventories/slots/strings% (is|are) empty",
3053 "%inventories/slots/strings% (isn't|is not|aren't|are not) empty"
3054 ]
3055 },
3056 {
3057 "id": "CondIsEnchanted",
3058 "name": "Is Enchanted",
3059 "description": [
3060 "Checks whether an item is enchanted."
3061 ],
3062 "examples": [
3063 "tool of the player is enchanted with efficiency 2",
3064 "helm, chestplate, leggings or boots are enchanted"
3065 ],
3066 "since": [
3067 "1.4.6"
3068 ],
3069 "patterns": [
3070 "%itemtypes% (is|are) enchanted [with %enchantmenttype%]",
3071 "%itemtypes% (isn't|is not|aren't|are not) enchanted [with %enchantmenttype%]"
3072 ]
3073 },
3074 {
3075 "id": "CondIsFlammable",
3076 "name": "Is Flammable",
3077 "description": [
3078 "Checks whether an item is flammable."
3079 ],
3080 "examples": [
3081 "wood is flammable",
3082 "player's tool is flammable"
3083 ],
3084 "since": [
3085 "2.2-dev36"
3086 ],
3087 "patterns": [
3088 "%itemstacks% (is|are) flammable",
3089 "%itemstacks% (isn't|is not|aren't|are not) flammable"
3090 ]
3091 },
3092 {
3093 "id": "CondIsFlying",
3094 "name": "Is Flying",
3095 "description": [
3096 "Checks whether a player is flying."
3097 ],
3098 "examples": [
3099 "player is not flying"
3100 ],
3101 "since": [
3102 "1.4.4"
3103 ],
3104 "patterns": [
3105 "%players% (is|are) flying",
3106 "%players% (isn't|is not|aren't|are not) flying"
3107 ]
3108 },
3109 {
3110 "id": "CondItemInHand",
3111 "name": "Is Holding",
3112 "description": [
3113 "Checks whether a player is holding a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding <item type>' instead."
3114 ],
3115 "examples": [
3116 "player is holding a stick",
3117 "victim isn't holding a sword of sharpness"
3118 ],
3119 "since": [
3120 "1.0"
3121 ],
3122 "patterns": [
3123 "[%livingentities%] ha(s|ve) %itemtypes% in [main] hand",
3124 "[%livingentities%] (is|are) holding %itemtypes% [in main hand]",
3125 "[%livingentities%] ha(s|ve) %itemtypes% in off[(-| )]hand",
3126 "[%livingentities%] (is|are) holding %itemtypes% in off[(-| )]hand",
3127 "[%livingentities%] (ha(s|ve) not|do[es]n't have) %itemtypes% in [main] hand",
3128 "[%livingentities%] (is not|isn't) holding %itemtypes% [in main hand]",
3129 "[%livingentities%] (ha(s|ve) not|do[es]n't have) %itemtypes% in off[(-| )]hand",
3130 "[%livingentities%] (is not|isn't) holding %itemtypes% in off[(-| )]hand"
3131 ]
3132 },
3133 {
3134 "id": "CondIsLoaded",
3135 "name": "Is Loaded",
3136 "description": [
3137 "Checks whether or not a chunk/world is loaded"
3138 ],
3139 "examples": [
3140 "if chunk at {home::%player's uuid%} is loaded:"
3141 ],
3142 "since": [
3143 "2.3"
3144 ],
3145 "patterns": [
3146 "%worlds/chunks% (is|are) loaded",
3147 "%worlds/chunks% (isn't|is not|aren't|are not) loaded"
3148 ]
3149 },
3150 {
3151 "id": "CondIsOnline",
3152 "name": "Is Online",
3153 "description": [
3154 "Checks whether a player is online."
3155 ],
3156 "examples": [
3157 "player is online",
3158 "player-argument is offline"
3159 ],
3160 "since": [
3161 "1.4"
3162 ],
3163 "patterns": [
3164 "%offlineplayers% (is|are) (online|offline)",
3165 "%offlineplayers% (isn't|is not|aren't|are not) (online|offline)"
3166 ]
3167 },
3168 {
3169 "id": "CondIsPoisoned",
3170 "name": "Is Poisoned",
3171 "description": [
3172 "Checks whether an entity is poisoned."
3173 ],
3174 "examples": [
3175 "player is poisoned:",
3176 "\tcure the player from poison",
3177 "\tmessage \"You have been cured!\""
3178 ],
3179 "since": [
3180 "1.4.4"
3181 ],
3182 "patterns": [
3183 "%livingentities% (is|are) poisoned",
3184 "%livingentities% (isn't|is not|aren't|are not) poisoned"
3185 ]
3186 },
3187 {
3188 "id": "CondIsRiding",
3189 "name": "Is Riding",
3190 "description": [
3191 "Tests whether an entity is riding another or is in a vehicle."
3192 ],
3193 "examples": [
3194 "player is riding a saddled pig"
3195 ],
3196 "since": [
3197 "2.0"
3198 ],
3199 "patterns": [
3200 "%entities% (is|are) riding [%entitydatas%]",
3201 "%entities% (isn't|is not|aren't|are not) riding [%entitydatas%]"
3202 ]
3203 },
3204 {
3205 "id": "CondScriptLoaded",
3206 "name": "Is Script Loaded",
3207 "description": [
3208 "Check if the current script, or another script, is currently loaded."
3209 ],
3210 "examples": [
3211 "script is loaded",
3212 "script \"example.sk\" is loaded"
3213 ],
3214 "since": [
3215 "2.2-dev31"
3216 ],
3217 "patterns": [
3218 "script[s] [%strings%] (is|are) loaded",
3219 "script[s] [%strings%] (isn't|is not|aren't|are not) loaded"
3220 ]
3221 },
3222 {
3223 "id": "CondIsSleeping",
3224 "name": "Is Sleeping",
3225 "description": [
3226 "Checks whether a player is sleeping."
3227 ],
3228 "examples": [
3229 "# cut your enemies' throats in their sleep >=)",
3230 "on attack:",
3231 "\tattacker is holding a sword",
3232 "\tvictim is sleeping",
3233 "\tincrease the damage by 1000"
3234 ],
3235 "since": [
3236 "1.4.4"
3237 ],
3238 "patterns": [
3239 "%players% (is|are) sleeping",
3240 "%players% (isn't|is not|aren't|are not) sleeping"
3241 ]
3242 },
3243 {
3244 "id": "CondIsSlimeChunk",
3245 "name": "Is Slime Chunk",
3246 "description": [
3247 "Tests whether a chunk is a so-called slime chunk.",
3248 "Slimes can generally spawn in the swamp biome and in slime chunks.",
3249 "For more info, see the Minecraft wiki."
3250 ],
3251 "examples": [
3252 "command /slimey:",
3253 "\ttrigger:",
3254 "\t\tif chunk at player is a slime chunk:",
3255 "\t\t\tsend \"Yeah, it is!\"",
3256 "\t\telse:",
3257 "\t\t\tsend \"Nope, it isn't\""
3258 ],
3259 "since": [
3260 "2.3"
3261 ],
3262 "patterns": [
3263 "%chunk% (is|are) ([a] slime chunk|slime chunks|slimey)",
3264 "%chunk% (isn't|is not|aren't|are not) ([a] slime chunk|slime chunks|slimey)"
3265 ]
3266 },
3267 {
3268 "id": "CondIsSneaking",
3269 "name": "Is Sneaking",
3270 "description": [
3271 "Checks whether a player is sneaking."
3272 ],
3273 "examples": [
3274 "# prevent mobs from seeing sneaking players if they are at least 4 meters apart",
3275 "on target:",
3276 "\ttarget is sneaking",
3277 "\tdistance of target and the entity is bigger than 4",
3278 "\tcancel the event"
3279 ],
3280 "since": [
3281 "1.4.4"
3282 ],
3283 "patterns": [
3284 "%players% (is|are) sneaking",
3285 "%players% (isn't|is not|aren't|are not) sneaking"
3286 ]
3287 },
3288 {
3289 "id": "CondIsSolid",
3290 "name": "Is Solid",
3291 "description": [
3292 "Checks whether an item is solid."
3293 ],
3294 "examples": [
3295 "grass block is solid",
3296 "player's tool isn't solid"
3297 ],
3298 "since": [
3299 "2.2-dev36"
3300 ],
3301 "patterns": [
3302 "%itemstacks% (is|are) solid",
3303 "%itemstacks% (isn't|is not|aren't|are not) solid"
3304 ]
3305 },
3306 {
3307 "id": "CondIsSprinting",
3308 "name": "Is Sprinting",
3309 "description": [
3310 "Checks whether a player is sprinting."
3311 ],
3312 "examples": [
3313 "player is not sprinting"
3314 ],
3315 "since": [
3316 "1.4.4"
3317 ],
3318 "patterns": [
3319 "%players% (is|are) sprinting",
3320 "%players% (isn't|is not|aren't|are not) sprinting"
3321 ]
3322 },
3323 {
3324 "id": "CondIsSwimming",
3325 "name": "Is Swimming",
3326 "description": [
3327 "Checks whether a living entity is swimming."
3328 ],
3329 "examples": [
3330 "player is swimming"
3331 ],
3332 "since": [
3333 "2.3"
3334 ],
3335 "patterns": [
3336 "%livingentities% (is|are) swimming",
3337 "%livingentities% (isn't|is not|aren't|are not) swimming"
3338 ],
3339 "required plugins": [
3340 "1.13 or newer"
3341 ]
3342 },
3343 {
3344 "id": "CondIsTransparent",
3345 "name": "Is Transparent",
3346 "description": [
3347 "Checks whether an item is transparent."
3348 ],
3349 "examples": [
3350 "glass is transparent",
3351 "player's tool is transparent."
3352 ],
3353 "since": [
3354 "2.2-dev36"
3355 ],
3356 "patterns": [
3357 "%itemstacks% (is|are) transparent",
3358 "%itemstacks% (isn't|is not|aren't|are not) transparent"
3359 ]
3360 },
3361 {
3362 "id": "CondIsWearing",
3363 "name": "Is Wearing",
3364 "description": [
3365 "Checks whether a player is wearing some armour."
3366 ],
3367 "examples": [
3368 "player is wearing an iron chestplate and iron leggings",
3369 "player is wearing all diamond armour"
3370 ],
3371 "since": [
3372 "1.0"
3373 ],
3374 "patterns": [
3375 "%livingentities% (is|are) wearing %itemtypes%",
3376 "%livingentities% (isn't|is not|aren't|are not) wearing %itemtypes%"
3377 ]
3378 },
3379 {
3380 "id": "CondIsInWorld",
3381 "name": "Is in World",
3382 "description": [
3383 "Checks whether an entity is in a specific world."
3384 ],
3385 "examples": [
3386 "player is in \"world\"",
3387 "argument isn't in world \"world_nether\"",
3388 "the player is in the world of the victim"
3389 ],
3390 "since": [
3391 "1.4"
3392 ],
3393 "patterns": [
3394 "%entities% (is|are) in [[the] world[s]] %worlds%",
3395 "%entities% (isn't|is not|aren't|are not) in [[the] world[s]] %worlds%"
3396 ]
3397 },
3398 {
3399 "id": "CondIsOfType",
3400 "name": "Is of Type",
3401 "description": [
3402 "Checks whether an item of an entity is of the given type. This is mostly useful for variables, as you can use the general 'is' condition otherwise (e.g. 'victim is a creeper')."
3403 ],
3404 "examples": [
3405 "tool is of type {selected type}",
3406 "victim is of type {villager type}"
3407 ],
3408 "since": [
3409 "1.4"
3410 ],
3411 "patterns": [
3412 "%itemstacks/entities% (is|are) of type[s] %entitytypes/entitydatas%",
3413 "%itemstacks/entities% (isn't|is not|aren't|are not) of type[s] %entitytypes/entitydatas%"
3414 ]
3415 },
3416 {
3417 "id": "CondIsOnGround",
3418 "name": "Is on Ground",
3419 "description": [
3420 "Checks whether an entity is on ground."
3421 ],
3422 "examples": [
3423 "player is not on ground"
3424 ],
3425 "since": [
3426 "2.2-dev26"
3427 ],
3428 "patterns": [
3429 "%entities% (is|are) on [the] ground",
3430 "%entities% (isn't|is not|aren't|are not) on [the] ground"
3431 ]
3432 },
3433 {
3434 "id": "CondPvP",
3435 "name": "PvP",
3436 "description": [
3437 "Checks the PvP state of a world."
3438 ],
3439 "examples": [
3440 "PvP is enabled",
3441 "PvP is disabled in \"world\""
3442 ],
3443 "since": [
3444 "1.3.4"
3445 ],
3446 "patterns": [
3447 "(is PvP|PvP is) enabled [in %worlds%]",
3448 "(is PvP|PvP is) disabled [in %worlds%]"
3449 ]
3450 },
3451 {
3452 "id": "CondResourcePack",
3453 "name": "Resource Pack",
3454 "description": [
3455 "Checks state of the resource pack in a resource pack request response event."
3456 ],
3457 "examples": [
3458 "on resource pack response:",
3459 "\tif the resource pack wasn't accepted:",
3460 "\t\tkick the player due to \"You have to install the resource pack to play in this server!\""
3461 ],
3462 "since": [
3463 "2.4"
3464 ],
3465 "patterns": [
3466 "[the] resource pack (was|is|has) [been] %resourcepackstate%",
3467 "[the] resource pack (was|is|has)(n't| not) [been] %resourcepackstate%"
3468 ]
3469 },
3470 {
3471 "id": "CondStartsEndsWith",
3472 "name": "Starts/Ends With",
3473 "description": [
3474 "Checks if a text starts or ends with another."
3475 ],
3476 "examples": [
3477 "if the argument starts with \"test\":",
3478 "\tsend \"Stop!\""
3479 ],
3480 "since": [
3481 "2.2-dev36"
3482 ],
3483 "patterns": [
3484 "%strings% (start|end)[s] with %string%",
3485 "%strings% (doesn't|does not|do not|don't) (start|end) with %string%"
3486 ]
3487 },
3488 {
3489 "id": "CondDate",
3490 "name": "Time",
3491 "description": [
3492 "Tests whether a given real time was more or less than some time span ago."
3493 ],
3494 "examples": [
3495 "command /command-with-cooldown:",
3496 "\ttrigger:",
3497 "\t\t{command::%player's uuid%::last-usage} was less than a minute ago:",
3498 "\t\t\tmessage \"Please wait a minute between uses of this command.\"",
3499 "\t\t\tstop",
3500 "\t\tset {command::%player's uuid%::last-usage} to now",
3501 "\t\t# ... actual command trigger here ..."
3502 ],
3503 "since": [
3504 "2.0"
3505 ],
3506 "patterns": [
3507 "%date% (was|were)( more|(n't| not) less) than %timespan% [ago]",
3508 "%date% (was|were)((n't| not) more| less) than %timespan% [ago]"
3509 ]
3510 },
3511 {
3512 "id": "CondWeather",
3513 "name": "Weather",
3514 "description": [
3515 "Checks whether the weather in a world is of a specific type.",
3516 "I welcome any ideas how to write this condition differently."
3517 ],
3518 "examples": [
3519 "is thundering",
3520 "is raining in \"world\" or \"world2\""
3521 ],
3522 "since": [
3523 "1.0"
3524 ],
3525 "patterns": [
3526 "is %weathertypes% [in %worlds%]"
3527 ]
3528 }
3529 ],
3530 "effects": [
3531 {
3532 "id": "EffActionBar",
3533 "name": "Action Bar",
3534 "description": [
3535 "Sends an action bar message to the given player(s)."
3536 ],
3537 "examples": [
3538 "send action bar \"Hello player!\" to player"
3539 ],
3540 "since": [
3541 "2.3"
3542 ],
3543 "patterns": [
3544 "send [the] action bar [with text] %string% to %players%"
3545 ]
3546 },
3547 {
3548 "id": "EffBan",
3549 "name": "Ban",
3550 "description": [
3551 "Bans/unbans a player or an IP address.",
3552 "Starting with Skript 2.1.1 and Bukkit 1.7.2 R0.4, one can also ban players with a reason."
3553 ],
3554 "examples": [
3555 "unban player",
3556 "ban \"127.0.0.1\"",
3557 "IP-ban the player because \"he is an idiot\""
3558 ],
3559 "since": [
3560 "1.4, 2.1.1 (ban reason)"
3561 ],
3562 "patterns": [
3563 "ban %strings/offlineplayers% [(by reason of|because [of]|on account of|due to) %string%]",
3564 "unban %strings/offlineplayers%",
3565 "ban %players% by IP [(by reason of|because [of]|on account of|due to) %string%]",
3566 "unban %players% by IP",
3567 "IP(-| )ban %players% [(by reason of|because [of]|on account of|due to) %string%]",
3568 "(IP(-| )unban|un[-]IP[-]ban) %players%"
3569 ]
3570 },
3571 {
3572 "id": "EffBreakNaturally",
3573 "name": "Break Block",
3574 "description": [
3575 "Breaks the block and spawns items as if a player had mined it",
3576 "\nYou can add a tool, which will spawn items based on how that tool would break the block ",
3577 "(ie: When using a hand to break stone, it drops nothing, whereas with a pickaxe it drops cobblestone)"
3578 ],
3579 "examples": [
3580 "on right click:",
3581 "\tbreak clicked block naturally",
3582 "loop blocks in radius 10 around player:",
3583 "\tbreak loop-block using player's tool",
3584 "loop blocks in radius 10 around player:",
3585 "\tbreak loop-block naturally using diamond pickaxe"
3586 ],
3587 "since": [
3588 "2.4"
3589 ],
3590 "patterns": [
3591 "break %blocks% [naturally] [using %itemtype%]"
3592 ]
3593 },
3594 {
3595 "id": "EffBroadcast",
3596 "name": "Broadcast",
3597 "description": [
3598 "Broadcasts a message to the server. Only formatting options supported by console",
3599 "(i.e. colors) are supported. If you need to use advanced chat formatting, send the",
3600 "message to all players instead of broadcasting it."
3601 ],
3602 "examples": [
3603 "broadcast \"Welcome %player% to the server!\"",
3604 "broadcast \"Woah! It's a message!\""
3605 ],
3606 "since": [
3607 "1.0"
3608 ],
3609 "patterns": [
3610 "broadcast %strings% [(to|in) %worlds%]"
3611 ]
3612 },
3613 {
3614 "id": "EffCancelCooldown",
3615 "name": "Cancel Command Cooldown",
3616 "description": [
3617 "Only usable in commands. Makes it so the current command usage isn't counted towards the cooldown."
3618 ],
3619 "examples": [
3620 "command /nick <text>:",
3621 "\texecutable by: players",
3622 "\tcooldown: 10 seconds",
3623 "\ttrigger:",
3624 "\t\tif length of arg-1 is more than 16:",
3625 "\t\t\t# Makes it so that invalid arguments don't make you wait for the cooldown again",
3626 "\t\t\tcancel the cooldown",
3627 "\t\t\tsend \"Your nickname may be at most 16 characters.\"",
3628 "\t\t\tstop",
3629 "\t\tset the player's display name to arg-1"
3630 ],
3631 "since": [
3632 "2.2-dev34"
3633 ],
3634 "patterns": [
3635 "(cancel|ignore) [the] [current] [command] cooldown",
3636 "un(cancel|ignore) [the] [current] [command] cooldown"
3637 ]
3638 },
3639 {
3640 "id": "EffCancelEvent",
3641 "name": "Cancel Event",
3642 "description": [
3643 "Cancels the event (e.g. prevent blocks from being placed, or damage being taken)."
3644 ],
3645 "examples": [
3646 "on damage:",
3647 "\tvictim is a player",
3648 "\tvictim has the permission \"skript.god\"",
3649 "\tcancel the event"
3650 ],
3651 "since": [
3652 "1.0"
3653 ],
3654 "patterns": [
3655 "cancel [the] event",
3656 "uncancel [the] event"
3657 ]
3658 },
3659 {
3660 "id": "EffChange",
3661 "name": "Change: Set/Add/Remove/Delete/Reset",
3662 "description": [
3663 "A very general effect that can change many expressions. Many expressions can only be set and/or deleted, while some can have things added to or removed from them."
3664 ],
3665 "examples": [
3666 "# set:",
3667 "Set the player's display name to \"<red>%name of player%\"",
3668 "set the block above the victim to lava",
3669 "# add:",
3670 "add 2 to the player's health # preferably use '<a href='#heal'>heal</a>' for this",
3671 "add argument to {blacklist::*}",
3672 "give a diamond pickaxe of efficiency 5 to the player",
3673 "increase the data value of the clicked block by 1",
3674 "# remove:",
3675 "remove 2 pickaxes from the victim",
3676 "subtract 2.5 from {points::%uuid of player%}",
3677 "# remove all:",
3678 "remove every iron tool from the player",
3679 "remove all minecarts from {entitylist::*}",
3680 "# delete:",
3681 "delete the block below the player",
3682 "clear drops",
3683 "delete {variable}",
3684 "# reset:",
3685 "reset walk speed of player",
3686 "reset chunk at the targeted block"
3687 ],
3688 "since": [
3689 "1.0 (set, add, remove, delete), 2.0 (remove all)"
3690 ],
3691 "patterns": [
3692 "(add|give) %objects% to %objects%",
3693 "increase %objects% by %objects%",
3694 "give %objects% %objects%",
3695 "set %objects% to %objects%",
3696 "remove (all|every) %objects% from %objects%",
3697 "(remove|subtract) %objects% from %objects%",
3698 "reduce %objects% by %objects%",
3699 "(delete|clear) %objects%",
3700 "reset %objects%"
3701 ]
3702 },
3703 {
3704 "id": "EffColorArmor",
3705 "name": "Colour Items",
3706 "description": [
3707 "Colours items in a given colour. You can also use RGB codes if you feel limited with the 16 default colours. RGB codes are three numbers from 0 to 255 in the order (red, green, blue), where (0,0,0) is black and (255,255,255) is white. Armor is colourable for all Minecraft versions. With Minecraft 1.11 or newer you can also colour potions and maps. Note that the colours might not look exactly how you'd expect."
3708 ],
3709 "examples": [
3710 "dye player's helmet blue",
3711 "colour the player's tool red"
3712 ],
3713 "since": [
3714 "2.0, 2.2-dev26 (maps and potions)"
3715 ],
3716 "patterns": [
3717 "(dye|colo[u]r|paint) %slots/itemstack% %color%",
3718 "(dye|colo[u]r|paint) %slots/itemstack% (%number%, %number%, %number%)"
3719 ]
3720 },
3721 {
3722 "id": "EffCommand",
3723 "name": "Command",
3724 "description": [
3725 "Executes a command. This can be useful to use other plugins in triggers."
3726 ],
3727 "examples": [
3728 "make player execute command \"/suicide\"",
3729 "execute console command \"/say Hello everyone!\""
3730 ],
3731 "since": [
3732 "1.0"
3733 ],
3734 "patterns": [
3735 "[execute] [the] command %strings% [by %commandsenders%]",
3736 "[execute] [the] %commandsenders% command %strings%",
3737 "(let|make) %commandsenders% execute [[the] command] %strings%"
3738 ]
3739 },
3740 {
3741 "id": "EffConnect",
3742 "name": "Connect",
3743 "description": [
3744 "Connects a player to another bungeecord server"
3745 ],
3746 "examples": [
3747 "connect all players to \"hub\""
3748 ],
3749 "since": [
3750 "2.3"
3751 ],
3752 "patterns": [
3753 "connect %players% to [server] %string%",
3754 "send %players% to server %string%"
3755 ]
3756 },
3757 {
3758 "id": "EffContinue",
3759 "name": "Continue",
3760 "description": [
3761 "Skips the value currently being looped, moving on to the next value if it exists."
3762 ],
3763 "examples": [
3764 "loop all players:",
3765 "\tif loop-value does not have permission \"moderator\":",
3766 "\t\tcontinue # filter out non moderators",
3767 "\tbroadcast \"%loop-player% is a moderator!\" # Only moderators get broadcast"
3768 ],
3769 "since": [
3770 "2.2-dev37"
3771 ],
3772 "patterns": [
3773 "continue [loop]"
3774 ]
3775 },
3776 {
3777 "id": "EffHealth",
3778 "name": "Damage/Heal/Repair",
3779 "description": [
3780 "Damage/Heal/Repair an entity, or item stack."
3781 ],
3782 "examples": [
3783 "damage player by 5 hearts",
3784 "heal the player",
3785 "repair tool of player"
3786 ],
3787 "since": [
3788 "1.0"
3789 ],
3790 "patterns": [
3791 "damage %slots/livingentities/itemstack% by %number% [heart[s]][ with fake cause %damagecause%]",
3792 "heal %livingentities% [by %number% [heart[s]]]",
3793 "repair %slots/itemstack% [by %number%]"
3794 ]
3795 },
3796 {
3797 "id": "Delay",
3798 "name": "Delay",
3799 "description": [
3800 "Delays the script's execution by a given timespan. Please note that delays are not persistent, e.g. trying to create a tempban script with ban player → wait 7 days → unban player will not work if you restart your server anytime within these 7 days. You also have to be careful even when using small delays!"
3801 ],
3802 "examples": [
3803 "wait 2 minutes",
3804 "halt for 5 minecraft hours",
3805 "wait a tick"
3806 ],
3807 "since": [
3808 "1.4"
3809 ],
3810 "patterns": [
3811 "(wait|halt) [for] %timespan%"
3812 ]
3813 },
3814 {
3815 "id": "EffDoIf",
3816 "name": "Do If",
3817 "description": [
3818 "Execute an effect if a condition is true."
3819 ],
3820 "examples": [
3821 "on join:",
3822 "\tgive a diamond to the player if the player has permission \"rank.vip\""
3823 ],
3824 "since": [
3825 "2.3"
3826 ],
3827 "patterns": [
3828 "<.+> if <.+>"
3829 ]
3830 },
3831 {
3832 "id": "EffDrop",
3833 "name": "Drop",
3834 "description": [
3835 "Drops one or more items."
3836 ],
3837 "examples": [
3838 "on death of creeper:",
3839 "\tdrop 1 TNT"
3840 ],
3841 "since": [
3842 "1.0"
3843 ],
3844 "patterns": [
3845 "drop %itemtypes/experiences% [%directions% %locations%]",
3846 "drop %itemtypes/experiences% [%directions% %locations%] without velocity"
3847 ]
3848 },
3849 {
3850 "id": "EffScriptFile",
3851 "name": "Enable/Disable/Reload Script File",
3852 "description": [
3853 "Enables, disables, or reloads a script file."
3854 ],
3855 "examples": [
3856 "reload script \"test\"",
3857 "enable script file \"testing\"",
3858 "unload script file \"script.sk\""
3859 ],
3860 "since": [
3861 "2.4"
3862 ],
3863 "patterns": [
3864 "(enable|load|reload|disable|unload) s(c|k)ript [file] %string%"
3865 ]
3866 },
3867 {
3868 "id": "EffEnchant",
3869 "name": "Enchant/Disenchant",
3870 "description": [
3871 "Enchant or disenchant an existing item."
3872 ],
3873 "examples": [
3874 "enchant the player's tool with sharpness 5",
3875 "disenchant the player's tool"
3876 ],
3877 "since": [
3878 "2.0"
3879 ],
3880 "patterns": [
3881 "enchant %itemstack% with %enchantmenttypes%",
3882 "disenchant %itemstack%"
3883 ]
3884 },
3885 {
3886 "id": "EffEquip",
3887 "name": "Equip",
3888 "description": [
3889 "Equips a player with some given armor. This will replace any armor that the player is wearing."
3890 ],
3891 "examples": [
3892 "equip player with diamond helmet",
3893 "equip player with all diamond armor"
3894 ],
3895 "since": [
3896 "1.0"
3897 ],
3898 "patterns": [
3899 "equip [%livingentity%] with %itemtypes%",
3900 "make %livingentity% wear %itemtypes%"
3901 ]
3902 },
3903 {
3904 "id": "EffExit",
3905 "name": "Exit",
3906 "description": [
3907 "Exits a given amount of loops and conditionals, or the entire trigger."
3908 ],
3909 "examples": [
3910 "if player has any ore:",
3911 "\tstop",
3912 "message \"%player% has no ores!\"",
3913 "loop blocks above the player:",
3914 "\tloop-block is not air:",
3915 "\t\texit 2 sections",
3916 "\tset loop-block to water"
3917 ],
3918 "since": [
3919 "unknown (before 2.1)"
3920 ],
3921 "patterns": [
3922 "(exit|stop) [trigger]",
3923 "(exit|stop) [(1|a|the|this)] (section|loop|conditional)",
3924 "(exit|stop) <\\d+> (section|loop|conditional)s",
3925 "(exit|stop) all (section|loop|conditional)s"
3926 ]
3927 },
3928 {
3929 "id": "EffExplosion",
3930 "name": "Explosion",
3931 "description": [
3932 "Creates an explosion of a given force. The Minecraft Wiki has an article on explosions which lists the explosion forces of TNT, creepers, etc.",
3933 "Hint: use a force of 0 to create a fake explosion that does no damage whatsoever, or use the explosion effect introduced in Skript 2.0.",
3934 "Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will damage entities but won't destroy any blocks."
3935 ],
3936 "examples": [
3937 "create an explosion of force 10 at the player",
3938 "create an explosion of force 0 at the victim"
3939 ],
3940 "since": [
3941 "1.0"
3942 ],
3943 "patterns": [
3944 "[(create|make)] [an] explosion (of|with) (force|strength|power) %number% [%directions% %locations%]",
3945 "[(create|make)] [a] safe explosion (of|with) (force|strength|power) %number% [%directions% %locations%]",
3946 "[(create|make)] [a] fake explosion [%directions% %locations%]",
3947 "[(create|make)] [an] explosion[ ]effect [%directions% %locations%]"
3948 ]
3949 },
3950 {
3951 "id": "EffFeed",
3952 "name": "Feed",
3953 "description": [
3954 "Feeds the specified players."
3955 ],
3956 "examples": [
3957 "feed all players",
3958 "feed the player by 5 beefs"
3959 ],
3960 "since": [
3961 "2.2-dev34"
3962 ],
3963 "patterns": [
3964 "feed [the] %players% [by %number% [beef[s]]]"
3965 ]
3966 },
3967 {
3968 "id": "EffRespawn",
3969 "name": "Force Respawn",
3970 "description": [
3971 "Forces player(s) to respawn if they are dead. If this is called without delay from death event, one tick is waited before respawn attempt."
3972 ],
3973 "examples": [
3974 "on death of player:",
3975 "\tforce event-player to respawn"
3976 ],
3977 "since": [
3978 "2.2-dev21"
3979 ],
3980 "patterns": [
3981 "force %players% to respawn"
3982 ]
3983 },
3984 {
3985 "id": "EffHidePlayerFromServerList",
3986 "name": "Hide Player from Server List",
3987 "description": [
3988 "Hides a player from the hover list and decreases the online players count (only if the player count wasn't changed before)."
3989 ],
3990 "examples": [
3991 "on server list ping:",
3992 "\thide {vanished::*} from the server list"
3993 ],
3994 "since": [
3995 "2.3"
3996 ],
3997 "patterns": [
3998 "hide %players% (in|on|from) [the] server list",
3999 "hide %players%'[s] info[rmation] (in|on|from) [the] server list"
4000 ]
4001 },
4002 {
4003 "id": "EffIgnite",
4004 "name": "Ignite/Extinguish",
4005 "description": [
4006 "Lights entities on fire or extinguishes them."
4007 ],
4008 "examples": [
4009 "ignite the player",
4010 "extinguish the player"
4011 ],
4012 "since": [
4013 "1.4"
4014 ],
4015 "patterns": [
4016 "(ignite|set fire to) %entities% [for %timespan%]",
4017 "(set|light) %entities% on fire [for %timespan%]",
4018 "extinguish %entities%"
4019 ]
4020 },
4021 {
4022 "id": "EffKick",
4023 "name": "Kick",
4024 "description": [
4025 "Kicks a player from the server."
4026 ],
4027 "examples": [
4028 "on place of TNT, lava, or obsidian:",
4029 "\tkick the player due to \"You may not place %block%!\"",
4030 "\tcancel the event"
4031 ],
4032 "since": [
4033 "1.0"
4034 ],
4035 "patterns": [
4036 "kick %players% [(by reason of|because [of]|on account of|due to) %string%]"
4037 ]
4038 },
4039 {
4040 "id": "EffKill",
4041 "name": "Kill",
4042 "description": [
4043 "Kills an entity.",
4044 "Note: This effect does not set the entity's health to 0 (which causes issues), but damages the entity by 100 times its maximum health."
4045 ],
4046 "examples": [
4047 "kill the player",
4048 "kill all creepers in the player's world",
4049 "kill all endermen, witches and bats"
4050 ],
4051 "since": [
4052 "1.0"
4053 ],
4054 "patterns": [
4055 "kill %entities%"
4056 ]
4057 },
4058 {
4059 "id": "EffFireworkLaunch",
4060 "name": "Launch firework",
4061 "description": [
4062 "Launch firework effects at the given location(s)."
4063 ],
4064 "examples": [
4065 "launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1"
4066 ],
4067 "since": [
4068 "2.4"
4069 ],
4070 "patterns": [
4071 "(launch|deploy) [[a] firework [with effect[s]]] %fireworkeffects% at %locations% [([with] (duration|power)|timed) %number%]"
4072 ]
4073 },
4074 {
4075 "id": "EffLeash",
4076 "name": "Leash entities",
4077 "description": [
4078 "Leash living entities to other entities."
4079 ],
4080 "examples": [
4081 "leash the player to the target entity"
4082 ],
4083 "since": [
4084 "2.3"
4085 ],
4086 "patterns": [
4087 "(leash|lead) %livingentities% to %entity%",
4088 "make %entity% (leash|lead) %livingentities%",
4089 "un(leash|lead) [holder of] %livingentities%"
4090 ]
4091 },
4092 {
4093 "id": "EffLightning",
4094 "name": "Lightning",
4095 "description": [
4096 "Strike lightning at a given location. Can use 'ligning effect' to create a lightning that does not harm entities or start fires."
4097 ],
4098 "examples": [
4099 "strike lightning at the player",
4100 "strike lightning effect at the victim"
4101 ],
4102 "since": [
4103 "1.4"
4104 ],
4105 "patterns": [
4106 "(create|strike) lightning([ ]effect|) %directions% %locations%"
4107 ]
4108 },
4109 {
4110 "id": "EffLoadServerIcon",
4111 "name": "Load Server Icon",
4112 "description": [
4113 "Loads server icons from the given files. You can get the loaded icon using the",
4114 "last loaded server icon expression.",
4115 "Please note that the image must be 64x64 and the file path starts from the server folder."
4116 ],
4117 "examples": [
4118 "on load:",
4119 "\tclear {server-icons::*}",
4120 "\tloop 5 times:",
4121 "\t\tload server icon from file \"icons/%loop-number%.png\"",
4122 "\t\tadd the last loaded server icon to {server-icons::*}",
4123 "",
4124 "on server list ping:",
4125 "\tset the icon to a random server icon out of {server-icons::*}"
4126 ],
4127 "since": [
4128 "2.3"
4129 ],
4130 "patterns": [
4131 "load [the] server icon (from|of) [the] [image] [file] %string%"
4132 ],
4133 "required plugins": [
4134 "Paper 1.12.2 or newer"
4135 ]
4136 },
4137 {
4138 "id": "EffSuppressWarnings",
4139 "name": "Locally Suppress Warning",
4140 "description": [
4141 "Suppresses target warnings from the current script."
4142 ],
4143 "examples": [
4144 "locally suppress conflict warnings",
4145 "suppress the variable save warnings"
4146 ],
4147 "since": [
4148 "2.3"
4149 ],
4150 "patterns": [
4151 "[local[ly]] suppress [the] (conflict|variable save|[missing] conjunction[s]|starting [with] expression[s]) warning[s]"
4152 ]
4153 },
4154 {
4155 "id": "EffLog",
4156 "name": "Log",
4157 "description": [
4158 "Writes text into a .log file. Skript will write these files to /plugins/Skript/logs.",
4159 "NB: Using 'server.log' as the log file will write to the default server log. Omitting the log file altogether will log the message as '[Skript] [<script>.sk] <message>' in the server log."
4160 ],
4161 "examples": [
4162 "on place of TNT:",
4163 "\tlog \"%player% placed TNT in %world% at %location of block%\" to \"tnt/placement.log\""
4164 ],
4165 "since": [
4166 "2.0"
4167 ],
4168 "patterns": [
4169 "log %strings% [(to|in) [file[s]] %strings%]"
4170 ]
4171 },
4172 {
4173 "id": "EffScriptOptionLoops",
4174 "name": "Loop Version",
4175 "description": [
4176 "Changes loops to emulate given Skript version's behaviour."
4177 ],
4178 "examples": [
4179 "use old loops",
4180 "use new loops"
4181 ],
4182 "since": [
4183 "unknown (2.2)"
4184 ],
4185 "patterns": [
4186 "use[s] (old|new|2.1.2|2.2) loops"
4187 ]
4188 },
4189 {
4190 "id": "EffMakeFly",
4191 "name": "Make Fly",
4192 "description": [
4193 "Forces a player to start/stop flying."
4194 ],
4195 "examples": [
4196 "make player fly",
4197 "force all players to stop flying"
4198 ],
4199 "since": [
4200 "2.2-dev34"
4201 ],
4202 "patterns": [
4203 "force %players% to [(start|stop)] fly[ing]",
4204 "make %players% (start|stop) flying",
4205 "make %players% fly"
4206 ]
4207 },
4208 {
4209 "id": "EffMakeSay",
4210 "name": "Make Say",
4211 "description": [
4212 "Forces a player to send a message to the chat. If the message starts with a slash it will force the player to use command."
4213 ],
4214 "examples": [
4215 "make the player say \"Hello.\"",
4216 "force all players to send the message \"I love this server\""
4217 ],
4218 "since": [
4219 "2.3"
4220 ],
4221 "patterns": [
4222 "make %players% (say|send [the] message[s]) %strings%",
4223 "force %players% to (say|send [the] message[s]) %strings%"
4224 ]
4225 },
4226 {
4227 "id": "EffMessage",
4228 "name": "Message",
4229 "description": [
4230 "Sends a message to the given player."
4231 ],
4232 "examples": [
4233 "message \"A wild %player% appeared!\"",
4234 "message \"This message is a distraction. Mwahaha!\"",
4235 "send \"Your kill streak is %{kill streak::%uuid of player%}%.\" to player",
4236 "if the targeted entity exists:",
4237 "\tmessage \"You're currently looking at a %type of the targeted entity%!\""
4238 ],
4239 "since": [
4240 "1.0, 2.2-dev26 (advanced features)"
4241 ],
4242 "patterns": [
4243 "(message|send [message[s]]) %strings% [to %commandsenders%]"
4244 ]
4245 },
4246 {
4247 "id": "EffOpenInventory",
4248 "name": "Open/Close Inventory",
4249 "description": [
4250 "Opens an inventory to a player. The player can then access and modify the inventory as if it was a chest that he just opened.",
4251 "Please note that currently 'show' and 'open' have the same effect, but 'show' will eventually show an unmodifiable view of the inventory in the future."
4252 ],
4253 "examples": [
4254 "show the victim's inventory to the player",
4255 "open the player's inventory for the player"
4256 ],
4257 "since": [
4258 "2.0, 2.1.1 (closing), 2.2-Fixes-V10 (anvil), 2.4 (hopper, dropper, dispenser"
4259 ],
4260 "patterns": [
4261 "(open|show) (((crafting [table]|workbench)|chest|anvil|hopper|dropper|dispenser) (view|window|inventory|)|%inventory%) (to|for) %players%",
4262 "close [the] inventory [view] (to|of|for) %players%",
4263 "close %players%'[s] inventory [view]"
4264 ]
4265 },
4266 {
4267 "id": "EffVisualEffect",
4268 "name": "Play Effect",
4269 "description": [
4270 "Plays a visual effect at a given location or on a given entity.",
4271 "Please note that some effects can only be played on entities, e.g. wolf hearts or the hurt effect, and that these are always visible to all players."
4272 ],
4273 "examples": [
4274 "play wolf hearts on the clicked wolf",
4275 "show mob spawner flames at the targeted block to the player"
4276 ],
4277 "since": [
4278 "2.1"
4279 ],
4280 "patterns": [
4281 "(play|show) %visualeffects% (on|%directions%) %entities/locations% [(to %players%|in (radius|range) of %number%)]",
4282 "(play|show) %number% %visualeffects% (on|%directions%) %locations% [(to %players%|in (radius|range) of %number%)]"
4283 ]
4284 },
4285 {
4286 "id": "EffPlaySound",
4287 "name": "Play Sound",
4288 "description": [
4289 "Plays a sound at given location for everyone or just for given players, or plays a sound to specified players. Both Minecraft sound names and Spigot sound names are supported. Playing resource pack sounds are supported too. The sound category is 'master' by default. ",
4290 "",
4291 "Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself."
4292 ],
4293 "examples": [
4294 "play sound \"block.note_block.pling\" # It is block.note.pling in 1.12.2",
4295 "play sound \"entity.experience_orb.pickup\" with volume 0.5 to the player",
4296 "play sound \"custom.music.1\" in jukebox category at {speakerBlock}"
4297 ],
4298 "since": [
4299 "2.2-dev28, 2.4 (sound categories)"
4300 ],
4301 "patterns": [
4302 "play sound[s] %strings% [(in|from) %soundcategory%] [(at|with) volume %number%] [(and|at|with) pitch %number%] at %locations% [for %players%]",
4303 "play sound[s] %strings% [(in|from) %soundcategory%] [(at|with) volume %number%] [(and|at|with) pitch %number%] [(to|for) %players%] [(at|from) %locations%]"
4304 ],
4305 "required plugins": [
4306 "Minecraft 1.11+ (sound categories)"
4307 ]
4308 },
4309 {
4310 "id": "EffPlayerInfoVisibility",
4311 "name": "Player Info Visibility",
4312 "description": [
4313 "Sets whether all player related information is hidden in the server list.",
4314 "The Vanilla Minecraft client will display ??? (dark gray) instead of player counts and will not show the",
4315 "hover hist when hiding player info.",
4316 "The version string can override the ???.",
4317 "Also the Online Players Count and",
4318 "Max Players expressions will return -1 when hiding player info."
4319 ],
4320 "examples": [
4321 "hide player info",
4322 "hide player related information in the server list",
4323 "reveal all player related info"
4324 ],
4325 "since": [
4326 "2.3"
4327 ],
4328 "patterns": [
4329 "hide [all] player [related] info[rmation] [(in|on|from) [the] server list]",
4330 "(show|reveal) [all] player [related] info[rmation] [(in|to|on|from) [the] server list]"
4331 ],
4332 "required plugins": [
4333 "Paper 1.12.2 or newer"
4334 ]
4335 },
4336 {
4337 "id": "EffPlayerVisibility",
4338 "name": "Player Visibility",
4339 "description": [
4340 "Change visibility of a player for the given players.",
4341 "When reveal is used in combination of the hidden players expression and the viewers are not specified, this will default it to the given player in the hidden players expression.",
4342 "",
4343 "Note: if a player was hidden and relogs, this player will be visible again."
4344 ],
4345 "examples": [
4346 "on join:",
4347 "\tif {vanished::%player's uuid%} is true:",
4348 "\t\thide the player from all players",
4349 "",
4350 "reveal hidden players of {_player}"
4351 ],
4352 "since": [
4353 "2.3"
4354 ],
4355 "patterns": [
4356 "hide %players% [(from|for) %players%]",
4357 "reveal %players% [(to|for|from) %players%]"
4358 ]
4359 },
4360 {
4361 "id": "EffPoison",
4362 "name": "Poison/Cure",
4363 "description": [
4364 "Poison or cure a creature."
4365 ],
4366 "examples": [
4367 "poison the player",
4368 "poison the victim for 20 seconds",
4369 "cure the player from poison"
4370 ],
4371 "since": [
4372 "1.3.2"
4373 ],
4374 "patterns": [
4375 "poison %livingentities% [for %timespan%]",
4376 "(cure|unpoison) %livingentities% [(from|of) poison]"
4377 ]
4378 },
4379 {
4380 "id": "EffPotion",
4381 "name": "Potion Effects",
4382 "description": [
4383 "Apply or remove potion effects to/from entities."
4384 ],
4385 "examples": [
4386 "apply swiftness 2 to the player",
4387 "remove haste from the victim",
4388 "on join:",
4389 "\tapply potion of strength of tier {strength.%player%} to the player for 999 days"
4390 ],
4391 "since": [
4392 "2.0, 2.2-dev27 (ambient and particle-less potion effects)"
4393 ],
4394 "patterns": [
4395 "apply [potion of] %potioneffecttypes% [potion] [[[of] tier] %number%] to %livingentities% [for %timespan%]",
4396 "apply ambient [potion of] %potioneffecttypes% [potion] [[[of] tier] %number%] to %livingentities% [for %timespan%]",
4397 "apply [potion of] %potioneffecttypes% [potion] [[[of] tier] %number%] without [any] particles to %livingentities% [for %timespan%]"
4398 ]
4399 },
4400 {
4401 "id": "EffPush",
4402 "name": "Push",
4403 "description": [
4404 "Push entities around."
4405 ],
4406 "examples": [
4407 "push the player upwards",
4408 "push the victim downwards at speed 0.5"
4409 ],
4410 "since": [
4411 "1.4.6"
4412 ],
4413 "patterns": [
4414 "(push|thrust) %entities% %direction% [(at|with) (speed|velocity|force) %number%]"
4415 ]
4416 },
4417 {
4418 "id": "EffPvP",
4419 "name": "PvP",
4420 "description": [
4421 "Set the PvP state for a given world."
4422 ],
4423 "examples": [
4424 "enable PvP #(current world only)",
4425 "disable PvP in all worlds"
4426 ],
4427 "since": [
4428 "1.3.4"
4429 ],
4430 "patterns": [
4431 "enable PvP [in %worlds%]",
4432 "disable PVP [in %worlds%]"
4433 ]
4434 },
4435 {
4436 "id": "EffReplace",
4437 "name": "Replace",
4438 "description": [
4439 "Replaces all occurrences of a given text with another text. Please note that you can only change variables and a few expressions, e.g. a message or a line of a sign.",
4440 "Starting with 2.2-dev24, you can replace items in a inventory too."
4441 ],
4442 "examples": [
4443 "replace \"<item>\" in {textvar} with \"%item%\"",
4444 "replace every \"&\" with \"§\" in line 1",
4445 "# The following acts as a simple chat censor, but it will e.g. censor mass, hassle, assassin, etc. as well:",
4446 "on chat:",
4447 "\treplace all \"kys\", \"idiot\" and \"noob\" with \"****\" in the message",
4448 " ",
4449 "replace all stone and dirt in player's inventory and player's top inventory with diamond"
4450 ],
4451 "since": [
4452 "2.0, 2.2-dev24 (replace in muliple strings and replace items in inventory)"
4453 ],
4454 "patterns": [
4455 "replace (all|every|) %strings% in %strings% with %string%",
4456 "replace (all|every|) %strings% with %string% in %strings%",
4457 "replace (all|every|) %itemstacks% in %inventories% with %itemstack%",
4458 "replace (all|every|) %itemstacks% with %itemstack% in %inventories%"
4459 ]
4460 },
4461 {
4462 "id": "EffReturn",
4463 "name": "Return",
4464 "description": [
4465 "Makes a function return a value"
4466 ],
4467 "examples": [
4468 "function double(i: number) :: number:",
4469 "\treturn 2 * {_i}"
4470 ],
4471 "since": [
4472 "2.2"
4473 ],
4474 "patterns": [
4475 "return %objects%"
4476 ]
4477 },
4478 {
4479 "id": "EffSendBlockChange",
4480 "name": "Send Block Change",
4481 "description": [
4482 "Makes a player see a block as something it really isn't"
4483 ],
4484 "examples": [
4485 "make player see block at player as dirt"
4486 ],
4487 "since": [
4488 "2.2-dev37c"
4489 ],
4490 "patterns": [
4491 "make %players% see %blocks% as %itemstack%"
4492 ]
4493 },
4494 {
4495 "id": "EffSendResourcePack",
4496 "name": "Send Resource Pack",
4497 "description": [
4498 "Request that the player's client download and switch resource packs. The client will download ",
4499 "the resource pack in the background, and will automatically switch to it once the download is complete. ",
4500 "The URL must be a direct download link.",
4501 "",
4502 "The hash is used for caching, the player won't have to re-download the resource pack that way. ",
4503 "The hash must be SHA-1, you can get SHA-1 hash of your resource pack using ",
4504 "this online tool.",
4505 "",
4506 "The resource pack request action can be used to check ",
4507 "status of the sent resource pack request."
4508 ],
4509 "examples": [
4510 "on join:",
4511 "\tsend the resource pack from \"URL\" with hash \"hash\" to the player"
4512 ],
4513 "since": [
4514 "2.4"
4515 ],
4516 "patterns": [
4517 "send [the] resource pack [from [[the] URL]] %string% to %players%",
4518 "send [the] resource pack [from [[the] URL]] %string% with hash %string% to %players%"
4519 ]
4520 },
4521 {
4522 "id": "EffShear",
4523 "name": "Shear",
4524 "description": [
4525 "Shears or 'un-shears' a sheep. Please note that no wool is dropped, this only sets the 'sheared' state of the sheep."
4526 ],
4527 "examples": [
4528 "on rightclick on a sheep holding a sword:",
4529 "\tshear the clicked sheep"
4530 ],
4531 "since": [
4532 "2.0"
4533 ],
4534 "patterns": [
4535 "shear %livingentities%",
4536 "un[-]shear %livingentities%"
4537 ]
4538 },
4539 {
4540 "id": "EffShoot",
4541 "name": "Shoot",
4542 "description": [
4543 "Shoots a projectile (or any other entity) from a given entity."
4544 ],
4545 "examples": [
4546 "shoot an arrow",
4547 "make the player shoot a creeper at speed 10",
4548 "shoot a pig from the creeper"
4549 ],
4550 "since": [
4551 "1.4"
4552 ],
4553 "patterns": [
4554 "shoot %entitydatas% [from %livingentities/locations%] [(at|with) (speed|velocity) %number%] [%direction%]",
4555 "(make|let) %livingentities/locations% shoot %entitydatas% [(at|with) (speed|velocity) %number%] [%direction%]"
4556 ]
4557 },
4558 {
4559 "id": "EffSpawn",
4560 "name": "Spawn",
4561 "description": [
4562 "Spawn a creature."
4563 ],
4564 "examples": [
4565 "spawn 3 creepers at the targeted block",
4566 "spawn a ghast 5 meters above the player"
4567 ],
4568 "since": [
4569 "1.0"
4570 ],
4571 "patterns": [
4572 "spawn %entitytypes% [%directions% %locations%]",
4573 "spawn %number% of %entitytypes% [%directions% %locations%]"
4574 ]
4575 },
4576 {
4577 "id": "EffStopSound",
4578 "name": "Stop Sound",
4579 "description": [
4580 "Stops a sound from playing to the specified players. Both Minecraft sound names and Spigot sound names are supported. Resource pack sounds are supported too. The sound category is 'master' by default. A sound can't be stopped from a different category. ",
4581 "",
4582 "Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself."
4583 ],
4584 "examples": [
4585 "stop sound \"block.chest.open\" for the player",
4586 "stop playing sounds \"ambient.underwater.loop\" and \"ambient.underwater.loop.additions\" to the player"
4587 ],
4588 "since": [
4589 "2.4"
4590 ],
4591 "patterns": [
4592 "stop sound[s] %strings% [(in|from) %soundcategory%] [(from playing to|for) %players%]",
4593 "stop playing sound[s] %strings% [(in|from) %soundcategory%] [(to|for) %players%]"
4594 ],
4595 "required plugins": [
4596 "Minecraft 1.10.2+, Minecraft 1.11+ (sound categories)"
4597 ]
4598 },
4599 {
4600 "id": "EffTeleport",
4601 "name": "Teleport",
4602 "description": [
4603 "Teleport an entity to a specific location."
4604 ],
4605 "examples": [
4606 "teleport the player to {homes.%player%}",
4607 "teleport the attacker to the victim"
4608 ],
4609 "since": [
4610 "1.0"
4611 ],
4612 "patterns": [
4613 "teleport %entities% (to|%direction%) %location%"
4614 ]
4615 },
4616 {
4617 "id": "EffResetTitle",
4618 "name": "Title - Reset",
4619 "description": [
4620 "Resets the title of the player to the default values."
4621 ],
4622 "examples": [
4623 "reset the titles of all players",
4624 "reset the title"
4625 ],
4626 "since": [
4627 "2.3"
4628 ],
4629 "patterns": [
4630 "reset [the] title[s] [of %players%]",
4631 "reset [the] %players%'[s] title[s]"
4632 ]
4633 },
4634 {
4635 "id": "EffSendTitle",
4636 "name": "Title - Send",
4637 "description": [
4638 "Sends a title/subtitle to the given player(s) with optional fadein/stay/fadeout times for Minecraft versions 1.11 and above.",
4639 "Note: if no input is given for the title/subtitle or the times,it will keep the ones from the last title sent, use the reset title effect to restore the default values."
4640 ],
4641 "examples": [
4642 "send title \"Competition Started\" with subtitle \"Have fun, Stay safe!\" to player for 5 seconds",
4643 "send title \"Hi %player%\" to player",
4644 "send title \"Loot Drop\" with subtitle \"starts in 3 minutes\" to all players",
4645 "send title \"Hello %player%!\" with subtitle \"Welcome to our server\" to player for 5 seconds with fadein 1 second and fade out 1 second",
4646 "send subtitle \"Party!\" to all players"
4647 ],
4648 "since": [
4649 "2.3"
4650 ],
4651 "patterns": [
4652 "send title %string% [with subtitle %string%] [to %players%] [for %timespan%] [with fade[(-| )]in %timespan%] [(and|with) fade[(-| )]out %timespan%]",
4653 "send subtitle %string% [to %players%] [for %timespan%] [with fade[(-| )]in %timespan%] [(and|with) fade[(-| )]out %timespan%]"
4654 ]
4655 },
4656 {
4657 "id": "EffToggle",
4658 "name": "Toggle",
4659 "description": [
4660 "Toggle the state of a block."
4661 ],
4662 "examples": [
4663 "# use arrows to toggle switches, doors, etc.",
4664 "on projectile hit:",
4665 "\tprojectile is arrow",
4666 "\ttoggle the block at the arrow"
4667 ],
4668 "since": [
4669 "1.4"
4670 ],
4671 "patterns": [
4672 "(close|turn off|de[-]activate) %blocks%",
4673 "(toggle|switch) [[the] state of] %blocks%",
4674 "(open|turn on|activate) %blocks%"
4675 ]
4676 },
4677 {
4678 "id": "EffToggleFlight",
4679 "name": "Toggle Flight",
4680 "description": [
4681 "Toggle the flight mode of a player."
4682 ],
4683 "examples": [
4684 "allow flight to event-player"
4685 ],
4686 "since": [
4687 "2.3"
4688 ],
4689 "patterns": [
4690 "(allow|enable) (fly|flight) (for|to) %players%",
4691 "(disallow|disable) (fly|flight) (for|to) %players%"
4692 ]
4693 },
4694 {
4695 "id": "EffTree",
4696 "name": "Tree",
4697 "description": [
4698 "Creates a tree.",
4699 "This may require that there is enough space above the given location and that the block below is dirt/grass, but it is possible that the tree will just grow anyways, possibly replacing every block in its path."
4700 ],
4701 "examples": [
4702 "grow a tall redwood tree above the clicked block"
4703 ],
4704 "since": [
4705 "1.0"
4706 ],
4707 "patterns": [
4708 "(grow|create|generate) tree [of type %structuretype%] %directions% %locations%",
4709 "(grow|create|generate) %structuretype% [tree] %directions% %locations%"
4710 ]
4711 },
4712 {
4713 "id": "EffVectorRotateAroundAnother",
4714 "name": "Vectors - Rotate Around Vector",
4715 "description": [
4716 "Rotates a vector around another vector"
4717 ],
4718 "examples": [
4719 "rotate {_v} around vector 1, 0, 0 by 90"
4720 ],
4721 "since": [
4722 "2.2-dev28"
4723 ],
4724 "patterns": [
4725 "rotate %vectors% around %vector% by %number% [degrees]"
4726 ]
4727 },
4728 {
4729 "id": "EffVectorRotateXYZ",
4730 "name": "Vectors - Rotate around XYZ",
4731 "description": [
4732 "Rotates a vector around x, y, or z axis by some degrees"
4733 ],
4734 "examples": [
4735 "rotate {_v} around x-axis by 90",
4736 "rotate {_v} around y-axis by 90",
4737 "rotate {_v} around z-axis by 90 degrees"
4738 ],
4739 "since": [
4740 "2.2-dev28"
4741 ],
4742 "patterns": [
4743 "rotate %vectors% around (x|y|z)(-| )axis by %number% [degrees]"
4744 ]
4745 },
4746 {
4747 "id": "EffVehicle",
4748 "name": "Vehicle",
4749 "description": [
4750 "Makes an entity ride another entity, e.g. a minecart, a saddled pig, an arrow, etc."
4751 ],
4752 "examples": [
4753 "make the player ride a saddled pig",
4754 "make the attacker ride the victim"
4755 ],
4756 "since": [
4757 "2.0"
4758 ],
4759 "patterns": [
4760 "(make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entitydatas%",
4761 "(make|let|force) %entities% [to] (dismount|(dismount|leave) (from|of|) (any|the[ir]|his|her|) vehicle[s])",
4762 "(eject|dismount) (any|the|) passenger[s] (of|from) %entities%"
4763 ]
4764 },
4765 {
4766 "id": "EffOp",
4767 "name": "op/deop",
4768 "description": [
4769 "Grant/revoke a user operator state."
4770 ],
4771 "examples": [
4772 "op the player",
4773 "deop all players"
4774 ],
4775 "since": [
4776 "1.0"
4777 ],
4778 "patterns": [
4779 "[de[-]]op %offlineplayers%"
4780 ]
4781 }
4782 ],
4783 "expressions": [
4784 {
4785 "id": "ExprAffectedEntities",
4786 "name": "Affected Entities",
4787 "description": [
4788 "The affected entities in the area cloud effect event."
4789 ],
4790 "examples": [
4791 "on area cloud effect:",
4792 "\tloop affected entities:",
4793 "\t\tif loop-value is a player:",
4794 "\t\t\tsend \"WARNING: you've step on a area cloud!\""
4795 ],
4796 "since": [
4797 "2.4"
4798 ],
4799 "return type": "Living Entity",
4800 "changers": [
4801 "add",
4802 "remove",
4803 "remove all"
4804 ],
4805 "patterns": [
4806 "[the] affected entities"
4807 ]
4808 },
4809 {
4810 "id": "ExprPermissions",
4811 "name": "All Permissions",
4812 "description": [
4813 "Returns all permissions of the defined player(s). Note that the modifications to resulting list do not actually change permissions."
4814 ],
4815 "examples": [
4816 "set {_permissions::*} to all permissions of the player"
4817 ],
4818 "since": [
4819 "2.2-dev33"
4820 ],
4821 "return type": "Text",
4822 "patterns": [
4823 "[(all [[of] the]|the)] permissions (from|of) %players%",
4824 "[(all [[of] the]|the)] %players%'[s] permissions"
4825 ]
4826 },
4827 {
4828 "id": "ExprAlphabetList",
4829 "name": "Alphabetical Sort",
4830 "description": [
4831 "Sorts given strings in alphabetical order."
4832 ],
4833 "examples": [
4834 "set {_list::*} to alphabetically sorted {_strings::*}"
4835 ],
4836 "since": [
4837 "2.2-dev18b"
4838 ],
4839 "return type": "Text",
4840 "patterns": [
4841 "alphabetically sorted %strings%"
4842 ]
4843 },
4844 {
4845 "id": "ExprAltitude",
4846 "name": "Altitude",
4847 "description": [
4848 "Effectively an alias of 'y-coordinate of …', it represents the height of some object above bedrock."
4849 ],
4850 "examples": [
4851 "on damage:",
4852 "\taltitude of the attacker is higher that the altitude of the victim",
4853 "\tset damage to damage * 1.2"
4854 ],
4855 "since": [
4856 "1.4.3"
4857 ],
4858 "return type": "double",
4859 "patterns": [
4860 "[the] altitude[s] of %locations%",
4861 "%locations%'[s] altitude[s]"
4862 ]
4863 },
4864 {
4865 "id": "ExprAmount",
4866 "name": "Amount",
4867 "description": [
4868 "The amount of something.",
4869 "Please note that amount of %items% will not return the number of items, but the number of stacks, e.g. 1 for a stack of 64 torches. To get the amount of items in a stack, see the item amount expression."
4870 ],
4871 "examples": [
4872 "message \"There are %number of all players% players online!\""
4873 ],
4874 "since": [
4875 "1.0"
4876 ],
4877 "return type": "integer",
4878 "patterns": [
4879 "(amount|number|size) of %objects%"
4880 ]
4881 },
4882 {
4883 "id": "ExprAmountOfItems",
4884 "name": "Amount of Items",
4885 "description": [
4886 "Counts how many of a particular item type are in a given inventory."
4887 ],
4888 "examples": [
4889 "message \"You have %number of ores in the player's inventory% ores in your inventory.\""
4890 ],
4891 "since": [
4892 "2.0"
4893 ],
4894 "return type": "integer",
4895 "patterns": [
4896 "[the] (amount|number) of %itemtypes% (in|of) %inventories%"
4897 ]
4898 },
4899 {
4900 "id": "ExprArgument",
4901 "name": "Argument",
4902 "description": [
4903 "Only usable in command events. Holds the value of an argument given to the command, e.g. if the command \"/tell <player> <text>\" is used like \"/tell Njol Hello Njol!\" argument 1 is the player named \"Njol\" and argument 2 is \"Hello Njol!\".",
4904 "One can also use the type of the argument instead of its index to address the argument, e.g. in the above example 'player-argument' is the same as 'argument 1'."
4905 ],
4906 "examples": [
4907 "give the item-argument to the player-argument",
4908 "damage the player-argument by the number-argument",
4909 "give a diamond pickaxe to the argument",
4910 "add argument 1 to argument 2",
4911 "heal the last argument"
4912 ],
4913 "since": [
4914 "1.0"
4915 ],
4916 "return type": "Object",
4917 "changers": [
4918 "unknown"
4919 ],
4920 "patterns": [
4921 "[the] last arg[ument][s]",
4922 "[the] arg[ument][s](-| )<(\\d+)>",
4923 "[the] <(\\d*1)st|(\\d*2)nd|(\\d*3)rd|(\\d*[4-90])th> arg[ument][s]",
4924 "[the] arg[ument][s]",
4925 "[the] %*classinfo%( |-)arg[ument][( |-)<\\d+>]",
4926 "[the] arg[ument]( |-)%*classinfo%[( |-)<\\d+>]"
4927 ]
4928 },
4929 {
4930 "id": "ExprArithmetic",
4931 "name": "Arithmetic",
4932 "description": [
4933 "Arithmetic expressions, e.g. 1 + 2, (health of player - 2) / 3, etc."
4934 ],
4935 "examples": [
4936 "set the player's health to 10 - the player's health",
4937 "loop (argument + 2) / 5 times:",
4938 "\tmessage \"Two useless numbers: %loop-num * 2 - 5%, %2^loop-num - 1%\"",
4939 "message \"You have %health of player * 2% half hearts of HP!\""
4940 ],
4941 "since": [
4942 "1.4.2"
4943 ],
4944 "return type": "Number",
4945 "changers": [
4946 "unknown"
4947 ],
4948 "patterns": [
4949 "%number%[ ]+[ ]%number%",
4950 "%number%[ ]-[ ]%number%",
4951 "%number%[ ]*[ ]%number%",
4952 "%number%[ ]/[ ]%number%",
4953 "%number%[ ]^[ ]%number%"
4954 ]
4955 },
4956 {
4957 "id": "ExprArmorSlot",
4958 "name": "Armour Slot",
4959 "description": [
4960 "A part of a player's armour, i.e. the boots, leggings, chestplate or helmet."
4961 ],
4962 "examples": [
4963 "set chestplate of the player to a diamond chestplate",
4964 "helmet of player is neither a helmet nor air # player is wearing a block, e.g. from another plugin"
4965 ],
4966 "since": [
4967 "1.0"
4968 ],
4969 "return type": "Inventory Slot",
4970 "changers": [
4971 "add",
4972 "set",
4973 "remove",
4974 "remove all",
4975 "delete"
4976 ],
4977 "patterns": [
4978 "[the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %livingentities%",
4979 "%livingentities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]"
4980 ]
4981 },
4982 {
4983 "id": "ExprAttacked",
4984 "name": "Attacked",
4985 "description": [
4986 "The victim of a damage event, e.g. when a player attacks a zombie this expression represents the zombie."
4987 ],
4988 "examples": [
4989 "on damage:",
4990 "\tvictim is a creeper",
4991 "\tdamage the attacked by 1 heart"
4992 ],
4993 "since": [
4994 "1.3"
4995 ],
4996 "return type": "Entity",
4997 "changers": [
4998 "unknown"
4999 ],
5000 "patterns": [
5001 "[the] (attacked|damaged|victim) [<(.+)>]"
5002 ]
5003 },
5004 {
5005 "id": "ExprAttacker",
5006 "name": "Attacker",
5007 "description": [
5008 "The attacker of a damage event, e.g. when a player attacks a zombie this expression represents the player.",
5009 "Please note that the attacker can also be a block, e.g. a cactus or lava, but this expression will not be set in these cases."
5010 ],
5011 "examples": [
5012 "on damage:",
5013 "\tattacker is a player",
5014 "\thealth of attacker is less than or equal to 2",
5015 "\tdamage victim by 1 heart"
5016 ],
5017 "since": [
5018 "1.3"
5019 ],
5020 "return type": "Entity",
5021 "changers": [
5022 "add",
5023 "remove",
5024 "remove all"
5025 ],
5026 "patterns": [
5027 "[the] (attacker|damager)"
5028 ]
5029 },
5030 {
5031 "id": "ExprBed",
5032 "name": "Bed",
5033 "description": [
5034 "The bed location of a player, i.e. the spawn point of a player if he ever slept in a bed and the bed still exists and is unobstructed."
5035 ],
5036 "examples": [
5037 "bed of player exists:",
5038 "\tteleport player the the player's bed",
5039 "else:",
5040 "\tteleport the player to the world's spawn point"
5041 ],
5042 "since": [
5043 "2.0"
5044 ],
5045 "return type": "Location",
5046 "changers": [
5047 "set",
5048 "delete"
5049 ],
5050 "patterns": [
5051 "[the] bed[s] [location[s]] of %players%",
5052 "%players%'[s] bed[s] [location[s]]"
5053 ]
5054 },
5055 {
5056 "id": "ExprBiome",
5057 "name": "Biome",
5058 "description": [
5059 "The biome at a certain location. Please note that biomes are only defined for x/z-columns, i.e. the altitude (y-coordinate) doesn't matter. "
5060 ],
5061 "examples": [
5062 "# damage player in deserts constantly",
5063 "every real minute:",
5064 "\tloop all players:",
5065 "\t\tbiome at loop-player is desert",
5066 "\t\tdamage the loop-player by 1"
5067 ],
5068 "since": [
5069 "1.4.4"
5070 ],
5071 "return type": "Biome",
5072 "changers": [
5073 "set"
5074 ],
5075 "patterns": [
5076 "[the] biome (of|%direction%) %location%",
5077 "%location%'[s] biome"
5078 ]
5079 },
5080 {
5081 "id": "ExprBlock",
5082 "name": "Block",
5083 "description": [
5084 "The block involved in the event, e.g. the clicked block or the placed block.",
5085 "Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'."
5086 ],
5087 "examples": [
5088 "block is ore",
5089 "set block below to air",
5090 "spawn a creeper above the block",
5091 "loop blocks in radius 4:",
5092 "\tloop-block is obsidian",
5093 "\tset loop-block to water",
5094 "block is a chest:",
5095 "\tclear the inventory of the block"
5096 ],
5097 "since": [
5098 "1.0"
5099 ],
5100 "return type": "Block",
5101 "changers": [
5102 "unknown"
5103 ],
5104 "patterns": [
5105 "[the] [event-]block",
5106 "[the] block %direction% [%location%]"
5107 ]
5108 },
5109 {
5110 "id": "ExprBlockSphere",
5111 "name": "Block Sphere",
5112 "description": [
5113 "All blocks in a sphere around a center, mostly useful for looping."
5114 ],
5115 "examples": [
5116 "loop blocks in radius 5 around the player:",
5117 "\tset loop-block to air"
5118 ],
5119 "since": [
5120 "1.0"
5121 ],
5122 "return type": "Block",
5123 "changers": [
5124 "add",
5125 "set",
5126 "remove",
5127 "remove all",
5128 "delete"
5129 ],
5130 "patterns": [
5131 "[(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]",
5132 "[(all [[of] the]|the)] blocks around %location% in radius %number%"
5133 ]
5134 },
5135 {
5136 "id": "ExprBlocks",
5137 "name": "Blocks",
5138 "description": [
5139 "Blocks relative to other blocks or between other blocks. Can be used to get blocks relative to other blocks or for looping."
5140 ],
5141 "examples": [
5142 "loop blocks above the player:",
5143 "loop blocks between the block below the player and the targeted block:",
5144 "set the blocks below the player, the victim and the targeted block to air"
5145 ],
5146 "since": [
5147 "1.0"
5148 ],
5149 "return type": "Block",
5150 "changers": [
5151 "add",
5152 "set",
5153 "remove",
5154 "remove all",
5155 "delete"
5156 ],
5157 "patterns": [
5158 "[(all [[of] the]|the)] blocks %direction% [%locations%]",
5159 "[(all [[of] the]|the)] blocks from %location% [on] %direction%",
5160 "[(all [[of] the]|the)] blocks from %block% to %block%",
5161 "[(all [[of] the]|the)] blocks (within|between) %block% and %block%"
5162 ]
5163 },
5164 {
5165 "id": "ExprBookAuthor",
5166 "name": "Book Author",
5167 "description": [
5168 "The author of a book."
5169 ],
5170 "examples": [
5171 "on book sign:",
5172 "\tmessage \"Book Title: %author of event-item%\""
5173 ],
5174 "since": [
5175 "2.2-dev31"
5176 ],
5177 "return type": "Text",
5178 "changers": [
5179 "set",
5180 "delete",
5181 "reset"
5182 ],
5183 "patterns": [
5184 "[the] [book] (author|writer|publisher) of %itemstack%",
5185 "%itemstack%'[s] [book] (author|writer|publisher)"
5186 ]
5187 },
5188 {
5189 "id": "ExprBookPages",
5190 "name": "Book Pages",
5191 "description": [
5192 "The pages of a book."
5193 ],
5194 "examples": [
5195 "on book sign:",
5196 "\tmessage \"Book Pages: %pages of event-item%\"",
5197 "\tmessage \"Book Page 1: %page 1 of event-item%\""
5198 ],
5199 "since": [
5200 "2.2-dev31"
5201 ],
5202 "return type": "Text",
5203 "patterns": [
5204 "[all] [the] [book] (pages|content) of %itemstack%",
5205 "%itemstack%'s [book] (pages|content)",
5206 "[book] page %number% of %itemstack%",
5207 "%itemstack%'s [book] page %number%"
5208 ]
5209 },
5210 {
5211 "id": "ExprBookTitle",
5212 "name": "Book Title",
5213 "description": [
5214 "The title of a book."
5215 ],
5216 "examples": [
5217 "on book sign:",
5218 "\tmessage \"Book Title: %title of event-item%\""
5219 ],
5220 "since": [
5221 "2.2-dev31"
5222 ],
5223 "return type": "Text",
5224 "changers": [
5225 "set",
5226 "delete",
5227 "reset"
5228 ],
5229 "patterns": [
5230 "[the] (book name|title) of %itemstack%",
5231 "%itemstack%'[s] (book name|title)"
5232 ]
5233 },
5234 {
5235 "id": "ExprBurnCookTime",
5236 "name": "Burn/Cook Time",
5237 "description": [
5238 "The time a furnace takes to burn an item in a fuel burn event.",
5239 "Can also be used to change the burn/cook time of a placed furnace."
5240 ],
5241 "examples": [
5242 "on fuel burn:",
5243 "\tif fuel slot is coal:",
5244 "\t\tset burning time to 1 tick"
5245 ],
5246 "since": [
5247 "2.3"
5248 ],
5249 "return type": "Timespan",
5250 "changers": [
5251 "add",
5252 "set",
5253 "remove"
5254 ],
5255 "patterns": [
5256 "[the] burn[ing] time",
5257 "[the] (burn|cook)[ing] time of %blocks%",
5258 "%blocks%'[s] (burn|cook)[ing] time"
5259 ]
5260 },
5261 {
5262 "id": "ExprChatFormat",
5263 "name": "Chat Format",
5264 "description": [
5265 "Can be used to get/retrieve the chat format. The sender of a message is represented by [player] or [sender], and the message by [message] or [msg]."
5266 ],
5267 "examples": [
5268 "set the chat format to \"<yellow>[player]<light gray>: <green>[message]\""
5269 ],
5270 "since": [
5271 "2.2-dev31"
5272 ],
5273 "return type": "Text",
5274 "changers": [
5275 "set",
5276 "reset"
5277 ],
5278 "patterns": [
5279 "[the] (message|chat) format[ting]"
5280 ]
5281 },
5282 {
5283 "id": "ExprChatRecipients",
5284 "name": "Chat Recipients",
5285 "description": [
5286 "Recipients of chat events where this is called."
5287 ],
5288 "examples": [
5289 "chat recipients"
5290 ],
5291 "since": [
5292 "2.2-Fixes-v7, 2.2-dev35 (clearing recipients)"
5293 ],
5294 "return type": "Player",
5295 "changers": [
5296 "add",
5297 "set",
5298 "remove",
5299 "remove all",
5300 "delete",
5301 "reset"
5302 ],
5303 "patterns": [
5304 "[chat][( |-)]recipients"
5305 ]
5306 },
5307 {
5308 "id": "ExprChunk",
5309 "name": "Chunk",
5310 "description": [
5311 "The chunk a block, location or entity is in."
5312 ],
5313 "examples": [
5314 "add the chunk at the player to {protected chunks::*}"
5315 ],
5316 "since": [
5317 "2.0"
5318 ],
5319 "return type": "Chunk",
5320 "patterns": [
5321 "[the] chunk[s] (of|%directions%) %locations%",
5322 "%locations%'[s] chunk[s]"
5323 ]
5324 },
5325 {
5326 "id": "ExprClicked",
5327 "name": "Clicked Block/Entity/Inventory/Slot",
5328 "description": [
5329 "The clicked block, entity, inventory, inventory slot, inventory click type or inventory action."
5330 ],
5331 "examples": [
5332 "message \"You clicked on a %type of clicked entity%!\"",
5333 "if the clicked block is a chest:",
5334 "\tshow the inventory of the clicked block to the player"
5335 ],
5336 "since": [
5337 "1.0, 2.2-dev35 (more clickable things)"
5338 ],
5339 "return type": "Object",
5340 "changers": [
5341 "add",
5342 "set",
5343 "remove",
5344 "remove all",
5345 "delete"
5346 ],
5347 "patterns": [
5348 "[the] (clicked (block|%*itemtype/entitydata%)|clicked slot|clicked inventory|click (type|action)|inventory action)"
5349 ]
5350 },
5351 {
5352 "id": "ExprColorOf",
5353 "name": "Colour of",
5354 "description": [
5355 "The colour of an item, can also be used to colour chat messages with \"<%colour of ...%>this text is coloured!\"."
5356 ],
5357 "examples": [
5358 "on click on wool:",
5359 "\tmessage \"This wool block is <%colour of block%>%colour of block%<reset>!\"",
5360 "\tset the colour of the block to black"
5361 ],
5362 "since": [
5363 "1.2"
5364 ],
5365 "return type": "Colour",
5366 "changers": [
5367 "unknown"
5368 ],
5369 "patterns": [
5370 "[the] colo[u]r[s] of %blocks/itemtypes/entities/fireworkeffects%",
5371 "%blocks/itemtypes/entities/fireworkeffects%'[s] colo[u]r[s]"
5372 ]
5373 },
5374 {
5375 "id": "ExprColoured",
5376 "name": "Coloured / Uncoloured",
5377 "description": [
5378 "Parses <colour>s (including chat styles) in a message or removes any colours & chat styles from the message."
5379 ],
5380 "examples": [
5381 "on chat:",
5382 "\tset message to coloured message",
5383 "command /fade <player>:",
5384 "\ttrigger:",
5385 "\t\tset display name of the player-argument to uncoloured display name of the player-argument"
5386 ],
5387 "since": [
5388 "2.0"
5389 ],
5390 "return type": "Text",
5391 "patterns": [
5392 "(colo[u]r-|colo[u]red )%strings%",
5393 "(un|non)[-](colo[u]r-|colo[u]red )%strings%"
5394 ]
5395 },
5396 {
5397 "id": "ExprCommand",
5398 "name": "Command",
5399 "description": [
5400 "The command that caused an 'on command' event (excluding the leading slash and all arguments)"
5401 ],
5402 "examples": [
5403 "# prevent any commands except for the /exit command during some game",
5404 "on command:",
5405 "\tif {game::%player%::playing} is true:",
5406 "\t\tif the command is not \"exit\":",
5407 "\t\t\tmessage \"You're not allowed to use commands during the game\"",
5408 "\t\t\tcancel the event"
5409 ],
5410 "since": [
5411 "2.0"
5412 ],
5413 "return type": "Text",
5414 "patterns": [
5415 "[the] (full|complete|whole) command",
5416 "[the] command [label]",
5417 "[the] arguments"
5418 ]
5419 },
5420 {
5421 "id": "ExprCommandSender",
5422 "name": "Command Sender",
5423 "description": [
5424 "The player or the console who sent a command. Mostly useful in commands and command events."
5425 ],
5426 "examples": [
5427 "make the command sender execute \"/say hi!\"",
5428 "on command:",
5429 "\tlog \"%executor% used command /%command% %arguments%\" to \"commands.log\""
5430 ],
5431 "since": [
5432 "2.0"
5433 ],
5434 "return type": "Command Sender",
5435 "patterns": [
5436 "[the] [command['s]] (sender|executor)"
5437 ]
5438 },
5439 {
5440 "id": "ExprCompassTarget",
5441 "name": "Compass Target",
5442 "description": [
5443 "The location a player's compass is pointing at."
5444 ],
5445 "examples": [
5446 "# make all player's compasses target a player stored in {compass::target::%player%}",
5447 "every 5 seconds:",
5448 "\tloop all players:",
5449 "\t\tset the loop-player's compass target to location of {compass::target::%%loop-player%}"
5450 ],
5451 "since": [
5452 "2.0"
5453 ],
5454 "return type": "Location",
5455 "changers": [
5456 "set",
5457 "reset"
5458 ],
5459 "patterns": [
5460 "[the] compass target of %players%",
5461 "%players%'[s] compass target"
5462 ]
5463 },
5464 {
5465 "id": "LitConsole",
5466 "name": "Console",
5467 "description": [
5468 "Represents the server's console which can receive messages and execute commands"
5469 ],
5470 "examples": [
5471 "execute console command \"/stop\"",
5472 "send \"message to console\" to the console"
5473 ],
5474 "since": [
5475 "1.3.1"
5476 ],
5477 "return type": "Command Sender",
5478 "patterns": [
5479 "[the] (console|server)"
5480 ]
5481 },
5482 {
5483 "id": "ExprCmdCooldownInfo",
5484 "name": "Cooldown Time/Remaining Time/Elapsed Time/Last Usage/Bypass Permission",
5485 "description": [
5486 "Only usable in command events. Represents the cooldown time, the remaining time, the elapsed time,",
5487 "the last usage date, or the cooldown bypass permission."
5488 ],
5489 "examples": [
5490 "command /home:",
5491 "\tcooldown: 10 seconds",
5492 "\tcooldown message: You last teleported home %elapsed time% ago, you may teleport home again in %remaining time%.",
5493 "\ttrigger:",
5494 "\t\tteleport player to {home::%player%}"
5495 ],
5496 "since": [
5497 "2.2-dev33"
5498 ],
5499 "return type": "Object",
5500 "changers": [
5501 "add",
5502 "set",
5503 "remove",
5504 "reset"
5505 ],
5506 "patterns": [
5507 "[the] remaining [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]",
5508 "[the] elapsed [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]",
5509 "[the] ((cooldown|wait) time|[wait] time of [the] (cooldown|wait) [(of|for) [the] [current] command])",
5510 "[the] last usage [date] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]",
5511 "[the] [cooldown] bypass perm[ission] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]"
5512 ]
5513 },
5514 {
5515 "id": "ExprCoordinate",
5516 "name": "Coordinate",
5517 "description": [
5518 "Represents a given coordinate of a location. "
5519 ],
5520 "examples": [
5521 "player's y-coordinate is smaller than 40:",
5522 "\tmessage \"Watch out for lava!\""
5523 ],
5524 "since": [
5525 "1.4.3"
5526 ],
5527 "return type": "double",
5528 "changers": [
5529 "unknown"
5530 ],
5531 "patterns": [
5532 "[the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%",
5533 "%locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]"
5534 ]
5535 },
5536 {
5537 "id": "ExprEntity",
5538 "name": "Creature/Entity/Player/Projectile/Villager/Powered Creeper/etc.",
5539 "description": [
5540 "The entity involved in an event (an entity is a player, a creature or an inanimate object like ignited TNT, a dropped item or an arrow).",
5541 "You can use the specific type of the entity that's involved in the event, e.g. in a 'death of a creeper' event you can use 'the creeper' instead of 'the entity'."
5542 ],
5543 "examples": [
5544 "give a diamond sword of sharpness 3 to the player",
5545 "kill the creeper",
5546 "kill all powered creepers in the wolf's world",
5547 "projectile is an arrow"
5548 ],
5549 "since": [
5550 "1.0"
5551 ],
5552 "return type": "Entity",
5553 "changers": [
5554 "unknown"
5555 ],
5556 "patterns": [
5557 "[the] [event-]<.+>"
5558 ]
5559 },
5560 {
5561 "id": "ExprCursorSlot",
5562 "name": "Cursor Slot",
5563 "description": [
5564 "The item which the player has on their cursor. This slot is always empty if player has no inventories open."
5565 ],
5566 "examples": [
5567 "cursor slot of player is dirt",
5568 "set cursor slot of player to 64 diamonds"
5569 ],
5570 "since": [
5571 "2.2-dev17"
5572 ],
5573 "return type": "Inventory Slot",
5574 "changers": [
5575 "add",
5576 "set",
5577 "remove",
5578 "remove all",
5579 "delete"
5580 ],
5581 "patterns": [
5582 "[the] cursor slot of %players%",
5583 "%players%'[s] cursor slot"
5584 ]
5585 },
5586 {
5587 "id": "ExprChestInventory",
5588 "name": "Custom Chest Inventory",
5589 "description": [
5590 "Returns a chest inventory with the given amount of rows and the name. Use the open inventory effect to open it."
5591 ],
5592 "examples": [
5593 "open chest inventory with 1 row named \"test\" to player",
5594 "set {_inventory} to chest inventory with 1 row"
5595 ],
5596 "since": [
5597 "2.2-dev34"
5598 ],
5599 "return type": "Inventory",
5600 "changers": [
5601 "add",
5602 "set",
5603 "remove",
5604 "remove all",
5605 "delete"
5606 ],
5607 "patterns": [
5608 "[a [new]] chest inventory (named|with name) %string% [with %number% row[s]]",
5609 "[a [new]] chest inventory with %number% row[s] [(named|with name) %string%]"
5610 ]
5611 },
5612 {
5613 "id": "ExprDamage",
5614 "name": "Damage",
5615 "description": [
5616 "How much damage is done in a damage event, possibly ignoring armour, criticals and/or enchantments. Can be changed (remember that in Skript '1' is one full heart, not half a heart)."
5617 ],
5618 "examples": [
5619 "increase the damage by 2"
5620 ],
5621 "since": [
5622 "1.3.5"
5623 ],
5624 "return type": "double",
5625 "patterns": [
5626 "[the] damage"
5627 ]
5628 },
5629 {
5630 "id": "ExprDamageCause",
5631 "name": "Damage Cause",
5632 "description": [
5633 "The damage cause of a damage event. Please click on the link for more information."
5634 ],
5635 "examples": [
5636 "damage cause is lava, fire or burning"
5637 ],
5638 "since": [
5639 "2.0"
5640 ],
5641 "return type": "Damage Cause",
5642 "patterns": [
5643 "[the] damage (cause|type)"
5644 ]
5645 },
5646 {
5647 "id": "ExprDamagedItem",
5648 "name": "Damaged Item",
5649 "description": [
5650 "Directly damages an item. In MC versions 1.12.2 and lower, this can be used to apply data values to items/blocks"
5651 ],
5652 "examples": [
5653 "give player diamond sword with damage value 100",
5654 "set player's tool to diamond hoe damaged by 250",
5655 "give player diamond sword with damage 700 named \"BROKEN SWORD\"",
5656 "set {_item} to diamond hoe with damage value 50 named \"SAD HOE\"",
5657 "set target block of player to wool with data value 1",
5658 "set target block of player to potato plant with data value 7"
5659 ],
5660 "since": [
5661 "2.4"
5662 ],
5663 "return type": "Item Type",
5664 "patterns": [
5665 "%itemtype% with (damage|data) [value] %number%",
5666 "%itemtype% damaged by %number%"
5667 ]
5668 },
5669 {
5670 "id": "ExprDurability",
5671 "name": "Data Value",
5672 "description": [
5673 "The data value of an item.",
5674 "You usually don't need this expression as you can check and set items with aliases easily, but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. for cycling through all wool colours."
5675 ],
5676 "examples": [
5677 "add 1 to the data value of the clicked block"
5678 ],
5679 "since": [
5680 "1.2"
5681 ],
5682 "return type": "short",
5683 "changers": [
5684 "unknown"
5685 ],
5686 "patterns": [
5687 "[the] ((data|damage)[s] [value[s]]|durabilit(y|ies)) of %itemstacks/slots%",
5688 "%itemstacks/slots%'[s] ((data|damage)[s] [value[s]]|durabilit(y|ies))"
5689 ]
5690 },
5691 {
5692 "id": "ExprDateAgoLater",
5693 "name": "Date Ago/Later",
5694 "description": [
5695 "A date the specified timespan before/after another date."
5696 ],
5697 "examples": [
5698 "set {_yesterday} to 1 day ago"
5699 ],
5700 "since": [
5701 "2.2-dev33"
5702 ],
5703 "return type": "Date",
5704 "patterns": [
5705 "%timespan% (ago|in the past|before [the] [date] %date%)",
5706 "%timespan% (later|(from|after) [the] [date] %date%)"
5707 ]
5708 },
5709 {
5710 "id": "ExprDefaultValue",
5711 "name": "Default Value",
5712 "description": [
5713 "A shorthand expression for giving things a default value. If the first thing isn't set, the second thing will be returned."
5714 ],
5715 "examples": [
5716 "broadcast {score::%player's uuid%} otherwise \"%player% has no score!\""
5717 ],
5718 "since": [
5719 "2.2-dev36"
5720 ],
5721 "return type": "Object",
5722 "patterns": [
5723 "%objects% (otherwise|?) %objects%"
5724 ]
5725 },
5726 {
5727 "id": "ExprDifference",
5728 "name": "Difference",
5729 "description": [
5730 "The difference between two values, e.g. numbers, dates or times."
5731 ],
5732 "examples": [
5733 "if difference between {command::%player%::lastuse} and now is smaller than a minute:",
5734 "\tmessage \"You have to wait a minute before using this command again!\""
5735 ],
5736 "since": [
5737 "1.4"
5738 ],
5739 "return type": "Object",
5740 "changers": [
5741 "unknown"
5742 ],
5743 "patterns": [
5744 "difference (between|of) %object% and %object%"
5745 ]
5746 },
5747 {
5748 "id": "ExprDifficulty",
5749 "name": "Difficulty",
5750 "description": [
5751 "The difficulty of a world."
5752 ],
5753 "examples": [
5754 "set the difficulty of \"world\" to hard"
5755 ],
5756 "since": [
5757 "2.3"
5758 ],
5759 "return type": "Difficulty",
5760 "changers": [
5761 "set"
5762 ],
5763 "patterns": [
5764 "[the] difficult(y|ies) of %worlds%",
5765 "%worlds%'[s] difficult(y|ies)"
5766 ]
5767 },
5768 {
5769 "id": "ExprDirection",
5770 "name": "Direction",
5771 "description": [
5772 "A helper expression for the direction type."
5773 ],
5774 "examples": [
5775 "thrust the player upwards",
5776 "set the block behind the player to water",
5777 "loop blocks above the player:",
5778 "\tset {_rand} to a random integer between 1 and 10",
5779 "\tset the block {_rand} meters south east of the loop-block to stone",
5780 "block in horizontal facing of the clicked entity from the player is air",
5781 "spawn a creeper 1.5 meters horizontally behind the player",
5782 "spawn a TNT 5 meters above and 2 meters horizontally behind the player",
5783 "thrust the last spawned TNT in the horizontal direction of the player with speed 0.2",
5784 "push the player upwards and horizontally forward at speed 0.5",
5785 "push the clicked entity in in the direction of the player at speed -0.5",
5786 "open the inventory of the block 2 blocks below the player to the player",
5787 "teleport the clicked entity behind the player",
5788 "grow a regular tree 2 meters horizontally behind the player"
5789 ],
5790 "since": [
5791 "1.0 (basic), 2.0 (extended)"
5792 ],
5793 "return type": "Direction",
5794 "patterns": [
5795 "[%number% [(block|met(er|re))[s]] [to the]] (north[(-| |)(east|west)][(ward(s|ly|)|er(n|ly|))] [of]|south[(-| |)(east|west)][(ward(s|ly|)|er(n|ly|))] [of]|(east|west)[(ward(s|ly|)|er(n|ly|))] [of]|above|over|(up|down)[ward(s|ly|)]|below|under[neath]|beneath) [%direction%]",
5796 "[%number% [(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% (of|from|)",
5797 "[%number% [(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) (of|from|)",
5798 "[%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])",
5799 "[%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])"
5800 ]
5801 },
5802 {
5803 "id": "ExprDistance",
5804 "name": "Distance",
5805 "description": [
5806 "The distance between two points."
5807 ],
5808 "examples": [
5809 "if the distance between the player and {home::%uuid of player%} is smaller than 20:",
5810 "\tmessage \"You're very close to your home!\""
5811 ],
5812 "since": [
5813 "1.0"
5814 ],
5815 "return type": "double",
5816 "patterns": [
5817 "[the] distance between %location% and %location%"
5818 ]
5819 },
5820 {
5821 "id": "ExprDrops",
5822 "name": "Drops",
5823 "description": [
5824 "Only works in block break and death events. Holds the drops of the dying creature. Drops can be prevented by removing them with \"remove ... from drops\", e.g. \"remove all pickaxes from the drops\", or \"clear drops\" if you don't want any drops at all. In break events, drops can only be cleared, and is only available in 1.12+"
5825 ],
5826 "examples": [
5827 "clear drops",
5828 "remove 4 planks from the drops",
5829 "on break of diamond ore:",
5830 "\tclear drops"
5831 ],
5832 "since": [
5833 "1.0, 2.4 (block break event drops)"
5834 ],
5835 "return type": "Item / Material",
5836 "changers": [
5837 "unknown"
5838 ],
5839 "patterns": [
5840 "[the] drops"
5841 ]
5842 },
5843 {
5844 "id": "ExprElement",
5845 "name": "Element of",
5846 "description": [
5847 "The first, last or a random element of a set, e.g. a list variable.",
5848 "See also: random"
5849 ],
5850 "examples": [
5851 "give a random element out of {free items::*} to the player"
5852 ],
5853 "since": [
5854 "2.0"
5855 ],
5856 "return type": "Object",
5857 "changers": [
5858 "unknown"
5859 ],
5860 "patterns": [
5861 "([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%"
5862 ]
5863 },
5864 {
5865 "id": "ExprEnchantmentLevel",
5866 "name": "Enchantment Level",
5867 "description": [
5868 "The level of a particular enchantment on an item."
5869 ],
5870 "examples": [
5871 "player's tool is a sword of sharpness:",
5872 "\tmessage \"You have a sword of sharpness %level of sharpness of the player's tool% equipped\""
5873 ],
5874 "since": [
5875 "2.0"
5876 ],
5877 "return type": "integer",
5878 "changers": [
5879 "add",
5880 "set",
5881 "remove"
5882 ],
5883 "patterns": [
5884 "[the] [enchant[ment]] level[s] of %enchantments% (on|of) %itemtypes%",
5885 "[the] %enchantments% [enchant[ment]] level[s] (on|of) %itemtypes%",
5886 "%itemtypes%'[s] %enchantments% [enchant[ment]] level[s]",
5887 "%itemtypes%'[s] [enchant[ment]] level[s] of %enchantments%"
5888 ]
5889 },
5890 {
5891 "id": "ExprEnderChest",
5892 "name": "Ender Chest",
5893 "description": [
5894 "The ender chest of a player."
5895 ],
5896 "examples": [
5897 "open the player's ender chest to the player"
5898 ],
5899 "since": [
5900 "2.0"
5901 ],
5902 "return type": "Inventory",
5903 "changers": [
5904 "add",
5905 "set",
5906 "remove",
5907 "remove all",
5908 "delete"
5909 ],
5910 "patterns": [
5911 "[the] ender[ ]chest[s] of %players%",
5912 "%players%'[s] ender[ ]chest[s]"
5913 ]
5914 },
5915 {
5916 "id": "ExprEntities",
5917 "name": "Entities",
5918 "description": [
5919 "All entities in all worlds, in a specific world or in a radius around a certain location, e.g. 'all players', 'all creepers in the player's world', or 'players in radius 100 of the player'."
5920 ],
5921 "examples": [
5922 "kill all creepers in the player's world",
5923 "send \"Psst!\" to all players witin 100 meters of the player",
5924 "give a diamond to all ops",
5925 "heal all tamed wolves in radius 2000 around {town center}"
5926 ],
5927 "since": [
5928 "1.2.1"
5929 ],
5930 "return type": "Entity",
5931 "changers": [
5932 "add",
5933 "remove",
5934 "remove all"
5935 ],
5936 "patterns": [
5937 "[(all [[of] the]|the)] %*entitydatas% [(in|of) [world[s]] %worlds%]",
5938 "[(all [[of] the]|the)] entities of type[s] %entitydatas% [(in|of) [world[s]] %worlds%]",
5939 "[(all [[of] the]|the)] %*entitydatas% (within|[with]in radius) %number% [(block[s]|met(er|re)[s])] (of|around) %location%",
5940 "[(all [[of] the]|the)] entities of type[s] %entitydatas% in radius %number% (of|around) %location%"
5941 ]
5942 },
5943 {
5944 "id": "ExprExhaustion",
5945 "name": "Exhaustion",
5946 "description": [
5947 "The exhaustion of a player. This is mainly used to determine the rate of hunger depletion."
5948 ],
5949 "examples": [
5950 "set exhaustion of all players to 1"
5951 ],
5952 "since": [
5953 "2.2-dev35"
5954 ],
5955 "return type": "Number",
5956 "changers": [
5957 "add",
5958 "set",
5959 "remove",
5960 "remove all",
5961 "delete",
5962 "reset"
5963 ],
5964 "patterns": [
5965 "[the] exhaustion of %players%",
5966 "%players%'[s] exhaustion"
5967 ]
5968 },
5969 {
5970 "id": "ExprExperience",
5971 "name": "Experience",
5972 "description": [
5973 "How much experience was spawned in an experience spawn event. Can be changed."
5974 ],
5975 "examples": [
5976 "on experience spawn:",
5977 "\tadd 5 to the spawned experience"
5978 ],
5979 "since": [
5980 "2.1"
5981 ],
5982 "return type": "Experience",
5983 "changers": [
5984 "add",
5985 "set",
5986 "remove",
5987 "remove all",
5988 "delete"
5989 ],
5990 "patterns": [
5991 "[the] (spawned|dropped|) [e]xp[erience] [orb[s]]"
5992 ]
5993 },
5994 {
5995 "id": "ExprFireworkEffect",
5996 "name": "ExprFireworkEffect",
5997 "return type": "Firework Effect",
5998 "patterns": [
5999 "(|flickering|trailing|flickering trailing|trailing flickering) %fireworktype% [firework [effect]] colo[u]red %colors%",
6000 "(|flickering|trailing|flickering trailing|trailing flickering) %fireworktype% [firework [effect]] colo[u]red %colors% fad(e|ing) [to] %colors%"
6001 ]
6002 },
6003 {
6004 "id": "ExprFacing",
6005 "name": "Facing",
6006 "description": [
6007 "The facing of an entity or block, i.e. exactly north, south, east, west, up or down (unlike direction which is the exact direction, e.g. '0.5 south and 0.7 east')"
6008 ],
6009 "examples": [
6010 "# makes a bridge",
6011 "loop blocks from the block below the player in the horizontal facing of the player:",
6012 "\tset loop-block to cobblestone"
6013 ],
6014 "since": [
6015 "1.4"
6016 ],
6017 "return type": "Direction",
6018 "changers": [
6019 "unknown"
6020 ],
6021 "patterns": [
6022 "[the] (horizontal|) facing of %livingentities/blocks%",
6023 "%livingentities/blocks%'[s] (horizontal|) facing"
6024 ]
6025 },
6026 {
6027 "id": "ExprFilter",
6028 "name": "Filter",
6029 "description": [
6030 "Filters a list based on a condition. For example, if you ran 'broadcast \"something\" and \"something else\" where [string input is \"something\"]only \"something\" would be broadcast as it is the only string that matched the condition."
6031 ],
6032 "examples": [
6033 "send \"congrats on being staff!\" to all players where [player input has permission \"staff\"]"
6034 ],
6035 "since": [
6036 "2.2-dev36"
6037 ],
6038 "return type": "Object",
6039 "changers": [
6040 "unknown"
6041 ],
6042 "patterns": [
6043 "%objects% (where|that match) \\[<.+>\\]"
6044 ]
6045 },
6046 {
6047 "id": "ExprInput",
6048 "name": "Filter Input",
6049 "description": [
6050 "Represents the input in a filter expression. For example, if you ran 'broadcast \"something\" and \"something else\" where [input is \"something\"]the condition would be checked twice, using \"something\" and \"something else\" as the inputs."
6051 ],
6052 "examples": [
6053 "send \"congrats on being staff!\" to all players where [input has permission \"staff\"]"
6054 ],
6055 "since": [
6056 "2.2-dev36"
6057 ],
6058 "return type": "Object",
6059 "patterns": [
6060 "input",
6061 "%*classinfo% input"
6062 ]
6063 },
6064 {
6065 "id": "ExprFinalDamage",
6066 "name": "Final Damage",
6067 "description": [
6068 "How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed."
6069 ],
6070 "examples": [
6071 "send \"%final damage%\" to victim"
6072 ],
6073 "since": [
6074 "2.2-dev19"
6075 ],
6076 "return type": "double",
6077 "patterns": [
6078 "[the] final damage"
6079 ]
6080 },
6081 {
6082 "id": "ExprFlightMode",
6083 "name": "Flight Mode",
6084 "description": [
6085 "Whether the player(s) are allowed to fly. Use Make Fly effect to force player(s) to fly."
6086 ],
6087 "examples": [
6088 "set flight mode of player to true",
6089 "send \"%flying state of all players%\""
6090 ],
6091 "since": [
6092 "2.2-dev34"
6093 ],
6094 "return type": "Boolean",
6095 "changers": [
6096 "set",
6097 "reset"
6098 ],
6099 "patterns": [
6100 "[the] fl(y[ing]|ight) (mode|state) of %players%",
6101 "%players%'[s] fl(y[ing]|ight) (mode|state)"
6102 ]
6103 },
6104 {
6105 "id": "ExprFoodLevel",
6106 "name": "Food Level",
6107 "description": [
6108 "The food level of a player from 0 to 10. Has several aliases: food/hunger level/meter/bar. "
6109 ],
6110 "examples": [
6111 "set the player's food level to 10"
6112 ],
6113 "since": [
6114 "1.0"
6115 ],
6116 "return type": "float",
6117 "changers": [
6118 "add",
6119 "set",
6120 "remove",
6121 "delete",
6122 "reset"
6123 ],
6124 "patterns": [
6125 "[the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]",
6126 "%player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]"
6127 ]
6128 },
6129 {
6130 "id": "ExprFormatTime",
6131 "name": "Formatted Time",
6132 "description": [
6133 "Converts date to human-readable text format. By default, 'yyyy-MM-dd HH:mm:ss z' (e.g. '2018-03-30 16:03:12 +01') will be used. For reference, see this Wikipedia article."
6134 ],
6135 "examples": [
6136 "now formatted human-readable"
6137 ],
6138 "since": [
6139 "2.2-dev31"
6140 ],
6141 "return type": "Text",
6142 "patterns": [
6143 "%dates% formatted [human-readable] [(with|as) %string%]"
6144 ]
6145 },
6146 {
6147 "id": "ExprTimeState",
6148 "name": "Former/Future State",
6149 "description": [
6150 "Represents the value of an expression before an event happened or the value it will have directly after the event, e.g. the old or new level respectively in a level change event.",
6151 "Note: The past, future and present states of an expression are sometimes called 'time states' of an expression.",
6152 "Note 2: If you don't specify whether to use the past or future state of an expression that has different values, its default value will be used which is usually the value after the event."
6153 ],
6154 "examples": [
6155 "on teleport:",
6156 "\tformer world was \"world_nether\" # or 'world was'",
6157 "\tworld will be \"world\" # or 'world after the event is'",
6158 "on tool change:",
6159 "\tpast tool is an axe",
6160 "\tthe tool after the event will be air",
6161 "on weather change:",
6162 "\tset {weather::%world%::old} to past weather",
6163 "\tset {weather::%world%::current} to the new weather"
6164 ],
6165 "since": [
6166 "1.1"
6167 ],
6168 "return type": "Object",
6169 "changers": [
6170 "unknown"
6171 ],
6172 "patterns": [
6173 "[the] (former|past|old) [state] [of] %object%",
6174 "%object% before [the event]",
6175 "[the] (future|to-be|new) [state] [of] %object%",
6176 "%object%(-to-be| after[(wards| the event)])"
6177 ]
6178 },
6179 {
6180 "id": "ExprFurnaceSlot",
6181 "name": "Furnace Slot",
6182 "description": [
6183 "A slot of a furnace, i.e. either the ore, fuel or result slot.",
6184 "Remember to use 'block' and not 'furnace', as 'furnace' is not an existing expression."
6185 ],
6186 "examples": [
6187 "set the fuel slot of the clicked block to a lava bucket",
6188 "set the block's ore slot to 64 iron ore",
6189 "give the result of the block to the player",
6190 "clear the result slot of the block"
6191 ],
6192 "since": [
6193 "1.0"
6194 ],
6195 "return type": "Inventory Slot",
6196 "changers": [
6197 "add",
6198 "set",
6199 "remove",
6200 "remove all",
6201 "delete"
6202 ],
6203 "patterns": [
6204 "(fuel|result) [slot]",
6205 "(ore|fuel|result)[s] [slot[s]] of %blocks%",
6206 "%blocks%'[s] (ore|fuel|result)[s] [slot[s]]"
6207 ]
6208 },
6209 {
6210 "id": "ExprGameMode",
6211 "name": "Game Mode",
6212 "description": [
6213 "The gamemode of a player. (Gamemodes)"
6214 ],
6215 "examples": [
6216 "player's gamemode is survival",
6217 "set the player's gamemode to creative"
6218 ],
6219 "since": [
6220 "1.0"
6221 ],
6222 "return type": "Game Mode",
6223 "changers": [
6224 "set",
6225 "reset"
6226 ],
6227 "patterns": [
6228 "[the] game[ ]mode of %players%",
6229 "%players%'[s] game[ ]mode"
6230 ]
6231 },
6232 {
6233 "id": "ExprGlidingState",
6234 "name": "Gliding State",
6235 "description": [
6236 "Sets of gets gliding state of player. It allows you to set gliding state of entity even if they do not have an Elytra equipped."
6237 ],
6238 "examples": [
6239 "set gliding of player to off"
6240 ],
6241 "since": [
6242 "2.2-dev21"
6243 ],
6244 "return type": "Boolean",
6245 "changers": [
6246 "set",
6247 "reset"
6248 ],
6249 "patterns": [
6250 "[the] (gliding|glider) [state] of %entities%",
6251 "%entities%'[s] (gliding|glider) [state]"
6252 ]
6253 },
6254 {
6255 "id": "ExprGlowing",
6256 "name": "Glowing",
6257 "description": [
6258 "Indicates if targeted entity is glowing (new 1.9 effect) or not. Glowing entities can be seen through walls."
6259 ],
6260 "examples": [
6261 "set glowing of player on"
6262 ],
6263 "since": [
6264 "2.2-dev18"
6265 ],
6266 "return type": "Boolean",
6267 "changers": [
6268 "set",
6269 "reset"
6270 ],
6271 "patterns": [
6272 "[the] glowing of %entities%",
6273 "%entities%'[s] glowing"
6274 ]
6275 },
6276 {
6277 "id": "ExprGravity",
6278 "name": "Gravity",
6279 "description": [
6280 "If entity is affected by gravity or not, i.e. if it has Minecraft 1.10+ NoGravity flag."
6281 ],
6282 "examples": [
6283 "set gravity of player off"
6284 ],
6285 "since": [
6286 "2.2-dev21"
6287 ],
6288 "return type": "Boolean",
6289 "changers": [
6290 "set",
6291 "reset"
6292 ],
6293 "patterns": [
6294 "[the] gravity of %entities%",
6295 "%entities%'[s] gravity"
6296 ]
6297 },
6298 {
6299 "id": "ExprHash",
6300 "name": "Hash",
6301 "description": [
6302 "Hashes the given text using the MD5 or SHA-256 algorithms. Each algorithm is suitable for different use cases.<p>",
6303 "MD5 is provided mostly for backwards compatibility, as it is outdated and not secure. ",
6304 "SHA-256 is more secure, and can used to hash somewhat confidental data like IP addresses and even passwords. ",
6305 "It is not that secure out of the box, so please consider using salt when dealing with passwords! ",
6306 "When hashing data, you must specify algorithms that will be used for security reasons! ",
6307 "<p>Please note that a hash cannot be reversed under normal circumstanses. You will not be able to get original value from a hash with Skript."
6308 ],
6309 "examples": [
6310 "command /setpass <text>:",
6311 "\ttrigger:",
6312 "\t\tset {password::%uuid of player%} to text-argument hashed with SHA-256",
6313 "command /login <text>:",
6314 "\ttrigger:",
6315 "\t\ttif text-argument hashed with SHA-256 is {password::%uuid of player%}:",
6316 "\t\t\tmessage \"Login successful.\"",
6317 "\t\telse:",
6318 "\t\t\tmessage \"Wrong password!\""
6319 ],
6320 "since": [
6321 "2.0, 2.2-dev32 (SHA-256 algorithm)"
6322 ],
6323 "return type": "Text",
6324 "patterns": [
6325 "%strings% hash[ed] with (MD5|SHA-256)"
6326 ]
6327 },
6328 {
6329 "id": "ExprEyeLocation",
6330 "name": "Head location",
6331 "description": [
6332 "The location of an entity's head, mostly useful for players and e.g. looping blocks in the player's line of sight.",
6333 "Please note that this location is only accurate for entities whose head is exactly above their center, i.e. players, endermen, zombies, skeletons, etc., but not sheep, pigs or cows."
6334 ],
6335 "examples": [
6336 "set the block at the player's head to air",
6337 "set the block in front of the player's eyes to glass",
6338 "loop blocks in front of the player's head:"
6339 ],
6340 "since": [
6341 "2.0"
6342 ],
6343 "return type": "Location",
6344 "patterns": [
6345 "[the] (head|eye[s]) [location[s]] of %livingentities%",
6346 "%livingentities%'[s] (head|eye[s]) [location[s]]"
6347 ]
6348 },
6349 {
6350 "id": "ExprHealth",
6351 "name": "Health",
6352 "description": [
6353 "The health of a creature, e.g. a player, mob, villager, etc. The minimum value is 0, and the maximum is the creature's max health (e.g. 10 for players)."
6354 ],
6355 "examples": [
6356 "message \"You have %health% HP left.\""
6357 ],
6358 "since": [
6359 "1.0"
6360 ],
6361 "return type": "double",
6362 "changers": [
6363 "add",
6364 "set",
6365 "remove",
6366 "delete",
6367 "reset"
6368 ],
6369 "patterns": [
6370 "[the] health of %livingentities%",
6371 "%livingentities%'[s] health"
6372 ]
6373 },
6374 {
6375 "id": "ExprHiddenPlayers",
6376 "name": "Hidden Players",
6377 "description": [
6378 "The players hidden from a player that were hidden using the player visibility effect."
6379 ],
6380 "examples": [
6381 "message \"<light red>You are currently hiding: <light gray>%hidden players of the player%\""
6382 ],
6383 "since": [
6384 "2.3"
6385 ],
6386 "return type": "Player",
6387 "changers": [
6388 "add",
6389 "remove",
6390 "remove all"
6391 ],
6392 "patterns": [
6393 "[(all [[of] the]|the)] hidden players (of|for) %players%",
6394 "[(all [[of] the]|the)] players hidden (from|for|by) %players%"
6395 ]
6396 },
6397 {
6398 "id": "ExprHighestSolidBlock",
6399 "name": "Highest Solid Block",
6400 "description": [
6401 "Returns the highest solid block at the x and z coordinates of the world of a given location."
6402 ],
6403 "examples": [
6404 "highest block at location of arg-player"
6405 ],
6406 "since": [
6407 "2.2-dev34"
6408 ],
6409 "return type": "Block",
6410 "changers": [
6411 "add",
6412 "set",
6413 "remove",
6414 "remove all",
6415 "delete"
6416 ],
6417 "patterns": [
6418 "highest [(solid|non-air)] block at %locations%"
6419 ]
6420 },
6421 {
6422 "id": "ExprHotbarSlot",
6423 "name": "Hotbar Slot",
6424 "description": [
6425 "The slot number of the currently selected hotbar slot."
6426 ],
6427 "examples": [
6428 "message \"%player's current hotbar slot%\"",
6429 "set player's selected hotbar slot to slot 4 of player"
6430 ],
6431 "since": [
6432 "2.2-dev36"
6433 ],
6434 "return type": "Inventory Slot",
6435 "changers": [
6436 "set"
6437 ],
6438 "patterns": [
6439 "[the] [([currently] selected|current)] hotbar slot of %players%",
6440 "%players%'[s] [([currently] selected|current)] hotbar slot"
6441 ]
6442 },
6443 {
6444 "id": "ExprHoverList",
6445 "name": "Hover List",
6446 "description": [
6447 "The list when you hover on the player counts of the server in the server list.",
6448 "This can be changed using texts or players in a server list ping event only. Adding players to the list means adding the name of the players.",
6449 "And note that, for example if there are 5 online players (includes fake online count) in the server and the hover list is set to 3 values, Minecraft will show \"... and 2 more ...\" at end of the list."
6450 ],
6451 "examples": [
6452 "on server list ping:",
6453 "\tclear the hover list",
6454 "\tadd \"<light green>Welcome to the <orange>Minecraft <light green>server!\" to the hover list",
6455 "\tadd \"\" to the hover list # A blank line",
6456 "\tadd \"<light red>There are <orange>%online players count% <light red>online players!\" to the hover list"
6457 ],
6458 "since": [
6459 "2.3"
6460 ],
6461 "return type": "Text",
6462 "changers": [
6463 "add",
6464 "set",
6465 "remove",
6466 "delete",
6467 "reset"
6468 ],
6469 "patterns": [
6470 "[the] [custom] [(player|server)] (hover|sample) ([message] list|message)",
6471 "[the] [custom] player [(hover|sample)] list"
6472 ],
6473 "required plugins": [
6474 "Paper 1.12.2 or newer"
6475 ]
6476 },
6477 {
6478 "id": "ExprHumidity",
6479 "name": "Humidity",
6480 "description": [
6481 "Humidity of given blocks."
6482 ],
6483 "examples": [
6484 "set {_humidity} to event-block's humidity"
6485 ],
6486 "since": [
6487 "2.2-dev35"
6488 ],
6489 "return type": "double",
6490 "patterns": [
6491 "[the] humidit(y|ies) of %blocks%",
6492 "%blocks%'[s] humidit(y|ies)"
6493 ]
6494 },
6495 {
6496 "id": "ExprIP",
6497 "name": "IP",
6498 "description": [
6499 "The IP address of a player, or the connected player in a connect event, or the pinger in a server list ping event."
6500 ],
6501 "examples": [
6502 "ban the IP address of the player",
6503 "broadcast \"Banned the IP %IP of player%\"",
6504 "",
6505 "on connect:",
6506 "\tlog \"[%now%] %player% (%ip%) is connected to the server.\"",
6507 "",
6508 "on server list ping:",
6509 "\tsend \"%IP-address%\" to the console"
6510 ],
6511 "since": [
6512 "1.4, 2.2-dev26 (when used in connect event), 2.3 (when used in server list ping event)"
6513 ],
6514 "return type": "Text",
6515 "patterns": [
6516 "IP[s][( |-)address[es]] of %players%",
6517 "%players%'[s] IP[s][( |-)address[es]]",
6518 "IP[( |-)address]"
6519 ]
6520 },
6521 {
6522 "id": "ExprIdOf",
6523 "name": "Id",
6524 "description": [
6525 "The id of a specific item. You usually don't need this expression as you can likely do everything with aliases."
6526 ],
6527 "examples": [
6528 "message \"the ID of %type of the clicked block% is %id of the clicked block%.\""
6529 ],
6530 "since": [
6531 "1.0"
6532 ],
6533 "return type": "integer",
6534 "changers": [
6535 "unknown"
6536 ],
6537 "patterns": [
6538 "[the] id(s|) of %itemtype%",
6539 "%itemtype%'[s] id(s|)"
6540 ]
6541 },
6542 {
6543 "id": "ExprIndexOf",
6544 "name": "Index Of",
6545 "description": [
6546 "The first or last index of a character (or text) in a text, or -1 if it doesn't occur in the text. Indices range from 1 to the length of the text."
6547 ],
6548 "examples": [
6549 "set {_first} to the first index of \"@\" in the text argument",
6550 "if {_s} contains \"abc\":",
6551 "\tset {_s} to the first (index of \"abc\" in {_s} + 3) characters of {_s} # removes everything after the first \"abc\" from {_s}"
6552 ],
6553 "since": [
6554 "2.1"
6555 ],
6556 "return type": "integer",
6557 "patterns": [
6558 "[the] (|first|last) index of %string% in %string%"
6559 ]
6560 },
6561 {
6562 "id": "ExprIndices",
6563 "name": "Indexes of List",
6564 "description": [
6565 "Returns all the indexes of a list variable"
6566 ],
6567 "examples": [
6568 "set {l::*} to \"some\", \"cool\" and \"values\"\nbroadcast \"%all indexes of {l::*}%\" # result is 1, 2 and 3"
6569 ],
6570 "since": [
6571 "2.4"
6572 ],
6573 "return type": "Text",
6574 "patterns": [
6575 "[the] (indexes|indices) of %objects%",
6576 "(all of the|all the|all) (indices|indexes) of %objects%"
6577 ]
6578 },
6579 {
6580 "id": "ExprInventory",
6581 "name": "Inventory",
6582 "description": [
6583 "The inventory of a block or player. You can usually omit this expression and can directly add or remove items to/from blocks or players."
6584 ],
6585 "examples": [
6586 "add a plank to the player's inventory",
6587 "clear the player's inventory",
6588 "remove 5 wool from the inventory of the clicked block"
6589 ],
6590 "since": [
6591 "1.0"
6592 ],
6593 "return type": "Object",
6594 "changers": [
6595 "add",
6596 "set",
6597 "remove",
6598 "remove all",
6599 "delete"
6600 ],
6601 "patterns": [
6602 "[the] inventor(y|ies) of %inventoryholders%",
6603 "%inventoryholders%'[s] inventor(y|ies)"
6604 ]
6605 },
6606 {
6607 "id": "ExprInventoryAction",
6608 "name": "Inventory Action",
6609 "description": [
6610 "The inventory action of an inventory event. Please click on the link for more information."
6611 ],
6612 "examples": [
6613 "inventory action is pickup all"
6614 ],
6615 "since": [
6616 "2.2-dev16"
6617 ],
6618 "return type": "Inventory Action",
6619 "patterns": [
6620 "[the] inventory action"
6621 ]
6622 },
6623 {
6624 "id": "ExprInventoryInfo",
6625 "name": "Inventory Holder/Viewers/Rows",
6626 "description": [
6627 "Gets the rows/size/viewers/holder of an inventory."
6628 ],
6629 "examples": [
6630 "event-inventory's amount of rows",
6631 "holder of player's top inventory",
6632 "{_inventory}'s viewers"
6633 ],
6634 "since": [
6635 "2.2-dev34"
6636 ],
6637 "return type": "Object",
6638 "changers": [
6639 "add",
6640 "remove",
6641 "remove all"
6642 ],
6643 "patterns": [
6644 "[the] (holder[s]|viewers|[amount of] rows) of %inventories%",
6645 "%inventories%'[s] (holder[s]|viewers|[amount of] rows)"
6646 ]
6647 },
6648 {
6649 "id": "ExprInventorySlot",
6650 "name": "Inventory Slot",
6651 "description": [
6652 "Represents a slot in an inventory. It can be used to change the item in an inventory too."
6653 ],
6654 "examples": [
6655 "if slot 0 of player is air:",
6656 "\tset slot 0 of player to 2 stones",
6657 "\tremove 1 stone from slot 0 of player",
6658 "\tadd 2 stones to slot 0 of player",
6659 "\tclear slot 1 of player"
6660 ],
6661 "since": [
6662 "2.2-dev24"
6663 ],
6664 "return type": "Inventory Slot",
6665 "changers": [
6666 "add",
6667 "set",
6668 "remove",
6669 "remove all",
6670 "delete"
6671 ],
6672 "patterns": [
6673 "[the] slot[s] %numbers% of %inventory%",
6674 "%inventory%'[s] slot[s] %numbers%"
6675 ]
6676 },
6677 {
6678 "id": "ExprItem",
6679 "name": "Item",
6680 "description": [
6681 "The item involved in an event, e.g. in a drop, dispense, pickup or craft event."
6682 ],
6683 "examples": [
6684 "on dispense:",
6685 "\titem is a clock",
6686 "\tset the time to 6:00"
6687 ],
6688 "since": [
6689 "unknown (before 2.1)"
6690 ],
6691 "return type": "Item / Material",
6692 "patterns": [
6693 "[the] item"
6694 ]
6695 },
6696 {
6697 "id": "ExprItemAmount",
6698 "name": "Item Amount",
6699 "description": [
6700 "The amount of an item stack."
6701 ],
6702 "examples": [
6703 "send \"You have got %item amount of player's tool% %player's tool% in your hand!\" to player"
6704 ],
6705 "since": [
6706 "2.2-dev24"
6707 ],
6708 "return type": "Number",
6709 "changers": [
6710 "add",
6711 "set",
6712 "remove",
6713 "delete",
6714 "reset"
6715 ],
6716 "patterns": [
6717 "[the] item[[ ]stack] (amount|size|number) of %itemstacks%",
6718 "%itemstacks%'[s] item[[ ]stack] (amount|size|number)"
6719 ]
6720 },
6721 {
6722 "id": "ExprEnchantments",
6723 "name": "Item Enchantments",
6724 "description": [
6725 "All the enchantments an item type has."
6726 ],
6727 "examples": [
6728 "clear enchantments of event-item"
6729 ],
6730 "since": [
6731 "2.2-dev36"
6732 ],
6733 "return type": "Enchantment Type",
6734 "changers": [
6735 "add",
6736 "set",
6737 "remove",
6738 "remove all",
6739 "delete",
6740 "reset"
6741 ],
6742 "patterns": [
6743 "[the] enchantments of %itemtypes%",
6744 "%itemtypes%'[s] enchantments"
6745 ]
6746 },
6747 {
6748 "id": "ExprItemFrameSlot",
6749 "name": "Item of an Entity",
6750 "description": [
6751 "An item associated with an entity. For dropped item entities, it gets, obviously, the item that was dropped. For item frames, the item inside the frame is returned. Other entities do not have items associated with them."
6752 ],
6753 "since": [
6754 "2.2-dev35, 2.2-dev36 (improved)"
6755 ],
6756 "return type": "Inventory Slot",
6757 "changers": [
6758 "add",
6759 "set",
6760 "remove",
6761 "remove all",
6762 "delete"
6763 ],
6764 "patterns": [
6765 "[the] item of %entities%",
6766 "%entities%'[s] item"
6767 ]
6768 },
6769 {
6770 "id": "ExprItemWithLore",
6771 "name": "Item with Lore",
6772 "description": [
6773 "Returns the given item type with the specified lore added to it.",
6774 "If multiple strings are passed, each of them will be a separate line in the lore."
6775 ],
6776 "examples": [
6777 "set {_test} to stone with lore \"line 1\" and \"line 2\"",
6778 "give {_test} to player"
6779 ],
6780 "since": [
6781 "2.3"
6782 ],
6783 "return type": "Item Type",
6784 "patterns": [
6785 "%itemtype% with [(a|the)] lore %strings%"
6786 ]
6787 },
6788 {
6789 "id": "ExprItems",
6790 "name": "Items",
6791 "description": [
6792 "Items or blocks of a specific type, useful for looping."
6793 ],
6794 "examples": [
6795 "loop items of type ore and log:",
6796 "\tblock contains loop-item",
6797 "\tmessage \"Theres at least one %loop-item% in this block\"",
6798 "drop all blocks at the player # drops one of every block at the player"
6799 ],
6800 "since": [
6801 "unknown (before 2.1)"
6802 ],
6803 "return type": "Item / Material",
6804 "patterns": [
6805 "[(all [[of] the]|the|every)] item(s|[ ]types)",
6806 "[(all [[of] the]|the)] items of type[s] %itemtypes%",
6807 "[(all [[of] the]|the|every)] block(s|[ ]types)",
6808 "[(all [[of] the]|the)] blocks of type[s] %itemtypes%"
6809 ]
6810 },
6811 {
6812 "id": "ExprItemsIn",
6813 "name": "Items In",
6814 "description": [
6815 "All items in an inventory. Useful for looping or storing in a list variable.",
6816 "Please note that the positions of the items in the inventory are not saved, only their order is preserved."
6817 ],
6818 "examples": [
6819 "loop all items in the player's inventory:",
6820 "\tloop-item is enchanted",
6821 "\tremove loop-item from the player",
6822 "set {inventory::%uuid of player%::*} to items in the player's inventory"
6823 ],
6824 "since": [
6825 "2.0"
6826 ],
6827 "return type": "Inventory Slot",
6828 "changers": [
6829 "add",
6830 "set",
6831 "remove",
6832 "remove all",
6833 "delete"
6834 ],
6835 "patterns": [
6836 "[(all [[of] the]|the)] items ([with]in|of|contained in|out of) (|inventor(y|ies)) %inventories%"
6837 ]
6838 },
6839 {
6840 "id": "ExprJoinSplit",
6841 "name": "Join & Split",
6842 "description": [
6843 "Joins several texts with a common delimiter (e.g. \", \"), or splits a text into multiple texts at a given delimiter."
6844 ],
6845 "examples": [
6846 "message \"Online players: %join all players with \"\" | \"\"%\" # %all players% would use the default \"x, y, and z\"",
6847 "set {_s::*} to the string argument split at \",\""
6848 ],
6849 "since": [
6850 "2.1"
6851 ],
6852 "return type": "Text",
6853 "patterns": [
6854 "(concat[enate]|join) %strings% [(with|using|by) [[the] delimiter] %string%]",
6855 "split %string% (at|using|by) [[the] delimiter] %string%",
6856 "%string% split (at|using|by) [[the] delimiter] %string%"
6857 ]
6858 },
6859 {
6860 "id": "ExprLanguage",
6861 "name": "Language",
6862 "description": [
6863 "Currently selected game language of a player. The value of the language is not defined properly.",
6864 "The vanilla Minecraft client will use lowercase language / country pairs separated by an underscore, but custom resource packs may use any format they wish."
6865 ],
6866 "examples": [
6867 "message player's current language"
6868 ],
6869 "since": [
6870 "2.3"
6871 ],
6872 "return type": "Text",
6873 "patterns": [
6874 "[the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%",
6875 "%players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]"
6876 ]
6877 },
6878 {
6879 "id": "ExprLastDamageCause",
6880 "name": "Last Damage Cause",
6881 "description": [
6882 "Cause of last damage done to an entity"
6883 ],
6884 "examples": [
6885 "set last damage cause of event-entity to fire tick"
6886 ],
6887 "since": [
6888 "2.2-Fixes-V10"
6889 ],
6890 "return type": "Damage Cause",
6891 "changers": [
6892 "add",
6893 "set",
6894 "remove",
6895 "delete",
6896 "reset"
6897 ],
6898 "patterns": [
6899 "[the] last damage (cause|reason|type) of %livingentities%",
6900 "%livingentities%'[s] last damage (cause|reason|type)"
6901 ]
6902 },
6903 {
6904 "id": "ExprLastLoadedServerIcon",
6905 "name": "Last Loaded Server Icon",
6906 "description": [
6907 "Returns the last loaded server icon with the load server icon effect."
6908 ],
6909 "examples": [
6910 "set {server-icon} to the last loaded server icon"
6911 ],
6912 "since": [
6913 "2.3"
6914 ],
6915 "return type": "Object",
6916 "patterns": [
6917 "[the] [last[ly]] loaded server icon"
6918 ],
6919 "required plugins": [
6920 "Paper 1.12.2 or newer"
6921 ]
6922 },
6923 {
6924 "id": "ExprLastSpawnedEntity",
6925 "name": "Last Spawned Entity",
6926 "description": [
6927 "Holds the entity that was spawned most recently with the spawn effect, drop with the drop effect or shot with the shoot effect. Please note that even though you can spawn multiple mobs simultaneously (e.g. with 'spawn 5 creepers'), only the last spawned mob is saved and can be used. If you spawn an entity, shoot a projectile and drop an item you can however access all them together."
6928 ],
6929 "examples": [
6930 "spawn a priest",
6931 "set {healer::%spawned priest%} to true",
6932 "shoot an arrow from the last spawned entity",
6933 "ignite the shot projectile",
6934 "drop a diamond sword",
6935 "push last dropped item upwards"
6936 ],
6937 "since": [
6938 "1.3 (spawned entity), 2.0 (shot entity), 2.2-dev26 (dropped item)"
6939 ],
6940 "return type": "Entity",
6941 "changers": [
6942 "unknown"
6943 ],
6944 "patterns": [
6945 "[the] [last[ly]] (spawned|shot) %*entitydata%",
6946 "[the] [last[ly]] dropped (item)"
6947 ]
6948 },
6949 {
6950 "id": "ExprLeashHolder",
6951 "name": "Leash Holder",
6952 "description": [
6953 "Leash holder of a living entity."
6954 ],
6955 "examples": [
6956 "set {_example} to the leash holder of the target mob"
6957 ],
6958 "since": [
6959 "2.3"
6960 ],
6961 "return type": "Entity",
6962 "changers": [
6963 "add",
6964 "remove",
6965 "remove all"
6966 ],
6967 "patterns": [
6968 "[the] leash holder of %livingentity%",
6969 "%livingentity%'[s] leash holder"
6970 ]
6971 },
6972 {
6973 "id": "ExprLength",
6974 "name": "Length",
6975 "description": [
6976 "The length of a text, in number of characters."
6977 ],
6978 "examples": [
6979 "set {_l} to length of the string argument"
6980 ],
6981 "since": [
6982 "2.1"
6983 ],
6984 "return type": "integer",
6985 "patterns": [
6986 "[the] length of %strings%",
6987 "%strings%'[s] length"
6988 ]
6989 },
6990 {
6991 "id": "ExprLevel",
6992 "name": "Level",
6993 "description": [
6994 "The level of a player."
6995 ],
6996 "examples": [
6997 "reduce the victim's level by 1",
6998 "set the player's level to 0"
6999 ],
7000 "since": [
7001 "unknown (before 2.1)"
7002 ],
7003 "return type": "integer",
7004 "changers": [
7005 "add",
7006 "set",
7007 "remove",
7008 "delete",
7009 "reset"
7010 ],
7011 "patterns": [
7012 "[the] level of %players%",
7013 "%players%'[s] level"
7014 ]
7015 },
7016 {
7017 "id": "ExprLevelProgress",
7018 "name": "Level Progress",
7019 "description": [
7020 "The player's progress in reaching the next level, this represents the experience bar in the game. Please note that this value is between 0 and 1 (e.g. 0.5 = half experience bar).",
7021 "Changing this value can cause the player's level to change if the resulting level progess is negative or larger than 1, e.g. increase the player's level progress by 0.5 will make the player gain a level if his progress was more than 50%."
7022 ],
7023 "examples": [
7024 "# use the exp bar as mana",
7025 "on rightclick with a blaze rod:",
7026 "\tplayer's level progress is larger than 0.2",
7027 "\tshoot a fireball from the player",
7028 "\treduce the player's level progress by 0.2",
7029 "every 2 seconds:",
7030 "\tloop all players:",
7031 "\t\tlevel progress of loop-player is smaller than 0.9:",
7032 "\t\t\tincrease level progress of the loop-player by 0.1",
7033 "\t\telse:",
7034 "\t\t\tset level progress of the loop-player to 0.99",
7035 "on xp spawn:",
7036 "\tcancel event"
7037 ],
7038 "since": [
7039 "2.0"
7040 ],
7041 "return type": "float",
7042 "changers": [
7043 "add",
7044 "set",
7045 "remove",
7046 "delete",
7047 "reset"
7048 ],
7049 "patterns": [
7050 "[the] level progress of %players%",
7051 "%players%'[s] level progress"
7052 ]
7053 },
7054 {
7055 "id": "ExprLightLevel",
7056 "name": "Light Level",
7057 "description": [
7058 "Gets the light level at a certain location which ranges from 0 to 15.",
7059 "It can be separated into sunlight (15 = direct sunlight, 1-14 = indirect) and block light (torches, glowstone, etc.). The total light level of a block is the maximum of the two different light types."
7060 ],
7061 "examples": [
7062 "# set vampire players standing in bright sunlight on fire",
7063 "every 5 seconds:",
7064 "\tloop all players:",
7065 "\t\t{vampire::%uuid of loop-player%} is true",
7066 "\t\tsunlight level at the loop-player is greater than 10",
7067 "\t\tignite the loop-player for 5 seconds"
7068 ],
7069 "since": [
7070 "1.3.4"
7071 ],
7072 "return type": "byte",
7073 "patterns": [
7074 "[(sky|sun|block)[ ]]light[ ]level [(of|%direction%) %location%]"
7075 ]
7076 },
7077 {
7078 "id": "ExprLocationOf",
7079 "name": "Location",
7080 "description": [
7081 "The location of a block or entity. This not only represents the x, y and z coordinates of the location but also includes the world and the direction an entity is looking (e.g. teleporting to a saved location will make the teleported entity face the same saved direction every time).",
7082 "Please note that the location of an entity is at it's feet, use head location to get the location of the head."
7083 ],
7084 "examples": [
7085 "set {home::%uuid of player%} to the location of the player",
7086 "message \"You home was set to %player's location% in %player's world%.\""
7087 ],
7088 "since": [
7089 ""
7090 ],
7091 "return type": "Location",
7092 "changers": [
7093 "unknown"
7094 ],
7095 "patterns": [
7096 "(location|position) of %location%",
7097 "%location%'[s] (location|position)"
7098 ]
7099 },
7100 {
7101 "id": "ExprLocation",
7102 "name": "Location",
7103 "description": [
7104 "The location where an event happened (e.g. at an entity or block), or a location relative to another (e.g. 1 meter above another location)."
7105 ],
7106 "examples": [
7107 "drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'",
7108 "set {_loc} to the location 1 meter above the player"
7109 ],
7110 "since": [
7111 "2.0"
7112 ],
7113 "return type": "Location",
7114 "changers": [
7115 "unknown"
7116 ],
7117 "patterns": [
7118 "[the] [event-](location|position)",
7119 "[the] (location|position) %directions% [%location%]"
7120 ]
7121 },
7122 {
7123 "id": "ExprLocationAt",
7124 "name": "Location At",
7125 "description": [
7126 "Allows to create a location from three coordinates and a world."
7127 ],
7128 "examples": [
7129 "set {_loc} to the location at arg-1, arg-2, arg-3 of the world arg-4",
7130 "distance between the player and the location (0, 0, 0) is less than 200"
7131 ],
7132 "since": [
7133 "2.0"
7134 ],
7135 "return type": "Location",
7136 "patterns": [
7137 "[the] (location|position) [at] [(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[)] [[(in|of) [[the] world]] %world%]"
7138 ]
7139 },
7140 {
7141 "id": "ExprLoopValue",
7142 "name": "Loop value",
7143 "description": [
7144 "The currently looped value."
7145 ],
7146 "examples": [
7147 "# countdown:",
7148 "loop 10 times:",
7149 "\tmessage \"%11 - loop-number%\"",
7150 "\twait a second",
7151 "# generate a 10x10 floor made of randomly coloured wool below the player:",
7152 "loop blocks from the block below the player to the block 10 east of the block below the player:",
7153 "\tloop blocks from the loop-block to the block 10 north of the loop-block:",
7154 "\t\tset loop-block-2 to any wool"
7155 ],
7156 "since": [
7157 "1.0"
7158 ],
7159 "return type": "Object",
7160 "changers": [
7161 "unknown"
7162 ],
7163 "patterns": [
7164 "[the] loop-<.+>"
7165 ]
7166 },
7167 {
7168 "id": "ExprLore",
7169 "name": "Lore",
7170 "description": [
7171 "An item's lore."
7172 ],
7173 "examples": [
7174 "set the 1st line of the item's lore to \"<orange>Excalibur 2.0\""
7175 ],
7176 "since": [
7177 "2.1"
7178 ],
7179 "return type": "Text",
7180 "changers": [
7181 "unknown"
7182 ],
7183 "patterns": [
7184 "[the] lore of %itemstack/itemtype%",
7185 "%itemstack/itemtype%'[s] lore",
7186 "[the] line %number% of [the] lore of %itemstack/itemtype%",
7187 "[the] line %number% of %itemstack/itemtype%'[s] lore",
7188 "[the] %number%(st|nd|rd|th) line of [the] lore of %itemstack/itemtype%",
7189 "[the] %number%(st|nd|rd|th) line of %itemstack/itemtype%'[s] lore"
7190 ]
7191 },
7192 {
7193 "id": "ExprMOTD",
7194 "name": "MOTD",
7195 "description": [
7196 "The message of the day in the server list. This can be changed in a server list ping event only.",
7197 "'default MOTD' returns the default MOTD always and can't be changed."
7198 ],
7199 "examples": [
7200 "on server list ping:",
7201 "\tset the motd to \"Join now!\""
7202 ],
7203 "since": [
7204 "2.3"
7205 ],
7206 "return type": "Text",
7207 "changers": [
7208 "set",
7209 "delete",
7210 "reset"
7211 ],
7212 "patterns": [
7213 "[the] [(default)|(shown|displayed)] (MOTD|message of [the] day)"
7214 ]
7215 },
7216 {
7217 "id": "ExprMaxHealth",
7218 "name": "Max Health",
7219 "description": [
7220 "The maximum health of an entity, e.g. 10 for a player."
7221 ],
7222 "examples": [
7223 "on join:",
7224 "\tset the maximum health of the player to 100",
7225 "spawn a giant",
7226 "set the last spawned entity's max health to 1000"
7227 ],
7228 "since": [
7229 "2.0"
7230 ],
7231 "return type": "double",
7232 "changers": [
7233 "add",
7234 "set",
7235 "remove",
7236 "reset"
7237 ],
7238 "patterns": [
7239 "[the] max[imum] health of %livingentities%",
7240 "%livingentities%'[s] max[imum] health"
7241 ]
7242 },
7243 {
7244 "id": "ExprMaxPlayers",
7245 "name": "Max Players",
7246 "description": [
7247 "The count of max players. This can be changed in a server list ping event only.",
7248 "'real max players' returns the real count of max players of the server always and can't be changed."
7249 ],
7250 "examples": [
7251 "on server list ping:",
7252 "\tset the max players count to (online players count + 1)"
7253 ],
7254 "since": [
7255 "2.3"
7256 ],
7257 "return type": "Number",
7258 "changers": [
7259 "add",
7260 "set",
7261 "remove",
7262 "delete",
7263 "reset"
7264 ],
7265 "patterns": [
7266 "[the] [((real|default)|(fake|shown|displayed))] max[imum] player[s] [(count|amount|number|size)]",
7267 "[the] [((real|default)|(fake|shown|displayed))] max[imum] (count|amount|number|size) of players"
7268 ]
7269 },
7270 {
7271 "id": "ExprMaxStack",
7272 "name": "Maximum Stack Size",
7273 "description": [
7274 "The maximum stack size of the specified material, e.g. 64 for torches, 16 for buckets, and 1 for swords."
7275 ],
7276 "examples": [
7277 "send \"You can only pick up %max stack size of player's tool% of %type of (player's tool)%\" to player"
7278 ],
7279 "since": [
7280 "2.1"
7281 ],
7282 "return type": "integer",
7283 "patterns": [
7284 "[the] max[imum] stack[[ ]size] of %itemstack%",
7285 "%itemstack%'[s] max[imum] stack[[ ]size]"
7286 ]
7287 },
7288 {
7289 "id": "ExprMe",
7290 "name": "Me",
7291 "description": [
7292 "A 'me' expression that can be used in effect commands only."
7293 ],
7294 "examples": [
7295 "!heal me",
7296 "!kick myself",
7297 "!give a diamond axe to me"
7298 ],
7299 "since": [
7300 "2.1.1"
7301 ],
7302 "return type": "Command Sender",
7303 "patterns": [
7304 "me",
7305 "my[self]"
7306 ]
7307 },
7308 {
7309 "id": "ExprMessage",
7310 "name": "Message",
7311 "description": [
7312 "The (chat) message of a chat event, the join message of a join event, the quit message of a quit event, or the death message on a death event. This expression is mostly useful for being changed."
7313 ],
7314 "examples": [
7315 "on chat:",
7316 "\tplayer has permission \"admin\"",
7317 "\tset message to \"<red>%message%\"",
7318 "",
7319 "on first join:",
7320 "\tset join message to \"Welcome %player% to our awesome server!\"",
7321 "",
7322 "on join:",
7323 "\tplayer has played before",
7324 "\tset join message to \"Welcome back, %player%!\"",
7325 "",
7326 "on quit:",
7327 "\tset quit message to \"%player% left this awesome server!\"",
7328 "",
7329 "on death:",
7330 "\tset the death message to \"%player% died!\""
7331 ],
7332 "since": [
7333 "1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message)"
7334 ],
7335 "return type": "Text",
7336 "changers": [
7337 "set"
7338 ],
7339 "patterns": [
7340 "[the] [chat( |-)]message",
7341 "[the] (join|log[ ]in)( |-)message",
7342 "[the] (quit|leave|log[ ]out|kick)( |-)message",
7343 "[the] death( |-)message"
7344 ]
7345 },
7346 {
7347 "id": "ExprMetadata",
7348 "name": "Metadata",
7349 "description": [
7350 "Metadata is a way to store temporary data on entities, blocks and more that disappears after a server restart."
7351 ],
7352 "examples": [
7353 "set metadata value \"healer\" of player to true",
7354 "broadcast \"%metadata value \"\"healer\"\" of player%\"",
7355 "clear metadata value \"healer\" of player"
7356 ],
7357 "since": [
7358 "2.2-dev36"
7359 ],
7360 "return type": "Object",
7361 "changers": [
7362 "set",
7363 "delete"
7364 ],
7365 "patterns": [
7366 "metadata [(value|tag)[s]] %strings% of %metadataholders%",
7367 "%metadataholders%'[s] metadata [(value|tag)[s]] %string%"
7368 ]
7369 },
7370 {
7371 "id": "ExprPushedBlocks",
7372 "name": "Moved blocks",
7373 "description": [
7374 "Blocks which are moved in a piston event. Cannot be used outside of piston events."
7375 ],
7376 "examples": [
7377 "the moved blocks"
7378 ],
7379 "since": [
7380 "2.2-dev27"
7381 ],
7382 "return type": "Block",
7383 "changers": [
7384 "add",
7385 "set",
7386 "remove",
7387 "remove all",
7388 "delete"
7389 ],
7390 "patterns": [
7391 "[the] moved blocks"
7392 ]
7393 },
7394 {
7395 "id": "ExprName",
7396 "name": "Name / Display Name",
7397 "description": [
7398 "Represents a player's minecraft account name, chat display name, or playerlist name, or the custom name of an item, en entity or an inventory.",
7399 "The differences between the different names are:",
7400 "<ul>",
7401 "name: Minecraft account name of a player (unchangeable), or the custom name of an item or mob (changeable).",
7402 "display name: The name of a player as displayed in the chat and messages, e.g. when including %player% in a message. This name can be changed freely and can include colour codes, and is shared among all plugins (e.g. chat plugins will use a changed name).",
7403 "tab list name: The name of a player used in the player lists that usually opens with the tab key. Please note that this is limited to 16 characters, including colour codes which are counted as 2 characters each, and that no two players can have the same tab list name at the same time.",
7404 "</ul>"
7405 ],
7406 "examples": [
7407 "on join:",
7408 "\tplayer has permission \"name.red\"",
7409 "\tset the player's display name to \"<red>[admin]<gold>%name of player%\"",
7410 "\tset the player's tablist name to \"<green>%name of player%\"",
7411 "set the name of the player's tool to \"Legendary Sword of Awesomeness\""
7412 ],
7413 "since": [
7414 "1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)"
7415 ],
7416 "return type": "Text",
7417 "changers": [
7418 "unknown"
7419 ],
7420 "patterns": [
7421 "[the] (player|tab)[ ]list name[s] of %players%",
7422 "%players%'[s] (player|tab)[ ]list name[s]",
7423 "[the] (display|nick|chat)[ ]name[s] of %itemstacks/slots/livingentities/players/inventories%",
7424 "%itemstacks/slots/livingentities/players/inventories%'[s] (display|nick|chat)[ ]name[s]",
7425 "[the] name[s] of %itemstacks/slots/livingentities/players/inventories%",
7426 "%itemstacks/slots/livingentities/players/inventories%'[s] name[s]"
7427 ]
7428 },
7429 {
7430 "id": "ExprNamed",
7431 "name": "Named Item/Inventory",
7432 "description": [
7433 "Directly names an item/inventory, useful for defining a named item/inventory in a script. If you want to (re)name existing items/inventories you can either use this expression or use set <a href='#ExprName'>name of <item/inventory> to <text></code>."
7434 ],
7435 "examples": [
7436 "give a diamond sword of sharpness 100 named \"<gold>Excalibur\" to the player",
7437 "set tool of player to the player's tool named \"<gold>Wand\"",
7438 "set the name of the player's tool to \"<gold>Wand\"",
7439 "open hopper inventory named \"Magic Hopper\" to player"
7440 ],
7441 "since": [
7442 "2.0, 2.2-dev34 (inventories)"
7443 ],
7444 "return type": "Object",
7445 "patterns": [
7446 "%itemtype/inventorytype% (named|with name[s]) %string%"
7447 ]
7448 },
7449 {
7450 "id": "ExprNow",
7451 "name": "Now",
7452 "description": [
7453 "The current system time of the server. Use time to get the Minecraft time of a world."
7454 ],
7455 "examples": [
7456 "broadcast \"Current server time: %now%\""
7457 ],
7458 "since": [
7459 "1.4"
7460 ],
7461 "return type": "Date",
7462 "patterns": [
7463 "now"
7464 ]
7465 },
7466 {
7467 "id": "ExprNumbers",
7468 "name": "Numbers",
7469 "description": [
7470 "All numbers between two given numbers, useful for looping.",
7471 "Use 'numbers' if your start is not an integer and you want to keep the fractional part of the start number constant, or use 'integers' if you only want to loop integers.",
7472 "You may want to use the 'times' expression instead, for instance 'loop 5 times:'"
7473 ],
7474 "examples": [
7475 "loop numbers from 2.5 to 5.5: # loops 2.5, 3.5, 4.5, 5.5",
7476 "loop integers from 2.9 to 5.1: # same as '3 to 5', i.e. loops 3, 4, 5"
7477 ],
7478 "since": [
7479 "1.4.6"
7480 ],
7481 "return type": "Number",
7482 "patterns": [
7483 "[(all [[of] the]|the)] (numbers|integers) (between|from) %number% (and|to) %number%"
7484 ]
7485 },
7486 {
7487 "id": "ExprOfflinePlayers",
7488 "name": "Offline players",
7489 "description": [
7490 "All players that have ever joined the server. This includes the players currently online."
7491 ],
7492 "examples": [
7493 "send \"Size of all players who have joined the server: %size of all offline players%\""
7494 ],
7495 "since": [
7496 "2.2-dev35"
7497 ],
7498 "return type": "Offline Player",
7499 "patterns": [
7500 "[(all [[of] the]|the)] offline[ ]players"
7501 ]
7502 },
7503 {
7504 "id": "ExprOnlinePlayersCount",
7505 "name": "Online Player Count",
7506 "description": [
7507 "The amount of online players. This can be changed in a",
7508 "server list ping event only to show fake online player amount.",
7509 "'real online player count' always returns the real count of online players and can't be changed.",
7510 "",
7511 "Fake online player count requires PaperSpigot 1.12.2+."
7512 ],
7513 "examples": [
7514 "on server list ping:",
7515 "\t# This will make the max players count 5 if there are 4 players online.",
7516 "\tset the fake max players count to (online players count + 1)"
7517 ],
7518 "since": [
7519 "2.3"
7520 ],
7521 "return type": "Number",
7522 "changers": [
7523 "add",
7524 "set",
7525 "remove",
7526 "delete",
7527 "reset"
7528 ],
7529 "patterns": [
7530 "[the] [((real|default)|(fake|shown|displayed))] [online] player (count|amount|number)",
7531 "[the] [((real|default)|(fake|shown|displayed))] (count|amount|number|size) of online players"
7532 ]
7533 },
7534 {
7535 "id": "ExprOpenedInventory",
7536 "name": "Opened Inventory",
7537 "description": [
7538 "Return the currently opened inventory of a player.",
7539 "If no inventory is open, it returns the own player's crafting inventory."
7540 ],
7541 "examples": [
7542 "set slot 1 of player's current inventory to diamond sword"
7543 ],
7544 "since": [
7545 "2.2-dev24, 2.2-dev35 (Just 'current inventory' works in player events)"
7546 ],
7547 "return type": "Inventory",
7548 "changers": [
7549 "add",
7550 "set",
7551 "remove",
7552 "remove all",
7553 "delete"
7554 ],
7555 "patterns": [
7556 "[the] (current|open|top) inventory [of %players%]",
7557 "%players%'[s] (current|open|top) inventory"
7558 ]
7559 },
7560 {
7561 "id": "ExprParse",
7562 "name": "Parse",
7563 "description": [
7564 "Parses text as a given type, or as a given pattern.",
7565 "This expression can be used in two different ways: One which parses the entire text as a single instance of a type, e.g. as a number, and one that parses the text according to a pattern.",
7566 "If the given text could not be parsed, this expression will return nothing and the parse error will be set if some information is available.",
7567 "Some notes about parsing with a pattern:",
7568 "- The pattern must be a Skript pattern, e.g. percent signs are used to define where to parse which types, e.g. put a %number% or %items% in the pattern if you expect a number or some items there.",
7569 "- You have to save the expression's value in a list variable, e.g. set {parsed::*} to message parsed as \"...\".",
7570 "- The list variable will contain the parsed values from all %types% in the pattern in order. If a type was plural, e.g. %items%, the variable's value at the respective index will be a list variable, e.g. the values will be stored in {parsed::1::*}, not {parsed::1}."
7571 ],
7572 "examples": [
7573 "set {var} to line 1 parsed as number",
7574 "on chat:",
7575 "\tset {var::*} to message parsed as \"buying %items% for %money%\"",
7576 "\tif parse error is set:",
7577 "\t\tmessage \"%parse error%\"",
7578 "\telse if {var::*} is set:",
7579 "\t\tcancel event",
7580 "\t\tremove {var::2} from the player's balance",
7581 "\t\tgive {var::1::*} to the player"
7582 ],
7583 "since": [
7584 "2.0"
7585 ],
7586 "return type": "Object",
7587 "patterns": [
7588 "%string% parsed as (%*classinfo%|\"<.*>\")"
7589 ]
7590 },
7591 {
7592 "id": "ExprParseError",
7593 "name": "Parse Error",
7594 "description": [
7595 "The error which caused the last parse operation to fail, which might not be set if a pattern was used and the pattern didn't match the provided text at all."
7596 ],
7597 "examples": [
7598 "set {var} to line 1 parsed as integer",
7599 "if {var} is not set:",
7600 "\tparse error is set:",
7601 "\t\tmessage \"<red>Line 1 is invalid: %last parse error%\"",
7602 "\telse:",
7603 "\t\tmessage \"<red>Please put an integer on line 1!\""
7604 ],
7605 "since": [
7606 "2.0"
7607 ],
7608 "return type": "Text",
7609 "patterns": [
7610 "[the] [last] [parse] error"
7611 ]
7612 },
7613 {
7614 "id": "ExprPassenger",
7615 "name": "Passenger",
7616 "description": [
7617 "The passenger of a vehicle, or the rider of a mob.",
7618 "For 1.11.2 and above, it returns a list of passengers and you can use all changers in it.",
7619 "See also: vehicle"
7620 ],
7621 "examples": [
7622 "#for 1.11 and lower",
7623 "passenger of the minecart is a creeper or a cow",
7624 "the saddled pig's passenger is a player",
7625 "#for 1.11.2+",
7626 "passengers of the minecart contains a creeper or a cow",
7627 "the boat's passenger contains a pig",
7628 "add a cow and a zombie to passengers of last spawned boat",
7629 "set passengers of player's vehicle to a pig and a horse",
7630 "remove all pigs from player's vehicle",
7631 "clear passengers of boat"
7632 ],
7633 "since": [
7634 "2.0, 2.2-dev26 (Multiple passengers for 1.11.2+)"
7635 ],
7636 "return type": "Entity",
7637 "changers": [
7638 "add",
7639 "set",
7640 "remove",
7641 "remove all",
7642 "delete",
7643 "reset"
7644 ],
7645 "patterns": [
7646 "[the] passenger[s] of %entities%",
7647 "%entities%'[s] passenger[s]"
7648 ]
7649 },
7650 {
7651 "id": "ExprPing",
7652 "name": "Ping",
7653 "description": [
7654 "Pings of players, as Minecraft server knows them. Note that they will almost certainly be different from the ones you'd get from using ICMP echo requests. This expression is only supported on some server software (PaperSpigot)."
7655 ],
7656 "examples": [
7657 "command /ping <player=%player%>:",
7658 "\ttrigger:",
7659 "\t\tsend \"%arg-1%'s ping is %arg-1's ping%\""
7660 ],
7661 "since": [
7662 "2.2-dev36"
7663 ],
7664 "return type": "Number",
7665 "patterns": [
7666 "[the] ping of %players%",
7667 "%players%'[s] ping"
7668 ]
7669 },
7670 {
7671 "id": "ExprPlayerlistHeaderFooter",
7672 "name": "Player List Header and Footer",
7673 "description": [
7674 "The message above and below the player list in the tab menu."
7675 ],
7676 "examples": [
7677 "set all players tab list header to \"Welcome to the Server!\"",
7678 "send \"%the player's tab list header%\" to player",
7679 "reset all player's tab list header"
7680 ],
7681 "since": [
7682 "2.4"
7683 ],
7684 "return type": "Text",
7685 "changers": [
7686 "set",
7687 "delete",
7688 "reset"
7689 ],
7690 "patterns": [
7691 "[the] %players% (player|tab) list (header|footer)"
7692 ],
7693 "required plugins": [
7694 "Spigot 1.13 or newer"
7695 ]
7696 },
7697 {
7698 "id": "ExprSkull",
7699 "name": "Player Skull",
7700 "description": [
7701 "Gets a skull item representing a player. Skulls for other entities are provided by the aliases."
7702 ],
7703 "examples": [
7704 "give the victim's skull to the attacker",
7705 "set the block at the entity to the entity's skull"
7706 ],
7707 "since": [
7708 "2.0"
7709 ],
7710 "return type": "Item Type",
7711 "patterns": [
7712 "[the] skull of %offlineplayers%",
7713 "%offlineplayers%'[s] skull"
7714 ]
7715 },
7716 {
7717 "id": "ExprPlayerWeather",
7718 "name": "Player Weather",
7719 "description": [
7720 "The weather for a player."
7721 ],
7722 "examples": [
7723 "set weather of arg-player to rainy",
7724 "reset player's weather",
7725 "if arg-player's weather is rainy"
7726 ],
7727 "since": [
7728 "2.2-dev34"
7729 ],
7730 "return type": "Weather Type",
7731 "changers": [
7732 "set",
7733 "reset"
7734 ],
7735 "patterns": [
7736 "[the] [(client|custom)] weather of %players%",
7737 "%players%'[s] [(client|custom)] weather"
7738 ]
7739 },
7740 {
7741 "id": "ExprProtocolVersion",
7742 "name": "Protocol Version",
7743 "description": [
7744 "The protocol version that will be sent as the protocol version of the server in a server list ping event. For more information and list of protocol versions visit wiki.vg.",
7745 "If this protocol version doesn't match with the protocol version of the client, the client will see the version string.",
7746 "But please note that, this expression has no visual effect over the version string. For example if the server uses PaperSpigot 1.12.2, and you make the protocol version 107 (1.9),",
7747 "the version string will not be \"Paper 1.9\", it will still be \"Paper 1.12.2\".",
7748 "But then you can customize the version string as you wish.",
7749 "Also if the protocol version of the player is higher than protocol version of the server, it will say",
7750 "\"Server out of date!\", and if vice-versa \"Client out of date!\" when you hover on the ping bars.",
7751 "",
7752 "This can be set in a server list ping event only",
7753 "(increase and decrease effects cannot be used because that wouldn't make sense)."
7754 ],
7755 "examples": [
7756 "on server list ping:",
7757 "\tset the version string to \"<light green>Version: <orange>%minecraft version%\"",
7758 "\tset the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always"
7759 ],
7760 "since": [
7761 "2.3"
7762 ],
7763 "return type": "Number",
7764 "changers": [
7765 "set"
7766 ],
7767 "patterns": [
7768 "[the] [(sent|required|fake)] protocol version [number]"
7769 ],
7770 "required plugins": [
7771 "Paper 1.12.2 or newer"
7772 ]
7773 },
7774 {
7775 "id": "ExprRandom",
7776 "name": "Random",
7777 "description": [
7778 "Gets a random item out of a set, e.g. a random player out of all players online."
7779 ],
7780 "examples": [
7781 "give a diamond to a random player out of all players",
7782 "give a random item out of all items to the player"
7783 ],
7784 "since": [
7785 "1.4.9"
7786 ],
7787 "return type": "Object",
7788 "changers": [
7789 "unknown"
7790 ],
7791 "patterns": [
7792 "[a] random %*classinfo% [out] of %objects%"
7793 ]
7794 },
7795 {
7796 "id": "ExprRandomNumber",
7797 "name": "Random Number",
7798 "description": [
7799 "A random number or integer between two given numbers. Use 'number' if you want any number with decimal parts, or use use 'integer' if you only want whole numbers.",
7800 "Please note that the order of the numbers doesn't matter, i.e. random number between 2 and 1 will work as well as random number between 1 and 2."
7801 ],
7802 "examples": [
7803 "set the player's health to a random number between 5 and 10",
7804 "send \"You rolled a %random integer from 1 to 6%!\" to the player"
7805 ],
7806 "since": [
7807 "1.4"
7808 ],
7809 "return type": "Number",
7810 "patterns": [
7811 "[a] random (integer|number) (from|between) %number% (to|and) %number%"
7812 ]
7813 },
7814 {
7815 "id": "ExprRawName",
7816 "name": "Raw Name",
7817 "description": [
7818 "The raw Minecraft material name of the given item. Note that this is not guaranteed to give same results on all servers."
7819 ],
7820 "examples": [
7821 "raw name of tool of player"
7822 ],
7823 "since": [
7824 "unknown (2.2)"
7825 ],
7826 "return type": "Text",
7827 "patterns": [
7828 "(raw|minecraft|vanilla) name[s] of %itemtypes%"
7829 ]
7830 },
7831 {
7832 "id": "ExprRemainingAir",
7833 "name": "Remaining Air",
7834 "description": [
7835 "How much time a player has left underwater before starting to drown."
7836 ],
7837 "examples": [
7838 "player's remaining air is less than 3 seconds:",
7839 "\tsend \"hurry, get to the surface!\" to the player"
7840 ],
7841 "since": [
7842 "unknown (before 2.1)"
7843 ],
7844 "return type": "Timespan",
7845 "changers": [
7846 "add",
7847 "set",
7848 "remove",
7849 "delete",
7850 "reset"
7851 ],
7852 "patterns": [
7853 "[the] remaining air of %livingentities%",
7854 "%livingentities%'[s] remaining air"
7855 ]
7856 },
7857 {
7858 "id": "ExprRespawnLocation",
7859 "name": "Respawn location",
7860 "description": [
7861 "The location that a player should respawn at. This is used within the respawn event."
7862 ],
7863 "examples": [
7864 "on respawn:",
7865 "\tset respawn location to {example::spawn}"
7866 ],
7867 "since": [
7868 "2.2-dev35"
7869 ],
7870 "return type": "Location",
7871 "changers": [
7872 "set"
7873 ],
7874 "patterns": [
7875 "[the] respawn location"
7876 ]
7877 },
7878 {
7879 "id": "ExprRound",
7880 "name": "Rounding",
7881 "description": [
7882 "Rounds numbers normally, up (ceiling) or down (floor) respectively."
7883 ],
7884 "examples": [
7885 "set {var} to rounded health of player",
7886 "set line 1 of the block to rounded \"%(1.5 * player's level)%\"",
7887 "add rounded down argument to the player's health"
7888 ],
7889 "since": [
7890 "2.0"
7891 ],
7892 "return type": "long",
7893 "patterns": [
7894 "(a|the|) round[ed] down %number%",
7895 "(a|the|) round[ed] %number%",
7896 "(a|the|) round[ed] up %number%"
7897 ]
7898 },
7899 {
7900 "id": "ExprSaturation",
7901 "name": "Saturation",
7902 "description": [
7903 "The saturation of a player. If used in a player event, it can be omitted and will default to event-player."
7904 ],
7905 "examples": [
7906 "set saturation of player to 20"
7907 ],
7908 "since": [
7909 "2.2-Fixes-v10, 2.2-dev35 (fully modifiable)"
7910 ],
7911 "return type": "Number",
7912 "changers": [
7913 "add",
7914 "set",
7915 "remove",
7916 "delete",
7917 "reset"
7918 ],
7919 "patterns": [
7920 "[the] saturation [of %players%]",
7921 "%players%'[s] saturation"
7922 ]
7923 },
7924 {
7925 "id": "ExprScoreboardTags",
7926 "name": "Scoreboard Tags",
7927 "description": [
7928 "Scoreboard tags are simple list of texts stored directly in the data of an entity.",
7929 "So this is a Minecraft related thing, not Bukkit, so the tags will not get removed when the server stops. You can visit visit Minecraft Wiki for more info.",
7930 "This is changeable and valid for any type of entity. Also you can use use the Has Scoreboard Tag condition to check whether an entity has the given tags.",
7931 "",
7932 "Requires Minecraft 1.11+ (actually added in 1.9 to the game, but added in 1.11 to Spigot)."
7933 ],
7934 "examples": [
7935 "on spawn of a monster:",
7936 "\tif the spawn reason is mob spawner:",
7937 "\t\tadd \"spawned by a spawner\" to the scoreboard tags of event-entity",
7938 "",
7939 "on death of a monster:",
7940 "\tif the attacker is a player:",
7941 "\t\tif the victim doesn't have the scoreboard tag \"spawned by a spawner\":",
7942 "\t\t\tadd 1$ to attacker's balance"
7943 ],
7944 "since": [
7945 "2.3"
7946 ],
7947 "return type": "Text",
7948 "changers": [
7949 "add",
7950 "set",
7951 "remove",
7952 "delete",
7953 "reset"
7954 ],
7955 "patterns": [
7956 "[(all [[of] the]|the)] scoreboard tags of %entities%",
7957 "%entities%'[s] scoreboard tags"
7958 ]
7959 },
7960 {
7961 "id": "ExprScript",
7962 "name": "Script Name",
7963 "description": [
7964 "Holds the current script's name (the file name without '.sk')."
7965 ],
7966 "examples": [
7967 "on script load:",
7968 "\tset {running::%script%} to true",
7969 "on script unload:",
7970 "\tset {running::%script%} to false"
7971 ],
7972 "since": [
7973 "2.0"
7974 ],
7975 "return type": "Text",
7976 "patterns": [
7977 "[the] script[['s] name]",
7978 "name of [the] script"
7979 ]
7980 },
7981 {
7982 "id": "ExprServerIcon",
7983 "name": "Server Icon",
7984 "description": [
7985 "Icon of the server in the server list. Can be set to an icon that loaded using the",
7986 "load server icon effect,",
7987 "or can be reset to the default icon in a server list ping.",
7988 "'default server icon' returns the default server icon (server-icon.png) always and cannot be changed."
7989 ],
7990 "examples": [
7991 "on script load:",
7992 "\tset {server-icons::default} to the default server icon"
7993 ],
7994 "since": [
7995 "2.3"
7996 ],
7997 "return type": "Object",
7998 "patterns": [
7999 "[the] [((default)|(shown|sent))] [server] icon"
8000 ],
8001 "required plugins": [
8002 "Paper 1.12.2 or newer"
8003 ]
8004 },
8005 {
8006 "id": "ExprShooter",
8007 "name": "Shooter",
8008 "description": [
8009 "The shooter of a projectile."
8010 ],
8011 "examples": [
8012 "shooter is a skeleton"
8013 ],
8014 "since": [
8015 "1.3.7"
8016 ],
8017 "return type": "Living Entity",
8018 "changers": [
8019 "add",
8020 "set",
8021 "remove",
8022 "remove all"
8023 ],
8024 "patterns": [
8025 "[the] shooter [of %projectile%]"
8026 ]
8027 },
8028 {
8029 "id": "ExprShuffledList",
8030 "name": "Shuffled List",
8031 "description": [
8032 "Shuffles given list randomly. This is done by replacing indices by random numbers in resulting list."
8033 ],
8034 "examples": [
8035 "set {_list::*} to shuffled {_list::*}"
8036 ],
8037 "since": [
8038 "2.2-dev32"
8039 ],
8040 "return type": "Object",
8041 "patterns": [
8042 "shuffled %objects%"
8043 ]
8044 },
8045 {
8046 "id": "ExprSignText",
8047 "name": "Sign Text",
8048 "description": [
8049 "A line of text on a sign. Can be changed, but remember that there is a 16 character limit per line (including colour codes that use 2 characters each)."
8050 ],
8051 "examples": [
8052 "on rightclick on sign:",
8053 "\tline 2 of the clicked block is \"[Heal]\":",
8054 "\t\theal the player",
8055 "\tset line 3 to \"%player%\""
8056 ],
8057 "since": [
8058 "1.3"
8059 ],
8060 "return type": "Text",
8061 "changers": [
8062 "set",
8063 "delete"
8064 ],
8065 "patterns": [
8066 "[the] line %number% [of %block%]",
8067 "[the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]"
8068 ]
8069 },
8070 {
8071 "id": "ExprSlotIndex",
8072 "name": "Slot Index",
8073 "description": [
8074 "Index of an an inventory slot. Other types of slots may or may not have indices. Note that comparing slots with numbers is also possible; if index of slot is same as the number, comparisonsucceeds. This expression is mainly for the cases where you must for some reason save the slot numbers."
8075 ],
8076 "examples": [
8077 "if index of event-slot is 10:",
8078 "\tsend \"You bought a pie!\""
8079 ],
8080 "since": [
8081 "2.2-dev35"
8082 ],
8083 "return type": "integer",
8084 "patterns": [
8085 "[the] (index|indices) of %slots%",
8086 "%slots%'[s] (index|indices)"
8087 ]
8088 },
8089 {
8090 "id": "ExprSortedList",
8091 "name": "Sorted List",
8092 "description": [
8093 "Sorts given list in natural order. All objects in list must be comparable;",
8094 "if they're not, this expression will return nothing."
8095 ],
8096 "examples": [
8097 "set {_sorted::*} to sorted {_players::*}"
8098 ],
8099 "since": [
8100 "2.2-dev19"
8101 ],
8102 "return type": "Object",
8103 "patterns": [
8104 "sorted %objects%"
8105 ]
8106 },
8107 {
8108 "id": "ExprSpawn",
8109 "name": "Spawn",
8110 "description": [
8111 "The spawn point of a world."
8112 ],
8113 "examples": [
8114 "teleport all players to spawn",
8115 "set the spawn point of \"world\" to the player's location"
8116 ],
8117 "since": [
8118 "1.4.2"
8119 ],
8120 "return type": "Location",
8121 "changers": [
8122 "set"
8123 ],
8124 "patterns": [
8125 "[the] spawn[s] [(point|location)[s]] [of %worlds%]",
8126 "%worlds%'[s] spawn[s] [(point|location)[s]]"
8127 ]
8128 },
8129 {
8130 "id": "ExprSpawnReason",
8131 "name": "Spawn Reason",
8132 "description": [
8133 "The spawn reason in a spawn event."
8134 ],
8135 "examples": [
8136 "on spawn:",
8137 "\tspawn reason is reinforcements or breeding"
8138 ],
8139 "since": [
8140 "2.3"
8141 ],
8142 "return type": "Spawn Reason",
8143 "patterns": [
8144 "[the] spawn[ing] reason"
8145 ]
8146 },
8147 {
8148 "id": "ExprSpecialNumber",
8149 "name": "Special Number",
8150 "description": [
8151 "Special number values, namely NaN, Infinity and -Infinity"
8152 ],
8153 "examples": [
8154 "if {_number} is NaN value:"
8155 ],
8156 "since": [
8157 "2.2-dev32d"
8158 ],
8159 "return type": "Number",
8160 "patterns": [
8161 "(NaN|[(-|minus)](infinity|∞)) value",
8162 "value of (NaN|[(-|minus)](infinity|∞))"
8163 ]
8164 },
8165 {
8166 "id": "ExprSpeed",
8167 "name": "Speed",
8168 "description": [
8169 "A player's walking or flying speed. Both can be changed, but values must be between -1 and 1 (excessive values will be changed to -1 or 1 respectively). Negative values reverse directions.",
8170 "Please note that changing a player's speed will change his FOV just like potions do."
8171 ],
8172 "examples": [
8173 "set the player's walk speed to 1",
8174 "increase the argument's fly speed by 0.1"
8175 ],
8176 "since": [
8177 "unknown (before 2.1)"
8178 ],
8179 "return type": "float",
8180 "changers": [
8181 "add",
8182 "set",
8183 "remove",
8184 "reset"
8185 ],
8186 "patterns": [
8187 "[the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%",
8188 "%players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed"
8189 ]
8190 },
8191 {
8192 "id": "ExprSubstring",
8193 "name": "Subtext",
8194 "description": [
8195 "Extracts part of a text. You can either get the first <x> characters, the last <x> characters, or the characters between indices <x> and <y>. The indices <x> and <y> should be between 1 and the length of the text (other values will be fit into this range)."
8196 ],
8197 "examples": [
8198 "set {_s} to the first 5 characters of the text argument",
8199 "message \"%subtext of {_s} from characters 2 to (the length of {_s} - 1)%\" # removes the first and last character from {_s} and sends it to the player or console"
8200 ],
8201 "since": [
8202 "2.1"
8203 ],
8204 "return type": "Text",
8205 "patterns": [
8206 "[the] (part|sub[ ](text|string)) of %strings% (between|from) (ind(ex|ices)|character[s]|) %number% (and|to) (index|character|) %number%",
8207 "[the] (first|last) [%number%] character[s] of %strings%",
8208 "[the] %number% (first|last) characters of %strings%"
8209 ]
8210 },
8211 {
8212 "id": "ExprTPS",
8213 "name": "TPS (ticks per second)",
8214 "description": [
8215 "Returns the 3 most recent TPS readings, like the /tps command. This expression is only supported on some server software (PaperSpigot)."
8216 ],
8217 "examples": [
8218 "broadcast \"%tps%\""
8219 ],
8220 "since": [
8221 "2.2-dev36"
8222 ],
8223 "return type": "double",
8224 "patterns": [
8225 "tps from [the] last ([1] minute|1[ ]m[inute])",
8226 "tps from [the] last 5[ ]m[inutes]",
8227 "tps from [the] last 15[ ]m[inutes]",
8228 "[the] tps"
8229 ]
8230 },
8231 {
8232 "id": "ExprTamer",
8233 "name": "Tamer",
8234 "description": [
8235 "The tamer of an entity. Can only be used in entity tame events. You can use 'event-entity' to refer tamed entity itself."
8236 ],
8237 "examples": [
8238 "on tame:",
8239 "\tif the tamer is a player:",
8240 "\t\tsend \"someone tamed something!\" to console"
8241 ],
8242 "since": [
8243 "2.2-dev25"
8244 ],
8245 "return type": "Player",
8246 "changers": [
8247 "add",
8248 "remove",
8249 "remove all"
8250 ],
8251 "patterns": [
8252 "[the] tamer"
8253 ]
8254 },
8255 {
8256 "id": "ExprTarget",
8257 "name": "Target",
8258 "description": [
8259 "For players this is the entity at the crosshair, while for mobs and experience orbs it represents the entity they are attacking/following (if any)."
8260 ],
8261 "examples": [
8262 "on entity target:",
8263 "\tentity's target is a player",
8264 "\tsend \"You're being followed by an %entity%!\" to target of entity"
8265 ],
8266 "since": [
8267 "unknown (before 2.1)"
8268 ],
8269 "return type": "Entity",
8270 "changers": [
8271 "add",
8272 "set",
8273 "remove",
8274 "remove all",
8275 "delete"
8276 ],
8277 "patterns": [
8278 "[the] target[[ed] %*entitydata%] [of %livingentities%]",
8279 "%livingentities%'[s] target[[ed] %*entitydata%]"
8280 ]
8281 },
8282 {
8283 "id": "ExprTargetedBlock",
8284 "name": "Targeted Block",
8285 "description": [
8286 "The block at the crosshair. This regards all blocks that are not air as fully solid, e.g. torches will be like a solid stone block for this expression."
8287 ],
8288 "examples": [
8289 "# A command to set the block a player looks at to a specific type:",
8290 "command /setblock <material>:",
8291 "\ttrigger:",
8292 "\t\tset targeted block to argument"
8293 ],
8294 "since": [
8295 "1.0"
8296 ],
8297 "return type": "Block",
8298 "changers": [
8299 "add",
8300 "set",
8301 "remove",
8302 "remove all",
8303 "delete"
8304 ],
8305 "patterns": [
8306 "[the] target[ed] block[s] [of %players%]",
8307 "%players%'[s] target[ed] block[s]",
8308 "[the] actual[ly] target[ed] block[s] [of %players%]",
8309 "%players%'[s] actual[ly] target[ed] block[s]"
8310 ]
8311 },
8312 {
8313 "id": "ExprTeleportCause",
8314 "name": "Teleport Cause",
8315 "description": [
8316 "The teleport cause within a player teleport event."
8317 ],
8318 "examples": [
8319 "on teleport",
8320 "\tteleport cause is nether portal, end portal or end gateway"
8321 ],
8322 "since": [
8323 "2.2-dev35"
8324 ],
8325 "return type": "Teleport Cause",
8326 "patterns": [
8327 "[the] teleport (cause|reason|type)"
8328 ]
8329 },
8330 {
8331 "id": "ExprTemperature",
8332 "name": "Temperature",
8333 "description": [
8334 "Temperature at given block."
8335 ],
8336 "examples": [
8337 "message \"%temperature of the targeted block%\""
8338 ],
8339 "since": [
8340 "2.2-dev35"
8341 ],
8342 "return type": "double",
8343 "patterns": [
8344 "[the] temperature[s] of %blocks%",
8345 "%blocks%'[s] temperature[s]"
8346 ]
8347 },
8348 {
8349 "id": "ExprTernary",
8350 "name": "Ternary",
8351 "description": [
8352 "A shorthand expression for returning something based on a condition."
8353 ],
8354 "examples": [
8355 "set {points} to 500 if {admin::%player's uuid%} is set else 100"
8356 ],
8357 "since": [
8358 "2.2-dev36"
8359 ],
8360 "return type": "Object",
8361 "patterns": [
8362 "%objects% if <.+>[,] (otherwise|else) %objects%"
8363 ]
8364 },
8365 {
8366 "id": "ExprTime",
8367 "name": "Time",
8368 "description": [
8369 "The time of a world."
8370 ],
8371 "examples": [
8372 "time in world is between 18:00 and 6:00:",
8373 "\tbroadcast \"It's night-time, watch out for monsters!\""
8374 ],
8375 "since": [
8376 "1.0"
8377 ],
8378 "return type": "Time",
8379 "changers": [
8380 "add",
8381 "set",
8382 "remove"
8383 ],
8384 "patterns": [
8385 "[the] time[s] [([with]in|of) %worlds%]",
8386 "%worlds%'[s] time[s]"
8387 ]
8388 },
8389 {
8390 "id": "ExprTool",
8391 "name": "Tool",
8392 "description": [
8393 "The item a player is holding."
8394 ],
8395 "examples": [
8396 "player is holding a pickaxe",
8397 "# is the same as",
8398 "player's tool is a pickaxe",
8399 "player's off hand tool is shield #Only for Minecraft 1.9"
8400 ],
8401 "since": [
8402 "1.0"
8403 ],
8404 "return type": "Inventory Slot",
8405 "changers": [
8406 "add",
8407 "set",
8408 "remove",
8409 "remove all",
8410 "delete"
8411 ],
8412 "patterns": [
8413 "[the] (tool|held item|weapon) [of %livingentities%]",
8414 "%livingentities%'[s] (tool|held item|weapon)"
8415 ]
8416 },
8417 {
8418 "id": "ExprTypeOf",
8419 "name": "Type of",
8420 "description": [
8421 "Type of a block, an item, en entity or an inventory.",
8422 "Types of items and blocks are item types similar to them but have amounts",
8423 "of one, no display names and, on Minecraft 1.13 and newer versions, are undamaged.",
8424 "Types of entities and inventories are entity types and inventory types known to Skript."
8425 ],
8426 "examples": [
8427 "on rightclick on an entity:",
8428 "\tmessage \"This is a %type of clicked entity%!\""
8429 ],
8430 "since": [
8431 "1.4"
8432 ],
8433 "return type": "Object",
8434 "changers": [
8435 "unknown"
8436 ],
8437 "patterns": [
8438 "[the] type of %entitydatas/itemtypes/inventories%",
8439 "%entitydatas/itemtypes/inventories%'[s] type"
8440 ]
8441 },
8442 {
8443 "id": "ExprUUID",
8444 "name": "UUID",
8445 "description": [
8446 "The UUID of a player, entity or world.",
8447 "In the future there will be an option to use a player's UUID instead of the name in variable names (i.e. when %player% is used), but for now this can be used.",
8448 "Please note that this expression does not work for offline players if you are under 1.8!"
8449 ],
8450 "examples": [
8451 "# prevents people from joining the server if they use the name of a player",
8452 "# who has played on this server at least once since this script has been added",
8453 "on login:",
8454 "\tif {uuid::%name of player%} exists:",
8455 "\t\t{uuid::%name of player%} is not uuid of player",
8456 "\t\tkick player due to \"Someone with your name has played on this server before\"",
8457 "\telse:",
8458 "\t\tset {uuid::%name of player%} to uuid of player"
8459 ],
8460 "since": [
8461 "2.1.2, 2.2 (offline players' UUIDs), 2.2-dev24 (other entities' UUIDs)"
8462 ],
8463 "return type": "Text",
8464 "patterns": [
8465 "[the] UUID of %offlineplayers/worlds/entities%",
8466 "%offlineplayers/worlds/entities%'[s] UUID"
8467 ]
8468 },
8469 {
8470 "id": "ExprUnbreakable",
8471 "name": "Unbreakable Items",
8472 "description": [
8473 "Creates unbreakable copies of given items."
8474 ],
8475 "examples": [
8476 "unbreakable iron sword #Creates unbreakable iron sword"
8477 ],
8478 "since": [
8479 "2.2-dev13b"
8480 ],
8481 "return type": "Item Type",
8482 "patterns": [
8483 "unbreakable %itemtypes%"
8484 ]
8485 },
8486 {
8487 "id": "ExprUnixTicks",
8488 "name": "Unix Timestamp",
8489 "description": [
8490 "Converts given date to Unix timestamp. This is roughly how many seconds have elapsed since 1 January 1970."
8491 ],
8492 "examples": [
8493 "unix timestamp of now"
8494 ],
8495 "since": [
8496 "2.2-dev31"
8497 ],
8498 "return type": "Number",
8499 "patterns": [
8500 "[the] unix timestamp of %dates%",
8501 "%dates%'[s] unix timestamp"
8502 ]
8503 },
8504 {
8505 "id": "ExprStringCase",
8506 "name": "Upper/lower Case Text",
8507 "description": [
8508 "Copy of given text in upper or lower case."
8509 ],
8510 "examples": [
8511 "\"oops!\" in upper case # OOPS!"
8512 ],
8513 "since": [
8514 "2.2-dev16"
8515 ],
8516 "return type": "Text",
8517 "patterns": [
8518 "%string% in (upper|lower) case",
8519 "capitalized %string%"
8520 ]
8521 },
8522 {
8523 "id": "ExprVectorAngleBetween",
8524 "name": "Vectors - Angle Between",
8525 "description": [
8526 "Gets the angle between two vectors."
8527 ],
8528 "examples": [
8529 "send \"%the angle between vector 1, 0, 0 and vector 0, 1, 1%\""
8530 ],
8531 "since": [
8532 "2.2-dev28"
8533 ],
8534 "return type": "Number",
8535 "patterns": [
8536 "[the] angle between [[the] vectors] %vector% and %vector%"
8537 ]
8538 },
8539 {
8540 "id": "ExprVectorArithmetic",
8541 "name": "Vectors - Arithmetic",
8542 "description": [
8543 "Arithmetic expressions for vectors."
8544 ],
8545 "examples": [
8546 "set {_v} to vector 1, 2, 3 // 5",
8547 "set {_v} to {_v} ++ {_v}",
8548 "set {_v} to {_v} ++ 5",
8549 "set {_v} to {_v} -- {_v}",
8550 "set {_v} to {_v} -- 5",
8551 "set {_v} to {_v} ** {_v}",
8552 "set {_v} to {_v} ** 5",
8553 "set {_v} to {_v} // {_v}",
8554 "set {_v} to {_v} // 5"
8555 ],
8556 "since": [
8557 "2.2-dev28"
8558 ],
8559 "return type": "Vector",
8560 "patterns": [
8561 "%vector%[ ]++[ ]%vector%",
8562 "%vector%[ ]--[ ]%vector%",
8563 "%vector%[ ]**[ ]%vector%",
8564 "%vector%[ ]//[ ]%vector%"
8565 ]
8566 },
8567 {
8568 "id": "ExprVectorFromXYZ",
8569 "name": "Vectors - Create from XYZ",
8570 "description": [
8571 "Creates a vector from x, y and z values."
8572 ],
8573 "examples": [
8574 "set {_v} to vector 0, 1, 0"
8575 ],
8576 "since": [
8577 "2.2-dev28"
8578 ],
8579 "return type": "Vector",
8580 "patterns": [
8581 "[a] [new] vector [(from|at|to)] %number%,[ ]%number%(,[ ]| and )%number%"
8582 ]
8583 },
8584 {
8585 "id": "ExprVectorCrossProduct",
8586 "name": "Vectors - Cross Product",
8587 "description": [
8588 "Gets the cross product between two vectors."
8589 ],
8590 "examples": [
8591 "send \"%vector 1, 0, 0 cross vector 0, 1, 0%\""
8592 ],
8593 "since": [
8594 "2.2-dev28"
8595 ],
8596 "return type": "Vector",
8597 "patterns": [
8598 "%vector% cross %vector%"
8599 ]
8600 },
8601 {
8602 "id": "ExprVectorCylindrical",
8603 "name": "Vectors - Cylindrical Shape",
8604 "description": [
8605 "Forms a 'cylindrical shaped' vector using yaw to manipulate the current point."
8606 ],
8607 "examples": [
8608 "loop 360 times:",
8609 "\tset {_v} to cylindrical vector radius 1, yaw loop-value, height 2",
8610 "set {_v} to cylindrical vector radius 1, yaw 90, height 2"
8611 ],
8612 "since": [
8613 "2.2-dev28"
8614 ],
8615 "return type": "Vector",
8616 "patterns": [
8617 "[a] [new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%"
8618 ]
8619 },
8620 {
8621 "id": "ExprVectorDotProduct",
8622 "name": "Vectors - Dot Product",
8623 "description": [
8624 "Gets the dot product between two vectors."
8625 ],
8626 "examples": [
8627 "set {_v} to {_v2} dot {_v3}"
8628 ],
8629 "since": [
8630 "2.2-dev28"
8631 ],
8632 "return type": "Number",
8633 "patterns": [
8634 "%vector% dot %vector%"
8635 ]
8636 },
8637 {
8638 "id": "ExprVectorLength",
8639 "name": "Vectors - Length",
8640 "description": [
8641 "Gets or sets the length of a vector."
8642 ],
8643 "examples": [
8644 "send \"%standard length of vector 1, 2, 3%\"",
8645 "set {_v} to vector 1, 2, 3",
8646 "set standard length of {_v} to 2",
8647 "send \"%standard length of {_v}%\""
8648 ],
8649 "since": [
8650 "2.2-dev28"
8651 ],
8652 "return type": "Number",
8653 "changers": [
8654 "add",
8655 "set",
8656 "remove"
8657 ],
8658 "patterns": [
8659 "[the] (vector|standard|normal) length[s] of %vectors%",
8660 "%vectors%'[s] (vector|standard|normal) length[s]"
8661 ]
8662 },
8663 {
8664 "id": "ExprLocationVectorOffset",
8665 "name": "Vectors - Location Vector Offset",
8666 "description": [
8667 "Returns the location offset by vectors."
8668 ],
8669 "examples": [
8670 "set {_loc} to {_loc} ~ {_v}"
8671 ],
8672 "since": [
8673 "2.2-dev28"
8674 ],
8675 "return type": "Location",
8676 "patterns": [
8677 "%location% offset by [[the] vectors] %vectors%",
8678 "%location%[ ]~[~][ ]%vectors%"
8679 ]
8680 },
8681 {
8682 "id": "ExprVectorNormalize",
8683 "name": "Vectors - Normalized",
8684 "description": [
8685 "Returns the same vector but with length 1."
8686 ],
8687 "examples": [
8688 "set {_v} to normalized {_v}"
8689 ],
8690 "since": [
8691 "2.2-dev28"
8692 ],
8693 "return type": "Vector",
8694 "patterns": [
8695 "normalize[d] %vector%",
8696 "%vector% normalized"
8697 ]
8698 },
8699 {
8700 "id": "ExprVectorRandom",
8701 "name": "Vectors - Random Vector",
8702 "description": [
8703 "Creates a random vector."
8704 ],
8705 "examples": [
8706 "set {_v} to a random vector"
8707 ],
8708 "since": [
8709 "2.2-dev28"
8710 ],
8711 "return type": "Vector",
8712 "patterns": [
8713 "[a] random vector"
8714 ]
8715 },
8716 {
8717 "id": "ExprVectorSpherical",
8718 "name": "Vectors - Spherical Shape",
8719 "description": [
8720 "Forms a 'spherical shaped' vector using yaw and pitch to manipulate the current point."
8721 ],
8722 "examples": [
8723 "loop 360 times:",
8724 "\tset {_v} to spherical vector radius 1, yaw loop-value, pitch loop-value",
8725 "set {_v} to spherical vector radius 1, yaw 45, pitch 90"
8726 ],
8727 "since": [
8728 "2.2-dev28"
8729 ],
8730 "return type": "Vector",
8731 "patterns": [
8732 "[new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%"
8733 ]
8734 },
8735 {
8736 "id": "ExprVectorSquaredLength",
8737 "name": "Vectors - Squared Length",
8738 "description": [
8739 "Gets the squared length of a vector."
8740 ],
8741 "examples": [
8742 "send \"%squared length of vector 1, 2, 3%\""
8743 ],
8744 "since": [
8745 "2.2-dev28"
8746 ],
8747 "return type": "Number",
8748 "patterns": [
8749 "[the] squared length[s] of %vectors%",
8750 "%vectors%'[s] squared length[s]"
8751 ]
8752 },
8753 {
8754 "id": "ExprVectorBetweenLocations",
8755 "name": "Vectors - Vector Between Locations",
8756 "description": [
8757 "Creates a vector between two locations."
8758 ],
8759 "examples": [
8760 "set {_v} to vector between {_loc1} and {_loc2}"
8761 ],
8762 "since": [
8763 "2.2-dev28"
8764 ],
8765 "return type": "Vector",
8766 "patterns": [
8767 "[the] vector (from|between) %location% (to|and) %location%"
8768 ]
8769 },
8770 {
8771 "id": "ExprVectorOfLocation",
8772 "name": "Vectors - Vector from Location",
8773 "description": [
8774 "Creates a vector from a location."
8775 ],
8776 "examples": [
8777 "set {_v} to vector of {_loc}"
8778 ],
8779 "since": [
8780 "2.2-dev28"
8781 ],
8782 "return type": "Vector",
8783 "patterns": [
8784 "[the] vector (of|from|to) %location%",
8785 "%location%'s vector"
8786 ]
8787 },
8788 {
8789 "id": "ExprVectorFromYawAndPitch",
8790 "name": "Vectors - Vector from Pitch and Yaw",
8791 "description": [
8792 "Creates a vector from a yaw and pitch value."
8793 ],
8794 "examples": [
8795 "set {_v} to vector from yaw 45 and pitch 45"
8796 ],
8797 "since": [
8798 "2.2-dev28"
8799 ],
8800 "return type": "Vector",
8801 "patterns": [
8802 "[a] [new] vector (from|with) yaw %number% and pitch %number%"
8803 ]
8804 },
8805 {
8806 "id": "ExprVelocity",
8807 "name": "Vectors - Velocity",
8808 "description": [
8809 "Gets or changes velocity of an entity."
8810 ],
8811 "examples": [
8812 "set player's velocity to {_v}"
8813 ],
8814 "since": [
8815 "2.2-dev31"
8816 ],
8817 "return type": "Vector",
8818 "changers": [
8819 "add",
8820 "set",
8821 "remove",
8822 "delete",
8823 "reset"
8824 ],
8825 "patterns": [
8826 "[the] velocit(y|ies) of %entities%",
8827 "%entities%'[s] velocit(y|ies)"
8828 ]
8829 },
8830 {
8831 "id": "ExprVectorXYZ",
8832 "name": "Vectors - XYZ Component",
8833 "description": [
8834 "Gets or changes the x, y or z component of a vector."
8835 ],
8836 "examples": [
8837 "set {_v} to vector 1, 2, 3",
8838 "send \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"",
8839 "add 1 to x of {_v}",
8840 "add 2 to y of {_v}",
8841 "add 3 to z of {_v}",
8842 "send \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"",
8843 "set x component of {_v} to 1",
8844 "set y component of {_v} to 2",
8845 "set z component of {_v} to 3",
8846 "send \"%x component of {_v}%, %y component of {_v}%, %z component of {_v}%\""
8847 ],
8848 "since": [
8849 "2.2-dev28"
8850 ],
8851 "return type": "Number",
8852 "changers": [
8853 "unknown"
8854 ],
8855 "patterns": [
8856 "[the] [vector] (x|y|z) [component[s]] of %vectors%",
8857 "%vectors%'[s] [vector] (x|y|z) [component[s]]"
8858 ]
8859 },
8860 {
8861 "id": "ExprVectorYawPitch",
8862 "name": "Vectors - Yaw and Pitch",
8863 "description": [
8864 "Gets or sets the yaw or pitch value of a vector."
8865 ],
8866 "examples": [
8867 "set {_v} to vector -1, 1, 1",
8868 "send \"%vector yaw of {_v}%, %vector pitch of {_v}%\"",
8869 "add 45 to vector yaw of {_v}",
8870 "subtract 45 from vector pitch of {_v}",
8871 "send \"%vector yaw of {_v}%, %vector pitch of {_v}%\"",
8872 "set vector yaw of {_v} to -45",
8873 "set vector pitch of {_v} to 45",
8874 "send \"%vector yaw of {_v}%, %vector pitch of {_v}%\""
8875 ],
8876 "since": [
8877 "2.2-dev28"
8878 ],
8879 "return type": "Number",
8880 "changers": [
8881 "unknown"
8882 ],
8883 "patterns": [
8884 "[the] [vector] (yaw|pitch) of %vectors%",
8885 "%vectors%'[s] [vector] (yaw|pitch)"
8886 ]
8887 },
8888 {
8889 "id": "ExprVehicle",
8890 "name": "Vehicle",
8891 "description": [
8892 "The vehicle an entity is in, if any. This can actually be any entity, e.g. spider jockeys are skeletons that ride on a spider, so the spider is the 'vehicle' of the skeleton.",
8893 "See also: passenger"
8894 ],
8895 "examples": [
8896 "vehicle of the player is a minecart"
8897 ],
8898 "since": [
8899 "2.0"
8900 ],
8901 "return type": "Entity",
8902 "changers": [
8903 "add",
8904 "set",
8905 "remove",
8906 "remove all"
8907 ],
8908 "patterns": [
8909 "[the] vehicle[s] of %entities%",
8910 "%entities%'[s] vehicle[s]"
8911 ]
8912 },
8913 {
8914 "id": "ExprVersion",
8915 "name": "Version",
8916 "description": [
8917 "The version of Bukkit, Minecraft or Skript respectively."
8918 ],
8919 "examples": [
8920 "message \"This server is running Minecraft %minecraft version% on Bukkit %bukkit version%\"",
8921 "message \"This server is powered by Skript %skript version%\""
8922 ],
8923 "since": [
8924 "2.0"
8925 ],
8926 "return type": "Text",
8927 "patterns": [
8928 "([craft]bukkit|minecraft|skript)( |-)version"
8929 ]
8930 },
8931 {
8932 "id": "ExprVersionString",
8933 "name": "Version String",
8934 "description": [
8935 "The text to show if the protocol version of the server doesn't match with protocol version of the client. You can check the protocol version expression for more information about this.",
8936 "This can only be set in a server list ping event."
8937 ],
8938 "examples": [
8939 "on server list ping:",
8940 "\tset the protocol version to 0 # 13w41a (1.7), so it will show the version string always",
8941 "\tset the version string to \"<light green>Version: <orange>%minecraft version%\""
8942 ],
8943 "since": [
8944 "2.3"
8945 ],
8946 "return type": "Text",
8947 "changers": [
8948 "set"
8949 ],
8950 "patterns": [
8951 "[the] [(shown|custom)] version [(string|text)]"
8952 ],
8953 "required plugins": [
8954 "Paper 1.12.2 or newer"
8955 ]
8956 },
8957 {
8958 "id": "ExprWeather",
8959 "name": "Weather",
8960 "description": [
8961 "The weather in the given or the current world."
8962 ],
8963 "examples": [
8964 "set weather to clear",
8965 "weather in \"world\" is rainy"
8966 ],
8967 "since": [
8968 "1.0"
8969 ],
8970 "return type": "Weather Type",
8971 "changers": [
8972 "set",
8973 "delete"
8974 ],
8975 "patterns": [
8976 "[the] weather [(in|of) %worlds%]",
8977 "%worlds%'[s] weather"
8978 ]
8979 },
8980 {
8981 "id": "ExprWorld",
8982 "name": "World",
8983 "description": [
8984 "The world the event occurred in."
8985 ],
8986 "examples": [
8987 "world is \"world_nether\"",
8988 "teleport the player to the world's spawn",
8989 "set the weather in the player's world to rain"
8990 ],
8991 "since": [
8992 "1.0"
8993 ],
8994 "return type": "World",
8995 "changers": [
8996 "set"
8997 ],
8998 "patterns": [
8999 "[the] world [of %locations/entities%]",
9000 "%locations/entities%'[s] world"
9001 ]
9002 },
9003 {
9004 "id": "ExprSeed",
9005 "name": "World Seed",
9006 "description": [
9007 "The seed of given world. Note that it will be returned as Minecraft internally treats seeds, not as you specified it in world configuration."
9008 ],
9009 "examples": [
9010 "broadcast \"Seed: %seed of player's world%\""
9011 ],
9012 "since": [
9013 "2.2-dev35"
9014 ],
9015 "return type": "long",
9016 "patterns": [
9017 "[the] seed[s] (from|of) %worlds%",
9018 "%worlds%'[s] seed[s]"
9019 ]
9020 },
9021 {
9022 "id": "ExprWorlds",
9023 "name": "Worlds",
9024 "description": [
9025 "All worlds of the server, useful for looping."
9026 ],
9027 "examples": [
9028 "loop all worlds:",
9029 "\tbroadcast \"You're in %loop-world%\" to loop-world"
9030 ],
9031 "since": [
9032 "1.0"
9033 ],
9034 "return type": "World",
9035 "patterns": [
9036 "[(all [[of] the]|the)] worlds"
9037 ]
9038 },
9039 {
9040 "id": "ExprXOf",
9041 "name": "X of Item",
9042 "description": [
9043 "An expression to be able to use a certain amount of items where the amount can be any expression. Please note that this expression is not stable and might be replaced in the future."
9044 ],
9045 "examples": [
9046 "give level of player of pickaxes to the player"
9047 ],
9048 "since": [
9049 "1.2"
9050 ],
9051 "return type": "Object",
9052 "changers": [
9053 "unknown"
9054 ],
9055 "patterns": [
9056 "%number% of %itemstacks/entitytype%"
9057 ]
9058 },
9059 {
9060 "id": "ExprYawPitch",
9061 "name": "Yaw / Pitch",
9062 "description": [
9063 "The yaw or pitch of a location. You likely won't need this expression ever if you don't know what this means."
9064 ],
9065 "examples": [
9066 "log \"%player%: %location of player%, %player's yaw%, %player's pitch%\" to \"playerlocs.log\""
9067 ],
9068 "since": [
9069 "2.0"
9070 ],
9071 "return type": "Number",
9072 "changers": [
9073 "add",
9074 "set",
9075 "remove"
9076 ],
9077 "patterns": [
9078 "[the] (yaw|pitch) of %locations%",
9079 "%locations%'[s] (yaw|pitch)"
9080 ]
9081 }
9082 ],
9083 "types": [
9084 {
9085 "id": "Biome",
9086 "name": "Biome",
9087 "description": [
9088 "All possible biomes Minecraft uses to generate a world."
9089 ],
9090 "examples": [
9091 "biome at the player is desert"
9092 ],
9093 "usage": "Biome names; you can use F3 ingame",
9094 "since": [
9095 "1.4.4"
9096 ],
9097 "patterns": [
9098 "biome[s]"
9099 ]
9100 },
9101 {
9102 "id": "Block",
9103 "name": "Block",
9104 "description": [
9105 "A block in a world. It has a location and a type, and can also have a direction (mostly a facing), an inventory, or other special properties."
9106 ],
9107 "since": [
9108 "1.0"
9109 ],
9110 "patterns": [
9111 "block[s]"
9112 ]
9113 },
9114 {
9115 "id": "Boolean",
9116 "name": "Boolean",
9117 "description": [
9118 "A boolean is a value that is either true or false. Other accepted names are 'on' and 'yes' for true, and 'off' and 'no' for false."
9119 ],
9120 "examples": [
9121 "set {config.%player%.use mod} to false"
9122 ],
9123 "usage": "true/yes/on or false/no/off",
9124 "since": [
9125 "1.0"
9126 ],
9127 "patterns": [
9128 "boolean[s]"
9129 ]
9130 },
9131 {
9132 "id": "Chunk",
9133 "name": "Chunk",
9134 "description": [
9135 "A chunk is a cuboid of 16×16×128 (x×z×y) blocks. Chunks are spread on a fixed rectangular grid in their world."
9136 ],
9137 "since": [
9138 "2.0"
9139 ],
9140 "patterns": [
9141 "chunk[s]"
9142 ]
9143 },
9144 {
9145 "id": "ClickType",
9146 "name": "Click Type",
9147 "description": [
9148 "Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side."
9149 ],
9150 "usage": "left mouse button, left mouse button with shift, right mouse button, right mouse button with shift, window border using right mouse button, window border using left mouse button, middle mouse button, number key, double click using mouse, drop key, drop key with control, creative action, unknown",
9151 "since": [
9152 "2.2-dev16b, 2.2-dev35 (renamed to click type)"
9153 ],
9154 "patterns": [
9155 "click[ ]type[s]"
9156 ]
9157 },
9158 {
9159 "id": "Color",
9160 "name": "Colour",
9161 "description": [
9162 "Wool, dye and chat colours."
9163 ],
9164 "examples": [
9165 "color of the sheep is red or black",
9166 "set the colour of the block to green",
9167 "message \"You're holding a <%color of tool%>%color of tool%<reset> wool block\""
9168 ],
9169 "usage": "black, dark grey/dark gray, grey/light grey/gray/light gray/silver, white, blue/dark blue, cyan/aqua/dark cyan/dark aqua, light blue/light cyan/light aqua, green/dark green, light green/lime/lime green, yellow/light yellow, orange/gold/dark yellow, red/dark red, pink/light red, purple/dark purple, magenta/light purple, brown/indigo",
9170 "since": [
9171 ""
9172 ],
9173 "patterns": [
9174 "colo[u]r[s]"
9175 ]
9176 },
9177 {
9178 "id": "CommandSender",
9179 "name": "Command Sender",
9180 "description": [
9181 "A player or the console."
9182 ],
9183 "examples": [
9184 "on command /pm:",
9185 "\tcommand sender is not the console",
9186 "\tchance of 10%",
9187 "\tgive coal to the player",
9188 "\tmessage \"You got a piece of coal for sending that PM!\""
9189 ],
9190 "usage": "use the console for the console\nsee player for players.",
9191 "since": [
9192 "1.0"
9193 ],
9194 "patterns": [
9195 "[(command[s]][ ][)](sender|executor)[s]"
9196 ]
9197 },
9198 {
9199 "id": "DamageCause",
9200 "name": "Damage Cause",
9201 "description": [
9202 "The cause/type of a damage event, e.g. lava, fall, fire, drowning, explosion, poison, etc.",
9203 "Please note that support for this type is very rudimentary, e.g. lava, fire and burning, as well as projectile and attack are considered different types."
9204 ],
9205 "usage": "contact, attack, sweep attack, projectile, suffocation, fall, fire, burning, melting, lava, drowning, block explosion, entity explosion, void, lightning, suicide, starvation, poison, potion, wither, falling block, thorns, dragon's breath, unknown, hitting wall while flying, magma, cramming, dryout",
9206 "since": [
9207 "2.0"
9208 ],
9209 "patterns": [
9210 "damage[ ]cause[s]"
9211 ]
9212 },
9213 {
9214 "id": "Date",
9215 "name": "Date",
9216 "description": [
9217 "A date is a certain point in the real world's time which can currently only be obtained with now.",
9218 "See time and timespan for the other time types of Skript."
9219 ],
9220 "examples": [
9221 "set {_yesterday} to now",
9222 "subtract a day from {_yesterday}",
9223 "# now {_yesterday} represents the date 24 hours before now"
9224 ],
9225 "since": [
9226 "1.4"
9227 ],
9228 "patterns": [
9229 "date[s]"
9230 ]
9231 },
9232 {
9233 "id": "Difficulty",
9234 "name": "Difficulty",
9235 "description": [
9236 "The difficulty of a world."
9237 ],
9238 "examples": [
9239 "peaceful, easy, medium, hard"
9240 ],
9241 "since": [
9242 "2.3"
9243 ],
9244 "patterns": [
9245 "difficult(y|ies)"
9246 ]
9247 },
9248 {
9249 "id": "Direction",
9250 "name": "Direction",
9251 "description": [
9252 "A direction, e.g. north, east, behind, 5 south east, 1.3 meters to the right, etc.",
9253 "Locations and some blocks also have a direction, but without a length.",
9254 "Please note that directions have changed extensively in the betas and might not work perfectly. They can also not be used as command arguments."
9255 ],
9256 "examples": [
9257 "set the block below the victim to a chest",
9258 "loop blocks from the block infront of the player to the block 10 below the player:",
9259 "\tset the block behind the loop-block to water"
9260 ],
9261 "usage": "see direction (expression)",
9262 "since": [
9263 "2.0"
9264 ],
9265 "patterns": [
9266 "direction[s]"
9267 ]
9268 },
9269 {
9270 "id": "Enchantment",
9271 "name": "Enchantment",
9272 "description": [
9273 "An enchantment, e.g. 'sharpness' or 'furtune'. Unlike enchantment type this type has no level, but you usually don't need to use this type anyway."
9274 ],
9275 "usage": "Frost Walker, Feather Falling, Unbreaking, Knockback, Projectile Protection, Respiration, Punch, Protection, Blast Protection, Lure, Impaling, Smite, Silk Touch, Infinity, Luck of The Sea, Thorns, Multishot, Curse of Vanishing, Fire Aspect, Flame, Depth Strider, Piercing, Fire Protection, Sharpness, Power, Sweeping Edge, Aqua Affinity, Curse of Binding, Bane of Arthropods, Looting, Efficiency, Mending, Riptide, Quick Charge, Fortune, Loyalty, Channeling",
9276 "since": [
9277 "1.4.6"
9278 ],
9279 "patterns": [
9280 "enchantment[s]"
9281 ]
9282 },
9283 {
9284 "id": "EnchantmentType",
9285 "name": "Enchantment Type",
9286 "description": [
9287 "An enchantment with an optional level, e.g. 'sharpness 2' or 'fortune'."
9288 ],
9289 "examples": [
9290 "enchant the player's tool with sharpness 5",
9291 "helmet is enchanted with waterbreathing"
9292 ],
9293 "usage": "<enchantment> [<level>]",
9294 "since": [
9295 "1.4.6"
9296 ],
9297 "patterns": [
9298 "enchant(ing|ment) type[s]"
9299 ]
9300 },
9301 {
9302 "id": "Entity",
9303 "name": "Entity",
9304 "description": [
9305 "An entity is something in a world that's not a block, e.g. a player, a skeleton, or a zombie, but also projectiles like arrows, fireballs or thrown potions, or special entities like dropped items, falling blocks or paintings."
9306 ],
9307 "examples": [
9308 "entity is a zombie or creeper",
9309 "player is an op",
9310 "projectile is an arrow",
9311 "shoot a fireball from the player"
9312 ],
9313 "usage": "player, op, wolf, tamed ocelot, powered creeper, zombie, unsaddled pig, fireball, arrow, dropped item, item frame, etc.",
9314 "since": [
9315 "1.0"
9316 ],
9317 "patterns": [
9318 "entit(y|ies)"
9319 ]
9320 },
9321 {
9322 "id": "EntityData",
9323 "name": "Entity Type",
9324 "description": [
9325 "The type of an entity, e.g. player, wolf, powered creeper, etc."
9326 ],
9327 "examples": [
9328 "victim is a cow",
9329 "spawn a creeper"
9330 ],
9331 "usage": "Detailed usage will be added eventually",
9332 "since": [
9333 "1.3"
9334 ],
9335 "patterns": [
9336 "entity[ ]type[s]"
9337 ]
9338 },
9339 {
9340 "id": "EntityType",
9341 "name": "Entity Type with Amount",
9342 "description": [
9343 "An entity type with an amount, e.g. '2 zombies'. I might remove this type in the future and make a more general 'type' type, i.e. a type that has a number and a type."
9344 ],
9345 "examples": [
9346 "spawn 5 creepers behind the player"
9347 ],
9348 "usage": "<number> <entity type>",
9349 "since": [
9350 "1.3"
9351 ],
9352 "patterns": [
9353 "entitytype"
9354 ]
9355 },
9356 {
9357 "id": "Experience",
9358 "name": "Experience",
9359 "description": [
9360 "Experience points. Please note that Bukkit only allows to give XP, but not remove XP from players. You can however change a player's level and level progress freely."
9361 ],
9362 "examples": [
9363 "give 10 xp to the player"
9364 ],
9365 "usage": "[<number>] ([e]xp|experience [point[s]])",
9366 "since": [
9367 "2.0"
9368 ],
9369 "patterns": [
9370 "experience"
9371 ]
9372 },
9373 {
9374 "id": "FireworkEffect",
9375 "name": "Firework Effect",
9376 "description": [
9377 "A configuration of effects that defines the firework when exploded."
9378 ],
9379 "since": [
9380 "2.4"
9381 ],
9382 "patterns": [
9383 "firework[ ]effect[s]"
9384 ]
9385 },
9386 {
9387 "id": "Type",
9388 "name": "Firework Type",
9389 "description": [
9390 "The type of a fireworkeffect."
9391 ],
9392 "examples": [
9393 "ball, large ball, star, burst, creeper"
9394 ],
9395 "since": [
9396 "2.4"
9397 ],
9398 "patterns": [
9399 "firework[ ]type[s]"
9400 ]
9401 },
9402 {
9403 "id": "GameMode",
9404 "name": "Game Mode",
9405 "description": [
9406 "The game modes survival, creative and adventure."
9407 ],
9408 "examples": [
9409 "player's gamemode is survival",
9410 "set the player argument's game mode to creative"
9411 ],
9412 "usage": "creative/survival/adventure",
9413 "since": [
9414 "1.0"
9415 ],
9416 "patterns": [
9417 "game[ ]mode[s]"
9418 ]
9419 },
9420 {
9421 "id": "Gene",
9422 "name": "Gene",
9423 "description": [
9424 "Represents a Panda's main or hidden gene. Look at Panda's minecraft wiki on genetics for more info."
9425 ],
9426 "examples": [
9427 "normal, lazy, worried, playful, brown, weak, aggressive"
9428 ],
9429 "since": [
9430 "2.4"
9431 ],
9432 "patterns": [
9433 "[panda ]gene[s]"
9434 ]
9435 },
9436 {
9437 "id": "Inventory",
9438 "name": "Inventory",
9439 "description": [
9440 "An inventory of a player or block. Inventories have many effects and conditions regarding the items contained.",
9441 "An inventory has a fixed amount of slots which represent a specific place in the inventory, e.g. the helmet slot for players (Please note that slot support is still very limited but will be improved eventually)."
9442 ],
9443 "since": [
9444 "1.0"
9445 ],
9446 "patterns": [
9447 "inventor(y|ies)"
9448 ]
9449 },
9450 {
9451 "id": "InventoryAction",
9452 "name": "Inventory Action",
9453 "description": [
9454 "What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly."
9455 ],
9456 "usage": "nothing, pickup all, pickup some, pickup half, pickup one item, place all, place some, place one, swap with cursor, drop all from cursor, drop one from cursor, drop all from slot, drop one from slot, instant move, hotbar move and readd, swap with hotbar, clone stack, collect to cursor, unknown",
9457 "since": [
9458 "2.2-dev16"
9459 ],
9460 "patterns": [
9461 "inventory[ ]action[s]"
9462 ]
9463 },
9464 {
9465 "id": "Slot",
9466 "name": "Inventory Slot",
9467 "description": [
9468 "Represents a single slot of an inventory. Notable slots are the armour slots and furnace slots. ",
9469 "The most important property that distinguishes a slot from an item is its ability to be changed, e.g. it can be set, deleted, enchanted, etc. (Some item expressions can be changed as well, e.g. items stored in variables. For that matter: slots are never saved to variables, only the items they represent at the time when the variable is set).",
9470 "Please note that tool can be regarded a slot, but it can actually change it's position, i.e. doesn't represent always the same slot."
9471 ],
9472 "examples": [
9473 "set tool of player to dirt",
9474 "delete helmet of the victim",
9475 "set the colour of the player's tool to green",
9476 "enchant the player's chestplate with projectile protection 5"
9477 ],
9478 "since": [
9479 ""
9480 ],
9481 "patterns": [
9482 "[inventory ]slot[s]"
9483 ]
9484 },
9485 {
9486 "id": "InventoryType",
9487 "name": "Inventory Type",
9488 "description": [
9489 "Minecraft has several different inventory types with their own use cases."
9490 ],
9491 "usage": "chest inventory, dispenser inventory, dropper inventory, furnace inventory, workbench inventory, crafting table inventory, enchanting table inventory, brewing stand inventory, player inventory, creative inventory, merchant inventory, ender chest inventory, anvil inventory, beacon inventory, hopper inventory, shulker box inventory, barrel inventory, blast furnace inventory, lectern inventory, smoker inventory, loom inventory, cartography table inventory, grindstone inventory, stonecutter inventory",
9492 "since": [
9493 "2.2-dev32"
9494 ],
9495 "patterns": [
9496 "inventory[ ]type[s]"
9497 ]
9498 },
9499 {
9500 "id": "ItemStack",
9501 "name": "Item / Material",
9502 "description": [
9503 "An item, e.g. a stack of torches, a furnace, or a wooden sword of sharpness 2. Unlike item type an item can only represent exactly one item (e.g. an upside-down cobblestone stair facing west), while an item type can represent a whole range of items (e.g. any cobble stone stairs regardless of direction).",
9504 "You don't usually need this type except when you want to make a command that only accepts an exact item.",
9505 "Please note that currently 'material' is exactly the same as 'item', i.e. can have an amount & enchantments."
9506 ],
9507 "examples": [
9508 "set {_item} to type of the targeted block",
9509 "{_item} is a torch"
9510 ],
9511 "usage": "[<number> [of]] <alias> [of <enchantment> <level>], Where <alias> must be an alias that represents exactly one item (i.e cannot be a general alias like 'sword' or 'plant')",
9512 "since": [
9513 "1.0"
9514 ],
9515 "patterns": [
9516 "item",
9517 "material"
9518 ]
9519 },
9520 {
9521 "id": "ItemType",
9522 "name": "Item Type",
9523 "description": [
9524 "An item type is an alias, e.g. 'a pickaxe', 'all plants', etc., and can result in different items when added to an inventory, and unlike items they are well suited for checking whether an inventory contains a certain item or whether a certain item is of a certain type.",
9525 "An item type can also have one or more enchantments with or without a specific level defined, and can optionally start with 'all' or 'every' to make this item type represent all types that the alias represents, including data ranges."
9526 ],
9527 "examples": [
9528 "give 4 torches to the player",
9529 "add all slabs to the inventory of the block",
9530 "player's tool is a diamond sword of sharpness",
9531 "remove a pickaxes of fortune 4 from {stored items::*}",
9532 "set {_item} to 10 of every upside-down stair",
9533 "block is dirt or farmland"
9534 ],
9535 "usage": "[<number> [of]] [all/every] <alias> [of <enchantment> [<level>] [,/and <more enchantments...>]]",
9536 "since": [
9537 "1.0"
9538 ],
9539 "patterns": [
9540 "item[ ]type[s]",
9541 "items",
9542 "materials"
9543 ]
9544 },
9545 {
9546 "id": "LivingEntity",
9547 "name": "Living Entity",
9548 "description": [
9549 "A living entity, i.e. a mob or player, not inanimate entities like projectiles or dropped items."
9550 ],
9551 "examples": [
9552 "spawn 5 powered creepers",
9553 "shoot a zombie from the creeper"
9554 ],
9555 "usage": "see entity, but ignore inanimate objects",
9556 "since": [
9557 "1.0"
9558 ],
9559 "patterns": [
9560 "living[ ]entit(y|ies)"
9561 ]
9562 },
9563 {
9564 "id": "Location",
9565 "name": "Location",
9566 "description": [
9567 "A location in a world. Locations are world-specific and even store a direction, e.g. if you save a location and later teleport to it you will face the exact same direction you did when you saved the location."
9568 ],
9569 "since": [
9570 "1.0"
9571 ],
9572 "patterns": [
9573 "location[s]"
9574 ]
9575 },
9576 {
9577 "id": "Metadatable",
9578 "name": "Metadata Holder",
9579 "description": [
9580 "Something that can hold metadata (e.g. an entity or block)"
9581 ],
9582 "examples": [
9583 "set metadata value \"super cool\" of player to true"
9584 ],
9585 "since": [
9586 "2.2-dev36"
9587 ],
9588 "patterns": [
9589 "metadata[ ]holder[s]"
9590 ]
9591 },
9592 {
9593 "id": "Number",
9594 "name": "Number",
9595 "description": [
9596 "A number, e.g. 2.5, 3, or -9812454.",
9597 "Please note that many expressions only need integers, i.e. will discard any frational parts of any numbers without producing an error."
9598 ],
9599 "examples": [
9600 "set the player's health to 5.5",
9601 "set {_temp} to 2*{_temp} - 2.5"
9602 ],
9603 "usage": "[-]###[.###]</code> (any amount of digits; very large numbers will be truncated though)",
9604 "since": [
9605 "1.0"
9606 ],
9607 "patterns": [
9608 "num[ber][s]"
9609 ]
9610 },
9611 {
9612 "id": "Object",
9613 "name": "Object",
9614 "description": [
9615 "The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions."
9616 ],
9617 "since": [
9618 "1.0"
9619 ],
9620 "patterns": [
9621 "object[s]"
9622 ]
9623 },
9624 {
9625 "id": "OfflinePlayer",
9626 "name": "Offline Player",
9627 "description": [
9628 "A player that is possibly offline. See player for more information. Please note that while all effects and conditions that require a player can be used with an offline player as well, they will not work if the player is not actually online."
9629 ],
9630 "since": [
9631 ""
9632 ],
9633 "patterns": [
9634 "offline[ ]player[s]"
9635 ]
9636 },
9637 {
9638 "id": "Player",
9639 "name": "Player",
9640 "description": [
9641 "A player. Depending on whether a player is online or offline several actions can be performed with them, though you won't get any errors when using effects that only work if the player is online (e.g. changing his inventory) on an offline player.",
9642 "You have two possibilities to use players as command arguments: <player> and <offline player>. The first requires that the player is online and also accepts only part of the name, while the latter doesn't require that the player is online, but the player's name has to be entered exactly."
9643 ],
9644 "since": [
9645 "1.0"
9646 ],
9647 "patterns": [
9648 "player[s]"
9649 ]
9650 },
9651 {
9652 "id": "PotionEffectType",
9653 "name": "Potion Effect Type",
9654 "description": [
9655 "A potion effect type, e.g. 'strength' or 'swiftness'."
9656 ],
9657 "examples": [
9658 "apply swiftness 5 to the player",
9659 "apply potion of speed 2 to the player for 60 seconds",
9660 "remove invisibility from the victim"
9661 ],
9662 "usage": "null, speed, slowness, haste, mining fatigue, strength, instant health, instant damage, jump boost, nausea, regeneration, resistance, fire resistance, water breathing, invisibility, blindness, night vision, hunger, weakness, poison, wither, health boost, absorption, saturation, glowing, levitation, luck, bad luck, slow falling, conduit power, dolphins grace, bad omen, hero of the village",
9663 "since": [
9664 ""
9665 ],
9666 "patterns": [
9667 "potion[[ ]effect][[ ]type][s]"
9668 ]
9669 },
9670 {
9671 "id": "Projectile",
9672 "name": "Projectile",
9673 "description": [
9674 "A projectile, e.g. an arrow, snowball or thrown potion."
9675 ],
9676 "examples": [
9677 "projectile is a snowball",
9678 "shoot an arrow at speed 5 from the player"
9679 ],
9680 "usage": "arrow, fireball, snowball, thrown potion, etc.",
9681 "since": [
9682 "1.0"
9683 ],
9684 "patterns": [
9685 "projectile[s]"
9686 ]
9687 },
9688 {
9689 "id": "Status",
9690 "name": "Resource Pack State",
9691 "description": [
9692 "The state in a resource pack request response event."
9693 ],
9694 "examples": [
9695 "successfully load, decline, download fail, accept"
9696 ],
9697 "since": [
9698 "2.4"
9699 ],
9700 "patterns": [
9701 "resource[ ]pack[ ]state[s]"
9702 ]
9703 },
9704 {
9705 "id": "SoundCategory",
9706 "name": "Sound Category",
9707 "description": [
9708 "The category of a sound, they are used for sound options of Minecraft. See the play sound and stop sound effects."
9709 ],
9710 "examples": [
9711 "master category, music category, record category, weather category, block category, hostile category, neutral category, player category, ambient category, voice category"
9712 ],
9713 "since": [
9714 "2.4"
9715 ],
9716 "patterns": [
9717 "sound[ ]categor(y|ies)"
9718 ]
9719 },
9720 {
9721 "id": "SpawnReason",
9722 "name": "Spawn Reason",
9723 "description": [
9724 "The spawn reason in a spawn event."
9725 ],
9726 "examples": [
9727 "natural, jockey, chunk generation, mob spawner, egg, spawn egg, lightning, built snowman, built iron golem, built wither, village defense, village invasion, breed, slime split, reinforcements, nether portal, dispense egg, infection, cured, ocelot baby, silverfish reveal, mount, trap, ender pearl, perching, drowned, shear, customized, default"
9728 ],
9729 "since": [
9730 "2.3"
9731 ],
9732 "patterns": [
9733 "spawn[ing][ ]reason[s]"
9734 ]
9735 },
9736 {
9737 "id": "TeleportCause",
9738 "name": "Teleport Cause",
9739 "description": [
9740 "The teleport cause in a teleport event."
9741 ],
9742 "examples": [
9743 "ender pearl, command, plugin, nether portal, end portal, spectate, gateway, chorus, unknown"
9744 ],
9745 "since": [
9746 "2.2-dev35"
9747 ],
9748 "patterns": [
9749 "teleport[ ](cause|reason|type)[s]"
9750 ]
9751 },
9752 {
9753 "id": "String",
9754 "name": "Text",
9755 "description": [
9756 "Text is simply text, i.e. a sequence of characters, which can optionally contain expressions which will be replaced with a meaningful representation (e.g. %player% will be replaced with the player's name).",
9757 "Because scripts are also text, you have to put text into double quotes to tell Skript which part of the line is an effect/expression and which part is the text.",
9758 "Please read the article on Texts and Variable Names to learn more."
9759 ],
9760 "examples": [
9761 "broadcast \"Hello World!\"",
9762 "message \"Hello %player%\"",
9763 "message \"The id of \"\"%type of tool%\"\" is %id of tool%.\""
9764 ],
9765 "usage": "simple: \"...\"\nquotes: \"...\"\"...\"\nexpressions: \"...%expression%...\"\npercent signs: \"...%%...\"",
9766 "since": [
9767 "1.0"
9768 ],
9769 "patterns": [
9770 "(text|string)[s]"
9771 ]
9772 },
9773 {
9774 "id": "Time",
9775 "name": "Time",
9776 "description": [
9777 "A time is a point in a minecraft day's time (i.e. ranges from 0:00 to 23:59), which can vary per world.",
9778 "See date and timespan for the other time types of Skript."
9779 ],
9780 "examples": [
9781 "at 20:00:",
9782 "\ttime is 8 pm",
9783 "\tbroadcast \"It's %time%\""
9784 ],
9785 "usage": "##:##\n##[:##][ ]am/pm",
9786 "since": [
9787 "1.0"
9788 ],
9789 "patterns": [
9790 "time[s]"
9791 ]
9792 },
9793 {
9794 "id": "Timeperiod",
9795 "name": "Timeperiod",
9796 "description": [
9797 "A period of time between two times. Mostly useful since you can use this to test for whether it's day, night, dusk or dawn in a specific world.",
9798 "This type might be removed in the future as you can use 'time of world is between x and y' as a replacement."
9799 ],
9800 "examples": [
9801 "time in world is night"
9802 ],
9803 "usage": "##:## - ##:##\ndusk/day/dawn/night",
9804 "since": [
9805 "1.0"
9806 ],
9807 "patterns": [
9808 "time[ ]period[s]",
9809 "duration[s]"
9810 ]
9811 },
9812 {
9813 "id": "Timespan",
9814 "name": "Timespan",
9815 "description": [
9816 "A timespan is a difference of two different dates or times, e.g '10 minutes'. Timespans are always displayed as real life time, but can be defined as minecraft time, e.g. '5 minecraft days and 12 hours'.",
9817 "See date and time for the other time types of Skript."
9818 ],
9819 "examples": [
9820 "every 5 minecraft days:",
9821 "\twait a minecraft second and 5 ticks",
9822 "every 10 mc days and 12 hours:",
9823 "\thalt for 12.7 irl minutes, 12 hours and 120.5 seconds"
9824 ],
9825 "usage": "<number> [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] <more...>]\n[###:]##:##[.####] ([hours:]minutes:seconds[.milliseconds])",
9826 "since": [
9827 "1.0"
9828 ],
9829 "patterns": [
9830 "time[ ]span[s]"
9831 ]
9832 },
9833 {
9834 "id": "StructureType",
9835 "name": "Tree Type",
9836 "description": [
9837 "A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the generate tree effect."
9838 ],
9839 "examples": [
9840 "grow any regular tree at the block",
9841 "grow a huge red mushroom above the block"
9842 ],
9843 "usage": "[any] <general tree/mushroom type>, e.g. tree/any jungle tree/etc.\n<specific tree/mushroom species>, e.g. red mushroom/small jungle tree/big regular tree/etc.",
9844 "since": [
9845 ""
9846 ],
9847 "patterns": [
9848 "tree[ ]type[s]",
9849 "tree[s]"
9850 ]
9851 },
9852 {
9853 "id": "ClassInfo",
9854 "name": "Type",
9855 "description": [
9856 "Represents a type, e.g. number, object, item type, location, block, world, entity type, etc.",
9857 "This is mostly used for expressions like 'event-<type>', '<type>-argument', 'loop-<type>', etc., e.g. event-world, number-argument and loop-player."
9858 ],
9859 "examples": [
9860 "{variable} is a number # check whether the variable contains a number, e.g. -1 or 5.5",
9861 "{variable} is a type # check whether the variable contains a type, e.g. number or player",
9862 "{variable} is an object # will always succeed if the variable is set as everything is an object, even types.",
9863 "disable PvP in the event-world",
9864 "kill the loop-entity"
9865 ],
9866 "usage": "See the type name patterns of all types - including this one",
9867 "since": [
9868 "2.0"
9869 ],
9870 "patterns": [
9871 "type[s]"
9872 ]
9873 },
9874 {
9875 "id": "Vector",
9876 "name": "Vector",
9877 "description": [
9878 "Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities."
9879 ],
9880 "usage": "vector(x, y, z)",
9881 "since": [
9882 "2.2-dev23"
9883 ],
9884 "patterns": [
9885 "vector[s]"
9886 ]
9887 },
9888 {
9889 "id": "VisualEffect",
9890 "name": "Visual Effect",
9891 "description": [
9892 "A visible effect, e.g. particles."
9893 ],
9894 "examples": [
9895 "show wolf hearts on the clicked wolf",
9896 "play mob spawner flames at the targeted block to the player"
9897 ],
9898 "usage": "ender signal, mobspawner flames, potion break, smoke, hurt, wolf smoke, wolf hearts, wolf shaking, sheep eating, iron golem offering rose, villager hearts, angry villager entity, happy villager entity, witch magic, zombie turning to a villager, firework explosion, arrow particles, jumping rabbit, love hearts, squid rotation reset, entity poof, guardian target, block with shield, shield break, armor stand hit, hurt by thorns, iron golem sheathing rose, resurrection by totem, hurt by drowning, visual effects.hurt_explosiion.name, firework's spark, critical hit, magical critical hit, potion swirl, transparent potion swirl, spell, spell, witch spell, note, portal, flying glyph, flame, lava pop, footstep, water splash, smoke particle, huge explosion, large explosion, explosion, void fog, small smoke, cloud, coloured dust, snowball break, water drip, lava drip, snow shovel, slime, heart, angry villager, happy villager, large smoke, item crack, block break, block dust, totem, spit, squid ink, bubble pop, current down, bubble column up, nautilus, dolphin, sneeze, visual effects.campfire_cosy_smoke.name, campfire signal smoke, composter, flash, falling lava, landing lava, falling water",
9899 "since": [
9900 "2.1"
9901 ],
9902 "patterns": [
9903 "(visual|particle) effect[s]"
9904 ]
9905 },
9906 {
9907 "id": "WeatherType",
9908 "name": "Weather Type",
9909 "description": [
9910 "The weather types sunny, rainy, and thundering."
9911 ],
9912 "examples": [
9913 "is raining",
9914 "is sunny in the player's world",
9915 "message \"It is %weather in the argument's world% in %world of the argument%\""
9916 ],
9917 "usage": "clear/sun/sunny, rain/rainy/raining, and thunder/thundering/thunderstorm",
9918 "since": [
9919 "1.0"
9920 ],
9921 "patterns": [
9922 "weather[ ]type[s]",
9923 "weather condition[s]",
9924 "weather[s]"
9925 ]
9926 },
9927 {
9928 "id": "World",
9929 "name": "World",
9930 "description": [
9931 "One of the server's worlds. Worlds can be put into scripts by surrounding their name with double quotes, e.g. \"world_nether\", but this might not work reliably as text uses the same syntax."
9932 ],
9933 "examples": [
9934 "broadcast \"Hello!\" to the world \"world_nether\""
9935 ],
9936 "usage": "\"world_name\", e.g. \"world\"",
9937 "since": [
9938 "1.0, 2.2 (alternate syntax)"
9939 ],
9940 "patterns": [
9941 "world[s]"
9942 ]
9943 }
9944 ],
9945 "functions": [
9946 {
9947 "id": "function_abs",
9948 "name": "abs",
9949 "description": [
9950 "Returns the absolute value of the argument, i.e. makes the argument positive."
9951 ],
9952 "examples": [
9953 "abs(3) = 3",
9954 "abs(-2) = 2"
9955 ],
9956 "since": [
9957 "2.2"
9958 ],
9959 "return type": "Number",
9960 "patterns": [
9961 "abs(n: number)"
9962 ]
9963 },
9964 {
9965 "id": "function_acos",
9966 "name": "acos",
9967 "description": [
9968 "The inverse of the cosine, also called arccos. Returns result in degrees, not radians. Only returns values from 0 to 180."
9969 ],
9970 "examples": [
9971 "acos(0) = 90",
9972 "acos(1) = 0",
9973 "acos(0.5) = 30"
9974 ],
9975 "since": [
9976 "2.2"
9977 ],
9978 "return type": "Number",
9979 "patterns": [
9980 "acos(n: number)"
9981 ]
9982 },
9983 {
9984 "id": "function_asin",
9985 "name": "asin",
9986 "description": [
9987 "The inverse of the sine, also called arcsin. Returns result in degrees, not radians. Only returns values from -90 to 90."
9988 ],
9989 "examples": [
9990 "asin(0) = 0",
9991 "asin(1) = 90",
9992 "asin(0.5) = 30"
9993 ],
9994 "since": [
9995 "2.2"
9996 ],
9997 "return type": "Number",
9998 "patterns": [
9999 "asin(n: number)"
10000 ]
10001 },
10002 {
10003 "id": "function_atan",
10004 "name": "atan",
10005 "description": [
10006 "The inverse of the tangent, also called arctan. Returns result in degrees, not radians. Only returns values from -90 to 90."
10007 ],
10008 "examples": [
10009 "atan(0) = 0",
10010 "atan(1) = 45",
10011 "atan(10000) = 89.9943"
10012 ],
10013 "since": [
10014 "2.2"
10015 ],
10016 "return type": "Number",
10017 "patterns": [
10018 "atan(n: number)"
10019 ]
10020 },
10021 {
10022 "id": "function_atan2",
10023 "name": "atan2",
10024 "description": [
10025 "Similar to atan, but requires two coordinates and returns values from -180 to 180.",
10026 "The returned angle is measured counterclockwise in a standard mathematical coordinate system (x to the right, y to the top)."
10027 ],
10028 "examples": [
10029 "atan2(0, 1) = 0",
10030 "atan2(10, 0) = 90",
10031 "atan2(-10, 5) = -63.4349"
10032 ],
10033 "since": [
10034 "2.2"
10035 ],
10036 "return type": "Number",
10037 "patterns": [
10038 "atan2(x: number, y: number)"
10039 ]
10040 },
10041 {
10042 "id": "function_calcExperience",
10043 "name": "calcExperience",
10044 "description": [
10045 "Calculates the total amount of experience needed to achieve given level from scratch in Minecraft."
10046 ],
10047 "since": [
10048 "2.2-dev32"
10049 ],
10050 "return type": "long",
10051 "patterns": [
10052 "calcExperience(level: long)"
10053 ]
10054 },
10055 {
10056 "id": "function_ceil",
10057 "name": "ceil",
10058 "description": [
10059 "Rounds a number down, i.e. returns the closest integer larger than or equal to the argument."
10060 ],
10061 "examples": [
10062 "ceil(2.34) = 3",
10063 "ceil(2) = 2",
10064 "ceil(2.99) = 3"
10065 ],
10066 "since": [
10067 "2.2"
10068 ],
10069 "return type": "long",
10070 "patterns": [
10071 "ceil(n: number)"
10072 ]
10073 },
10074 {
10075 "id": "function_ceiling",
10076 "name": "ceiling",
10077 "description": [
10078 "Alias of ceil."
10079 ],
10080 "examples": [
10081 "ceiling(2.34) = 3",
10082 "ceiling(2) = 2",
10083 "ceiling(2.99) = 3"
10084 ],
10085 "since": [
10086 "2.2"
10087 ],
10088 "return type": "long",
10089 "patterns": [
10090 "ceiling(n: number)"
10091 ]
10092 },
10093 {
10094 "id": "function_cos",
10095 "name": "cos",
10096 "description": [
10097 "The cosine function. This is basically the sine shifted by 90°, i.e. cos(a) = sin(a + 90°), for any number a. Uses degrees, not radians."
10098 ],
10099 "examples": [
10100 "cos(0) = 1",
10101 "cos(90) = 0"
10102 ],
10103 "since": [
10104 "2.2"
10105 ],
10106 "return type": "Number",
10107 "patterns": [
10108 "cos(n: number)"
10109 ]
10110 },
10111 {
10112 "id": "function_date",
10113 "name": "date",
10114 "description": [
10115 "Creates a date from a year, month, and day, and optionally also from hour, minute, second and millisecond.",
10116 "A time zone and DST offset can be specified as well (in minutes), if they are left out the server's time zone and DST offset are used (the created date will not retain this information)."
10117 ],
10118 "examples": [
10119 "date(2014, 10, 1) # 0:00, 1st October 2014",
10120 "date(1990, 3, 5, 14, 30) # 14:30, 5th May 1990",
10121 "date(1999, 12, 31, 23, 59, 59, 999, -3*60, 0) # almost year 2000 in parts of Brazil (-3 hours offset, no DST)"
10122 ],
10123 "since": [
10124 "2.2"
10125 ],
10126 "return type": "Date",
10127 "patterns": [
10128 "date(year: number, month: number, day: number, hour: number = [[integer:0]], minute: number = [[integer:0]], second: number = [[integer:0]], millisecond: number = [[integer:0]], zone_offset: number = [[double:NaN]], dst_offset: number = [[double:NaN]])"
10129 ]
10130 },
10131 {
10132 "id": "function_exp",
10133 "name": "exp",
10134 "description": [
10135 "The exponential function. You probably don't need this if you don't know what this is."
10136 ],
10137 "examples": [
10138 "exp(0) = 1",
10139 "exp(1) = 2.7183"
10140 ],
10141 "since": [
10142 "2.2"
10143 ],
10144 "return type": "Number",
10145 "patterns": [
10146 "exp(n: number)"
10147 ]
10148 },
10149 {
10150 "id": "function_floor",
10151 "name": "floor",
10152 "description": [
10153 "Rounds a number down, i.e. returns the closest integer smaller than or equal to the argument."
10154 ],
10155 "examples": [
10156 "floor(2.34) = 2",
10157 "floor(2) = 2",
10158 "floor(2.99) = 2"
10159 ],
10160 "since": [
10161 "2.2"
10162 ],
10163 "return type": "long",
10164 "patterns": [
10165 "floor(n: number)"
10166 ]
10167 },
10168 {
10169 "id": "function_ln",
10170 "name": "ln",
10171 "description": [
10172 "The natural logarithm. You probably don't need this if you don't know what this is.",
10173 "Returns NaN (not a number) if the argument is negative."
10174 ],
10175 "examples": [
10176 "ln(1) = 0",
10177 "ln(exp(5)) = 5",
10178 "ln(2) = 0.6931"
10179 ],
10180 "since": [
10181 "2.2"
10182 ],
10183 "return type": "Number",
10184 "patterns": [
10185 "ln(n: number)"
10186 ]
10187 },
10188 {
10189 "id": "function_location",
10190 "name": "location",
10191 "description": [
10192 "Creates a location from a world and 3 coordinates, with an optional yaw and pitch."
10193 ],
10194 "examples": [
10195 "location(0, 128, 0)",
10196 "location(player's x-coordinate, player's y-coordinate + 5, player's z-coordinate, player's world, 0, 90)"
10197 ],
10198 "since": [
10199 "2.2"
10200 ],
10201 "return type": "Location",
10202 "patterns": [
10203 "location(x: number, y: number, z: number, world: world = event-world, yaw: number = [[integer:0]], pitch: number = [[integer:0]])"
10204 ]
10205 },
10206 {
10207 "id": "function_log",
10208 "name": "log",
10209 "description": [
10210 "A logarithm, with base 10 if none is specified. This is the inverse operation to exponentiation (for positive bases only), i.e. log(base ^ exponent, base) = exponent for any positive number 'base' and any number 'exponent'.",
10211 "Another useful equation is base ^ log(a, base) = a for any numbers 'base' and 'a'.",
10212 "Please note that due to how numbers are represented in computers, these equations do not hold for all numbers, as the computed values may slightly differ from the correct value.",
10213 "Returns NaN (not a number) if any of the arguments are negative."
10214 ],
10215 "examples": [
10216 "log(100) = 2 # 10^2 = 100",
10217 "log(16, 2) = 4 # 2^4 = 16"
10218 ],
10219 "since": [
10220 "2.2"
10221 ],
10222 "return type": "Number",
10223 "patterns": [
10224 "log(n: number, base: number = [[integer:10]])"
10225 ]
10226 },
10227 {
10228 "id": "function_max",
10229 "name": "max",
10230 "description": [
10231 "Returns the maximum number from a list of numbers."
10232 ],
10233 "examples": [
10234 "max(1) = 1",
10235 "max(1, 2, 3, 4) = 4",
10236 "max({some list variable::*})"
10237 ],
10238 "since": [
10239 "2.2"
10240 ],
10241 "return type": "Number",
10242 "patterns": [
10243 "max(ns: numbers)"
10244 ]
10245 },
10246 {
10247 "id": "function_min",
10248 "name": "min",
10249 "description": [
10250 "Returns the minimum number from a list of numbers."
10251 ],
10252 "examples": [
10253 "min(1) = 1",
10254 "min(1, 2, 3, 4) = 1",
10255 "min({some list variable::*})"
10256 ],
10257 "since": [
10258 "2.2"
10259 ],
10260 "return type": "Number",
10261 "patterns": [
10262 "min(ns: numbers)"
10263 ]
10264 },
10265 {
10266 "id": "function_mod",
10267 "name": "mod",
10268 "description": [
10269 "Returns the modulo of the given arguments, i.e. the remainder of the division d/m, where d and m are the arguments of this function.",
10270 "The returned value is always positive. Returns NaN (not a number) if the second argument is zero."
10271 ],
10272 "examples": [
10273 "mod(3, 2) = 1",
10274 "mod(256436, 100) = 36",
10275 "mod(-1, 10) = 9"
10276 ],
10277 "since": [
10278 "2.2"
10279 ],
10280 "return type": "Number",
10281 "patterns": [
10282 "mod(d: number, m: number)"
10283 ]
10284 },
10285 {
10286 "id": "function_product",
10287 "name": "product",
10288 "description": [
10289 "Calculates the product of a list of numbers."
10290 ],
10291 "examples": [
10292 "product(1) = 1",
10293 "product(2, 3, 4) = 24",
10294 "product({some list variable::*})",
10295 "product(2, {_v::*}, and the player's y-coordinate)"
10296 ],
10297 "since": [
10298 "2.2"
10299 ],
10300 "return type": "Number",
10301 "patterns": [
10302 "product(ns: numbers)"
10303 ]
10304 },
10305 {
10306 "id": "function_round",
10307 "name": "round",
10308 "description": [
10309 "Rounds a number, i.e. returns the closest integer to the argument."
10310 ],
10311 "examples": [
10312 "round(2.34) = 2",
10313 "round(2) = 2",
10314 "round(2.99) = 3",
10315 "round(2.5) = 3"
10316 ],
10317 "since": [
10318 "2.2"
10319 ],
10320 "return type": "long",
10321 "patterns": [
10322 "round(n: number)"
10323 ]
10324 },
10325 {
10326 "id": "function_sin",
10327 "name": "sin",
10328 "description": [
10329 "The sine function. It starts at 0° with a value of 0, goes to 1 at 90°, back to 0 at 180°, to -1 at 270° and then repeats every 360°. Uses degrees, not radians."
10330 ],
10331 "examples": [
10332 "sin(90) = 1",
10333 "sin(60) = 0.866"
10334 ],
10335 "since": [
10336 "2.2"
10337 ],
10338 "return type": "Number",
10339 "patterns": [
10340 "sin(n: number)"
10341 ]
10342 },
10343 {
10344 "id": "function_sqrt",
10345 "name": "sqrt",
10346 "description": [
10347 "The square root, which is the inverse operation to squaring a number (for positive numbers only). This is the same as (argument) ^ (1/2) – other roots can be calculated via number ^ (1/root), e.g. set {_l} to {_volume}^(1/3).",
10348 "Returns NaN (not a number) if the argument is negative."
10349 ],
10350 "examples": [
10351 "sqrt(4) = 2",
10352 "sqrt(2) = 1.4142",
10353 "sqrt(-1) = NaN"
10354 ],
10355 "since": [
10356 "2.2"
10357 ],
10358 "return type": "Number",
10359 "patterns": [
10360 "sqrt(n: number)"
10361 ]
10362 },
10363 {
10364 "id": "function_sum",
10365 "name": "sum",
10366 "description": [
10367 "Sums a list of numbers."
10368 ],
10369 "examples": [
10370 "sum(1) = 1",
10371 "sum(2, 3, 4) = 9",
10372 "sum({some list variable::*})",
10373 "sum(2, {_v::*}, and the player's y-coordinate)"
10374 ],
10375 "since": [
10376 "2.2"
10377 ],
10378 "return type": "Number",
10379 "patterns": [
10380 "sum(ns: numbers)"
10381 ]
10382 },
10383 {
10384 "id": "function_tan",
10385 "name": "tan",
10386 "description": [
10387 "The tangent function. This is basically <a href='#sin'>sin(arg)/cos(arg)</code>. Uses degrees, not radians."
10388 ],
10389 "examples": [
10390 "tan(0) = 0",
10391 "tan(45) = 1",
10392 "tan(89.99) = 5729.5779"
10393 ],
10394 "since": [
10395 "2.2"
10396 ],
10397 "return type": "Number",
10398 "patterns": [
10399 "tan(n: number)"
10400 ]
10401 },
10402 {
10403 "id": "function_vector",
10404 "name": "vector",
10405 "description": [
10406 "Creates a new vector, which can be used with various expressions, effects and functions."
10407 ],
10408 "examples": [
10409 "vector(0, 0, 0)"
10410 ],
10411 "since": [
10412 "2.2-dev23"
10413 ],
10414 "return type": "Vector",
10415 "patterns": [
10416 "vector(x: number, y: number, z: number)"
10417 ]
10418 },
10419 {
10420 "id": "function_world",
10421 "name": "world",
10422 "description": [
10423 "Gets a world from its name."
10424 ],
10425 "examples": [
10426 "set {_nether} to world(\"%{_world}%_nether\")"
10427 ],
10428 "since": [
10429 "2.2"
10430 ],
10431 "return type": "World",
10432 "patterns": [
10433 "world(name: string)"
10434 ]
10435 }
10436 ]
10437}